9

ペトリネットを描画し、そこからソースコードを生成するためのソフトウェアはありますか?ソースコードは、既知のプログラミング言語であればどれでもかまいません...

少し望ましくないオプションは、ペトリネットグラフの説明のみを含むファイルを、XMLやその他のデータ言語などのオープン形式のテキストベースのファイルで出力することです。その後、自分でコードジェネレーターを作成することもできますが、少なくともGUI/グラフの開発部分は避けたいと思います;))

ありがとう

4

3 に答える 3

4

y_petriRubyで開発しています。現時点では、YPetri は視覚化 (YPetri::NetクラスにはGraphviz#visualizeを使用してネットを描画するメソッドがあります) を処理できますが、念頭に置いていると思われる GUI 編集は処理できません。参考までに、まず、ペトリネットでの GUI 編集は、見かけほど重要ではありません。

使用されているデータ言語は Ruby そのもの (より正確には、Ruby で記述された内部 DSL) です。

ペトリネットの主な問題は、存在する種類が多すぎることです。YPetri1 種類の場所 (任意のマーキング タイプ) と 4 つの基本的な遷移タイプ (時間指定 / タイムレス x ストイキオメトリック / 非ストイキオメトリック) を備えた、ユニバーサル ペトリ ネット フレームワークになろうとしています。さらに、5 番目の遷移である代入遷移があります。これは、ターゲット プレースのマーキングをその関数の戻り値に置き換えます。これは、私が作成できたのと同じくらい節約的でありながら、あらゆる動的システムを説明するために使用できると信じています。

ペトリネット アークは、遷移と場所の間の関係として理解されます (それらは の遷移に属しy_petriます。アークだけでなく、ペトリネット ノード (場所/遷移) 間の関係も表現する方法があると便利であることがわかりました。この目的のために、私はTed Nelson の ZZ 構造 (ZigZag) を基本的にリレーショナル データベースの代わりとして使用します

シミュレーション (ペトリネットの実行) に関しては、一般的なハイブリッド ペトリ ネットには、暗黙的なオイラー法 (私は疑似オイラーと呼んでいます) よりも高速なシミュレーション方法はありません。これは、一般的な高速化が不可能なチューリング マシンを実装するためにペトリ ネットを使用できるためです。

Ruby で操作する場合は、Petri net iny_petriまたはy_nelsonDSL コードを記述することができます。XML への変換はソース DSL よりも優れているとは考えていないため、提供していません。このようなエクスポート ルーチンを作成することは可能ですが、代わりに DSL を使用することをお勧めします。

于 2013-05-25T11:21:58.213 に答える
3

Javaで開発されたPetriNetSimをチェックしてください。シンプル/色付き/時間指定のペトリネットを描画してシミュレートできます。いくつかの例が付属しています。Java でアークとノードの制約を拡張できます。最後に、生成されたペトリネットの Java クラスを確認できます。

github https://github.com/guillem-catala/PetriNetSimからソース コードを取得できます。

于 2011-07-21T18:00:03.133 に答える
3

私はCPN Toolsを見たいと思います。それらは、あらゆる種類の構築、分析、カラー ペトリ ネットのシミュレーション、およびクレーム コード生成機能を提供します。

于 2011-07-21T18:40:22.983 に答える