遺伝的アルゴリズムはようするにパズルを解くための効率的な方法である。パズルはなんでもいい。クロスワードでもいいし、迷路でも構わない。これを頭を捻らずに計算機に解かせるやり方の一つが遺伝的アルゴリズムである。 例として、クロスワードパズルを考えよう。

クロスワードパズル
       P
       R
  M    I
  E    N
  D   IT
  I   DE
 □□□□□□□
 E PLY
 M USS
 O  IT
 R   E
 Y   M

答えはMACUSER読者の皆さんならすぐに解ってしまうけれど、全然、解らないとしよう。計算機にやらせる場合の一番簡単な方法は7文字分の空きに順番に文字を入れて行き、縦のラインの単語が辞書にあるかどうか調べていき、正解がでるまで計算機をガンガン回すと言うもの。これは、要するに総あたり線だから死ぬほど大変。時間もすごくかかる。そこで、これを遺伝子の進化にならったアルゴリズムで解こうと言うのが遺伝的アルゴリズム。
まず、適当な初期の文字列、たとえば、ABCDEFGから始める。これが遺伝子であり、これが進化する。まず、突然変移。7文字のうちの一文字が変化する。例えば、3文字目がKになって、ABKDEFG、とか。これでゴールにたどり着くのはとっても大変なので、「生殖」を持ち込む。つまり、突然変移し続ける7文字の「遺伝子」を持ってきて、時々「結婚」させる。具体的には、遺伝子を半分にちぎって交換する。例えば、ABKDEFGとLKJHGFDの結婚なら、ABKDEFGをABKとDEFGに、LKJHGFDをLKJとHGFDに分けて、遺伝子を交換する。出来上がったのは、ABKHGFDとLKJDEFGである。これに、無性生殖を加える。正解に近い遺伝子、例えば、MVCGSTRとかKAGYSERをABKHGFDやLKJDEFGよりも優先して増殖させる。そうすると、正解に近いもの同士で「結婚」しやすくなり、早く正解にたどり着けるわけだ。
なんだか、こんなのでうまくいくなんて、嘘臭いが、嘘と思う人はNeotericsをプレイしてみて欲しい。これはBugsの高級版でグラフィックスはプアだが、遺伝的アルゴリズムを使った生き残りゲームである。植物と昆虫がいて、昆虫は植物を食べながら増殖するのだが、うまく植物を捜し、早く食べて素早く子供を作らないと寿命が来て死んでしまう。setupの中のcrossoverの確率が「結婚」の確率で、これが小さいと「正解」にたどり着けず亡びてしまう。この場合の遺伝子、つまり、クロスワードの文字列に当たるものは個々の虫が持っている行動のルールであり、これはニューラルネットで記述されている。