自动机的过渡状态图

时间:2014-08-13 15:02:38

标签: computation-theory

(a + b)*和(a.b)*的过渡态图是什么? 我对这两个状态图很困惑。我发现它们都是一样的。

2 个答案:

答案 0 :(得分:1)

假设蓝绿色状态是开始和接受状态。 (a + b)*可以按任何顺序读作"零或多个a和b。" (a.b)*可以按顺序读作"零或多个a和b&s。" 请注意,如果序列被破坏,节点3作为死状态存在以拒绝匹配。 enter image description here

答案 1 :(得分:0)

假设+表示联合和。意思是连接:

(a+b)*
q   s   q'
--  --  --
q0  a   q0
q0  b   q0
(q0 is accepting)

(a.b)*
q   s   q'
--  --  --
q0  a   q1
q0  b   q2
q1  a   q2
q1  b   q0
q2  a   q2
q2  b   q2
(q0 is accepting; q2 is a dead state)

请注意,(a + b)*描述了a和b的所有字符串,因此我们只需要一个状态;没有字符串被拒绝。另一方面,有一些不匹配的字符串和(b.s)*;我们最终得到三个州,因为:

  1. 如果我们看到" ab"的整数,我们就看不到任何或其他整数的" ab" (对应于州q0)

  2. 如果我们看到整数" ab"然后是" a",我们可以看到" b"后跟一个整数" ab" (对应于州q1)

  3. 如果除了我们在第1点和第2点讨论的内容之外我们已经看到了什么,那么我们无法添加到字符串中以获得整数#34; ab" ;我们搞砸了,带有这个前缀的任何字符串都不在语言中(对应于"死"状态q2)。