---
title: "结果与保证边界"
description: "解释调用者能核验什么，以及为什么“本次最佳候选”不等于严格局部最优或全局最优。"
eyebrow: "Auto 寻路"
---

## 优先核验最终路径和指标 {#observable-result}

```python
report = arctn_schedule(
    inputs, output, size_dict,
    preset="heavy", seed=11, use_ssa=True,
)

assert len(report["path"]) == len(inputs) - 1
print(report["log10_flops"])
print(report["log2_max_size"])
print(report["log2_max_contraction_size"])
print(report["log2_total_size"])
print(report["log2_read_write"])
print(report["log2_peak_size"])
```

| 公开结果 | 能够回答的问题 |
| --- | --- |
| path | 最终返回的收缩顺序是什么 |
| 六项 PathStats | 这条完整路径的 FLOPs、最大步骤、总读写与峰值等指标 |
| planner objective 与权重 | 本次调用用什么口径比较候选 |
| sliced legs 与切片指标 | 显式 target\_size 下最终切片方案是否满足约束 |

## “最好”限定在本次完成的候选集合内 {#optimality}

| 表述 | 是否由接口保证 | 原因 |
| --- | --- | --- |
| 本次搜索观察到的最佳候选 | 是 | 明确限定了有限候选集合 |
| 已完成候选中目标值最低的路径 | 是 | 可由统一评分和最终比较核验 |
| 局部最小值 | 否 | 需要定义邻域并证明所有邻居都不更优 |
| 全局最优 | 否 | 启发式搜索没有穷举全部收缩树 |

内部实现可以使用局部改进来尝试降低目标值，但公开接口不承诺具体改进算法、执行次数或阶段顺序，也不把搜索停止状态当作最优性证明。

## 指定 target\_size 时的返回要求 {#slicing}

提供 `target_size` 后，返回方案必须满足接口声明的每切片最大中间张量元素约束；若约束不可达，接口应报错，而不是把未满足限制的未切片路径当作成功结果。

```python
report = arctn_schedule(
    inputs, output, size_dict,
    preset="light",
    target_size=2**24,
    slicing_mode="fixed",
)
print(report["sliced_legs"])
print(report["sliced_log2_max_size"])
```

> **内存指标边界**
>
> `target_size` 约束的是每个切片的中间张量元素数，不是进程 RSS、显存占用或所有并发任务的总内存。
