ペトリネットとは?

このページでは「ペトリネット」とはどんなものなのか,簡単に説明します.
ペトリネットとは広範囲のシステムに適用可能なモデル化ツールである。
例として図1に示すサンドイッチ製造システムについて考える。 機械Aはパンにバターを塗る。機械Bは大きなハムを5枚にカットする。 機械Cは大きなチーズを4枚にカットする。機械Dは1枚のハムと1枚のチーズを パンで挟む。 以上の工程で一つのサンドイッチが完成するものとする。

図1: サンドイッチ製造の例

これをペトリネットでモデル化したものが図2である。 ペトリネットではそれぞれ、図中の`丸'を「プレース」、 `棒'を「トランジション」、 `矢印'を「アーク」、 プレース内の`小さな黒丸'を「トークン」と呼ぶ。

図2: 図1のペトリネットによるモデル化

ペトリネットではプレース内のトークンの分布がそのシステムの 状態を表す。 図2では、各プレース内のトークン数がそれぞれ、p1ではバターの量、 p2ではパンの数、p3ではハムの数、p4ではチーズの数、 p5ではバターを塗ったパンの数、p6ではカットしたハムの数、 p7ではカットしたチーズの数、p8では完成したサンドイッチの数を 表している。 トランジションはシステムの動作を表す。 図2では、各トランジションはそれぞれ、t1は「バターを塗る」、 t2は「ハムをカットする」、t3は「チーズをカットする」、 t4は「ハムとチーズをパンで挟む」を表している。
ペトリネットではトークン分布を変化させることで、 システムの状態の変化を記述することができる。 例えば、図2の状態から機械Bでハムをカットした 後の状態をペトリネットで表すと図3のようになる。 p3からトークンが1つ減り、p6にトークンが5個増えている。 これをよく見ると、トランジションt2に接続しているアークの 辺重みと対応していることがわかる。 このようにトランジションが 1単位の仕事をし、トークンが移動することを 「トランジションが発火する」という。

図3: 図2からt2発火後のペトリネット

もし図3の状態からt1を発火させると、図4のようになる。

図4: 図3からt1発火後のペトリネット

ペトリネットはシステムを構成する際のグラフィック言語としての 能力、システムのシミュレーションツールとしての能力、 システムの安全性、デッドロック検証などの解析を行う能力 を持っている。 当研究室では主にペトリネットの解析能力についての研究を行っている。