回避策として、私のWindows 10システムにpygraphvizをインストールできませんでした。FSMの状態と遷移を別のグラフに保存しようとしています。例:Python Transitions:FSMの可能なすべての遷移をグラフにマップする方法
from transitions import Machine
from graphviz import Digraph
class Matter(object):
pass
# The states
states=['hungry', 'satisfied', 'full', 'sick']
# And some transitions between states.
transitions = [
{ 'trigger': 'eat', 'source': 'hungry', 'dest': 'satisfied' },
{ 'trigger': 'eat', 'source': 'satisfied', 'dest': 'full' },
{ 'trigger': 'eat', 'source': 'full', 'dest': 'sick' },
{ 'trigger': 'rest', 'source': ['satisfied', 'full', 'sick'], 'dest':
'hungry' }]
# Initialize
machine = Matter()
fsm = Machine(machine, states=states, transitions=transitions, initial=states[0])
dot = Digraph(comment='FSM')
src = machine.state
for event in transitions:
machine.trigger(event['trigger'])
dst = machine.state
dot.edge(src,dst,event['trigger'])
src = dst
print (dot)
ここで、myグラフには、すべての可能な遷移は含まれておらず、連続遷移のみが含まれています。
出力:
digraph {
hungry -> satisfied [label=eat]
satisfied -> full [label=eat]
full -> sick [label=eat]
sick -> hungry [label=rest]
}
あなたが複数の状態遷移をグラフに存在していない見ることができるように。すべてのトランジションをトリガしてグラフに格納する方法はありますか、またはこれをすべて動作させるためのカスタムコードを記述する必要がありますか。