タイトルの通りです。
遺伝的アルゴリズムで気軽に遊んでみたかったのでJavaScript版のライブラリが欲しかったんですけど、
(熱心に探さなかったからか)特に見つからなかったんでJavaのライブラリ「JGAP」をゆるく移植しました。
とりあえず、JGAPと同じ「GNUライセンス」で公開をしてます。
遺伝的アルゴリズムって?
なんかまあ、そういうアルゴリズムがあるそうです。
遺伝と同じような方法を用いて「最適解」を見つけるという手段だそうです。
遺伝的アルゴリズムは、主に以下のようなことをしながら「最適解」を見つけ出します。
- それぞれランダムな「遺伝子=試行」を持ったもの(ゲノム)を複数個作成する
- ゲノムの交配を行い,子ゲノムも作成する
- それらのゲノムを特定の方法で評価し,評価値を割り出す
- 評価値を元に選別を行う
- 選別したゲノム達で再び交配,選別を繰り返す
そのようにしていくと、だんだんと評価値の高いものだけが残っていくという仕組みだそうです。
結構ゲームでは(シミュレーションなどで)使われているらしく、
いろんな動画を見てるうちにわくわくが止まらなくなってきたのですが
どうせなら気軽に遊んでみたいと思い、JavaScript移植版を作りました。
とりあえず作っただけだし最初の画像みたいにまだよくわからない数字が出るだけなので、
もうちょっとちゃんとしたものを作れたらもっとちゃんとブログ書くかもです。
ちなみに
JsGapはJGAPの機能をゆるく移植したものですが、ちょっと実際に両方を起動してみるとちょっと結果がちがったりします。
「JGAPに比べ、JsGapの結果一覧がどれも似通ってる」
これは、乱数の精度が理由のようです(なぜかJGAPでは、乱数の初期化が行われてない)
ピンバック: 遺伝的アルゴリズムで黒ギャルにハンバーガーをあげるお話 | たそがれブランチ