遺伝的アルゴリズムのプログラム例

  提示したプログラムは,以下に示す3つの2変数関数の最小値を求めるためのものです.一様交叉,一般的な突然変異,及び,エリート+ルーレット選択を使用しています. → 

  1. f = (x - 1)2 + (y - 2)2  最小値:(1,2) で 0.0
  2. f = 100(y - x2)2 + (1 - x)2  最小値:(1,1) で 0.0
  3. f = (1.5 - x(1 - y))2 + (2.25 - x(1 - y2))2 + (2.625 - x(1 - y3))2  最小値:(3,0.5) で 0.0

コンパイルした後,入力データ記述ファイル「i_data」を適当に修正し,コマンドラインから,

test < i_data

と入力してやることによって実行できます.

  入力データ記述ファイル「i_data」は,例えば,以下のように記述します.
世代交代数 1000 乱数の初期値 12345 関数 1 出力 100
個体数 20 子供の数 20 遺伝子長 20
エリート 2 突然変異率 0.03
    
上に示した各データにおいて,日本語の部分は次に続くデータの説明になっていますので,数字の部分だけを修正してください.日本語の部分を変更しても構いませんが,削除したり,間に半角のスペースを入れるようなことはしないでください.各データの意味は以下に示す通りです.

SEの基礎知識目次 ホームページ