現在作成中の避難シミュレーションのモデルでエージェントの動きをより複雑にするために3つ新たに設定を追加したいと考えています。1.エージェントの行動の特徴を2タイプ定義し、CSVにA、Bと入れるだけで仕分けできる設定2.毎ステップ避難を開始するか留まるか一定の確率で決めさせる設定3.前を他のエージェントが横切ったら一定の確率でついていく設定この3つを追加したいのですが参考にできるモデルを見つけれていないためご紹介いただけないでしょうか。model (2).jsonダウンロード:JSON • 529KB
シミュレーションの流れは
毎ステップ一定確率ランダムにエージェントが最短の目的地への避難を開始する
目の前をエージェントが通ると一定確率で避難を開始する
この二つの開始方法を設ける処理を行いたいです。
参考になるモデルは思いつきませんが、以下の手順でモデルを修正するとよいと思います。
・csvファイルに列「behavior_type」を追加して、A、Bを定義する
・personに変数「behavior_type」を追加する
・create_person_stepで以下を追加する
one_person.behavior_type = one_person_list['behavior_type']
・personルールで self.behavior_type の値により行動を変える
・personに変数「start_flag」を追加する
・personルールのagt_initでstart_flagを初期化する
self.start_flag = False
・personルールのagt_stepのはじめにself.start_flagをある確率でTrueにし、避難行動はself.start_flagがTrueのときのみ行うようにする
・personに変数「follow_flag」を追加する
・前を歩くエージェントを見つけたら、follow_flagをTrueにして、前を歩くエージェントを進行方向にして移動するか、前を歩くエージェントの目的地を取得して移動する