【问题标题】:Minimum number of states in a DFA having '1' as the 5th symbol from rightDFA 中从右数第 5 个符号为“1”的最小状态数
【发布时间】:2011-12-04 05:26:48
【问题描述】:

DFA 中最少需要多少个状态才能接受从右数第 5 个符号为“1”的字符串?字符串是在字母 {0,1} 上定义的。

【问题讨论】:

    标签: finite-automata dfa computation-theory


    【解决方案1】:

    Myhill-Nerode theorem 是解决此类问题的有用工具。

    这个想法是建立一组字符串的等价类,使用“区分扩展”的想法。考虑两个字符串 x 和 y。如果存在字符串 z 使得 xz 和 yz 中的一个恰好在语言中,那么 z 是一个有区别的扩展, x 和 y 必须属于不同的等价类。每个等价类映射到最小 DFA 中的不同状态。

    对于您所描述的语言,让 x 和 y 是任意一对不同的 5 字符字符串 超过 {0,1}。如果它们在位置 n 处不同(从右数,从 1 开始),那么任何长度为 5-n 的字符串 z 都将是一个区别扩展:如果 x 在位置 n 处为 0, 并且 y 在位置 n 处为 1,则 xz 被拒绝并 yz 被接受。这给出了 25 = 32 等价类。

    如果s是长度为k(5-k)s(即在左侧添加 0-padding 直到 5 个字符长)。

    如果 s 是长度为 k > 5 个字符的字符串,则其等价类由其最后 5 个字符确定。

    因此,所有超过 {0,1} 的字符串都属于上述 32 个等价类之一,并且根据 Myhill-Nerode 定理,该语言的最小 DFA 有 32 个状态。

    【讨论】:

      猜你喜欢
      • 2016-02-01
      • 2020-05-24
      • 2021-06-27
      • 1970-01-01
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      相关资源
      最近更新 更多