[英]Minimum pumping length for a regular language
如何计算常规语言的最小抽水长度。 例如,如果我有0001 *那么最小泵送长度应该是4,那就是000不能泵送。 为什么会这样?
它将小于或等于语言的最小DFA中的状态数减去1。 因此,将正则表达式转换为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可能缺少该长度的路径。 在这种情况下,您可以通过使用深度优先搜索自动机图形以及查看可以跟踪的路径长度等内容,找到两次不访问状态的最长路径(从起始状态)。 这将是你真正的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.