遺伝的アルゴリズムとは?

 遺伝的アルゴリズムとは、生物の遺伝現象にヒントを得た、つまりメタファー的転用をした、計算における最適な答え(つまり解)を求める方法です。その手続きとは、次のようにします。まず(1)データ(解の候補)の組み合わせを遺伝子で表現した「個体」を複数用意します。そして(2)適応度の高い「個体」を優先的に選択して交叉(組み換え)や突然変異などの操作を繰り返しながら最適な答え(つまり解)を探索するという方法をとります。この場合も(進化遺伝学にヒントを得た)「適応度」は「適応度関数」によって与えられるものとします。/この手法の利点は「評価関数」の可微分性や「単峰性」などの知識がない場合であっても適用可能なことです。ちなみに評価関数とは「ゲームの局面の状態を静的に評価し数値に変換する関数」のことで、「単峰性(たんほうせい)」とは、あるリズムや分布のなかでピークがひとつしかないことを指します。ただし、遺伝的アルゴリズムによる解の探求ができる条件は、それを取り扱う対象の、評価関数の全順序性と、探索空間が位相(トポロジー)を持っていることだといいます。つまり、隣あう数値の関係には、なんらかの秩序性をもっていて、予測できないような突然性がないということになります。この突然性は、解を求める時には操作的に引き起こす道具の性質になりますが、出てきた解(=帰結)の組み合わせには秩序性やバランス性がある――なぜなら適応度が解が求められる審級になっているからです――ということだろうと思われます。
 1975年にミシガン大学のジョン・H・ホランド(John Henry Holland)によって提案された近似解を探索するメタヒューリスティックアルゴリズムだと言われています。ヒューリスティックとは「発見的」という意味で、メタとは、発見される次元とは異なる次元という意味で、現実での「最適化」という探求の方法を、遺伝現象での「最適化」の探求全体に置き換える(=メタ化)ということでしょう。人工生命同様、偶然の要素でコンピューターの制御を左右する方法のひとつであり、現在四つある主要な進化的アルゴリズム(他に、(ii)遺伝的プログラミング、(iii)進化戦略、(iv)進化的プログラミング)の一つであり、その中でも最も一般的に使用されているものです。」
出典ともに(http://bit.ly/OAmpMU)ただし文体は敬体に変えると共に加筆しました。