問題タブ [petri-net]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaでカラーペトリネットの「バインディング」を実装するにはどうすればよいですか?
Javaでカラーペトリネットを実装しています。これは一種の有限状態オートマトンです。問題は、「バインディング」を実装する方法がわからないことです。つまり、場所に色を割り当て、円弧に円弧式を割り当てる必要があります。遷移が実行された後、ネットは新しい状態になります。そのため、アークに関数を割り当てる方法がわかりません。
ここではカラーペトリネットの基本を説明したくないので、私の質問が明確であることを願っています。誰かがカラーペトリネットのJavaコードをサンプリングするためのWebリンクを提供したり、アークに関数を割り当てる方法についてアイデアを提供したりしていただければ幸いです。
java - pnml で Java コードを使用して色付きのペトリネットを表現する
Colored Petri Net (CP-Net) を作成する場合、PNML の次の例のように、宣言セクションで Java コードを使用できますか? または、この部分でも標準を考慮する必要がありますか? 次の例は XML 表現ですが、同じ方法を使用して pnml で表現できますか? いいえの場合、どうすればそうすることができますか?ありがとう、
xml - PNML フレームワークを使用して pnml ファイルを解析するにはどうすればよいですか?
PNML Framework http://pnml.lip6.fr/index.htmlを使用して pnml ファイルを解析する方法を見つけようとしまし たが、役立つ情報が見つかりませんでした。
ml - CPN-Tools で場所とトランジションへのアークをカウントする
背景: CPN-Toolsは、色付きのペトリネットを使用するモデル チェッカーであり、クエリ言語として CPN ML を使用します。CPN MLは、型推論関数型言語である Standard ML の拡張です。
問題: CPN ツールは、状態空間分析を必要とするドメインをモデル化するために広く使用されています。これを使用して、ある場所から出入りするアークの数を知る必要があるドメインをモデル化しています。違いは、状態空間ではなく、ペトリ ネット モデル表現を見ていることです。したがって、ある場所から弧を数えるというときは、状態空間ノードではなく、場所を意味します。これまでの私の研究では、場所と遷移のプロパティを含むCPN'PlaceTable
と構造に出くわし、私の探求に有望に見えます。CPN'TransitionTable
ただし、これらの構造を使用して着信/発信アークをカウントする方法を理解するのに役立つ CPN ML の例は見つかりませんでした。
質問:私の質問、または実際の質問は次のとおりです。
- 特定の場所への着信アークをカウントするには、どのように使用する
CPN'PlaceTable
か、または他の方法を使用しますか? - 特定のトランジションからの出力アークをカウントするには、どのように使用する
CPN'TransitionTable
か、または適切な方法を使用しますか?
ケース例: この単純なペトリネットを使用して、私が期待していることについてのアイデアを提供しています。イラストはこちらのリンクをご覧ください。
画像では、3 つの場所と 2 つのトランジションが見られます。私が理想的に望んでいるのは、CPN ML関数を持つことができることでincoming(place_name)
あり、outgoing(transition_name)
それはこのように機能します
その他の情報: 状態空間ノードについて言及していないことを再度強調したいと思います。CPN-Tools には、状態空間のアーク プロパティに関するドキュメントが多数ありますが、CPN-Tools サポート フォーラムでの質問に関する情報はあまり見つかりませんでした。さらに悪いことにCPN'
、一般的な構造は CPN ツールではほとんど文書化されていません。
ruby - Ruby ベースのペトリネット オブジェクト モデルの永続化
純粋な Ruby でペトリ ネット ドメイン モデルを作成し、MongoDB で永続化する予定です。ペトリネットの場所と遷移には、「アーク」(場所 - 遷移矢印) 関係があり、おそらく他の関係もあります。これまでのところ、私のネットは小さいので、たとえば. 単一の Ruby ファイル、または YAML ファイル。しかし、私はすでに Mongo の味を知りたいと思っています。これは、生物学で一般的なように、ペトリネットが巨大になった場合に後で報われると思います。複雑さを避けるために、YPetri
簡単な例を示します。
これで小さなペトリネットを作成できます:
これは、一般的なアイデアを伝えるのに十分なはずです。オブジェクト モデルを Mongo 関連のライブラリの構文で書き直すのは気が進まない。クラスに「保存」Place
および「ロード」機能を追加したいだけです。Transition
私はMongoDBが初めてです。MongoDB はすでに私の Debian で動作します。Rubyから接続する方法がほとんどわかりません。適切なツールを選択するのに苦労しています。裸mongo
?Mongoid
? Mongo_mapper
? 他に何か?どちらをどのように使用すればよいですか? 私が提供したコード例を使用して、MongoDB との間で場所とトランジションのコレクションを保存およびロードする方法の実用的なコード例を教えてください。
clojure - 場所/遷移ペトリネットの確立されたデータ構造はありますか?
場所/遷移ペトリネットを表現するためのエレガントなソリューションを考え出そうとしています. これまでのところ、次のように保存しています。
tokens
は数字で、すべてが対応する名前の記号で始まります。
//編集 - いくつかの明確化: :netname と :name は一意です。これは、場所が再び一意の名前を持つ必要がある 2 つのネットをマージできる必要があるためです。数値トークンは、場所またはエッジの作成中にペトリネットのユーザーによって決定されます。
私の問題のためのより精巧な/より良いデータ構造へのいくつかのポインタまたはリンクに感謝します.
//編集 2 - 地名の一意性のため、データ構造の最初のテイクを作り直しました。:places がハッシュマップを参照するようになりました。また、edges_in と out はハッシュマップになりました。これは、すべてのエッジがその起点、終点、およびトークン番号で一意であるためです。
//編集 3 - 構造の使用: それは、私が言うのと同じ量で読み書きされます。ペトリネットの使用方法では、ネットの変更と読み取りの間に往復があります。
また、上記の構造を少し変更したため、:edges_in と :edges_out はトリプレットをリストではなくベクトルとして保存するようになりました。load-string
はリストを式として評価するため、ハッシュマップをファイルに保存してそこから読み取るだけです。
sml - CPN TOOLSネットで条件付きでトークンを生成しない簡単な方法はありますか?
一部の入力を無視したい状況に遭遇しました。
私の遷移アクションでは、単純な if-then-else 式を使用して、出力トークンを生成したい入力をテストし、無視したい入力に対して「NOP」トークンを生成します。これは、正しい型の式が必要なためです。 MLを満たすために。
(括弧の有無にかかわらず)使用しようとしましif this=that then 1`goodToken else 0`goodToken
たが、これはアクションの出力部分の型の正確性チェックに失敗します。
これらのトークンは次の場所に渡され、ガードが NOP トークンのみを許可する遷移または NOP トークンを許可しない遷移のいずれかに分岐します。
このようにして、これらの「トークンなし」トークンを生成および消費します。
これを ml 内で、またはネットを単純化できるように巧妙なアーク式で達成する簡単な方法はありますか?