蟻の寺参り(蟻の行列生成シミュレーション)  〜JAVA プログラム

(Up)


<原理>

  リーダーがいる訳ではないのに蟻が行列を作るのは、「フェロモンによってお互いに連絡を取り合っているから」と言われています。 また、社会的行動を営む蜂や蟻の行動を、群知能の研究等に生かすことも行われています。

 そこで、本ホームページでも蟻の行列シミュレーター(マルチエージェントシミュレーション)を作成してみました。

 ここで、蟻行列が生成される原理を復習してみます。 

  ・蟻が歩き回るときに足跡フェロモンを地面につけていきます。
  ・餌を見つけると、餌を持ち運びながら、足跡フェロモンを辿って、巣に帰ります。
  ・この時、餌フェロモンを地面につけながら移動します。
  ・他の蟻がつけた餌フェロモンにたどり着くと、その餌フェロモンに辿って、餌にたどり着き、その餌を持ち帰ります。
  ・各フェロモンは揮発性で、時間の経過と共に次第に濃度が薄くなっていきます。
  ・蟻は、フェロモンだけを目印にしているのではなく、太陽の方向や、周りの状況からも 大雑把な巣の位置を把握しているらしいと言われています。


 そこで、本シミュレーションでは 蟻の行動パターンを以下の様に定義しました。
  
    /* 環境
    * A:空間を碁盤の升目状に分割する。また、蟻の移動を阻害する障害物(水溜り等)は無い。
         * B:空間の大きさには限りがあり、その端以上には移動できない。(水槽の様な容器の中に飼われている蟻を考える)
    */

        /* 行動パターン
         * A:移動:速度:1升、 方向:将棋の王将と同じ動き。
         * B:センサー:足跡フェロモン感知   濃度と方向を感知可能。
         *          餌フェロモン感知    濃度と方向を感知可能。
         * C:太陽コンパス:太陽位置等から巣の相対方向を知る+巣からの距離推定。(巣の位置を移動距離と方向から推定)
         * D:内部センサー:蟻体内のエネルギー(体力)が少なくなったならば、帰巣する。
         * E:行動モード
         *  E-1餌探しモード
         *    ・移動方向(次の移動升を下記規則で選択):
         *     →ランダム方向の探索。
         *      但し、巣の方向から離れる方向&足跡フェロモン濃度の少ない方向を選びやすい。
         *    ・足跡フェロモンを地面現在いる地面につける。餌フェロモンはつけない。
         *  E-2腹減り帰巣モード
         *    ・移動方向(次の移動升を下記規則で選択):
         *     →自分の居ない升で足跡フェロモン濃度の高い方向で 且つ、巣の方向を選択しやすい。
         *    ・足跡フェロモンを地面現在いる地面につける。餌フェロモンはつけない。
         *  E-3餌持ち帰りモード
         *    ・移動方向(次の移動マスを下記規則で選択):
         *     →自分の居ないマスで足跡フェロモン濃度の高い方向で 且つ、巣の方向を選択しやすい。(巣方向が多少優先)
         *    ・餌を持ったときには、餌フェロモン+足跡フェロモンを地面につける。
         *  E-4餌方向移動モード
         *    ・移動方向(次の移動升を下記規則で選択):
         *     →餌フェロモンの濃度の濃い方向を選択しやすい。 但し、巣の方向と逆方向を選択しやすい。
         *    ・足跡フェロモンを地面現在いる地面につける。餌フェロモンはつけない。
         * F:行動モードの変化
         *    ・初期値=餌探しモード
         *    ・エネルギーが一定以上&餌なし=餌探しモード
         *    ・エネルギーが一定以下&餌なし=腹減り帰巣モードへ変化
         *    ・餌を見つけた場合=餌持ち帰りモードへ変化
         *    ・餌なしで一定濃度以上の餌フェロモンを見つけた場合=餌方向移動モードへ変化
         *    ・餌なしで餌フェロモン濃度が検出できなくなると、エネルギー状態によって=餌探しモード、腹減り帰巣モードのいずれかに変化
         * G:同一の巣のフェロモンの臭いは同じ。(個々の蟻を区別しない)
         */          


