【问题标题】:Is it possible to determine the number of states in a minimal DFA without explicitly constructing it?是否可以在不显式构造的情况下确定最小 DFA 中的状态数?
【发布时间】:2015-11-19 16:18:45
【问题描述】:

是否有任何简短的答案或公式可以根据任何语言确定 DFA 中的状态数?更准确地说是否可以在不显式构造的情况下确定最小 DFA 中的状态数?

【问题讨论】:

    标签: finite-automata dfa


    【解决方案1】:

    好吧,我不知道“短”,但是可以使用一种启发式方法。这基本上是对Myhill-Nerode Theorem结果的重述。

    给定一个字母表和一种语言,它是该字母表上所有字符串的子集,假设两个字符串 xy 等价于任何其他字符串 z 连接 xzyz 要么都在语言中,要么都不在语言中。 (注意 z 可以是空字符串)

    例如,如果字母表只有01,语言是“所有以11结尾的字符串”,那么字符串“0010”和“1110”是等价的, 因为如果 z11 结尾,那么两个连接都在语言中,如果 z 不以 11 结尾,则连接都不在语言中。请注意,字符串“0001”不等同于其他两个,因为如果 z 是“1”,则连接“0001”+“1”在语言,但连接“0010”+“1”不在该语言中。

    那么,该语言的最小 DFA 中的状态数就是此“等价”定义下的等价类数。

    按照之前的示例,等价类是“不以1 结尾的字符串”(因此,以0 结尾的字符串或空字符串)、“以1 结尾的字符串但不要以11 结尾,以及“以11 结尾的字符串”。因此,该语言的最小 DFA 包含三个状态。

    我所知道的唯一应用是证明“可被 n 整除的固定基数 b 中的数字”的常规语言至少需要 n 个状态。

    【讨论】:

      猜你喜欢
      • 2021-05-23
      • 2020-05-24
      • 2017-04-03
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 2020-02-14
      • 2019-07-27
      • 2022-11-20
      相关资源
      最近更新 更多