MAS コミュニティ
artisoc質問用掲示板(アーカイブ)
  
質問掲示板は移転しました。新掲示板はこちら

質問 (解決済み)

[artisocモデル] エージェントの作成
質問者: Nisi0930さん , 質問日時: 2017/12/26 14:39
避難行動のモデルを作成中です。その中で分からないことが出てきたので質問させていただきます。
300個ほどのポイントを作成し、そのポイントをリンク結合して道や階段を作成しました。そこでそのポイントやリンク上にランダムに避難者エージェントを配置させたいのですが、その方法が分かりません。
またルールエディタの中でその避難者エージェントの数を設定することは可能でしょうか。可能でしたら、その方法を教えていただきたいです。



▼解決した回答


リンク上は難しい計算が必要ですが、ポイントがエージェントとして作成されたものなら簡単です。
ポイントエージェントを格納しているエージェント集合変数からポイントエージェントをランダムにひとつ取り出し、そのX,Y座標を避難者エージェントのX,Y座標に、与えれば良いです。
また、避難者エージェント数の設定は、For文を使います。こちらは初歩の初歩ですので、人工社会構築指南を読んでください。

疑似コードでは、例えば、以下のようになります。
For i = 1 to 避難者総数
 避難者=CreateAgt(Universe.空間.避難者)
 スタートポイント= GetAgt(ポイントエージェント集合, CInt(Rnd()*CountAgtSet(ポイントエージェント集合)))
 避難者.X = スタートポイント.X
 避難者.Y = スタートポイント.Y
Next i

回答者: igaguri さん , 回答日時: 2017/12/26 14:52

▼ 全ての回答


リンク上は難しい計算が必要ですが、ポイントがエージェントとして作成されたものなら簡単です。
ポイントエージェントを格納しているエージェント集合変数からポイントエージェントをランダムにひとつ取り出し、そのX,Y座標を避難者エージェントのX,Y座標に、与えれば良いです。
また、避難者エージェント数の設定は、For文を使います。こちらは初歩の初歩ですので、人工社会構築指南を読んでください。

疑似コードでは、例えば、以下のようになります。
For i = 1 to 避難者総数
 避難者=CreateAgt(Universe.空間.避難者)
 スタートポイント= GetAgt(ポイントエージェント集合, CInt(Rnd()*CountAgtSet(ポイントエージェント集合)))
 避難者.X = スタートポイント.X
 避難者.Y = スタートポイント.Y
Next i

回答者: igaguri さん , 回答日時: 2017/12/26 14:52



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