“具体的后续条件转换可先把确定 Rabin 机改写为同图 Muller 条件:允许的集合为所有满足某一对 $S\cap E i=\varnothing$ 且 $S\cap F i\ne\var…”
形式陈述
Muller自动机在有限状态转移图之外,直接给一个允许的状态集合族
不是“Inf与某个接受集相交”,也不是“Inf包含某个接受集”,而是整个无限出现集合恰好属于F。非确定Muller用存在接受运行的语义;下面的最近出现记录转换固定输入为确定完整Muller自动机。
最近出现记录LAR先固定Q的一个基准枚举,再保存Q的一个有序排列π=(q₁,…,qₙ),越靠前表示最近一次出现越晚。读到转移后的新状态q时,找它原来的位置k,把q移到最前,其余状态保持相对次序。记原排列前k个状态的集合为Sₖ。
给这次更新赋予min-even优先级
若需要状态型接受,把输出优先级c一起存入新状态(π′,c)。π′的第一个元素就是原自动机当前状态,因此下一次转移仍能查δ;初始排列以q₀开头,其余顺序任意,初始优先级也任意固定,有限前缀不影响接受。
直觉
只有有限次出现的状态,最终会被反复出现的状态挤到排列后面。若无限出现集合有k个元素,过了一段有限前缀后,它们恰占据前k格,后面的格子不再动。
在这些活跃格中,最久没出现的那个元素也必须再次出现,于是位置k*会被无限次命中。更深的位置只命中有限次,更浅位置的命中又被赋予更大的优先级。因此长期最小优先级正好来自整块Inf集合,检查这块集合是否在F即可。
LAR不是猜测“最后一次坏事已经过去”。它确定地更新最近顺序,让无限次命中的最深位置在运行极限中提供证据。额外记忆正是集合条件转换为奇偶条件所付出的代价。
例子与边界
三状态接受族
令Q={a,b,c},字母也是a、b、c,任何状态读字母x都转到状态x。取
所以
从初始排列abc计算
| 读到的新状态 | 旧排列 | k | Sₖ | 输出c | 新排列 |
|---|---|---|---|---|---|
| b | abc | 2 | 2 | bac | |
| c | bac | 3 | 1 | cba | |
| b | cba | 2 | 2 | bca | |
| c | bca | 2 | 2 | cba |
之后最后两行反复,最小无限优先级是2,接受。第二行曾输出更小的奇数1,但它只出现有限次,不改变最终结论。
对
转换正确性的两个关键步骤
设I=Inf(ρ),k*=|I|。Q有限,所以所有Q∖I元素都有最后一次出现;再等I中的每个元素至少出现一次,排列前k*格便恰好是I,且以后保持这个集合。
位置k必须无限次被命中。若从某刻起再也不命中它,移到前面的都来自更浅位置,第k格的元素就一直停在那里、再未出现,违背它属于I。因此最大无限命中位置恰为k*。
每次足够晚命中k时,Sₖ=I;更深命中只有有限次,更浅命中的两种优先级都大于k*对应的两种优先级。于是最小无限优先级偶,当且仅当I∈F。这完成逐运行等价;确定机器的唯一运行也就保持整个语言。
初始排列与空集合
初始排列中尚未真正见过的状态先后次序没有语义意义,但只影响有限暂态。上述证明等到所有无限出现状态都访问过一次,自动消去这份任意性,因此不需要给每个初始排列另猜一套接受条件。
有限非空Q中的无限运行总有I≠∅。把∅列入或移出F不会影响语言;不过死路仍不是无限运行,不能借“允许空Inf”让一条提前停止的路径接受。
推论与应用
若只显式存(π,c),状态数至多
若F以显式集合列表输入,其本身可含2ⁿ个成员。可以用位向量和索引表加速成员测试,但不能只报告n!排列,而把读取、保存接受族的成本当作零。若F用逻辑公式或其他紧凑表示,成员判断也须按该表示分析。
Büchi接受只问Inf是否碰到F;Muller能对完整Inf集合提出更细的允许/禁止组合。LAR表明这些组合仍可由有限优先级机器实现,但一般需要增加记忆,不能保证在原图上仅换颜色就足够。
单元终点会要求用同一个最终周期字核对原接受族与LAR优先级,检查“有限前缀产生的奇数”和“无限反复产生的奇数”是否被正确区分。
参考资料
- Sebastian Muskalla, Games with Perfect Information,§7、Definitions7.5–7.7及其后Inf证明:最近出现排列与命中位置。讲义用max-even,本页给出等价min-even编号
- Udi Boker, Word-Automata Translation,§1.2、§1.5:Muller条件及接受族表示大小