D04 Pattern Generator by GA (for Self-assembly system)

D04 Pattern Generator by GA (for Self-assembly system)

本ソフトウェアはセルフアセンブリシステムの研究用として開発中のものです。

セルフアセンブリとは、構成要素による局所的な相互作用 によって、自律的に、熱的に安定な構造を形成する現象を指します。
田中浩也研究室ではこうした現象を比較的なマクロなスケールで実現するための人工のセルフアセンブリシステムの研究を行っています。
現在研究中のセルフアセンブリシステムは以下の図にあるように,要素モジュール,要素モジュールを入れる領域,領域に与えるエネルギーから成り立っています.

 

以下の動画にもあるように、領域内に要素モジュールを配置し,その領域に外部からエネルギーを与えて要素モジュールを運動させることで,相補的な要素モジュール同士が結合していき,最終的に一つの形状に安定していきます.

ここで用いる要素モジュールは、以下の図のように、磁石と凹凸のパターンが側面に配されているデザインとなっています。
これにより、相補的なパターンを持っている要素モジュール同士のみ、磁力で結合することが出来るようになっています。

このようなセルフアセンブリシステムにおいて,予め狙った形状にアセンブリさせるためには,以下の図にあるように,まず,目的形状を構成するのに必要な要素モジュールのセットを求め,その後,それらの要素モジュールの側面に配するための凹凸と磁石からなるパターンを生成する必要があります.

要素モジュールのセットを求めるソフトウェアは現在開発中であり、ここで公開しているのは要素モジュールの側面パターンの生成ツールになります。
このパターン生成ツールを用いて、結合エラーが生じないように遺伝的アルゴリズムを用いてパターンの最適化を行います。

生成されたパターンをもとに、要素モジュールをモデリングし3Dプリンタなどで制作し磁石をはめ込みます。
そして、制作した要素モジュールを上の動画にもあるように容器に入れ、振ることで、目的の形状がアセンブリされます。

 

ソフトウェアの使い方

まず、左上のスライダーで必要なパラメータ数を設定します。
次に、その下のgenerateボタンをクリックすることで、最適化が始まります。

右上のスライダーは、遺伝的アルゴリズムで用いる交叉率、変異率、トーナメント選択で選択する個体数、全個体数となります。
デフォルト値でも最適化を行うことはできますが、目的のパターン数が多い場合は局所解に陥る場合がありますので、その場合、これらの値を操作して局所解から抜け出すよう促すなど効率よく最適化を進めることも可能になっています。

最適化が完了すると計算が終了しますのでパターンを記録して使用します。

 

source code (processing)