我不确定我是否理解有限状态机和状态机之间是否有区别?我是不是想太多了?
5 回答
我不确定我是否理解有限状态机和状态机之间是否有区别?我是不是想太多了?
是的,你想得太用力了。:-) 这取决于上下文。
显然,从字面上看,术语“有限状态机”表示有限数量的状态,而“状态机”没有做出这样的承诺。所以,是的,有区别。
但是,我认为,根据对话的上下文,人们只是简单地说“状态机”,而不考虑它们是指“有限状态机”还是“状态机”。在我们的软件编程领域,状态机通常用代码表示,我们经常可以将“状态机”与“有限状态机”互换使用。所以,真的,不,没有区别。
OTOH,如果有一天晚上我在校园夜课后与一位数学家交谈,我可能会对我使用的具体术语更有选择性。所以,是的,有区别(在这种情况下)。
当然有区别。一个具有有限数量的状态,而另一个具有无限数量的状态。画一个无限状态机有点尴尬,但是允许有限状态机的数学也允许无限状态机。
看看 FSM 的维基百科页面的数学模型部分。看看它在哪里说“S 是一个有限的、非空的状态集”?擦除“有限”。你的状态转换函数也会变成无限的,不过没关系,有很多无限函数。
“From.ME.to.YOU”将维基百科的口头简写与真正的平等宣言混为一谈。
有限状态机 (FSM) 术语在自动机理论的教科书中有一个精确的定义。FSM 允许对软件实体行为进行最精确和压缩的表示,因为它们独立于编程语言和数据表示。状态机一词通常用于描述一组“FSM 风格”的 API,例如 Statecharts。不幸的是,软件工程师很少使用 FSM 的全部潜力,因为他们经常被许多困扰状态图的问题所困扰:例如非确定性。
不,那里没有
我引用维基百科
有限状态机 (FSM) 或有限状态自动机(复数:自动机),或简称为状态机
Assuming you are not in a computer languages classroom, in the context of Software it is almost always a State Machine since it doesn't fit the mathematical definition of FSM (Finite State Machine). Especially when considering Business Process Management/Workflow, the number of nodes in the transition graph is finite, but the state of the process is not limited by those and has unlimited external context.
However if someone refers to FSM in software it's pedantic to point out that it doesn't meet the math definition and they are probably using that term to refer to the simpler types of state machines vs. Petri Net, BPM, Orchestration, or any number of other ways to manage states, processes, transitions, etc. There is also a huge difference from process management, persisted state machines, and the in memory kind that are used for parsing or network state, for example.
In short, it's very ambiguous if you are not in a classroom.