首页 > 解决方案 > Petri 网和有限状态机有什么区别?

问题描述

它们都代表系统可以采取的不同状态。那么Petri网和有限状态机有什么区别呢?什么时候使用 Petri 网,什么时候使用有限状态机?

标签: controlsmodelingstate-machinepetri-net

解决方案


标准有限状态机只包含一个当前状态。而在 Petri 网络中,多个位置或多或少与有限状态机中的状态相当,可以包含一个或多个令牌。有限状态机是单线程的,而 Petri 网是并发的。
在有限状态机中,活动状态响应事件而改变。在 Petri 网中,只要所有输入位置都包含至少一个标记,就会执行转换。
有限状态机可以被认为是 Petri 网的一个特例。

一般来说,如果您的进程或您希望表示的部分是单线程的,我建议使用有限状态机:其他软件工程师可能更熟悉有限状态机;还有更多工具可以将有限状态机转换为实现。

仅当您需要并发性或额外的表现力时才使用 Petri 网。或者,当您为工厂建模时,其中一半的制造物被转化为产品,或者当您的观众更熟悉此图像时。
或许 Petri 网也可以用于建模、可视化运行的海量并发系统,例如微服务架构、azure service fabric 可靠服务和可靠参与者、运行在 kubernetus 上的服务、azure function 和 AWS Lambda。
此外,关于和使用 Petri 网的理论研究比关于有限状态机的研究更多(请注意,正如我之前所说,有限状态机可以简化为 Petri 网)。


推荐阅读