HOME

特集:最適化を考える

最適化について、ちょっと考えてみて

京都大学大学院 工学研究科 機械理工学専攻 西脇 眞二 教授

1.最適化について

最適化とは、ある条件の中で対象としているシステムあるいは要素の性能を可能な限り最大化する、システムの変数を求めることと言えます(数学的にはより厳密な定義がありますが、ここではそれほど厳密ではなく、これぐらいにしておきましょう)。

最適化の最も重要な課題の一つは、@最大化したい性能、A対象としているシステムあるいは要素の状態、B性能を最大化する際に制約となる条件を、どのように数学的に定式化するか、ということです。一般に、最大化したい性能は目的関数、状態と制約は制約条件として定式化します。また、性能は最大化し、目的関数は最小化するように定式化します。「状態」と普通に言う「制約」との違いは、制約条件が陰的に、あるいは陽的に記述されるかという違いと言えます。この定式化が所望の最適解を求める上で最も大切です。特に制約条件をどうするかは重要で、必要な制約は漏れなく入れておいた方が無難です。その一つを忘れただけでも、最適解は最悪解になる可能性もあるからです。ただ、あいまいな制約、例えば、決まっていない寸法をどう表現するか、また、システムの状態の記述とも関連するのですが、わからない外力をどう推定するか、といったことは極めて難問です。これはもう、過去の経験に拠るとしか言いようがありません。そういう意味からして、最適化により、性能が抜本的に改善され、かつ過去には全くない最適解を求めるということは、工学的には無理ではないでしょうか。所詮、制約条件の設定やシステムの状態は、過去の経験に拠らなければならないのですから。


図1 大域的最適解と局所的最適解

これに関連して、よく最適化の分野では、大域的最適解を見つけることが議論されますが、これも余り意味のないことで、せいぜい局所的最適解が求まれば良いのではないでしょうか。敢えて言えば、工学的には局所的最適解こそ意味のあるもので、大域的最適解が仮に求められたとしても、その解を工学的に利用することは難しいかもしれません。ここで大域的最適解と局所的最適解というのは、図1に示したように、対象としている領域全てにおいて目的関数が最も小さい値となる解が大域的最適解、ある限られた領域において目的関数が最も小さい値となる解が局所的最適解です。この意味を工学的に考えてみれば、局所的最適解は現状のある解からの改善案を示しています。これに対して大域的最適解は、性能は抜本的には改善されるものの、現状の解から全くかけ離れた解になる可能性があります。


実際の製品の設計・開発過程は、少しずつ改善を積み重ねて性能を向上させることに尽きます。このような実際の過程で大域的最適解を出された場合、寸法諸元等が全く異なっていれば、抜本的な改善が可能だとしても、開発者はその取り扱いに戸惑ってしまうでしょう。例えば、大規模な製品である部品の設計解に大域的最適解が得られたとしても、他の部品の設計諸元との調整に困ります。局所的最適解であれば、以前の解と比較して設計諸元にそれほど差がないので、調整が容易なのです。また、大域的最適解が本当に良い解であると納得することも難しいと思います。最適解がなぜ性能向上に繋がるかを開発者が納得することは、開発過程において大変重要です。それができているからこそ、通常の開発過程では、他の様々な開発要件上、最適解を少し変更しなければならなくなっても、その変更に対応できるのです。その解がなぜ最適解となるかわからなければ、その最適解を最悪解に変更してしまう可能性もあり、非常に危険です。そういう意味においても、大域的最適解の取り扱いは難しいと思います。もっとも、今までに大域的最適解を常に求められる数学的な手法は、開発されていませんが。

一度、最適化問題を定式化すれば、後はその問題を数学的な最適化の方法で解いて、最適解を求めます。数学的な最適化の方法はいろいろありますが、最近では、遺伝的アルゴリズム(Genetic Algorithms)、Particle Swarm Optimizationなどのメタヒューリスティックな方法が利用されています。これらの方法は大域的最適解が得られる可能性を持つ上(あくまでも可能性で、必ず大域的最適解が得られるわけではありません)、その実装や取り扱いが容易なので、広く利用されています。

ここで、遺伝的アルゴリズムなどを利用する場合の注意を一つ申し述べておきます、通常の数学的な最適化の方法は、初期解が同じであれば何度やっても同じ最適解を得られます。従って、あるパラメータを変更させて最適解の傾向をみる、いわゆるパラメータスタディを行うことが可能です。これに対して遺伝的アルゴリズムでは、同じ初期集団から始めても異なる最適解が出る可能性があります。従って、この方法を用いてパラメータスタディを行うと、あるパラメータに対する最適解の傾向がわからなくなる可能性があるのです。この点から、逐次二次計画法(Sequential Quadratic Programming)は、メタヒューリスティックな方法と比較し、遙かに高い収束性を持っています。設計変数が連続変数であれば、まずは試して頂きたいです。

