【发布时间】:2009-08-06 21:15:36
【问题描述】:
对于两个总是需要有限时间的(确定性)有限状态机的等价性是否存在一般证明?也就是说,给定两个 FSM,你能否证明给定相同的输入,它们总是会产生相同的输出,而实际上不需要执行 FSM(这可能是非终止的?)。如果存在这样的证明,时间复杂度是多少?
【问题讨论】:
标签: theory fsm proof state-machine
对于两个总是需要有限时间的(确定性)有限状态机的等价性是否存在一般证明?也就是说,给定两个 FSM,你能否证明给定相同的输入,它们总是会产生相同的输出,而实际上不需要执行 FSM(这可能是非终止的?)。如果存在这样的证明,时间复杂度是多少?
【问题讨论】:
标签: theory fsm proof state-machine
有一个证据,虽然我不知道。查找 Sipser 关于该主题的教科书,我就是从那里了解到的。
搜索我的记忆:基本上,对于给定的 DFA,有一个唯一的最小 DFA,并且有一个总是终止的最小化算法。最小化 A 和 B,看看它们是否具有相同的最小 DFA。我不知道最小化的复杂性,尽管它还不错(我认为它是多项式)。图同构很难计算,但是因为有一个特殊的起始节点,它可能会更容易一些。老实说,您甚至可能不需要图同构。
但是不,您不需要实际运行 DFA,只需分析它们的结构即可。
【讨论】:
假设您有两个具有 O(n) 个状态的 FSM。然后你可以制作一个大小为 O(n2) 的 FSM,它只识别它们接受语言的对称差异。 (创建一个 FSM,其状态对应于一对状态,每个 FSM 一个。然后在每一步,同时更新该对的每个部分。新 FSM 中的一个状态是一个接受状态,当且仅当该对中的一个是一个接受状态。)现在最小化这个 FSM,看看它是否与拒绝一切的平凡单态 FSM 相同。最小化具有 m 状态的 FSM 需要时间 O(m log m),所以总的来说你可以在 O(n 2 记录 n)。
@Agor 正确地指出,Sipser 是这类事情的一个很好的参考。我回答的重点是,即使指数很小,您也可以在多项式时间内做到这一点。
【讨论】: