アメリエフの技術ブログ

Amelieff Staff Blog

遺伝的アルゴリズム

遺伝的アルゴリズム(以後GA)」とは、生物の進化を模倣した最適化アルゴリズムです。

「無数のルートの中から近道を探す」というような問題のように、複数の選択肢の中から最適なもの(解)を選択したいときがあります。そんなときは、最適化アルゴリズムの出番です。最適化アルゴリズムの中で、バイオ系研究者にも親しみやすいのがGAです。

個体群が、選択・交叉・突然変異によって環境条件に適応するように何世代にも渡って進化を繰り返すと、生き残った個体はものすごく優秀だと言えます。

GAの最初のプロセスとして、個体の表現方法と評価方法を考える必要があります。これらは解決したい事象によって工夫しなければならないものですが、「遺伝的」という名前の所以となるプロセスが以下の3つです。
・選択(淘汰):評価の高い親を選ぶ
・交叉:選ばれた親(ペア)から子供を生成する
・突然変異:任意の確率で突然変異を起こす

遺伝的アルゴリズム」というネーミングについては、「遺伝的」というより「進化的」といった方がしっくりくる気もしますが、「進化的アルゴリズム」というものがGAの1つ上の階層に存在していて、GAは進化的アルゴリズムの一種なのだそうです。Wikipediaによると。

GAはRのパッケージとしても用意されているので、なにか最適化問題に直面したときは、どうぞ使ってみてください。