“Safra构造把n状态的非确定Büchi自动机 $A=(Q,\Sigma,\delta,q 0,F)$ 转成等价的确定Rabin自动机。新状态不是单个可达子集,而是一棵带节点名字、子集标签与…”
形式陈述
Rabin与Streett是在有限控制图上判断无限运行的两类接受条件。运行仍是有限状态图上的无限序列ρ。对S⊆Q,记Inf(S)表示ρ无限次访问S,Fin(S)表示仅有限次访问S,两者恰好互否定。
给定有限集合对族
Rabin要求至少一对满足“坏集最终离开、好集反复到达”。Streett要求每一对都满足“前件若反复出现,后件也反复出现”。k=0时空析取为假,空合取为真;无论哪种条件,非确定自动机仍须存在无限运行。
文献有时交换good/bad名称或对的次序。比较公式时应看Fin/Inf真正放在哪一坐标,而不是只对照字母E、F。
直觉
Rabin可以给运行多条可选的长期接受理由,选中一对兑现即可。Streett则是一张全部都要履行的条件清单;但若某项前件只出现有限次,该项以后便没有无限要求。
强公平/compassion常有Streett形式:某动作若无限次使能,就须无限次执行。这里新增的是自动机接受对及其对偶,而不是重新定义强公平。还要注意,一项Streett公平义务不逐个匹配每次请求的响应;有限次发生且最后未回答的请求,可能不违反这份无限频率条件。
例子与边界
同一组集合对不是同一语义
取Q含r₁、g₁、r₂、g₂,使用两对
| 周期状态 | Rabin | Streett | 原因 |
|---|---|---|---|
| g₁,r₂ | 接受 | 拒绝 | 第一对给Fin(r₁)且Inf(g₁);第二项Streett反复r₂却无g₂ |
| r₁,g₁,r₂,g₂ | 拒绝 | 接受 | 两个E都无限,Rabin无可选坏集;两项Streett均有回应 |
| g₁,g₂ | 接受 | 接受 | Rabin任选一对;Streett两个前件都不成立 |
因此“Rabin存在一对”并不是把Streett的“每一对”机械替成“某一对”。括号内的逻辑结构也不同:一个是Fin∧Inf,一个是Inf⇒Inf。
逐式求补,为什么要交换坐标
使用命题逻辑的德摩根律,
同理
例如单对E={r}、F={g},运行
条件对偶与自动机语言对偶
确定完整自动机每个字有唯一运行,因此上述对偶可直接给出语言补。非确定自动机则不同:设一个字可以选择进入只含g的环,也可以进入只含r的环。第一条运行满足R(E,F),第二条满足它的运行补S(F,E);两台非确定机器仍都接受这个字。
语言补要求没有任何原接受运行,涉及存在量词变成全称。确定化或交替对偶能够处理这一层,而单纯变换接受对不能。
无限频率不等于逐请求响应
若状态r只出现一次,此后永远在不含g的中性状态t,Streett(r,g)仍成立,因为Inf(r)为假;响应规格G(r→Fg)却失败。把响应要求编译成Streett前,通常需要增加一个pending状态,记住尚未兑现的请求,让永久欠账变成持续的接受义务。
推论与应用
Büchi要求Inf(F),可写成单对Rabin(∅,F),也可写成Streett(Q,F)。co-Büchi要求Fin(B),则可用Rabin(B,Q)或Streett(B,∅)表达。这里利用每条无限运行在有限Q中必无限访问Q。
min-even奇偶条件也能写成Rabin:对每个偶数e,取
Safra确定化中,一对分别记录“某名字的树节点缺席”与“该节点完成一轮接受进展”。Rabin的Fin/Inf组合因此能表达同一份持续存在的进展证据,而不只是“某些时刻总能找到一个看起来不错的分支”。
参考资料
- Udi Boker, Word-Automata Translation,§1.2接受条件、§1.4表达能力、§3布尔运算;本页的坐标命名和取补公式均显式列出
- Udi Boker, “Rabin vs. Streett Automata”, FSTTCS, 2017,接受条件对偶及不同表示的大小区别