LoginSignup
6
6

More than 3 years have passed since last update.

遺伝的アルゴリズムをブラウザで実行できるフレームワークの実装

Last updated at Posted at 2020-08-02

遺伝的アルゴリズムをブラウザで実行するためのJavaScript用フレームワークを実装しました。

GA Framework
https://github.com/technote-space/ga-framework

テンプレートリポジトリ
https://github.com/technote-space/ga-framework-template

技術・特徴

Web Worker

遺伝的アルゴリズムの計算を同じプロセスで行うとブラウザの動作が固まってしまうので Web Woker を使用して別プロセスで計算します。

欠失・挿入

遺伝子長の変化を伴う突然変異を考慮しています。

島モデル

多様性の保持のための島モデルを標準でサポートしています。
またテンプレートリポジトリには異文化型島モデルの考えを採用した世代交代モデルも実装しており、島のいくつかに混ぜることでより多様性が必要なネットワーク構造を持つモデルなどで有効な可能性があります(未検証)。

Minimal Generation Gap

テンプレートリポジトリには世代交代として MGG が実装されています。
淘汰圧の強い SGA は普段使わないので用意してないですが、実装して使用することはできます。

デモ

Hello,World! 文字列の作成

  • 遺伝子型:整数列
  • 表現型:文字列

HSP3で遺伝的アルゴリズムをした話 〜遺伝的アルゴリズムの概略と「ムダにクリエイティブ」な"Hello,World!"〜

こちらの記事の例と似たものをこのフレームワークで実装したものです。
「Hello,World!」 という文字列を作成します。

デモ
https://technote-space.github.io/ga-framework/samples/hello-genetic-algorithm/

実装
https://github.com/technote-space/hello-genetic-algorithm

hello.gif

離れていても心は一つ

  • 遺伝子型:実数列
  • 表現型:画像

遺伝的アルゴリズムを使って「離れていても心は一つ」を自動化してみた in Python

こちらの記事の例と似たものをこのフレームワークで実装したものです。
いくつかの円で入力画像に近い画像を作成します。

デモ
https://technote-space.github.io/ga-framework/samples/auto-figure-ground/

figure-out.gif

アルゴリズム自動生成

  • 遺伝子型:整数列
  • 表現型:グラフ構造

研究中のアルゴリズム生成自動化技術をこのフレームワークで実装したものです。
階乗、フィボナッチなどを求めるプログラムを自動生成します。

デモ
https://technote-space.github.io/ga-framework/samples/automatic-programming/

auto.gif

利用方法の詳細

:construction: Under Construction...

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6