2016-05-17 75 views
0

您需要为所有长度为奇数的字符串构造一个有限自动机,但在字母表{a,b}上包含偶数个b。构造一个FA(自动机理论)

我已经这样做了

((a+b)(a+b))*bb+bb*((a+b)(a+b)) 

,但我知道这是错的,那么,什么是这个问题的答案?

回答

0

你说你正在寻找一个自动机,但你的(错误的)答案是一个正则表达式。我会提供一个自动机。它使用两个计数器mod 2;一个为长度,一个为b的数量。所以各州是:

q[0,0], q[0,1], q[1,0], q[1,1] 

例如, q [0,1]意味着总数是偶数(第一个零),而b的数目是奇数(一个)。所以最终状态是q [1,0],而q [0,0]是初始状态。

的转换是相当明显的,做了柜台进行必要的修改:

q[0,0] reads a -> q[1,0] 
q[0,0] reads b -> q[1,1] 
q[0,1] reads a -> q[1,1] 
q[0,1] reads b -> q[1,0] 
q[1,0] reads a -> q[0,0] 
q[1,0] reads b -> q[0,1] 
q[1,1] reads a -> q[0,1] 
q[1,1] reads b -> q[0,0] 
+1

我想你的意思是“它使用** 2个**柜台......” –

+0

正确的。编辑。谢谢@FilipAllberg –