遺伝的アルゴリズムで楽しむ

galisa_20081210.jpg

遺伝的アルゴリズムは、普通に解こうとすると難解で複雑な問題の、ほぼ最適な解法を探り出すシンプルな手段となる。進化の過程、突然変異、交配、選択圧をシミュレートすることで、プログラムは問題の解法を導き出す。

Seth Justは、Perlで書いたシンプルでカスタマイズ可能な遺伝的アルゴリズムについて教えてくれた。一連の問題が一組ある場合、各"個体"をランダムに初期化する関数、個体を変化させる変異関数、もっとも強い数を持つ個体を組み合わせる交叉関数、個体の強さを算定する適応関数を、ユーザーが定義できる。彼のコードには丁寧な解説が付いていて、いろいろな問題に簡単に適用できる。

もうひとつ、彼は、ここでぜひとも紹介しておきたい面白いプロジェクトについても教えてくれた。上の、モナリザの絵が変化する写真は、Roger Alsingが作った遺伝的アルゴリズムの例だ。たった50個の半透明ポリゴンに90万以上の変異を加えることで、プログラムはポリゴンの位置や色を最適化して、びっくりするほどモナリザによく似た絵を作り出す。

geneticcar_20081210.jpg

もうひとつクールな例がある。このFlashビークルシミュレーターだ。2人の乗客を乗せた2輪の車両がランダムに作られる。この車両の適応度は、2人の乗客が地面に触れることなく、できるだけ遠くまで走れることで計られる。最初は、ほとんど走れない状態で反復されるが、進化が進むと、より頑丈な車両が作られるうようになり、地形に沿って走れるようになる。

Genetic Algorithms in Perl(英語)
Genetic Programming: Evolution of Mona Lisa(英語)
Genetic Car(英語)

- Jason Striegel

原文

Posted by Tetsuo Kanai | Dec 18, 2008 01:00 AM
Science, hacks | Permalink | Comments (0)

Recent Entries

Leave a comment



Bloggers

Welcome to the Make:Japan Blog. You'll find all the most up to date happenings in the Maker and Crafts world here.

Tetsuo KanaiTetsuo Kanai
Translator/Writer


Takumi Funada.Takumi Funada
Engineer


Hideo TamuraHideo Tamura
Editor


MAKE Japan.

Advertise here with FM.

Why advertise on MAKE?
Read what folks are saying about us!

Click here to advertise on MAKE!

Purchase MAKE.

Categories

Archives

Recent Posts