0

我正在尝试使用以下方法解决此问题Deterministic Finite Automata

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

所以正确的输入应该是这样的abbbaor bbbaaorbabab

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

4

2 回答 2

2

是的,有一个模式。您可以获取每个语句并从中扣除前状态。然后你取这些前状态的交叉产品,这将构成最终状态。在这个例子中:

一种。将产生状态:0a、1a、2a、2+a(您已经看到 0 a、1 a、2 作为或超过 2 作为)b。将产生状态:0b、1b、2b、2+b(您已经看到 0 b、1 b、2 bs 或超过 2 bs)

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

(我们在做作业吗?)

于 2013-04-30T03:53:56.243 回答
0

总是先画这样的东西。

随意给状态任何含义。您在这里需要的是如下状态:q2: (1 b, 2 a's). 像这样绘制状态,直到接受状态并用线连接它们。接受状态是qx: 2 a's 3 b's

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

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

于 2013-04-30T04:03:18.790 回答