![見出し画像](https://assets.st-note.com/production/uploads/images/70268970/rectangle_large_type_2_ddc8956011c859593bf4ff99268b85c0.png?width=1200)
Galapagos-最適化
『Galapagos』は、遺伝的アルゴリズムにより最適化を行うコンポーネントです。
なんと別途アドオンを入れなくてもデフォルトで使用できます。
ただし、目的関数は1つとなっており、多目的最適化を行いたい場合は、別アドオンで『Octopus』を使用します。
では、
『Galapagos』について、事例を元に解説
していきます。
![画像2](https://assets.st-note.com/production/uploads/images/70268209/picture_pc_d44c7179b5fa833069add93fc123e2ec.png?width=1200)
Rhino上で適当に描いた多角形CurveをGrasshopperの『Curve』コンポーネントで取得し、
任意の回転角をスライダーで変化させ、そのときのBoundingBox(Curveを包絡する矩形)の面積を最小化することを考えます。
上図は回転角0°のときで、面積は約872でした。
次に、角度を適当に変化させると、下図のように、面積は約1051となりました。
![画像3](https://assets.st-note.com/production/uploads/images/70268223/picture_pc_4222e7096390796f32f800e4b6085483.png?width=1200)
では、回転角をいくつにした時が最もBoundingBoxの面積を小さくできるでしょうか?
実際の問題をイメージすると、ある形状を板取りする際の効率化問題ですね。
『Galapagos』コンポーネントは少し変わっていて、インプット・アウトプットが左右にある一般的なコンポーネントの形状と異なります。
コンポーネントの左側にある『Genome』が変化させるパラメータの接続になり、下側にある『Fitness』が最大化または最小化したい目的関数(値)の接続になります。
注意点
として、接続する際には、『Galapagos』コンポーネントからワイヤーを引っ張り出し、それぞれのナンバースライダーや目的関数(値)コンポーネントにつなぎます。
逆はなぜか接続されてくれません。
『Galapagos』は単一最適化なので、『Fitness』に接続することができるのは1つだけとなります。
『Genome』につなぐパラメータは複数でも可能です。その場合は、Shiftキーを押しながら追加のコンポーネントを接続します。
では、次に
最適化を実行
します。
![画像4](https://assets.st-note.com/production/uploads/images/70268245/picture_pc_4df244d575cbe4e6038c055d64d70c60.png?width=1200)
『Galapagos』コンポーネントをダブルクリックすると、上図のパネルが立ち上がってくるので、ここで最適化する際の設定を行います。
必ず触らないといけないのは、GenericにあるFitnessの『Minimize』か『Maximize』です。『-』『+』のマークをクリックすることで切り替わります。
その他、詳細設定もできますが、特に触らなくても実行可能です。
設定ができれば、いよいよ最適化の実行です。『Solvers』タブに切り替えます。
![画像5](https://assets.st-note.com/production/uploads/images/70268265/picture_pc_904fc04675d265d9cc104f42d6865b8a.png?width=1200)
あとは『Start Solver』をクリックすれば、最適化の計算が開始されます。
実行時の設定
として、右側に並んだ時計のようなマークを1番左にすると各パラメータ値ごとにRhino上で表示され、頑張っている感が出ます。
左から2番目だと各世代ごとに最もよかった結果だけが表示され、世代ごとに切り替わっていきます。
3番目だと、すべての世代計算後に最良の結果に表示が切り替わります。
各世代ごとに数十の結果が残ってますので、パネル右下の帯の部分でクリックし、『Reinstate』ボタンをクリックすることで、結果を確認することができます。帯の左の数値は結果(値)です。
今回の事例では、186°のときに最も面積が小さくなり、約826だったようです。
↓GHデータが以下からダウンロードできます↓
いつもサポートいただきありがとうございます! これからもあなたの代わりに役立つ記事を更新し続けていきます。 どうぞよろしくお願いします。