問題タブ [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.
workflow - 理論上のペトリネットと BPMN ワークフローの違いは何ですか?
理論的なペトリネットがあります: http://en.wikipedia.org/wiki/Petri_net
そして、BPMN 2.0 として表現されたワークフローがあります。
違いは正確には何ですか?私が質問する理由は、BPMN でモデル化されたビジネス プロセス (平均的な人が気にかけたり使用したりしない) を単純化し、スマートフォンで使用できるように (チェックリストのように) より "1 次元" にしたいからです。チェックリストの他のステップへのグラフベースのフック。私たちのベンチャーは Tallyfy と呼ばれます - https://tallyfy.com
さらに、アプリでプロセスを実行するより厳密な方法として、ペトリネットを使用できるかどうかを確認したいと考えています。
uml - 状態とアクティビティの両方を備えた標準的なダイアグラム タイプはありますか?
UML アクティビティ図はアルゴリズムを説明するものであり、ある意味ではフロー チャートの最新バージョンであり、UML ステート チャートはオブジェクトまたはシステムが自身を見つけることができるすべての可能な (または興味深い) 状態を示し、すべてを示していることを理解しています。それらの状態間の可能な遷移。
また、それらが直交モデルであることも理解しています。状態図で 2 つの状態を結ぶ矢印は、アルゴリズムまたはアクティビティ図の一部を表します。また、アクティビティ図の 2 つのアクティビティ間のすべてではないにしても一部の矢印は、オブジェクトが連続するアクションの間にある状態を表します。
アクション (分岐、フォーク/ジョインなどを含むアルゴリズムのステップ) とアクション間の状態 (デザイナーが名前を付けたい状態のみ) の両方に異なる形状を与える標準的な図の種類 (UML またはその他の従来型) はありますか? ?
このようなもの:
reset - リセットアーク付きペトリネット
リセットアーク付きのペトリネットに相当する通常のペトリネットを見つける方法は? この通常のネットは、ペトリネットのリセットのセマンティクスを尊重する必要があります。
よろしくお願いします。
petri-net - CPN ツール、ML 言語: コード生成時のコンパイル エラー
CPN ツールを使用してトークン バケット アルゴリズムを実装しようとしています。ツールとそれが提供する結果に非常に満足していると言わざるを得ません。
さて、私の問題について。
最初に、黒のトークンと整数のみを使用してトークン バケット モデルを構築しようとしました。これまでのところ、問題なく動作しました。
次に、送信する実際のデータで黒のトークンを変更しようとしました (メッセージを送信する単純なプロトコルの例を使用しました:「色付きペトリネットによるモデリングと分析。) 私が抱えている問題は、複数のデータパケットを送信しようとしたときです。 (私が添付したモデル画像を参照してください。) 場所 "Bucket" から "Transmit k" までのアークと "Bucket" から "Transmit n" までのアークは、問題が発生している場所であり、修正方法がわかりません。円弧上に、複数のパケットを送信する碑文があります (k x to send k packets and n
x で n パケットを送信)
「大きなカラー セットからバインドできません」というエラーや、「コード生成時に InternalError コンパイル エラーが発生する ...」というエラーが発生することがあります。 IMAGE: http://i.imgur.com/O5gGIW1.png
どちらのエラーも遷移「Transmit n」と「Transmit k」で発生します。
参考までに、アーク碑文を場所バケットから送信トランジションに変更した画像も添付したので、1つのパケットのみを送信しています。その後、動作しますが、もはや TokenBucket ではありません。画像: http://i.imgur.com/0IDfROf.png
お役に立てれば幸いです。
自分で見たい場合は、CPN モデルをアップロードすることもできます。
petri-net - トークンが追加されないのはなぜですか?
この記事を読むと、次のように書かれています。
有効な遷移が発生すると、各入力場所から 1 つのトークンが削除され、各出力場所に 1 つのトークンが追加されます。
次のネットがあり、すべてが単一のアークである場合
T1 を起動した後、P2 には P1 と P4 からの 2 つのトークンが含まれていると予想します。しかし、結果は P2 の 1 つのトークンです。数学に深く入り込まずに、どうやってそれを説明することができるでしょうか?
go - 外出先で準備ができている同時チャンネルを確認しています
go 言語で複数のチャネルが同時に準備されているかどうかを確認できるかどうかを知りたいです。
これは、私がやろうとしていることのやや不自然な例です。(実際の理由は、ペトリネットを go でネイティブに実装できるかどうかを確認するためです)
これは、示されているようにコンパイルされません。1 つのチャネルをチェックするだけでコンパイルすることができますが、そのチャネルの準備ができていて、もう 1 つのチャネルの準備ができていない場合、自明にデッドロックする可能性があります。
一般的なケースでは、複数のケースが同じチャネルで待機している可能性があります。
そのため、チャネル a で値の準備ができている場合は、どちらのブランチにもコミットできません。すべての値の準備ができている場合のみです。
list - 構造の異なる 2 つのリストを比較する
SML を使用して CPN ツールでパターン マッチング機能を実行しようとしています。カラーセット EVENT を定義しました。colset EVENT = product EVENTTYPE * EVENTTIME timed;
リストを比較するとき、私はイベント タイプにしか興味がないので、たとえば[a,b]
toを比較しようとし[ (a,0), (b,1) ]
ています。そのため、2 つのリストを比較する次の SML 関数を作成しました。
evalloop.sml で不特定のコンパイラ エラーが発生するだけです。残念ながら、最初のリストから実際に興味のあるタプルの部分だけを抽出する方法がわかりません。