我知道可以将某些算法表示为FSM,但FSM可以描述每种可能的算法吗?
答案 0 :(得分:6)
没有。直观地,如果算法仅使用有限量的状态,则该算法只能表示为FSM。例如,您无法使用FSM对任意长度的列表进行排序。
现在,向FSM添加一个无限量的状态 - 就像一个无限的一维数组值...并添加一些" glue" FSM和阵列之间的状态 - "当前位置"的概念在那个阵列......你有一台图灵机。哪,是的,可以做到这一切。
答案 1 :(得分:6)
没有
有一个可以描述每种常规语言的有限状态机。 对于不规则语言,有限状态机是不够的。
所有程序的集合称为“递归可枚举”语言,并且可以被图灵机接受。
这通常被称为Chomsky Hirerchy:
Regular Languages <= Context Free Languages <= Context Sensitive Languages <= Recursively enumerable Languages
接受的是:
重要的是要注意,可以接受描述所有“更高层语言”的机器也可以描述所有较低层(例如,您可以创建图灵机以接受每种常规语言)