最小化多语言DFA


10

我对DFA的一般化感兴趣。像往常一样,我们有状态集,有限字母,由在定义的和初始状态;但是我们取一个的子集,而不是通常的终端集。然后,多语言DFA是元组QΣΣQδ:Q×ΣQq0(Ti)i1..nQM

(Q,Σ,δ,q0,(Ti))

并且可以通过 iff来某些。如果需要,将为M识别的语言族。LΣML={sΣ|q0sTi}i1..n(Li(M))i1..n

好的,现在我的问题是:给定一族常规语言,我想找到如上所述的最小多语言DFA,使得为所有,即在所有这样的机器上最小化。我的问题是,是否有已知的有效方法可以执行此操作,也许类似于标准DFA最小化理论?相反,是否有任何证据表明这个问题可能很难解决?(Li)i1..nMLi=Li(M)i1..n|Q|


7
在我看来,标准分区的细化基于算法,仅修改由他们是否要接受/非接受每一个给定的子集的划分初始设置状态开始,而不是单一的一套,应该只是工作立即。为什么不呢?它仅在必须分割状态对时才对其进行分割,因此它仍会生成状态的最粗略细化。TiT
David Eppstein

1
如果您定义等价关系,则@DavidEppstein提供的评论证据很容易 xy iff xTiy 每一个 i,在哪里 xTiy是Myhill-Nerode等价关系。然后,您可以按照与标准最小化算法相同的步骤进行操作。
Shaull

不太明白。是解决此问题的答案,找到具有相同“设置”的DFA联合的最小DFA,但最终状态不同,每个DFA用于1..n?也是承认的定义L={...}似乎没有什么意义,它似乎混淆了字符串和状态集。
vzn

DavidEppstein和Shaull提出的观点令人信服,当我有时间说服自己商仍然产生最小的自动机时,我会花些时间讨论Myhill-Nerode定理。事后看来,这似乎太明显了。
gdmclellan

@vzn:绝对不想将原始自动机的语言结合在一起;和Ti可能会重叠。具有多种语言的多语言DFAAB 应该能够报告,例如, sA,但是 sB。至于用于定义语言识别的符号,该符号是通过扩展δΣ动作 Q 遵循以下所有规则 qQ,σΣ,sΣqσ=δ(q,σ),q(sσ)=(qs)σ
gdmclellan

Answers:


14

简短的回答。给定有限的常规语言族L=(Li)1in,有一个识别此族的独特的最小确定性完整多自动机。

细节。案子n=1对应于标准结构,一般情况在精神上没有太大区别。给定一种语言L 还有一个字 u,让 u1L={vAuvL}。定义等价关系A 通过设置

uvfor each LL, u1L=v1L
自从 Li是规则的,这种全等具有有限的指数。此外,很容易看到每个Li 被饱和 而且每个 aAuv 暗示 uava。让我们用1 空词和 [u]单词的类 u。让AL=(Q,[1],,(Fi)1in) 确定性多自动机,定义如下:
  1. Q={[u]uA}
  2. [u]a=[ua]
  3. Fi={[u]uLi}

通过施工, [1]uFi 当且仅当 uLi 因此 AL 接受家人 L。有待证明AL是最小的。在强代数意义上,它实际上是最小的(这意味着它具有最少的状态数)。让A=(Q,q,,(Fi)1in)A=(Q,q,,(Fi)1in)是两个多自动机。态射f:AA 是来自的射影地图 QQ 这样

  1. f(q)=q
  2. 对于 1inf1(Fi)=Fi
  3. 对所有人 uAqQf(qu)=f(q)u

然后对于任何可访问的确定性多自动机 A 接受 L,从 AAL。为了证明这一点,首先要验证qu1=qu2=q, 然后 u1u2。现在f 由定义 f(q)=[u] 哪里 u 是这样的词吗 qu=q。然后可以证明f 满足三个必需的属性。

最后有点粗略,如果您需要更多详细信息,请告诉我。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.