artisoc cloud を用いて,レシピブック05を参考にポテンシャル法のモデルを作成しております.レシピブック05では,同じgoal_idの複数のgoalがある場合,personエージェントが生成された時点で自分の最短距離のポテンシャル値に基づいてgoalを設定し移動していると思います.そこで,他のpersonエージェントによる混雑具合を判断し,それを回避するようにgoalをその都度変更するようなルールを記述したいのですが,どうすればよいですか.
例えば、Universe.count_goal_person_list を追加し、辞書型で定義した上で、
personルールの
Universe.count_goal_person += 1
の下に
Universe.count_goal_person_list[str(self.goal_id)] += 1
として、goal毎の到着人数をカウントします。
次に、
personルールのagt_stepにて、
Universe.count_goal_person_list[str(self.goal_id)]
がある値を超えたら、Universe.count_goal_person_listの最も少ないgoalを取得し、
self.goal_idに代入すると、混雑が分散できると思います。