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 中有幾種有限狀態機的實現: