2009年3月12日木曜日

遺伝子を0と1の列で、長さLのものとする
例えば L=10では
0100111001, 0001010001, 1110100010 等は遺伝子である

0と1と*の列で、長さLのものをスキーマという
例えば L=10では
**1*01**0*, ***100****, 1*011*10*1 等はスキーマである
スキーマHの*を適切に0か1に置き換え遺伝子gを作れる時
遺伝子gはスキーマHを持つ、という
左端から連続する*と、右端から連続する*をのぞいてできた列の長さを
スキーマHの定義長という
例えばスキーマ H=**1*01**0* の定義長は
**1*01**0* → 1*01**0 から7である

・スキーマ定理 (適当)
スキーマHを持つ遺伝子の適応度が
遺伝子全体の適応度よりも高く
スキーマHの定義長が短いほど
そのスキーマHを持つ遺伝子は指数関数的に繁殖する

つまり、JZやDEC命令を駆使してループ構造を指し示すいくらか定義長が長くなりそうなスキーマよりも
INC(x0)の位置命令を指し示す定義長1のスキーマの方が繁殖しやすい


・もしかしたら……
適応度が高くても
他の遺伝子との交叉によって
適応度の小さな個体が生じやすい遺伝子は繁殖しずらい?
ループ構造を持つプログラムは、適応度は高いが
他のプログラムとの交叉によって、ループ記述のためのJZ命令(goto命令)の部分が悪さをして
無限ループを発生させ、適応度を0にしてしまう
そのため、ループ構造を持つプログラムは生き残りにくい、と考える

どうすりゃええのん

0 件のコメント: