"DFA for a language" 的定义

Definition of the "DFA for a language"

我这学期刚开始学习计算理论,对"DFA for a language"这句话有点困惑。如果要求为一些二进制字符串集合 L 构造一个 DFA,是否意味着找到 L(M)=L 或只是 $L(M)\supset L$ 的 DFA M?

准确地写下你的问题。在这里,一种语言的 DFA 意味着您需要为特定语言构建机器,而不是它的子集或超集。构造 L(M)= L.

的 DFA 机器

大多数 compiler/theory 课程围绕确定性有限自动机和形式语言的教学定义往往采用不同的风格,但我会尽量使这种描述尽可能不可知。

短语 "DFA for a language" 大致意思是:一个 DFA 接受语言中的每个 word 并拒绝语言中的每个 word。 我被教导 DFA 的方式是具有 final/accepting 状态和常规状态,这消除了隐式错误状态的必要性。 这意味着如果 DFA 在输入结束时所处的状态为 accepting,则 DFA 接受该词,如果状态不是 accepting.

,则拒绝该词

例如:

我们把L定义为包含偶数个1的语言。这些将是二进制字符串,因此符号只是 0 和 1。 001101111111 等是该语言中的单词示例。请注意,空字符串使用的是这种语言。

我们的 DFA 中可以有两个状态。起始状态,我们称之为 even 1s,也是一个接受状态,因为 0 个是偶数。另一个状态是odd 1s,这个不接受

至于转换,当even 1s收到1时,它转换到odd 1s。当 odd 1s 收到 1 时,它会转换为 even 1s。 现在,0 的数量无关紧要,因此在任一状态下,它都会转换为自身。

为双箭头道歉,这个 website 很棒,但我不知道如何区分 even 1sodd 1s

之间的过渡

确定性有限自动机 (DFA) 在 DFA 中,对于每个输入符号,可以确定机器将移动到的状态。因此,它被称为确定性自动机。由于它具有有限数量的状态,因此该机器被称为确定性有限机器或确定性有限自动机。

DFA 的正式定义 DFA 可以用 5 元组 (Q, ∑, δ, q0, F) 表示,其中 −

-> Q 是状态的有限集。

-> ∑ 是一组有限的符号,称为字母表。

-> δ 是转移函数 其中 δ: Q × ∑ → Q

-> q0 是处理任何输入的初始状态 (q0 ∈ Q)。

-> F是Q(F⊆Q)的最终state/states的集合。