“需要确定性自动机时,通常使用奇偶或Rabin等更一般的接受条件;Safra确定化解释了Büchi运行历史如何保存在有限树里,一般LTL到确定自动机的最坏规模可达双指数。反过来,Büchi能表…”
形式陈述
Safra构造把n状态的非确定Büchi自动机
本页固定名字池{1,…,2n+1}。每棵稳定树满足:标签非空;孩子标签的并严格包含于父标签;同胞标签互不相交;孩子按创建先后从左到右排列。名字在树内唯一,存在期间不变。初态只有名字1的根,标签{q₀},全部白色。
读一个字母a时,严格按下列顺序更新:
- 清掉旧绿色。对每个原有节点v,把标签L(v)改成
。 - 对每个原有节点,若新标签与F相交,添加一个最年轻孩子,标签为L(v)∩F。新孩子不在本轮递归产生孩子。按固定的原树先序遍历,依次选“本轮开始时未使用、且本轮尚未分配”的最小名字。
- 从根向下处理同胞重复:同一状态若出现在多个兄弟标签,只留在最老兄弟;从较年轻兄弟及其全部后代删除它。
- 删除标签为空的节点及其子树。若根为空,转入固定的空树拒绝陷阱。
- 自底向上检查:若某节点的标签等于其全部孩子标签的并,则把该节点染绿,并删除它的全部后代。最终只保留仍存在节点的绿色。
稳定树至多n个节点,所以步骤2至多增加n个临时节点;2n+1个名字足够。禁止在同一步内复用旧名字,确保某个节点被删后,在本次结果中这个名字确实缺席,而不是立即冒充新节点。
对每个名字i,令Eᵢ为“不含名字i”的树状态,Gᵢ为“名字i存在且为绿”的树状态。输出Rabin条件为
也就是存在一个名字,最终一直存在,并且无限次变绿。空树缺少全部名字且永不变绿,因此拒绝。
直觉
步骤1在每个节点标签上复用子集构造的后继取并更新;在有限字上,这个集合摘要已经足够,因为读完就能判断终点。Büchi还要证明同一条无限运行反复经过F;每一步“有某个分支刚到F”可能来自互不相接的一批短命分支。
Safra父标签维护候选运行,孩子把已取得一段接受进展的候选分组保存。若孩子们已经覆盖父标签中的全部候选,父节点变绿并清空下层记录,重新开始下一轮进展。绿色是一次完成记录,不是永久接受标志。
同胞去重优先保留较老分组,使候选不能在越来越年轻的组之间无穷逃避。树的深度和节点数有限,再配合稳定名字,才能从反复的局部进展抽出一条真正的无限接受运行。
例子与边界
相同子集序列,却有不同接受结果
取Q={p,f},初态p,F={f},转移为
| 状态 | a后继 | b后继 |
|---|---|---|
| p | ||
| f | 空 |
在
逐字计算命名与绿色
本例n=2,名字池1到5。用“1:{p,f} / 2:{f}”表示根及其唯一孩子,星号表示本次绿色。
| 已读输入 | 稳定树 | 本轮发生的关键变化 |
|---|---|---|
| 空 | 1: | 无孩子 |
| a | 1:{p,f} / 2: | 根产生第一个接受孩子 |
| aa | 1:{p,f} / 2*: | 根新孩子3被老孩子2去重;2的新孩子4覆盖2,2变绿并删4 |
| aaa | 1:{p,f} / 2*: | 名字2保留,再完成一轮进展 |
| b(独立重置) | 1:{p,f} / 2: | 与首个a得到同样稳定树 |
| bb | 1:{p,f} / 3: | 旧2后继为空,被删;新3不能同轮借用2的名字 |
| bbb | 1:{p,f} / 2: | 旧3被删,名字2隔了一步后才复用 |
在
名字池不是给运行分支永久编号。有限池会复用名字,但Rabin的Fin(Eᵢ)要求在某个后缀以后这个名字再也不缺席,因而排除“无限多个不同短命节点恰好都叫i”的伪证据。
两向正确性靠哪些证据
先设某名字v最终一直存在,并在无限多个时刻变绿。两次相邻绿色之间,v的孩子从接触F的候选开始积累,最终覆盖v的整个当前标签。因此后一绿色时刻标签中的每个候选,都可从前一绿色标签沿输入段走来,途中经过F。
不能随意为每段选一条路径后就假定它们首尾相接。应把这些有限候选路径按共同端点连接成分层、有限分支的选择树。每个足够长层次都有可接续见证,每个有限输入区间只产生有限多个候选片段,各深度的可接续选择形成有限分支的前缀树。它有任意深的节点,由该接口中的 König 引理存在无限链;这条链在每个绿色区间都经过F,所以给原机一条Büchi接受运行。
反过来,跟踪一条原机接受运行q₀q₁…。在每棵Safra树中,选择标签仍包含当前q的最深节点。同胞去重只会把它转交给更老的同胞,新的同胞永远添加在右侧。若它无限返回某个持续存在的节点,每次经过F后又从后代回到该节点,便要求该节点不断进行绿色重置。
若当前层次没有这样的无限返回,经过有限次向老同胞迁移后,跟踪点最终落入更深的一条持续分组。这个分析可逐层重复,但稳定树深度至多n,不能无限下沉。因此总有一个最终不再消失的节点无限变绿。Rabin条件恰好把这两个要求同时记录。
推论与应用
为什么稳定树至多n个节点?父标签严格大于孩子标签之并,所以每个节点可选一个只属于自己、没有落入任何孩子的状态。不同同胞分支互不相交,祖先选的状态也不在后代中,这给树节点到Q的单射。
树形、O(n)个名字的分配、同胞次序与标签可以用
给定一棵树及一个字母,用n位集合直接执行后继、同胞去重与重置,可取O(n³)的保守单步时间、O(n²)位标签存储界。完整确定自动机的显式构造还要乘上可达树状态数及字母表大小,不能把“单步是多项式”当成整体确定化多项式。
确定Rabin自动机随后可转换到奇偶接受,为控制器综合提供确定监控器。本页不加入Piterman紧凑重命名的奇偶优化,也不把本算法与同名的Safra分布式终止检测混为一项协议。
参考资料
- Shmuel Safra, “On the Complexity of ω-Automata,” FOCS, 1988, 319–327,原始构造的书目来源
- K. Narayan Kumar, Lecture12: Optimality of Safra’s Determinization and the Kupferman–Vardi Complementation,pp1–3:有序树、旧分组优先、绿色重置与2n+1名字池
- Nir Piterman, “From Nondeterministic Büchi and Streett Automata to Deterministic Parity Automata”, LMCS3(3:5), 2007,§3.1重述Safra的标签/去重/Rabin机制;其紧凑重命名变体不混入本页