GAとGP

平野,続・遺伝的アルゴリズムと遺伝的プログラミング,パーソナルメディア に軽く目を通した.「続」とあるが,私のように著者の実装したフレームワークを実際に使うことに興味がなく,むしろGA, GPの簡素かつ具体的な応用例を知りたいだけの読者にはこちらだけで十分と思える内容だ.正直言って良書ではない(要らない話が混じってたり).それでも,今まで頭に入らなかった*1ことがお陰様で頭に入るようになったので,まぁ3.5k円(生協価格)に文句は言わない.またいつか,もう少し丁寧に追うかも.
遺伝的アルゴリズム (GA: Genetic Algorithm) はパラメタの最適化手法,遺伝的プログラミング (GP: Genetic Programming) はその一般化でアルゴリズムの最適化手法らしい.「具体的にどう使うのか」については,まぁ本書の目次をどうぞ.
さて,してみればGPはメタプログラミングと不可分であり,本来ならLispこそがGPの実装に最適と言える((evalを持つ言語なら一応メタプログラミングができるので使えるが... 文字列の切った貼ったをきちんと隠蔽しないとならないので嫌だよね.)).実際LispはGPにおいてメジャーな選択肢となっている.

著者は「メジャーだから」とフレームワークの実装にC++を選択しているが,それは(よく見てないが)UI関連を除くと要するに「小さな関数型言語インタプリタ」のようだ.

*1:計算機の話なのでweb上にあれこれ解説や講義録が置いてあるにはあるんだが,具体例が乏しいと思った.また企業での応用が盛んらしいことが悪く働き,商売っ気のあるノイズが多くて困った.