高度観念

高度観念

離散イベントの適切な配列

特定のブロックの離散出力ポートに複数のエッジを接続することは可能ですが、お勧めしていません。例えば、以下の ADL アルゴを考慮してください。

最初の約定時に、MsgInfoExtractor0 ブロックのパスが最初に執行され、その後に MsgInfoExtractor1 ブロックのパスが執行されると、MsgInfoExtractor1 ブロックの値はゼロになるため、ValueExtractor0 ブロックの出力は MsgInfoExtractor0 ブロックの出力の値に等しくなります。

ただし最初の約定時に、MsgInfoExtractor1 ブロックのパスが最初に執行され、その後に MsgInfoExtractor0 ブロックのパスが執行されると、ValueExtractor0 ブロックの出力は MsgInfoExtractor0 ブロックの出力値と MsgInfoExtractor1 ブロックの出力値を足した値と等しくなります。アルゴ サーバーの執行ロジックによって最初に選択される実際のパスは、必ずしも決定論的ではありません。

決定論的な執行パスを強制するには、離散出力ポートのすぐ下流に Sequence ブロックを挿入し、アルゴの状況にかなうシーケンスを選択します。例えば、次のようなアルゴを考えてみましょう。

ここで、MsgInfoExtractor1 ブロックのパスが常に最初に執行され、その後に MsgInfoExtractor0 ブロックのパスが執行されることに注意してください。このように、最初の約定時点で、最初に意図したとおり、ValueExtractor0 ブロックの出力は、MsgInfoExtractor0 ブロック の出力値に MsgInfoExtractor1 ブロックの出力値を足した値に等しくなります。