diff --git a/docs/探索日志.md b/docs/探索日志.md index 6725f0c..2b9b42f 100644 --- a/docs/探索日志.md +++ b/docs/探索日志.md @@ -237,6 +237,23 @@ - **结论**:刹停 **27.4→8.6(-69%)**、到达 +1.6 pp、碰撞不变——**部分安全前缀有效**(新最佳:38.3% / 1.6% / 0.308 / 8.6 / 770 ms)。但 `time_ok_1p3` 仍 13.7%:说明超时主因不是刹停,而是**执行粒度**——部分前缀的填充零步仍在消耗时间。 - **下一步**:commit_n=1(每次只提交 1 步、每步规划,无填充步),验证时间效率。 +## 轮次 15:每步规划(commit_n=1)(exp: `exp/dagger-deploy`,新历史最佳) + +- **假设**:部分前缀的填充零步仍在消耗时间;每次只提交 1 步、每步重新规划可消除填充、提升时间效率。 +- **判据**:time_ok_1p3 显著上升、到达不降、碰撞 ≤3%。 +- **配方**:dag2 best,replan='empty',gain 1.5,safety=True,`safety_partial=1, commit_n=1`;n=256。 +- **对照**:commit_n=3 部分前缀(轮次 14:38.3% / 13.7% / 1.6% / 0.308 / 8.6 / 770 ms)。 +- **指标**: + +| commit_n | 到达 | time_ok_1p3 | 碰撞 | ratio2s | 刹停/题 | 墙钟/题 | +|---|---|---|---|---|---|---| +| 3 | 38.3% | 13.7% | 1.6% | 0.308 | 8.6 | 770 ms | +| **1** | **41.8%** | **21.5%** | 2.3% | **0.259** | 26.9 | 967 ms | + +- **结论**:每步规划把到达推到 **41.8%**、时间效率 **13.7→21.5%**、精度 ratio2s **0.259**;代价:碰撞 1.6→2.3%(仍 <3%)、刹停计数回升(每步都判断)、时延 +26%。**新历史最佳(n=256,部署口径):41.8% / 2.3% / 0.259 / 21.5% / 967 ms**。 +- **注**:commit_n=1 的推理频率是 3 倍,真机需核对 §9.2 的 P99 <20 ms 预算(当前桌面 12.58 ms/次)。 +- **下一步**:n=512 复核;若稳定则收尾(更新最佳、监控页、分支清理)。 + ## 轮次统计 - 连续无实质进展轮数:0(轮次 5 出现实质进展:reach 0→20.3%)。 diff --git a/ml/sim/closed_loop.py b/ml/sim/closed_loop.py index 9e87c6a..989142a 100644 --- a/ml/sim/closed_loop.py +++ b/ml/sim/closed_loop.py @@ -243,7 +243,7 @@ def rollout(model, kin, tasks, device, K=8, safety=False, seed=0, max_sec=None, pts = qe[:, None] + torch.cumsum(ck, 1) mids = torch.cat([qe[:, None], pts[:, :-1]], 1) + 0.5 * ck allq = torch.cat([pts, mids], 1).reshape(-1, 6) - ok6 = (kin.gaps(allq, 0.5)['gm'].min(-1).values > 0).view(B, 6) + ok6 = (kin.gaps(allq, 0.5)['gm'].min(-1).values > 0).view(B, 2 * commit_n) okstep = ok6[:, :commit_n] & ok6[:, commit_n:] # 每步:步点与其中点都安全 plen = torch.cumprod(okstep.long(), 1).sum(1) # 安全前缀长度 0..3 take = plen > maxlen