📜  DFA的示例

📅  最后修改于: 2020-12-17 06:49:14             🧑  作者: Mango

DFA范例

范例1:

设计一个∑ = {0,1}的FA接受那些以1开头和0结束的字符串。

解:

FA将具有起始状态q0,只有输入1的边沿将从该状态进入下一个状态。

在状态q1中,如果我们读到1,我们将处于状态q1,但是如果在状态q1中我们读到0,我们将到达状态q2,这是最终状态。在状态q2中,如果我们读取0或1,则将分别进入q2状态或q1状态。请注意,如果输入以0结尾,它将处于最终状态。

范例2:

设计一个∑ = {0,1}的FA接受唯一的输入101。

解:

在给定的解决方案中,我们可以看到只有输入101将被接受。因此,对于输入101,没有显示其他输入的其他路径。

范例3:

∑ = {0,1}的设计FA接受偶数0和1。

解:

该FA将考虑输入0和输入1的四个不同阶段。这些阶段可能是:

q0是开始状态,也是最终状态。请注意,保持0和1的对称性。我们可以将含义与每个州相关联:

q0:0的偶数和1的偶数的状态。
p="" q1:奇数0和偶数1的状态。
="" q2:0的奇数和1的奇数的状态。
="" q3:偶数0和奇数1的状态。<="">

范例4:

∑ = {0,1}的设计FA接受三个连续0的所有字符串的集合。

解:

将为该特定语言生成的字符串为000、0001、1000、10001,…。其中0总是以3的形式出现。过渡图如下:


注意,三重零序列保持最终状态。

范例5:

设计DFA L(M)= {w | wε{0,1} *},并且W是不包含连续1的字符串。

解:

当三个连续的1出现时,DFA将为:

这里两个连续的1或单个1是可以接受的,因此

阶段q0,q1,q2是最终状态。 DFA会生成不包含连续1(例如10、110、101等)的字符串。

范例6:

设计一个∑ = {0,1}的FA接受偶数为0的字符串,后跟单个1。

解:

DFA可以通过过渡图显示为:


>