研究室 / 2008/05/04 (Sun) / 編集 |
[wikipedia]遺伝的プログラミングと『複雑系のシミュレーション』より
遺伝的プログラミング(GP)は遺伝的アルゴリズム(GA)の拡張で木構造(LispのS式表現で表記するのが慣例)を用いる。
木構造は以下のようになる。
ここで、
これをLispのS式で表すと
(program_A (increment x) (set x 2) (print x) )
になる。
このS式をGAのようにして進化させてゆくのがGP。
遺伝的プログラミング(GP)は遺伝的アルゴリズム(GA)の拡張で木構造(LispのS式表現で表記するのが慣例)を用いる。
S式の例
例えば以下のような「xをインクリメントしたあとにxに2を代入し、その後xを出力してxを返す」というプログラムだと木構造は以下のようになる。
ここで、
- 「program_A」や「x」「2」などの各文字を『ノード』という。
- 「program_A」のことを『ルート』という
- 「x」や「2」などの端っこにあるノードを『終端ノード/終端記号/葉』という。
- 「program_A」「set」「print」などの終端記号でないノードを『非終端ノード/非終端記号/LispのS式の関数記号』という。
- 自ノードの直下に直接つながっているノードを『子供/引数/LispのS式のアトム』という。(「set」の引数は「x」と「2」)
- 自ノードに上につながっているノードを『親』という。(「set」の親は「program_A」)
これをLispのS式で表すと
(program_A (increment x) (set x 2) (print x) )
になる。
このS式をGAのようにして進化させてゆくのがGP。
GPのオペレータ
GPオペレータは以下の3つ- 突然変異(Gmutation):ノードのラベルの変更 ex) (+xy) -> (+xz)
- 逆位(Ginversion):兄弟の入れ替え ex) (program_A (increment x) (set x 2) (print x) ) -> (program_A (set x 2) (increment x) (print x) )
- 交叉(Gcrossover):複数のS式間で部分木(木の一部)の入れ替え ex) (program_A (increment x) (set x 2) (print x) ) と (program_B (/x2) (* x 2) (print x) ) を交叉して (program_A (/x2) (set x 2) (print x) ) と (program_B (increment x) (* x 2) (print x) ) を作る
進化させる
オペレータが3つなのと構造(式)を操作すること以外は通常のGAと同じように「パラメータ(突然変異率や交叉率など)」をもとに各式に対してオペレータを実行し、「適応度」をもとに「選択」を行い次の世代を作るという作業を「終了条件」に達するまで繰り返す。PR
トラックバック
URL :
コメント
backlinks
Check out this crazy service that sends thousands of visitors to your web page automatically!
Hey yosilove.blog.shinobi.jp admin
I wanted to tell you about this website I used with great results, that drives thousands of targeted visitors to your site who are dying to spend money!
You’ve probably already know that creating great content is only half the battle when it comes to running a successful website. The second half of the equation is DRIVING TRAFFIC!
With this service, you can forget about the tedious process of posting backlinks because they do everything for you so you can focus on more important things, like dealing with the flood of traffic to your site!
And that’s not all! this service is SUPER AFFORDABLE and will direct thousands of new visitors to your site in just hours, GUARANTEED!
This is the only service that can skyrocket your page to the top of the search engines!
You can check it out here:
<a href=http://xrumerservice.org>backlink service</a>
Best,
Jason
Hey yosilove.blog.shinobi.jp admin
I wanted to tell you about this website I used with great results, that drives thousands of targeted visitors to your site who are dying to spend money!
You’ve probably already know that creating great content is only half the battle when it comes to running a successful website. The second half of the equation is DRIVING TRAFFIC!
With this service, you can forget about the tedious process of posting backlinks because they do everything for you so you can focus on more important things, like dealing with the flood of traffic to your site!
And that’s not all! this service is SUPER AFFORDABLE and will direct thousands of new visitors to your site in just hours, GUARANTEED!
This is the only service that can skyrocket your page to the top of the search engines!
You can check it out here:
<a href=http://xrumerservice.org>backlink service</a>
Best,
Jason