Python 有限狀態機

介紹

有限狀態機(FSM) 是計算機中的數學模型,它與狀態、轉換、輸入和輸出相關。狀態機始終處於一種狀態,並且可以使用轉換條件移動到其他狀態。轉換將狀態機的狀態更改為另一個狀態。

可以使用有限狀態機來建模大量問題。現代生活中使用的狀態機的簡單例子是自動售貨機,電梯和交通訊號燈。高階用法是人工智慧、語言解析和通訊協議設計。

有限狀態機示例

首先安裝 Fysom 模組,

pip install fysom

我們可以定義一個有狀態機(FSM),它有兩種狀態:睡眠和清醒。要在狀態之間移動,我們將定義轉換 wakeup() 和 sleep()

有限狀態機。狀態:清醒,睡覺。過渡:睡覺,醒來

例:

from fysom import *
 
fsm = Fysom({'initial': 'awake',
             'final': 'red',
             'events': [
                 {'name': 'wakeup', 'src': 'sleeping', 'dst': 'awake'},
                 {'name': 'sleep',  'src': 'awake',   'dst': 'sleeping'}]})
 
print(fsm.current)   # awake
fsm.sleep()
print(fsm.current)   # sleeping
fsm.wakeup()
print(fsm.current)   # awake

結果:

awake
sleeping
awake

有限狀態機

Python 中有幾種有限狀態機的實現: