【发布时间】:2014-06-09 14:06:09
【问题描述】:
我知道可以将某些算法表示为 FSM,但 FSM 可以描述所有可能的算法吗?
【问题讨论】:
-
你也可以这样想:如果图灵机和 FSM 一样强大,考虑图灵机还有用吗?但是,既然我们正在谈论图灵机,那么肯定有它们可以做的事情(算法),但 FSM 不能。
标签: algorithm computer-science state-machine
我知道可以将某些算法表示为 FSM,但 FSM 可以描述所有可能的算法吗?
【问题讨论】:
标签: algorithm computer-science state-machine
没有。直观地说,如果算法只使用有限数量的状态,它只能表示为 FSM。例如,您无法使用 FSM 对任意长度的列表进行排序。
现在,向 FSM 添加无限量的状态——就像一个无限的一维值数组......并在 FSM 和数组之间添加一点“粘合”状态——“当前位置”在那个数组中......你有一个图灵机。是的,它可以做到这一切。
【讨论】:
没有。
有一个有限状态机可以描述每一种正则语言。 对于不规则语言,有限状态机是不够的。
所有程序的集合,称为“递归可枚举”语言,可以被图灵机接受。
这通常被称为Chomsky Hirerchy:
Regular Languages <= Context Free Languages <= Context Sensitive Languages <= Recursively enumerable Languages
接受者:
需要注意的是,可以接受描述所有“高级语言”的机器也可以描述所有低级(例如,您可以创建一个图灵机来接受每种常规语言)
【讨论】: