“Zielonka递归将上述两种情形落实成可执行的集合运算与策略合并,算法页负责第二次递归的账本和成本,不反过来为本定理提供前提。”
形式陈述
Zielonka算法求有限总奇偶博弈的双方获胜区与位置策略。本页继续用min-even,不在执行中改成最大优先级。记Attrₚᴳ(U)为当前图G中玩家p的吸引域,同时保存使正吸引秩下降的己方选边。
Solve(G):
若V为空:返回两个空获胜区与空策略
m = 当前顶点的最小优先级
p = m mod 2; o = 1-p
U = {v : Ω(v)=m}
A = Attr_p^G(U)
(X_p,X_o,σ'_p,σ'_o) = Solve(G\A)
if X_o为空:
W_p = V; W_o = 空
σ_p = σ'_p在G\A的选择
+ A\U上的p吸引策略
+ p拥有的U顶点上的任意合法后继
return
B = Attr_o^G(X_o) // 必须回到当前原图G
(Y_p,Y_o,σ''_p,σ''_o) = Solve(G\B)
W_p = Y_p; W_o = B ∪ Y_o
σ_p = σ''_p
σ_o = σ''_o在Y_o的选择
+ B\X_o上的o吸引策略
+ σ'_o在X_o的选择
return
每次删除吸引域后,都取剩余顶点的诱导边。吸引域补集保证每个剩余顶点至少有一个剩余后继,不能在任意删点后把空后继的全称条件当作游戏能力。
正确性由位置确定性页的两种递归分解建立。这里将分解变成执行流程,并说明实现中不能丢掉哪些图、集合和策略。
直觉
第一轮试图利用全图最小色m:如果离开它的吸引域以后,对手已经无处可赢,那么己方可以在关键色与剩余获胜区之间安全组合。
若第一次递归真的找到对手获胜区,就不能继续把整个A当作己方。对手的种子Xₒ回到原图后可能吸进A中的顶点,甚至改变其他顶点可用的安全出口。因此必须在原图重新求B,再求G∖B,而不是只把第一次结果机械拼回去。
例子与边界
七顶点触发两次递归
在六顶点例基础上加一个Odd顶点t,优先级3,后继s、a。全部数据如下:
| 顶点 | 行动者 | 优先级 | 后继 |
|---|---|---|---|
| s | Even | 2 | a,c |
| a | Odd | 1 | a,b |
| b | Even | 0 | a |
| c | Odd | 2 | c,d |
| d | Even | 1 | b,e |
| e | Odd | 2 | e |
| t | Odd | 3 | s,a |
顶层最小色为0,p=Even,U={b},A={b,d}。第一次递归图H={s,a,c,e,t}的结果为
a可留在1自环;t可主动进a。Odd种子非空,因此回到原图计算
第二次递归图C={s,c,d,e}中,最小色1在d,当前p变为Odd。Odd吸引域为{d,c,s}:c可选d,s在子图中只剩c。去掉它剩{e},由Even在优先级2自环获胜;这又触发第二分支。
回到C取Even吸引域Attr₀ᶜ({e})={d,e},因为d可选e。余下{s,c}只含优先级2,Even获胜。最终C全部由Even赢,顶层返回
递归账本不丢图版本
| 当前图 | 最小色/玩家 | 第一个吸引域A | 首次递归中的对手获胜区 | 原当前图中的B |
|---|---|---|---|---|
| 0 / Even | ||||
| 1 / Odd | ||||
| 1 / Odd |
第二行的B不含t:求Even吸引域时,t归Odd,虽然有一条边到种子s,另一条边仍可去a,所以不能强迫它进入Even种子。表中的集合必须按当前诱导图核算,不能只凭“有一条边到种子”判断。
策略怎样合并
最终Even选择s→c、d→e;Odd选择a→a、t→a,b由Even所有但只有a后继。这给出从整片获胜区统一有效的策略。
合并B上的策略时,Xₒ本身必须保留第一次递归得到的获胜策略。吸引域工具只负责从B∖Xₒ有限步到目标,它对目标中的任意选边没有长期保证。若在Xₒ上也随便覆盖成“某个合法后继”,就可能把已经证明的奇偶策略毁掉。
第一次递归的己方策略也不总能直接用作最终己方策略;第二次递归可能删掉它原本依赖的顶点。代码保留σ′ₒ用于种子,重新计算σ″用于剩余图,正是为了区分这两项用途。
推论与应用
每次非空调用至少删除一个顶点后递归,因此递归深度至多n。一次调用至多两个子调用,最粗的递归树节点数小于2ⁿ⁺¹;用线性队列法计算吸引域及扫描边,每个调用花O(n+m),得到
若只共享原邻接表,每层保存顶点集合、秩与策略数组,深度优先求解可用
输入若采用max-even,可选偶数D≥maxΩ,先改为Ω′=D−Ω,再执行本页min-even代码。反序但保持奇偶后,两种约定获胜区相同。仅把min改成max而不同时核对证明与优先级方向,会改变输出。
单元终点将在确定规格自动机的积图上重用此算法,交付位置选择以及失败初态的环境反策略,而不把一次发现接受环当成综合完成。
参考资料
- Sebastian Muskalla, Games with Perfect Information,§6、Algorithm6.15及计算复杂度段;原max-even递归在本页统一写为min-even
- Wiesław Zielonka, “Infinite Games on Finitely Coloured Graphs with Applications to Automata on Infinite Trees,” Theoretical Computer Science200, 1998, 135–183,原始递归方法的书目来源