LGPC for ant
LGPCによるant problem(アリの食餌最適化)を解法するシミュレータです
ここにはProblem Setting,Population Setting,GPRunの3つのシートがあります。以下それぞれの内容を見ていきましょう。
Problem Configuration
プログラムに解かせる問題の設定を行います。
- Field size
餌を撒くフィールドのサイズの設定です。8から20までの値をとることが出来ます。
- Initial energy
アリの初めに持っているエネルギー値です。
- Training Data
訓練データです。フィールドのマスをクリックすることで餌を撒くことが出来ます。アリのス タート地点は赤で、あなたの撒いた餌は緑で示されます。
- Validation Data
テストデータです。このデータを使って発生した個体の評価をします。
- Functions/Non terminals
GPで使う非終端記号を選択します。次の3つの関数が選べます。
- if food is ahead then A else B …もし餌が目の前にあればAを無ければBを実行する。
- prog2 A B …Aを実行した後にBを実行する。
- prog3 A B C …Aを実行した後にBを実行し、その後Cを実行する。
- Terminals
GPで使う終端記号を選択します。アリには、前進(Move forward)右に曲がる(Turn right)左に曲がる(Turn left)の最大3つの動きが許されています。
Population Setting
GPに使うパラメータの設定をします。
- Number of Population
集団の数を設定します。以下のパラメータは各集団ごとに設定することが出来ます。
- Population Size
個体数を設定します。
- Generation
何世代進化させるかを決めます。
- Selection Method
戦略を決定します。戦略にはルーレット方式(Proportional) トーナメント方式(Tournament)ランダムの3つがあり、オプションとしてエリート戦略をとるかどうかを選択することが出来ます。
- Restriction on Genes
遺伝子の制限を設定します。遺伝子の最大長を決めます。
- Rate of GP Operations
交叉(Crossover)や突然変異(Mutation)の起こる確率を決めます。
- Initial Ratio of the Nodes
初期状態の各ノードに関数が入る確率と終端記号が入る確率を決めます。
- Break Point
設定した値世代ごとに計算を止めることが出来ます。
Result
各集団を進化させた結果を示すシートです。
左側にはその世代で最も優秀な個体の適合度や遺伝子長、全個体の平均遺伝子長などがリアルタイムに示されます。右上は最も適合度が高い個体の遺伝子コードで、右下はその世代で最も効率よく全ての餌にたどり着いたアリの動きを示しています。