LGPC for spiral

LGPCによるspiral problem(らせん問題)を解法するシミュレータです

これはパターン認識の基本的な非線形問題です。

Problem Setting

spiral問題の設定を行います。

訓練用のデータを入力します。Loadボタンを押してファイルから入力することもできます。サンプルがダウンロードファイルの中に添付されています。

確認用のデータはspiralでは使いません。

Training DataとValidation Dataをグラフプロットします。

GPにおいて用いることができる関数を指定します。

GPの終端記号として使う定数値の設定です。値の範囲と刻みを入力してください。

変数の名前を入力します。

Population

進化の方法を設定します。

一世代における人口の数を設定します。

実行終了する世代数を指定します。

次世代に生き残る遺伝子の、選択方法を指定します。ルーレット、トーナメント、ランダムの3つの方法があります。また、エリート戦略をとる場合は、次世代に残す個体数を指定します。

遺伝子の長さの制限と、はじめの遺伝子の深さを指定します。

交叉と突然変異の起こる確率を設定します。

初期状態の各ノードに関数が入る確率と終端記号(定数・変数)が入る確率を決めます。

Results

結果を表示します。

左上の2つのグラフは、最も適合度の高い個体の適合度とその個体の遺伝子長、またその世代の平均の遺伝子長を表示します。左下には最も適合度が高い個体の遺伝子コードが表示されます。また右のグラフではTraining Dataと得られた遺伝子の表現型を示しています。はTraining Data、はTraining Dataの反転領域、は得られた関数の値(表現型)を表します。

実行結果の例

すべての関数を使用可能にして、Population Sizeを3000、Generationを2000、Tounament方式でエリート数を20%、交叉0.5突然変異0.5のように設定した実行結果です。実行にはふつうのパソコンで1日程度かかります。初期条件によりますが、Best Individualが22というのはかなりよい値です。環境が変わらないので、進化は200程で定常状態に達し、進化のスピードは指数関数的に鈍くなっているのが分かります。