系统算法数学表达与逻辑总览
日期:2026-03-24
本文档整理当前项目中真正落地使用过的主要算法,并给出它们的数学表达、输入输出和决策逻辑。写法尽量服务于论文与中期汇报,因此重点强调:
- 系统如何把导航问题降维到可在线预测的拓扑空间;
- 世界模型如何进入规划与恢复闭环;
- 各算法之间的关系是什么;
- 哪些模块是当前主线,哪些属于扩展分支。
1. 总体问题形式化
系统把室内导航环境表示为一个带语义的有向图:
G=(V,E)
其中:
- V:节点集合,对应房间、走廊节点、楼梯、电梯、门厅等语义位置;
- E:有向边集合,对应可通行通道;
- 每条边 e=(u,v) 具有静态属性与风险属性。
对于每条边 e,系统使用如下静态属性:
ϕ(e)={edge_type, distance, base_travel_time, pbcfg(e,τ), pfcfg(e,τ)}
其中:
- τ∈{morning,afternoon,evening} 是时间桶;
- pbcfg 是配置层给定的阻塞概率;
- pfcfg 是配置层给定的失败概率。
一条导航任务可以写成:
T=(s,g,τ,q)
其中:
- s:起点;
- g:目标节点;
- τ:时间桶;
- q:自然语言查询。
系统最终目标是找到一条路径
π=(v0=s,v1,…,vn=g)
使得导航成功率尽量高,同时总时间、重规划次数和恢复代价尽量低。
2. 关键创新:世界模型的拓扑降维表示
这是当前论文主线里最重要的一点。
传统“世界模型”常面向原始观测或高维连续状态;而本系统把导航预测问题降维为:
对“下一条拓扑边”做未来结果预测。
也就是说,不直接预测原始图像序列,而是把每一次边执行抽象为一个监督样本:
xk↦yk
其中:
- xk:执行第 k 条边之前可获得的低维因果特征;
- yk:执行该边后的真实结果。
标签定义为:
yk=(tk, bk, fk, rk)
其中:
- tk:真实通行时间;
- bk∈{0,1}:是否被阻塞;
- fk∈{0,1}:是否失败;
- rk∈{0,1}:是否触发恢复。
所以,系统学习的是一个轻量拓扑世界模型:
fθ(xk)=(t^k, p^b,k, p^f,k)
这一步的意义在于:
- 把原本高维、难在线部署的预测问题,转化为边级预测;
- 让世界模型第一次可以以毫秒级代价进入在线规划循环;
- 这也是“世界模型降维后能跑导航预测”的核心数学形式。
3. 因果特征构造算法
3.1 特征向量定义
当前用于世界模型的输入特征可写为:
xk=[xkstatic,xkcfg,xktime,xkhist,xknbr,xkctx,xkmap,xkstruct,xkprior]
对应九组特征:
- 边静态属性;
- 配置层风险;
- 时间桶 one-hot;
- 同边历史窗口;
- 邻域传播统计;
- episode 上下文;
- 地图 one-hot;
- 图结构特征;
- 全局先验。
3.2 同边历史窗口
对当前边 e=(u,v),记本 episode 内该有向边的历史事件集合为:
He={h1,…,hm}
则同边统计特征为:
μt(e)=m1i=1∑mti
σt(e)=m1i=1∑m(ti−μt(e))2
ρb(e)=m1i=1∑mbi,ρf(e)=m1i=1∑mfi
并保留最近 K=5 次结果作为窗口特征:
[tm−K+1,…,tm],[bm−K+1,…,bm],[fm−K+1,…,fm]
3.3 邻域传播特征
对当前边 e=(u,v),取与端点 u,v 相邻的近期事件集合 Ne,构造:
ρbnbr(e)=∣Ne∣1h∈Ne∑b(h)
ρfnbr(e)=∣Ne∣1h∈Ne∑f(h)
μtnbr(e)=∣Ne∣1h∈Ne∑t(h)
它表达“局部区域最近是否整体变差”。
3.4 结构特征
多地图阶段引入的结构特征包括:
dsrc(e), ddst(e), min(dsrc,ddst), cshared(e)
其中:
- dsrc:源节点度数;
- ddst:目标节点度数;
- cshared:两端点共享邻居数。
这些特征用于表达“这条边是不是脆弱通道、是不是更接近瓶颈”。
3.5 全局先验
系统把“全局先验”和“episode 内历史”显式分开。
对训练集中的边 e=(u,v) 与时间桶 τ,构造:
μtprior(e,τ),ρbprior(e,τ),ρfprior(e,τ),nprior(e,τ)
即:
- 先验平均通行时间;
- 先验阻塞率;
- 先验失败率;
- 样本计数。
这组特征的作用是解决冷启动问题:即使某条边在当前 episode 里没有历史,模型也仍然能拿到稳定先验。
4. 动态环境采样算法
仿真中的每一次边执行不是确定的,而是由 DynamicsEngine 按随机机制采样。
4.1 阻塞与失败采样
对边 e 在时间桶 τ 下:
b∼Bernoulli(pb(e,τ))
如果未阻塞,再采样失败事件:
f∼Bernoulli(pf(e,τ))
如果已阻塞,则直接令 f=0。
4.2 邻域阻塞传播
如果相邻边在本 episode 中曾被阻塞,则当前边的阻塞概率增加:
pb′(e,τ)=min(1, pb(e,τ)+λnbr)
其中 λnbr 是邻域传播增益。
4.3 通行时间采样
若未阻塞,通行时间为:
t=tbase(e)⋅max(0.3,1+ϵ),ϵ∼N(0,σ2)
若阻塞,则:
t=κblock⋅tbase(e)
其中 κblock 是阻塞时间放大倍数。
5. 语言 grounding 算法
系统采用“两阶段 grounding”。
5.1 规则检索
先用规则检索器对每个节点打分:
Srule(v,q)=Sname+Sid+Salias+Slandmark+Stag+Sdesc+Sroomtype+Sfloor+Sdir
具体逻辑:
- 精确显示名匹配给高分;
- 节点别名匹配给高分;
- landmark、object tag、room type、floor、方向词提供附加分;
- floor 不匹配时会施加惩罚。
这个规则分数本质上是一个人工设计的加法打分器。
5.2 向量召回
节点文本和用户查询都被编码到同一向量空间:
zv=Enc(v),zq=Enc(q)
因为 embedding 已做归一化,召回分数可写成余弦相似度:
Semb(v,q)=cos(zv,zq)=zv⊤zq
然后取 top-K 候选。
5.3 规则重排
对召回候选再做规则重排:
Sfinal(v,q)=αSemb(v,q)+(1−α)S~rule(v,q)
其中:
- S~rule 是规则分数做截断和归一化后的结果;
- α∈[0,1] 控制语义相似度与规则匹配之间的权重。
这使得 embedding 负责“语义召回”,规则负责“精确校正”。
6. 基线规划算法
6.1 几何最短路 shortest_path
在图 G 上对每条边赋予几何代价:
cgeo(e)=distance(e)
然后用 Dijkstra 求:
π\*=argπ:s→gmine∈π∑cgeo(e)
这是最弱的基线,因为它只看物理距离。
6.2 语义无风险规划 semantic_no_risk
对每条边用基础通行时间作为代价:
ctime(e)=tbase(e)
同样使用 Dijkstra:
π\*=argπ:s→gmine∈π∑tbase(e)
这比纯距离更贴近导航实际,但仍不考虑动态风险。
6.3 历史风险规划 historical_risk
对每条边代价定义为:
chist(e,τ)=tbase(e)+βpbcfg(e,τ)+γpfcfg(e,τ)
其中:
- β:把阻塞概率映射成时间惩罚;
- γ:把失败概率映射成时间惩罚。
然后仍用 Dijkstra 最小化路径总代价。
这个规划器的本质是:不预测未来,只使用手工配置或历史平均风险。
7. 世界模型训练算法
7.1 历史基线预测器
训练阶段有一个参考基线 HistoricalBaseline。
如果当前边已有历史,则直接用历史均值:
t^=μt(e),p^b=ρb(e),p^f=ρf(e)
否则退化为配置先验:
t^=tbase(e),p^b=pbcfg(e,τ),p^f=pfcfg(e,τ)
7.2 LightGBM 世界模型
系统实际使用的是三头轻量树模型:
t^=ft(x),p^b=fb(x),p^f=ff(x)
更具体地,树集成可以形式上写成:
f(x)=m=1∑Mηfm(x)
其中 fm 是第 m 棵决策树,η 是学习率。
三个头分别对应:
- travel-time 回归;
- block 二分类;
- fail 二分类。
7.3 概率校准
分类头输出的原始概率再经过校准器:
p~=c(praw)
项目中支持:
- identity calibrator;
- sigmoid / Platt scaling;
- isotonic regression。
当前主线主要使用 isotonic calibration。
7.4 阈值选择
对 fail 头,还会在验证集上选阈值:
θ\*=argθ∈Θmax Score(y,1[p^≥θ])
其中目标函数可以是:
8. Quantile 不确定性估计算法
系统训练两个分位数回归器:
q^0.1(x),q^0.9(x)
然后把不确定性定义为区间宽度:
u(x)=q^0.9(x)−q^0.1(x)
这本来打算用于规划器中的不确定性惩罚:
c(e)=αt^+βp^b+γp^f+δu
但当前实验里多数正式最优结果都把 δ 压到了 0,说明这条线暂时还没有稳定收益。
9. 预测规划算法 PredictivePlanner
这是当前世界模型真正进入导航闭环的核心位置。
9.1 边代价
给定世界模型预测结果:
fθ(xe)=(t^e,p^b,e,p^f,e,ue)
则边代价定义为:
cpred(e)=αt^e+βp^b,e+γp^f,e+δue
其中:
- α:时间项权重;
- β:阻塞风险惩罚;
- γ:失败风险惩罚;
- δ:不确定性惩罚。
9.2 路径搜索
规划器仍然使用 Dijkstra,只是把传统手工权重换成了模型预测权重:
π\*=argπ:s→gmine∈π∑cpred(e)
这就是为什么当前系统虽然没有做强化学习,却已经是“预测驱动规划”:
- 搜索算法没变;
- 但代价函数已经从手工先验变成了 learned world model。
10. Reactive Recovery:规则恢复器
当边执行失败后,系统使用规则式恢复器:
a=R(state)
动作集合:
Areactive={REPLAN, BACKTRACK, WAIT, RELOCALIZE, ABORT}
当前规则优先级是:
replan_count 过多 → ABORT
- 当前边 blocked →
REPLAN
- 连续失败次数过多 →
BACKTRACK
- 当前边 failed →
REPLAN
- 定位退化 →
RELOCALIZE
其中 backtrack 节点选择逻辑是:
从 path_taken 逆序扫描,找到第一个“不是所有出边都已阻塞”的安全节点。
11. Proactive Recovery:预测驱动恢复
这是 Phase 8 的核心。
11.1 触发条件
在真正执行下一条边 ek 之前,先预测:
(t^k,p^b,k,p^f,k,uk)=fθ(xk)
若满足:
p^b,k≥τborp^f,k≥τf
则进入 proactive decision。
11.2 v1.1 的保守策略
当前最稳的版本 predictive_proactive_v1_1 基本只保留一个主动动作:
REPLAN_NOW
但不是只要高风险就 replan,而是要求替代边满足资格约束:
p^b(ecur)−p^b(ealt)≥Δb
并且
t^(ealt)−t^(ecur)≤Δt
也就是说,替代边必须在风险上明显更好,同时时间上不能过分恶化。
11.3 full 的 rollout scoring
完整 Phase 8 会对候选动作做短视 rollout 打分。
对某个候选动作 a 产生的路径 πa,定义:
J(a)=λextra(a)+h=0∑H−1cpred(eh)+λbottle⋅1bottleneck(eh)⋅p^b(eh)
其中:
- H:rollout horizon;
- λextra:动作额外代价,例如
wait 和 backtrack 的固定惩罚;
- λbottle:瓶颈边惩罚系数。
然后在动作集合中选:
a\*=arga∈AminJ(a)
如果最优动作相对当前动作的收益不足最小间隔:
J(a\*)+m≥J(current)
则不触发 proactive intervention。
11.4 为什么 full 不一定更好
因为 full 把预测误差放大到了控制层:
- 若 p^b 误报偏高,就可能过早回避可走边;
- 若新图 OOD,rollout 分数也会跟着偏;
- 所以 full 比纯 planner 更依赖预测质量和跨场景鲁棒性。
12. 多地图训练与 map-aware 泛化
为了让世界模型从“单图有效”走向“跨图可用”,系统在多地图阶段显式引入:
xmap=[1base,1annex]
以及结构特征:
xstruct=[dsrc,ddst,min(dsrc,ddst),cshared]
相当于让模型学习:
fθ(x,map_id,structure)
而不是默认所有边都来自同一个环境分布。
这一步并没有保证总体成功率一定上升,但它是跨地图泛化必须补上的算法条件。
13. 实验统计与比较方法
项目里的正式比较不是只看平均成功率,而是采用 paired evaluation。
对同一组 episode schedule,比较目标方法与基线:
- target-only wins:目标成功、基线失败;
- baseline-only wins:目标失败、基线成功;
- ties:两者同成败。
再用二项检验判断显著性:
p=Pr(X 至少像观测结果一样极端),X∼Binomial(n,0.5)
这保证结果不是只被 seed 波动误导。
14. 当前主线与算法定位
从当前整个系统看,各算法的定位可以总结为:
14.1 已经证明有价值的主线算法
-
拓扑降维世界模型
- 把高维导航预测问题转成边级预测;
- 这是论文最核心的算法抽象。
-
predictive_no_unc
- 这是世界模型接入规划闭环后的主结果;
- 当前最能代表“世界模型带来可部署导航收益”的版本。
-
两阶段 grounding
- embedding recall + rule rerank;
- 是自然语言目标到拓扑节点的主算法。
14.2 已经打通但尚未成为主结果的算法
-
predictive_proactive_v1_1
-
predictive_proactive_full
-
uncertainty 惩罚
- 量化模型已接入;
- 但 δ 目前大多被搜索压成 0。
15. 一句话总结
如果把整套系统压缩成一句数学化描述,那么当前项目做的事情可以概括为:
语言查询 qgroundingg拓扑图 G候选边轻量世界模型 fθ(t^,p^b,p^f,u)risk-aware planning / recoveryπ\*
而论文里最值得强调的核心贡献,是下面这一步:
高维导航未来预测⟹拓扑边级低维世界模型预测
也就是:
通过拓扑降维,把世界模型从“难以在线使用的高维预测器”,变成了“可以直接接进导航规划器的轻量决策模块”。