私は、犯罪経歴と犯罪執行 (投獄) という、独立しているが関連している 2 つのプロセスを定義しようとしています。以下に図を示します。
- 犯罪は、エージェントが内部移行を通じて犯罪歴をすでに開始している場合にのみ実行されます。欲望 (犯罪から遠ざかる) は、エージェントが投獄されている間に発生する可能性のある最終的な状態です (そのため、私はこの問題を 2 つの独立したプロセスとして定義しています)。
- 犯罪が発生すると (内部遷移
commitCrime
)、変数committedCrime
は に設定されtrue
ます。commitCrime
トランジションには警備員がthis.ImprisonmentStateChart.isStateActive(Free)
いるので、エージェントが投獄されている場合、エージェントは犯罪を犯すことができません。 - 犯罪が行われるたびに、状態 Free: から状態遷移が評価されます
this.committedCrime == true
。刑務所に入ると、エージェントは最終的に釈放されます。
私の問題はcommitCrime
、Free 状態に戻った後に遷移が再開されないことです。commitCrime
がトリガーされた後に遷移を再開するという考えreleaseFromPrison
ですが、Anylogic 7でそれを行う方法が見つかりませんでした.
何か案は?