最適化後の領域の体積の目標値Vtargetも設定しましょう。2次元問題なので体積は(面積×板厚)となります。体積が目標値よりも大きくなったら全体の体積を縮小させるような荷重をかけます。図4のような荷重です。
Pcollectionは次式で決定します。
Rcollectionは人間が決める定数です。無次元数で1桁か2桁の数です。|Popti|aveは式2のPoptiのベクトルの大きさの平均値です。Pcollectionの大きさのオーダーをPoptiの大きさのオーダーに合わせるために導入しました。Vtarget、Vcurrent、Vinitialは以下の通りです。
式4の分子に(Vtarget−Vcurrent)があります。これは(目標値−現在値)に比例する量を対象物に与えるという意味で、フィードバック系が作られていることになり、「P制御(Proportional Controller)」となります。参考文献[1]では「PID制御(Proportional Integral Differential Controller)」を採用しています。こちらの方がデラックス感があるのですが、以下のような理由から、P制御で十分だと考えています。
通常のコンピュータを使った制御では1秒間に数千回以上、アナログ回路で制御系を構築したら無限回だけ制御ループを回すのに対し、領域最適化では十数回の繰り返しで最適化が完了します。I制御では積分をするのですが、十数回の繰り返しでは、被積分データをそろえることができず、I制御が成立しません。D制御では微分をして、現在値を目標値に早く近づける作用があるのですが、D制御のゲインを大きく取ると、図5のようなオーバーシュートや振動が生じます。これらを避けながら、早く目標値に近づけられるようにD制御のゲインを決めるのには数十回の計算が必要です。
PID制御のそれぞれのゲイン3個は、制御ループをたくさん回して実験的に決めることになるのですが、たとえP制御のゲインが決まったとしても、I制御を追加したらP制御のゲインを少し下げなければなりませんし、D制御を追加したら、P制御のゲインとI制御のゲインをまた変更することになります。3つも未知数があっては、何回の実験が必要になるでしょうか。たかだか十数回の繰り返しをするだけなので、この投資は回収できません。よって、P制御だけで十分です。
次の世代の形状を決めるための荷重は、次式となります。
Poptiを表す式2の第2項とPcollectionが、式1のΛに相当すると解釈しています。
Copyright © ITmedia, Inc. All Rights Reserved.