如何为有限状态机找到唯一的输入和输出

时间:2014-12-30 01:24:14

标签: io complexity-theory state-machine automaton

fsm

我如何查明每个州是否有独特的输入/输出序列?有标准化的技术或方法吗?我似乎无法在网上找到任何东西。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

对于确定性FSM(即没有epsilon状态转换的FSM),当且仅当满足以下条件时,才会有一个唯一的输入序列导致该状态:

1)必须存在通往国家的道路。 (孤立的无法到达状态无法获得资格)。

2)没有路径返回到开始状态(否则,直接前进到目标状态会到达它并且循环回到起始状态然后直接行进也会起作用)。 / p>

3)对于每个状态S,目标状态无法从S到达,或者S 目标状态,或者存在从开始状态到S的唯一路径,并且存在从S到目标状态的独特路径。

假设您使用的是定向图形对象表示,这意味着图形中没有终止于开始状态的边缘,并且对于图形中的每个状态S,也没有从S到S的路径目标,或者有一个独特的目标。

如果您尝试在代码中找到它,可以使用修改后的Dijkstra's algorithm来解决此问题。

请注意,这仅解决具有唯一输入序列的问题。具有唯一的输出序列需要更加小心,因为事实上可能有多个输入序列产生相同的输出序列。但是,这些想法是相同的,但您必须修改第三个标准:

3)对于每个状态S,无法从S到达目标状态,或者S 目标状态,或者如果S和T都有到达目标状态的路径,则必须生成相同的输出序列,从开始状态到S生成的输出序列和从开始状态到T生成的输出序列必须相同。

同样,修改后的Dijkstra可能是最好的选择。