最適解についてもう一言。工学的な多くの最適化問題では、最適解は制約条件上において得られます。殆どの目的関数は設計変数に関して単調増加、あるいは単調減少するからです。これは工学的には妥当なことで、例えば、機械設計について考えてみましょう。設計過程において設計者は、ある設計諸元が性能にどう影響するかを見ながら設計を進めます。ある寸法を短くすれば性能は向上するのか低下するのか、といった検討を積み重ねて設計案を固めていくわけですが、これは、性能と設計諸元の関係に単調性があることを前提にしています。もし、そのような単調性がなければ見通しがつかず、設計は大変困難なものとなるでしょう。そして、このような単調性がある問題を、最適化の方法で解けば、必ず制約条件上で最適解が得られます。これは、目的関数の設計変数に関する単調性からは当然のことです。この関係を利用して最適化問題を単純化する方法として、Monotonicity Analysisが、ミシガン大学のPapalambros教授により提案されています。Papalambros教授は、このような最適化問題の工学的な意味を、以前から深くご理解されていたのでしょう。

2.最適設計・構造最適化について

では、次に最適設計・構造最適化について少し述べてみます。最適設計の中で最適化を適用する対象が特に構造である場合を、構造最適化と呼びます。この場合の構造とは、例えば自動車のボディ構造・橋の骨組み構造等で、この構造に求められる性能を最大化できるような形状あるいは形態を求めるわけです。この構造最適化の方法は大別して、図2に示すように、寸法最適化、形状最適化、トポロジー最適化に分類されます。


図2 構造最適化の分類

寸法最適化は最も簡易な構造最適化の方法で、図2に示したように、梁の長さや高さのような構造的な寸法を設計変数として最適化を行います。この方法は簡単なので汎用解析ソフトで容易に実行できますが、設計変数の数に限りがあり性能向上はそれほど期待できません。

形状最適化は、構造物の外形形状そのものを設計変数として最適化を行う方法です。例えば、構造を有限要素モデルで表現し、各要素の節点を移動させることにより、外形形状を変更し最適構造を得る方法や、その他、外形形状をスプライン関数などの補間関数を用いて表現し、補間関数のコントロールポイントの位置を設計変数とし有限要素法を用いながら最適解を得る方法、予め最適構造を構成する形状モードを用意しておき、その重み付き重ね合わせで最適構造を得るベーシスベクトル法などがあります。寸法最適化と比較して、多くの設計変数を取り扱うので、より高い性能をもつ構造が得られる可能性が高いのですが、穴の数を増減させるといった、いわゆる形態の変化は基本的に困難です。しかし、そうした根本的な設計変更が行なわれない段階、即ち、詳細設計案が決まった段階では、大変有効です。もちろん、このときに得られる最適構造は局所的最適解です。この点からもおわかり頂けると思いますが、局所的最適解は工学的には実用的なのです。


トポロジー最適化はこれら三つの方法の中で最も自由度の高い構造最適化手法です。この方法を工学的に応用する基本的な考え方は、デンマーク工科大学のBendsøe、教授とミシガン大学の菊池教授により最初に提案されました。


図3 トポロジー最適化により得られた最適構造
(剛性最大化問題)



図4 トポロジー最適化により得られた最適構造
(コンプライアントメカニズム設計問題)



図5 トポロジー最適化により得られた最適構造
(熱拡散問題)

前述のように、形状最適化では外形形状だけを設計変数とするので、穴の数などの構造の形態を変更することは難しいのですが、トポロジー最適化は、形態をも設計変数として変更することができ、他の二つの方法と比較してより高性能な構造が得られる可能性があります。また、今までに全く開発したことがない新しい製品の構造を得る、いわゆる構造の創成にも利用できます。過去の経験の多い製品の開発を行う場合はその経験を利用する方がより現実的な最適構造が得られるので、上述のように形状最適化が非常に有用です。しかし、全く経験のないものを開発する際は、製造方法などの要件を検討するよりも、まずは製品の基本的な構想を得ることが第一です。そのような構想設計にはトポロジー最適化が非常に有用なのです。もっとも、過去の経験の多い製品であっても、構想設計案を抜本的に見直すことは大切ですが、現実的にはなかなか難しいようです。

なお、トポロジー最適化であっても、このときに得られる最適構造は局所的最適解です。ただ、目的関数を剛性最大化にした場合には、一般的に大域的最適解に近い最適解が得られます。トポロジー最適化の基本的な考え方は、構造最適化問題を指定した固定設計領域の中での材料分布問題に置き換えることにあります。この考え方は極めて単純で、コンピュータモニター上に任意の図形を描画する操作や、点の描画によりキャンバスに絵を描く点描法に似ています。

トポロジー最適化で求めた幾つかの最適構造をお見せしましょう。我々の研究室で新しく開発しているレベルセット法に基づく方法によって得られた結果です。図3は、剛性最大化問題に関する最適構造です、図4はコンプライアントメカニズムの設計問題に関する最適構造です。コンプライアントメカニズムとは、従来の剛体とジョイントで構成される機構とは異なり、構造の柔軟性を積極的に利用した機構です。図5は熱拡散問題に関する最適構造です。とても綺麗で、かつ人間がなかなか創造できない構造が得られていることがわかります。もちろん、物理的に考えていけば各々なぜ最適か、納得できる構造にはなっていますが、何も知識ないところで、最初から人間が設計するのは難しいと思います。トポロジー最適化は、そのような全く新しい設計を支援することができるのです。


3.おわりに

最適化について日頃考えていることを少し書いてみました。中には、余り論理的ではないことも述べましたが、「楽観的」(Optimistic)にお許しください。

5/6

(6/17)