2000/10/02
遺伝的アルゴリズムの話1
私の大学での卒論は障害者のためのヒューマンインターフェース論(電子通信情報学会に報告済み、ちなみに某企業との共同研究。その企業が私の現在いる会社の親会社だったりする)だったのですが、学内研究は人工知能論でした。この遺伝的アルゴリズムというのは同じ人工知能論仲間のニューラルネットワークやファジー理論と比べると知名度が低いです。今日はその遺伝的アルゴリズムというものについて話します。
実際に商業使用されている例ですと10ヶ所にある電柱に電線を引くというのがあります。このとき、どの経路で電線を引けば電線のコストが安くなるのかというのをコンピュータでやらせようとすれば全ての組み合わせを求めるためには10×9×8×7×6×5×4×3×2通り計算しなければなりません。できればもっと少ない組み合わせで計算したいですよね。遺伝的アルゴリズムはこういうときに力を発揮します。遺伝的アルゴリズムができた背景には組み合わせ最適化問題に対して少ない時間で正解に近い値を求める必要があったからです。遺伝的アルゴリズムの基本的な流れは淘汰→交叉→突然変異です。このサイクルを何回か続けます。これはデータを生物の一つとみなして処理するためで、まさしく人工生命そのものです。順を追って説明しましょう。まず、遺伝子となる要素を取り出します。その遺伝子を最初はランダムに作成します。出来た遺伝子を評価します。評価の結果優秀となった遺伝子は残し、優秀でなかった遺伝子は捨てます。これで数が減りますから、残った遺伝子からランダムに二つの遺伝子をピックアップして、お互いの遺伝要素を交換させます。こうして元の数に戻った遺伝子のうちやはりランダムに選ばれた遺伝子の遺伝要素を別の数値に置き換えます。評価に戻ります。この方法を使うと、全ての組み合わせを調べるよりも少ない組み合わせで最適に近い値を求めることが出来ます。
この素晴らしいアルゴリズムがなぜニューロやファジーのようにメジャーになれないのか。その問題点を明日書きます。


 

Topへ