アンケート一覧ページでアンケートを探す

アリの挙動のプログラムが分かりません。

C言語関連1,383閲覧

新機能 AI回答テストを実施中! テスト対象カテゴリ:歴史・悩み相談 ※回答がつかない場合は、画面のリロードをお試しください

ベストアンサー

このベストアンサーは投票で選ばれました

NEW! この回答はいかがでしたか? リアクションしてみよう

その他の回答(1件)

モデリングが不完全なのでプログラム作成は不可能じゃないでしょうか? そもそも格子は二次元であると思いますが、「一次元で50程の格子」とは何でしょうか? たんに一次元(数直線)上の0から+50程度の範囲を想定して、一動作ごとに隣の整数値の地点に移動し、蟻1はこの整数値の地点「のみ」にフェロモンを残すということでしょうか? 格子というのが、0~1、1~2、2~3というものだと考えているのだとしても、単に表現の違いだけで上に挙げた整数値の地点の考え方と数学的には同値でしかなく、二次元に拡張しても同じことです。 > 蟻1が残したフェロモンを見つけると蟻1を追いかけるようにフェロモンをたどる の「フェロモンを見つける」は良いとして、「蟻1を追いかけるように」「フェロモンをたどる」という動作の判断材料は何でしょうか? 「蟻1を追いかけるように」ということは、フェロモンを見つけた位置からどの方向に蟻1が居るのかを推定することであり、何から判断するのでしょうか? 蟻2の直前の移動方向を用いてよいならば、考えているのが一次元なので一度フェロモンを見つけたらその時点でそれ以降の移動方向が固定(常にフェロモンがある地点へ移動)されてしまいますが、それでよいのですか? 蟻1は常に左(0方向)へ進んでいるとすると、蟻2が蟻1に追いつくこともないですがそれで構わないのでしょうか? 一次元で考えているからこのような不具合的なことが生じるのだし、一次元の場合を二次元に応用するメリットなどあり得ないので、最初から二次元の場合で考えるべきじゃないですか? 二次元の場合は、直前の移動方向だけでは判断ミスが生じて、ループ動作(同じ地点を堂々巡り)となる可能性があるので、フェロモンがある地点に過去に到達したことがあるかとか、フェロモンがある地点からの各4方向へ移動の有無といった、ようはマッピングをすることが有効手段ですが、どの程度までのマッピングを想定しているのでしょうか?