如何检查特定的mealy机器是否可以生成特定输出?

时间:2011-05-17 09:57:25

标签: string matching fsm

如果我有一台mealy机器,并且我有一个大字符串,我该如何检查mealy机器是否可以生成该字符串?

我考虑过将mealy机器转换为regexp,但我不清楚如何做到这一点。

谢谢。

1 个答案:

答案 0 :(得分:0)

我会从最后开始。反转所有方向(是的,这意味着一个门现在可以接收一个值并输出两个),并以相反的顺序使用该字符串作为输入。无论何时你到达某个门或黑盒子元素,你都有它的输出;弄清楚所有可能导致输出的输入,并继续非确定地倒退 如果在字符串的末尾,您到达某个输入(或一组输入),则该(或那些)输入是产生给定字符串的输入。否则,该机器无法生成该字符串。

一种不同的方法(有时更简单,有时候不是),可以尝试查看机器生成的所有字符串是什么,或者尝试找到所有字符串必须满足的某些属性,并且给定的字符串不会(例如,如果您不确切知道机器生成的字符串是什么,但是您知道它们都以“A”开头,并且给定的字符串不是)。