簡単なアリのコロニー シミュレーションを構築しようとしています。世界は正方形のグリッドです。それらのそれぞれは、あるレベルのフェロモンと任意の数のアリで構成できます。フェロモンには、食物フェロモンと巣フェロモンの2種類があります。アリは環境について何も知りませんが、巣に戻ったアリは巣のフェロモンに従い (ほとんどの場合、近くのすべてのセルの中でフェロモン レベルが最大のセルに移動することを選択するという意味で)、食物フェロモンを残します。
時折、アリは最大のフェロモンの方向ではなくランダムな動きをします。シミュレーションの各ティックで、アリは 8 つの近くのセルのフェロモンのレベルをチェックし、現在のセルのフェロモン レベルがすべての近くのセルのフェロモン レベルの最大値よりも低い場合、いくつかのフェロモンを追加します。
現在のシミュレーションはうまく機能していますが、見つかったパスは最適なものではありません。解決方法がわからない2つの問題があります。
- 対角線の移動が非対角線の移動よりも長いという事実をシミュレートするにはどうすればよいですか (上、下、左、または右)?
- フェロモンの拡散をどのようにシミュレートすればよいですか? 現在、フェロモンは時間の経過とともに蒸発しますが、拡散はありません。シミュレーションの各ティックごとに、各セルから一定量のフェロモンを近くの 8 つのセルに転送しようとしましたが、結果は完全に混乱しました。環境全体がフェロモンでいっぱいでした。メカニズムが原因だったと思います。アリはフェロモンレベルを調整するために使用します。