这个DFA是否正确?

时间:2011-02-22 14:54:56

标签: finite-automata

我应该构建一个接受

的DFA
  

{w | w是一个词,除了'aa'和'aaa'}

这是正确的solution吗? 行状态应该是结束状态。

修改

Sry,不知何故混合了两种不同的练习。校正。

编辑2

这是更正的solution(?)!

1 个答案:

答案 0 :(得分:1)

我将保留下面的答案,因为它在上下文中很有用。

随着您对问题的更新以及您对提议的解决方案的进一步更新,在我看来它将是有效的。做得好!

=========出于历史目的的老帖子===========

重要说明:aa是aaa的子字符串。因此,通过排除aa,您会自动排除aaa和aaaa以及aaaaa。这意味着你只能连续获得1个。

因此,无论何时添加a,都需要进入接受状态。每当你在那之后添加一个a时,你需要进入一个永久循环的非接受状态,无论如何。

以下是我的想法。我不建议只是......把它放下。想想这个。这些问题在培训你的思考方面非常重要!不要破坏自己!

S表示开始状态 角上的+表示接受状态 角上的X表示不接受状态

 B  +-+  A   +-+  A   X-X  A | B
+---|S| ---> |1| ---> |2| ------+
|   +-+      +-+      X-X       |
+___^ ^___B___|       ^________+

"" - ends on start - okay 
"B" - ends on start - okay 
"A" - ends on 1 - okay 
"AA" - ends on 2 - not accepted 
"BAA" - Stats on S, goes to S, goes to 1, goes to 2 - not accepted.

A - 让你走向失败。 B - 重置你。 两个连续但你失败了:(