M40 Phase 3 #362 加权路径与批量执行合同

状态

公共入口

GraphWeightedPath 返回路径、总权重、实际算法、snapshot sequence、expanded vertex state 数和 expanded edge 数。不可达返回 null;远程请求中端点不存在沿用现有 shortest-path 行为返回 404 vertex_not_found

权重与算法

深度与正确性

MaxDepth 是路径 hop 的语义约束,不只是循环保护。搜索状态必须是 (vertex, depth):同一顶点上“更便宜但已耗尽 hop”的状态不能遮蔽“更贵但仍可到达目标”的状态。实现只删除被“更少或相同 hop 且成本更低或相同”支配的状态。

双向算法保存 forward/backward 两侧的 depth state;meeting 只有在两侧 depth 之和不超过 MaxDepth 时才合法。路径重建分别使用 forward predecessor 和 backward successor 链,并保持请求方向。

三种算法都只读取创建 GraphReadSession 时的单一 KV sequence。搜索过程中并发提交只对后续 session 可见,不会改变当前结果。

预算与取消

当前证据

自动回归覆盖:

本地 topology 收益矩阵(2026-08-22)

运行入口:dotnet run --project tests/SonnetDB.Benchmarks/SonnetDB.Benchmarks.csproj -c Release -- --m40-weighted-path-evidence --quick

该 runner 使用固定 seed 0x534F4E4E45544442gj-topology-weighted-route-v1 缩小拓扑(256 vertex、960 directed edge、16x16 网格),在同一 statement snapshot 上完成 5 次正式样本;输入摘要、机器信息、path digest、分配、working set、P50/P95/P99、expanded vertices/edges 和实际 native_adjacency path 写入 source-generated JSON/Markdown。quick 结果如下:

算法 正确性 expanded edges 相对 Dijkstra P95 P95 ratio 局部准入
Dijkstra PASS 704 baseline 4.437 ms 1.000x BASELINE
A*(Manhattan) PASS 59 -91.6% 2.065 ms 0.465x PASS
Bidirectional Dijkstra PASS 423 -39.9% 3.262 ms 0.735x PASS

A* 样本的启发式由嵌入式调用方提供,满足非负、可采纳和一致约束;远程零启发式 A* 不从该样本外推收益。该矩阵只证明当前缩小 topology 上的局部算法准入,不改变发布边界。

尚未取得的证据必须保持 NOT_RUN:Couplet 代码知识真实语料、#341 gate 档 1m vertex/10m edge、固定目标硬件 P50/P95/P99 与峰值内存、退化/负向 workload、7 天 mixed workload 和 #367 发布决定。