MAS コミュニティ
artisoc質問用掲示板

質問 (解決済み)

[artisocモデル] 格子モデル上で指定したIDの粒子が指定したセル数進むとシミュレーションが停止するようにするには?
質問者: th1さん , 質問日時: 2017/03/15 12:31
過日はありがとうございました。
今一度、さらに詳細を追加した上で問合せして恐縮です。
過日の問合せのご回答一部を下記に転写しました。
下記のコードに、更に「指定したセル数進むとシミュレーションが停止する」このような指示にするには、どのように条件を付加すればよいでしょうか?
下記のコードでは、指定したID10番の粒子が格子モデルに登場すると、シミュレーションが停止する指示が実現しています。
この場合は、画面上では、格子モデルで構築した(例:セル数100セルなど)セルを入口から出口まで通過し終える前に、入口付近で停止してしまいます。
その為、出口まで指定したID10番の粒子が移動してからシミュレーションを停止させたいです。
お手すきの際に、アドバイス宜しくお願いいたします。

// 自身がID10で作業終了時にExitSimulation()を実行
if (my.finished and my.ID == 10) then
ExitSimulation()
end if
}



▼解決した回答


1ステップに1セル進むとすると、例えば、エージェントに進んだ分の数を記憶する変数「steps」を追加して、進んだ数を足していって、指定数に達すると停止するとすると良いかと思います。

------------------
Agt_Step {
my.steps = my.steps + 1

// 自身がID10で作業終了時にExitSimulation()を実行
if (my.steps >= 10 and my.ID == 10) then
ExitSimulation()
end if
}

回答者: kabochan さん , 回答日時: 2017/03/16 08:57

▼ 全ての回答


1ステップに1セル進むとすると、例えば、エージェントに進んだ分の数を記憶する変数「steps」を追加して、進んだ数を足していって、指定数に達すると停止するとすると良いかと思います。

------------------
Agt_Step {
my.steps = my.steps + 1

// 自身がID10で作業終了時にExitSimulation()を実行
if (my.steps >= 10 and my.ID == 10) then
ExitSimulation()
end if
}

回答者: kabochan さん , 回答日時: 2017/03/16 08:57

MASコミュニティ
掲示板TOP







Copyright © KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
( 会社情報 情報セキュリティ・個人情報について )