[英]Deterministic Finite Automata pattern
我正在尝试使用Deterministic Finite Automata
来解决这个问题:
inputs: {a,b}
conditions:
a. must have exactly 2 a
b. have more than 2 b
所以正确的输入应该像这个abbba
或bbbaa
或babab
现在我的问题是,“有没有解决这个问题的模式?”
是的,有一种模式。 您可以从中获取每个语句并从中扣除预先状态。 然后你采用那些包含最终状态的前置状态的交叉积。 在这个例子中:
一种。 将产生状态:0a,1a,2a,2 + a(你已经看到0 a,1 a,2或2或2)b。 将产生状态:0b,1b,2b,2 + b(你已经看到0 b,1b,2 bs或超过2 bs)
这些状态的叉积导致4x4 = 16个状态。 你将从{0a,0b}州开始。 输入可以是3种类型:a,b或其他类型。 从那以后你应该可以去。 你需要更多帮助吗?
(我们在解决作业吗?)
总是先画这些东西。
随意给各州任何意义。 你需要的是像: q2: (1 b, 2 a's)
。 绘制这样的状态,直到接受状态并用线连接它们。 接受状态是qx: 2 a's 3 b's
。
在达到接受状态后,如果输入为“b”,则该行进入自身,即接受状态。 如果输入是“a”,则绘制一个新状态,无论输入是什么,它都将进入无限循环并进入自身。
(我们在这里帮助考试吗?)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.