ペトリネット (Petri net)


1962年にC.A Petri*1によって、非同期、並列的に振る舞うシステムの、情報の流れや制御を解析するために考案されたものです。

ペトリネットは、図のようで丸で表現されたプレースと、縦棒で表現されたトランジション、プレースとトランジション、あるいは、トランジションとプレースを結ぶ矢印で表現されたアーク、プレースの中に配置される黒い小さい丸のマーク(トークンと呼ぶ)から構成されます。

トランジションに着目したとき、トランジションに向かうアークが出ているプレースを入力プレース、トランジションから出るアークが向かうプレースを出力プレースと呼びます。

Petrinet1J

ペトリネットの状態遷移は、下図(1)のように入力プレース全てにトークンが配置されたとき、トランジションは発火可能となり、トランジションが発火すると下図(2)のように、全ての入力プレースからトークンが取り除かれ、新しいトークンが出力プレース全てに新たに配置されます。

Petrinet2J

プレースへのトークンの配置パターンをマーキングと言い、トランジションの発火によってマーキングが変わってゆく、この一つ一つのマーキングが、モデル化しているシステムの1つの状態を表現しているといえます。

また、トークンがペトリネット内を移動してゆく様子は、システム内での情報の流れと見ることができます。

 

ペトリネットと状態遷移図を比較すると、ペトリネットは、分散システムの全体を表現することに長けており、一方、状態遷移図は、一つのオブジェクトの振る舞いを表現するために作られたものと言えます。

そのため、状態遷移図は、モデル化対象となるオブジェクトだけに着目すればよく、作成が比較的簡単です。

 

DiD Risk Monitorでは、アクターを一つのオブジェクトとみなし、オブジェクト間のイベントのやり取りによって、相互作用を再現するという考えから、アクターの振る舞いのモデル化に、状態遷移図を採用しています。

 

*1: C.A. Petri, Kommunikation mit Automaten. Schriften des Rheinisch Westfälischen Institutes für Instrumentelle Mathematik an der Universität Bonn Nr. 2, 1962