スキーマ定理を頭のすきーまに置いておきたい
スキーマ定理
こんにちは。ぬまです。今回は遺伝的アルゴリズム(GA)での探索をする際の基本原理であるスキーマ定理についてまとめたいと思います。
そもそもGAとはなんぞやという方はこちらを参照ください。
サルでもわかる遺伝的アルゴリズム - numa7pu’s diary
スキーマ定理とは
遺伝アルゴリズムにおいてある遺伝子の特徴がどのように次の世代に遺伝していくかを示した定理. 遺伝子の部分列をスキーマといい, このスキーマをもつ遺伝子の数が遺伝演算によって次世代でどのように変化するかを確率的に示す事ができる.
わかりやすいですね。簡潔です。私もここまでまとめたいのですが、説明しがちなので、どゆこと?という人向けに説明します。
そもそもスキーマってなんやねん
スキーマとはGAにおける遺伝子の集団に保持される部分構造で0, 1, * で表される。*は0,1どちらでもよいという意味でワイルドカード記号ともdon't careとも呼ばれる。
具体的には、
H = * * 1 1
のスキーマについて考えると各個体0 0 1 1, 0 1 1 1, 1 0 1 1, 1 1 1 1がスキーマHに属するという。
すなわち、スキーマHがわかると集団の特徴がわかるということになる。
さらに、スキーマについて語るのに外せないのがスキーマの定義長とオーダーという概念。
スキーマの定義長
のように書き、左から見て最初の*以外の文字と最後の*以外の文字との距離である。
例えば
変数
集団のサイズ | |
---|---|
各個体(遺伝子コード)の適応度 | |
文字列の適応度 | |
スキーマの適応度 | |
集団の平均適応度 | |
世代におけるスキーマに含まれる文字列の数 | |
遺伝子の長さ | |
スキーマの定義長 | |
スキーマのオーダ | |
交叉確率 | |
突然変異確率 |
これらを用いて、次世代のスキーマHの数を交叉も突然変異もない場合、交叉のみ起こす場合、突然変異と交叉を起こす場合の3通りを考える。
スキーマ定理(メイン)
スキーマ定理を3通りから導出する。遺伝的アルゴリズムは遺伝子操作に交叉と突然変異があるため、スキーマの定理は最後の式となる。
交叉・突然変異がない場合
個体は全個体の適応度の中に占める適応度の割合で次世代に残るので
となる。
交叉のみの場合
定義長が長いと交叉が起きたときにスキーマが破壊されやすくなる。さらに、交叉点がの中にあるときに破壊される。よって
となる。
まとめ
いかがだったでしょうか?
難しかった人も簡単に理解ができた人もみなさんの頭のすきーまに残ってくれると嬉しいです。
今回はGAを語る上で大切な基本定理スキーマの定理を紹介しまとめた。面白い定理です。
それではまた。
参考文献
スキーマ定理とは何? Weblio辞書
http://mikilab.doshisha.ac.jp/dia/monthly/monthly03/20030602/personal/GA/01_mori.pdf