<シミュレーション>

 一匹、一匹の蟻を 「非学習・反射型」のエージェント と考えます。 一回の計算で、蟻は1升分移動する事が可能です。 一匹の蟻エージェントが次に移動する可能性は、「北西」、「北」、「北東」、「東」、「南東」、「南」、「南西」、「西」の8方向です。 
  次に蟻が移動する確率を 上記<原理>で説明した行動原理に従い計算します。 次に、8升のルーレットを用意し、移動する確率の大きい方向の升目ほど広げます。

      

  ここで、ルーレットを動作させ、玉の落ちた升目が次の移動方向になります。(升目の広いところが選択されやすい:モンテカルロ法)  このようにして、蟻エージェントは次に移動する方向を決定し、1升移動します。 (尚、一つの升内に、複数の蟻が存在することは「可」としました) このときに、フェロモンを地面につけます。
 フェロモンは、揮発性なので、時間経過とともに薄くなっていきます。


 
 本シミュレーションでは、下図に示すとおり、 巣:黒い丸、 餌:赤い四角で表しました。 蟻の餌は一つのみとし、巣から出てきた蟻は、巣の周りを餌を求めて探索します。 このとき地面につける足跡フェロモンは青色で示します。 餌を見つけた蟻は、餌の一部を持ち帰りますが、このとき地面に餌フェロモンをつけます。 これを赤色で示します。  両フェロモンも時間と共に 揮発し、薄くなっていきます。
 尚、蟻の現在状態を把握するために、餌を運ぶ蟻は、赤い目印を  、 餌フェロモンを検出した蟻は、緑の目印  をつけました。
 餌を探しても持ち帰られなかった蟻は、巣に戻ると、体力を回復させるため 巣穴の中で、餌を食べたりしてしばらく体力の回復を待ってから外へ出て行くものとします。(全蟻が巣から出払ってしまわないための処理)  
 餌は、次第に蟻たちによって持ち去られ、次第に小さくなっていきます。 餌が完全になくなると、別な場所に餌が撒かれます。(同時に複数の餌は無し)
  (.mp4形式動画:60MByte)

                           シミュレーションの様子

 シミュレーション上では、上記蟻の行動原理の調整のため、いろいろな変数(たとえば、フェロモンの濃度差をルーレットの升目の大きさに反映させる係数、 生体内コンパスの影響を示す係数等)は、 何度もシミュレーションを実行して、試行錯誤で調整したものです。(この過程を 遺伝的アルゴリズムによって自動調整できるようにしたいですが、それは次の発展系にという事で別な機会に製作する予定です。)

<参考文献> 

1) 名古屋大学 大学院情報科学研究科 創発システム論講座 鈴木麗璽    アリのフェロモンを使ったえさ取り行動  <http://www.alife.cs.is.nagoya-u.ac.jp/~reiji/aw/ants.html >
2) Haraguchi+Tsukasa アリのシミュレーション:道しるべフェロモンを利用した採餌トレイル形成  <http://lazylifeeasyexit.blog67.fc2.com/blog-entry-52.html>
3)  日大生産工 小野里実、 野々村真規子   蟻の行動とシミュレーション (2012.12.1)<日本大学生産工学部第45回学術講演会講演概要   <http://lazylifeeasyexit.blog67.fc2.com/blog-entry-52.html>
4) 山根圭輔,アクセンチュア  アリの生態にみる自己組織化のルール  2006年02月15日  <http://www.itmedia.co.jp/im/articles/0602/15/news109_2.html>
5) 角畠 浩 - 富山大学大学院 生命融合科学教育部  社会性昆虫の交通流  <http://www.ils.u-toyama.ac.jp/content/text/seitai/Kakuhata/Kakuhata.html>
6) 京都工芸繊維大学院 工芸科学研究科教授 山岡亮平氏  第8回 ネイチャーテクノロジー研究会 講演抄録 
  【テーマ】アリをフェロモンで操れるか?−自然のメカニズムを探る−   2009年7月23日  <http://www.cho-monodzukuri.jp/program/2009/07/8.html>

キーワード: 蟻、エージェント、フェロモン、行列、群知能、Javaプログラム、シミュレーション


(JAVAプログラム実行へ)                                   (Topへ)

初版:2014/04/19 |

<補足>
 
 1)制作した別の人工生命プログラム(人工生命進化シミュレーション実験:C++ソースプログラム付き)
 2)魚の群れ行動シミュレーション(捕食者/被捕食者あり)(Javaソース付き)




蛇島伸吾