忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

Silverlightで遺伝的アルゴリズム

Silverlightで仮想のロボットを、光を追いかけるように進化させました。



赤い丸が光で、黒い丸(に矢印がついたもの)がロボットです。
光はマウスポインタで操作することができます。

ロボットははじめのうちは光を追いかけようとはしません。
しかし世代を経るにつれてだんだんと光を追いかけるようになっていきます(数分くらいかかります)。
右上のグラフはそのスコア(を上下に反転したもの)です。

時間が経つに連れてスコアが良くなっていくのがわかると思います。
また、ロボットがより効率良くマウスポインタを追いかけるようになるのもわかると思います。

ロボットの仕組みはこうなっています。
ロボットには8つの光センサーと2つのタイヤがついています。
8つのセンサーからの出力は重み付けられた和となってタイヤに与えられます。
シンプルな構成です。

この重みをこのSilverlightでは変化させていくのです。
結果ロボットは光を追いかけるようになっていきます。

おまけ

プロジェクトファイルです。

拍手[0回]

PR