NFA如何使用epsilon转换?


12

在下面的图片中,我试图弄清楚NFA到底接受了什么。

在此处输入图片说明

什么是困惑我的是在跳q 0。ϵq0

  • 如果输入,系统是否同时移动到q 0和q 1(接受状态)?0q0 q1

  • 如果输入,系统是否同时移动到q 1和q 2?1q1q2

  • 如果没有输入(空字符串),系统是否仅移至(接受状态)?q1


2
返回定义:NFA接受一个单词(如果对其进行任何计算)。就DFA而言,NFA本身不是“算法”。
— 拉斐尔

Answers:


10

每次您处于过渡状态时,这意味着您会自动进入两种状态,以简化您的操作:ϵ

如果字符串是则自动机都以q 0和q 1结尾ϵq0q1

如果您的字符串为“ 0”,它将再次位于和q 1中q0q1

如果您的字符串是'1',那么它只会出现在,因为如果您从q 0的角度看,则您有一个'1'过渡到q 2的情况,但是还必须考虑情况,即在q 1中(如果您在q 0中也总是在q 1中),则不存在“ 1”转换,因此此替代路径只是“死亡”。q2q0q2q1q0q1

仅通过查看这些情况,就很容易看到您的自动机接受,0 ∗,并且从q 0到q 1,达到q 2的唯一方法是0 ∗ 11 ∗ 1,因此,这会将您的自动机恢复为ϵ,0 ∗,0 ∗ 11 ∗ 1ϵ0∗q0q1q20∗11∗1ϵ0∗0∗11∗1

希望这对您有所帮助,如果您还有其他疑问,请问!


7
“这意味着您自动处于两种状态” –我认为这不是很有帮助的直觉,即它以错误的方式表示不确定性。
— 拉斐尔

为什么代表错误呢?好吧,通过非确定性上的增量定义,您会得到一组状态而不是仅正确的一组状态?这只能意味着您处于两种状态。
— H_DANILO

它提倡非确定性机器“并行尝试所有解决方案”的想法。从算法上来说,这不会发生。非确定性是描述性形式主义,而不是算法技术。
— 拉斐尔

我试图以一种可以理解的方式来表达它,因为他正在努力以理论的方式理解非确定性的原理
— H_DANILO 2015年

@Raphael您认为什么会更有用?
— 安德烈·波特诺伊

6

q0q0q1q1

q00q0q10q01q21q1q11

0∗+0∗11∗101


ϵϵ


-1

我尝试为此NFA构造DFA

∑

Q

σ(Q×(∑∪ϵ))→P(Q)

q0=q0

F⊆Q,F={q0}

M′

字母-相同

Q′=P(Q)

R∈P(Q)

E(R)ϵr∈R

σ′(R,a)=⋃r∈RE(σ(r,a))

q0′=E({q0})

F′=P(Q)÷F

一些对此FSM的计算

1. ϵq0′=E({q0})={q0,q1}q1ϵ

2. 0∗σ′({q0,q1},0)=E(σ(q0,0))∪E(σ(q1,0))={q0,q1}∪{}={q0,q1}0∗

{ϵ,0∗}⊂L(M′)

感谢David Richerby


感谢您感谢我,但我真的不明白如何回答这个问题。您尚未确定机器可以接受的语言,也没有解决三个项目符号问题中的任何一个。
— David Richerby '16

ϵ{q0,q1}00∗{q0,q1}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.