“有限状态机”和“状态机”之间有区别吗?

时间:2011-02-06 02:39:22

标签: math statistics computation-theory state-machine

我不确定我是否理解有限状态机和状态机之间是否存在差异?我是不是很想这个?

5 个答案:

答案 0 :(得分:29)

  

我不确定我是否理解有限状态机和状态机之间是否存在差异?我是不是很想这个?

是的,你在考虑它太难了。 :-)这取决于背景。

显然,从字面上看,术语“有限状态机”表示有限数量的状态,而“状态机”没有做出这样的承诺。 所以,是的,存在差异。

但是,我认为,根据谈话的背景,人们只是简单地说“状态机”而不考虑它们是指“有限状态机”还是“状态机”。在我们的软件编程领域,状态机通常用代码表示,我们经常可以将“状态机”与“有限状态机”交替使用。 所以,真的,不,没有区别。

OTOH,如果我在一天晚上在校园夜班后与一位数学家交谈,我可能会对我使用的具体用语更有选择性。 所以,是的,存在差异(在这种情况下)。

答案 1 :(得分:4)

有限状态机(FSM)术语在自动机理论教科书中有一个精确的定义。 FSM允许最精确和压缩的软件实体行为表示,因为它们是独立的编程语言和数据表示。 术语状态机通常用于描述“FSM样式”API集,如Statecharts。遗憾的是,软件工程师很少充分利用FSM的全部潜力,因为它们常常被困扰Statecharts的一系列问题所摧毁:例如:非决定论。

答案 2 :(得分:3)

当然有区别。一个具有有限数量的状态,另一个具有无限数量的状态。绘制无限状态机有点尴尬,但允许有限状态机的数学运算也允许无限状态机。

查看FSM维基百科页面的mathematical model部分。看看它说'S是一个有限的,非空的状态集'在哪里?擦除'有限'。你的状态转换函数也将变为无限,但没关系,有很多无限函数。

“From.ME.to.YOU”将维基百科的口头速记与真实的平等宣言混为一谈。

答案 3 :(得分:2)

没有

我引用维基百科

  

有限状态机(FSM)或   有限状态自动机(复数:   自动机),或简称为状态机

http://en.wikipedia.org/wiki/Finite-state_machine

答案 4 :(得分:0)

假设您不在计算机语言教室中,那么在软件的上下文中,由于它不符合FSM(有限状态机)的数学定义,因此几乎总是状态机。尤其是在考虑业务流程管理/工作流时,过渡图中的节点数是有限的,但是流程的状态不受这些限制,并且具有不受限制的外部上下文。

但是,如果有人在软件中提到FSM,则指出它不符合数学定义是很有趣的,他们很可能使用该术语来指代与Petri Net,BPM,Orchestration,或用于管理状态,进程,转换等的许多其他方式。例如,与进程管理,持久化状态机以及用于解析或网络状态的内存中种类也存在巨大差异。

简而言之,如果您不在教室里,那就很模棱两可了。