我刚开始学习本学期的计算理论,并且对于一种语言" DFA而言有点困惑。如果要求为某些二进制字符串L的集合构造DFA,是否意味着找到L(M)= L或只是$ L(M)\ supset L $的DFA?
答案 0 :(得分:0)
以精确的方式撰写您的问题。这里语言的DFA意味着你需要为特定语言构建机器而不是它的子集或超集。构建DFA maachine,其中L(M)= L.
答案 1 :(得分:0)
大多数编译/理论课程往往围绕确定性有限自动机和形式语言的教学定义有不同的风格,但我会尽量使这种描述成为不可知的。
短语“语言的DFA”松散地表示:DFA接受语言中的每个word
并拒绝不在语言中的每个word
。
我被教授DFA的方式是拥有最终/接受状态和常规状态,这消除了隐式错误状态的必要性。
这意味着,如果DFA在输入结尾处的状态为accepting
,则DFA会接受该字词;如果状态不是accepting
,则DFA会拒绝该字词。
实施例
让我们将L定义为包含偶数个1的语言。这些将是二进制字符串,因此符号只是0和1。
00
,110
, ,111
1111
等是此语言中的单词示例。请注意,空字符串使用此语言。
我们的DFA中可以有两种状态。起始状态,我们称之为even 1s
,也是一个接受状态,因为0是偶数。另一个状态是odd 1s
,这是不接受的。
对于转换,当even 1s
收到1时,转换为odd 1s
。当odd 1s
收到1时,它会转换为even 1s
。
现在,0的数量并不重要,因此在任一状态下,它都会转换为自身。
双箭头的道歉,这个website很棒,但我无法弄清楚如何分隔even 1s
和odd 1s
之间的过渡