确定性有限自动机模式

时间:2013-04-30 02:22:59

标签: algorithm computer-science finite-automata dfa

我正在尝试使用Deterministic Finite Automata解决此问题:

inputs:     {a,b}
conditions: 
a. must have exactly 2 a  
b. have more than 2 b

所以正确的输入应该是abbbabbbaababab

现在我的问题是,“有没有解决这个问题的模式?”

2 个答案:

答案 0 :(得分:2)

是的,有一种模式。您可以从中获取每个语句并从中扣除预先状态。然后你采用那些包含最终状态的前置状态的交叉积。在这个例子中:

一个。将产生状态:0a,1a,2a,2 + a(您已经看到0 a,1 a,2为2或2以上) 湾将产生状态:0b,1b,2b,2 + b(你已经看到0 b,1 b,2 bs或超过2 bs)

这些状态的叉积导致4x4 = 16个状态。你将从{0a,0b}州开始。输入可以是3种类型:a,b或其他类型。 从那以后你应该可以去。你需要更多帮助吗?

(我们正在解决作业吗?)

答案 1 :(得分:0)

始终先画出这样的东西。

随意给各州任何意义。你需要的是像q2: (1 b, 2 a's)这样的状态。绘制这样的状态,直到接受状态并用线连接它们。接受状态为qx: 2 a's 3 b's

在达到接受状态后,如果输入为“b”,则该行进入自身,接受状态。如果输入是“a”,则绘制一个新状态,无论输入是什么,它都将进入无限循环并进入自身。

(我们在这里帮助考试吗?)