给出两种有限状态语言L1和L2,然后确定它们的交点不是有限的,这是一个可确定的问题。
怎么可能?谢谢。
答案 0 :(得分:1)
让M1和M2为最小确定性有限自动机,其接受的语言分别为L1和L2。
首先,使用笛卡尔乘积机器结构-一种生成所需机器的算法,构造确定性有限自动机M3,其接受的语言为L1和L2的交集。
接下来,构造一个确定性有限自动机M4,该自动机接受与M3相同的语言,但是最小。也就是说,最小化M3并调用结果M4。有一种算法可以产生此结果。
接下来,构造一个确定性有限自动机M5,该自动机仅接受长度严格大于k的单词,其中k是M4中的状态数。这样的机器对于任何字母都有k + 1个状态。它的构造并不复杂。
接下来,构造一个确定性有限自动机M6,其接受的语言是M4和M5接受的语言的交集。在这里再次使用笛卡尔积算机结构。
接下来,通过最小化M6来构造确定性有限自动机M7。
在这一点上,M6是确定性有限自动机,具有一个状态,该状态根本不接受任何字符串。在前一种情况下,L1和L2的交点是有限的;在后一种情况下,该交集是无限的。为什么?
另一种显示相同内容的类似方式是,您可以构造交点的DFA,然后从| Q |检查所有长度的字符串。到| 2Q |。 DFA不会为任何有限语言提供的任何长度的字符串,但是每种无限语言都将至少具有一个这样的字符串。这是因为任何接受无限语言的DFA都必须循环,并且该循环的长度必须不大于状态数。