“de Pina算法用支撑向量逐轮提出奇偶约束,再求最轻满足约束的圈,避免保存整套Horton候选。两者都求同一最优值,但Horton的输出顺序按圈权非减,de Pina没有这个顺序要求。单元…”
形式陈述
用奇偶条件提出下一轮问题
输入是有限简单无向图,边有互异整数ID和非负权;允许空图、孤点及多个连通分量。圈采用简单圈定义。圈基由
对两个边向量定义模2内积
把
固定一个生成森林
- 求原权最小、且
的简单圈 - 输出
- 对每个
,更新
内积为0就不改,内积为1就异或当前
最轻奇圈的可执行oracle
对任意合法支撑
新边继承原边权和身份。未标记边留在同层,标记边翻层;原边产生两条无向边。对每个v求
公共oracle允许NONE,主算法的支撑不变式将保证每轮不会走到这个出口。“S非零”本身不够:若S只是一座桥,任何闭走都必须把这座桥穿越偶数次,就不存在奇圈。
直觉
已选圈张成一个子空间。若S与这个子空间正交,那么子空间内所有向量都通过偶数次S;找到一次奇数的圈,就明确发现了一个不在旧空间中的新方向。
仅有新方向还不能保证成本最小。每轮必须求满足本轮这条奇偶条件的最轻圈。证明会把当前输出接进某个最优基:最优基中必有一条参与表达当前圈、又在S上为奇的圈,它不会比当前输出更轻,可以交换掉。支撑更新让下一轮再次与全部已选方向正交。
双层图给奇偶条件一份很小的记忆。状态的第二位只记“到目前为止经过标记边的次数模2”,不保存整条路径。因此回到同一原顶点却换了层,正好见证一个奇闭走。
例子与边界
同一五点图,先选4再选3
使用Horton页的五点八边图。森林为
| 轮次 | 本轮S | 最轻奇圈的原边ID | 原权 | 对未来支撑的更新 |
|---|---|---|---|---|
| 1 | 10,20,30,40 | 4 | 无 | |
| 2 | 20,60,70 | 3 | {70}异或{60}变为 | |
| 3 | 10,50,60 | 4 | 无 | |
| 4 | 30,70,80 | 4 | 无 |
第二圈虽然只重3,但第一轮它不经过40,因此不满足第一轮约束。这不是“贪心排序出错”:算法根本没有要求全局权序。四圈总权仍为15。
第二轮从状态
只有60被标记,最后一步翻层;原图投影是
为了核查三角形结构,把各轮被使用时的支撑保存下来,得到
投影闭走为何还要提取
取三角形
从原顶点3出发,双层路径可投影为
经过边90、31、7、19、90,总权7。它确实是奇闭走,却重复原顶点2和边90,不能直接输出为简单圈。截出
一般提取使用顶点栈、边栈及顶点在栈中的位置。读到一个已在栈中的顶点,就得到内部无重复顶点的闭段;若该段奇,返回它;若为偶,删去这段并继续。删偶段不改整个闭走的奇偶,过程最后必遇到奇段。简单图中一条边的立即往返长度为2、标记出现两次,必为偶,不会误当成圈。每条栈边至多加入、删除一次,提取对输入走长是线性的,字典操作按期望常数时间计。
非负边权保证返回的奇段不比整个闭走贵。主oracle对所有原顶点求路;只从3求路再把距离7当作最轻奇圈权,会错过权3。完成提取也不是对最短性的替代:必须先证明全顶点最短路径比较没有漏掉最优奇圈。
非零支撑也可能无解
若在上述图中改标记S={90},双层图中的
更一般地,一个割的边集与每个偶度边集的模2内积都是0:对割一侧的所有顶点度数求和,内部边计算两次,剩下的跨割边数只能为偶。主算法只从非树边的单位向量出发,并保持这些支撑独立;这会排除这种“看上去非零却对所有圈都为零”的支撑。
零权圈必须保留,不能把“最轻”为零当作失败。图不连通时,各分量的圈共享同一个全局边坐标;桥、孤点和树分量不增加r。负边以及自环/平行边不属于本页实现的输入合同。
推论与应用
支撑为何一直存在
令U为只在非树边坐标上可能非零的空间,维数r。生成森林基本圈在非树边上的坐标恰是标准基,因此任意非零
第i轮开始时,
它们仍独立:若更新后的向量有一条零线性组合,代入更新式,便得到旧
同一条件也证明已选圈独立:
最优基怎样逐轮交换
归纳假设存在一个最优圈基
两侧与
这里必须选展开系数为1且内积为1的D。随意从最优基中找一条与
双层oracle为何恰好求最轻奇圈
任意奇支撑简单圈从它的任一顶点v开始,都提升为
反向取一个有限的最小距离路径,投影是奇闭走。前述栈过程抽出一个不更贵的奇简单圈。因此最优奇圈权也不大于这个最小距离,两边相等。若所有根都不可达,第一方向说明不存在奇圈。这个证明完整包含了闭走提取,不能以“跨层了”就省略简单性与权界。[2,§5.4,Lemma5.7]
参考执行器以二元权
实际成本和能核验的内容
完整核验器与Horton共享边表、精确有理权、原ID恢复和公共输入检查。记一次原图或双层图Dijkstra的大数操作次数为
前面的nm来自当前参考森林的分量标签扫描,r=0时仍要支付这项入口工作。每次最短路恢复至多2n−1条边,遍历所有根的恢复和奇段提取已由nD项覆盖。没有保存Horton候选,不表示没有代价:它用更多最短路调用换掉了候选存储。
大数操作次数不是位时间。非负B位有理权在双层简单路径上最多相加2n−1次,配合m位扰动,可继续取
核心状态为r个m位支撑、r个圈向量和单次最短路工作区。参考返回值还保留每轮所有根的目标距离、获选路径及实际支撑更新前后值,至多
Horton算法先保证候选完备,再按权消元;本页逐次改变支撑,选出的权序可下降。单元终点要求交付两份不同轨迹、相同总权及反例处理,不能用“输出都是四条圈”代替对照。
参考资料
- [1] José Coelho de Pina,Applications of Shortest Path Methods,University of Amsterdam博士论文,1995,§7.2,印刷pp.93–96(PDF98–101页):Steps1–2、Theorem7.1、双层最短路与Theorem7.2。所读原件明确使用非负边权;本页保留简单图范围并补全投影提取。
- [2] Telikepalli Kavitha等,Cycle Bases in Graphs: Characterization, Algorithms, Complexity, and Applications,Computer Science Review3(4),2009,所链作者稿§§5.2–5.4,印刷pp.42–47:Theorem5.3、Lemmas5.4–5.7及基础支撑更新。本文未实现其中批量矩阵更新或候选缩减的改进界。