【问题标题】:Minimum pumping length for a regular language常规语言的最小抽吸长度
【发布时间】:2015-12-01 23:57:01
【问题描述】:

如何计算常规语言的最小抽水长度。例如,如果我有 0001*,那么最小泵送长度应为 4,即 000 无法泵送。为什么会这样?

【问题讨论】:

    标签: regular-language pumping-lemma


    【解决方案1】:

    它将小于或等于该语言的最小 DFA 中的状态数减一。因此,将正则表达式转换为 DFA,将其最小化,并对状态进行计数。以您为例:

    0001*
    
    SOURCE    SYMBOL    DESTINATION
    q1        0         q2
    q1        1         q5
    q2        0         q3
    q2        1         q5
    q3        0         q4
    q3        1         q5
    q4        0         q5
    q4        1         q4
    q5        0         q5
    q5        1         q5
    

    为什么等于这个?因为这是您可以在 DFA 中进行的最大转换次数,而无需访问某个州两次。一旦你两次访问一个州,你就循环了。

    当然,一种语言的最小 DFA 可能缺少该长度的路径。在这种情况下,您可以通过使用自动机图的深度优先搜索之类的方法找到最长的路径(从起始状态开始),并查看您可以追踪多长的路径。这才是你真正的答案。

    【讨论】:

      猜你喜欢
      • 2016-01-06
      • 2020-05-05
      • 2012-11-04
      • 2013-01-20
      • 2013-09-13
      • 2016-08-03
      • 1970-01-01
      • 2020-10-16
      • 2020-06-13
      相关资源
      最近更新 更多