第1話 ノンパラメトリック最適化入門
初期バージョンリリース時より、お客様から「どのような理論に基づいて最適化しているのか?」といった類のご質問をよくお受けします。 確かにユーザーの立場からすれば、理論的な背景を良く理解せずにソフトウェアを使うのには抵抗があるでしょうし、理論が分かっている方が様々な局面でより的確な利用方法が思いつくことでしょう。 ところが、最適化に関する論文の多くは普通のエンジニアが読み進めるには数学の記述が難解で、理論の本質に辿り着くまでが大変です。 また、私を含めて弊社の社員が OPTISHAPE-TS の技術的な説明をさせて頂く機会は多々あるのですが、時間の制約もあってなかなか理論の詳細にまで踏み込むことができません。
そこで、この技術コラムでは OPTISHAPE-TS の最適化機能で使われている理論についてなるべく分かりやすく解説していきます。 なるべく正確な記述を心掛けますが、普通のエンジニアが読み進められる程度の難易度の文章であることを最優先にします。 数学に詳しい方が読むと物足りない面があるかもしれませんがご了承ください。 その上で、何か看過できない記述ミスなどがありましたら、ご意見・ご感想フォーム よりご連絡ください。
*****
ここからが本題です。
まず当面は、OPTISHAPE-TS の主要な最適化機能に採用している「\(H^{1}\) 勾配法」という方法について解説していきます。
OPTISHAPE-TS には様々な最適化手法が実装されておりますが、それら全てを一言で言ってしまえば「ノンパラメトリック最適化」というカテゴリーに分類されます。 そのノンパラメトリック最適化問題の有力な解法が「\(H^{1}\) 勾配法」なのです。
構造最適化は「パラメトリック最適化」と「ノンパラメトリック最適化」の二つに分類できます。 パラメトリック最適化は、板の幅、長さ、板厚、円孔の直径などの設計変数(設計パラメータ)を対象とした最適化です。 このような最適化機能は多くの CAD ソフトウェアに実装されていますので、使用された経験がある方も多いのではないでしょうか?
一方、ノンパラメトリック最適化は OPTISHAPE-TS ユーザーにはお馴染みですが、「トポロジー最適化」や「形状最適化(ノンパラメトリック形状最適化)」などの総称です。 以前はノンパラメトリック最適化と言えば「トポロジー最適化」と「形状最適化」の二種類がある、と言っていればよかったのですが、現在はそれ以外にも多くの方法が提案されています。 ここでは、「メッシュ移動型」と「メッシュ固定型」との二種類に分類しましょう。
メッシュ移動型は、計算の過程で有限要素メッシュを移動させて最終的に最適な形状を得ようとする方法です。 この方法の代表格が「形状最適化」です。 この手法はパラメトリック最適化と混同される事が多いので、敢えて「ノンパラメトリック形状最適化」と呼ぶこともあります。 これは数学的に言えば、元の形状から最適形状に至る「写像関数」を定義して、その写像関数を対象に最適化を行う、という方法になります。
メッシュ固定型は、有限要素メッシュ上にある関数を定義します。 その関数は「密度関数」や「レベルセット関数」等と呼ばれ、材料の配置と関係付けられます。 例えば、密度関数が \(1\) の部分には材料を配置する、密度関数が \(0\) の部分には材料を配置しない、という関係です。 その上で、有限要素メッシュ自体は移動させずにその関数を変動させます。 つまり、有限要素メッシュ上に定義された関数を対象とする最適化を行う方法と言えます。
以上のように、パラメトリック最適化は独立したいくつかの設計変数を対象とするのに対して、ノンパラメトリック最適化は「メッシュ移動型」「メッシュ固定型」の いずれの場合も関数を対象とした最適化を行います。 “関数を最適化する”というと、なかなかイメージしにくいかもしれませんが、\(H^{1}\) 勾配法を理解する上では非常に大事な概念になります。
*****
次回は最適化問題としての難しさ、という視点で関数の最適化について解説します。
★ご意見・ご感想はこちらへ★
https://www.quint.co.jp/cgi-bin/qrepo-impr.cgi