(57)【特許請求の範囲】
【請求項１】
関数ｆの最小点を含む区間を求める囲い込み処理手段と、前記囲い込み処理手段によって求められた前記区間における前記関数ｆの最小値を求める最小解探索手段と、少なくとも前記囲い込み処理手段および前記最小解探索手段として機能する制御プログラムを保持する記憶手段と、前記記憶手段に保持された制御プログラムをコンピュータ動作させる制御手段と、を具備し、前記制御手段の制御に基づいて前記関数ｆにおける非線形最適解を探索する非線形最適解探索装置において、
前記囲い込み処理手段は、
前記区間の一方の端点を基準点ａとし、探索方向ベクトルｄ、該基準点ａからの探索方向へのステップ幅αおよび該ステップ幅αを増減させるための１より大きい複数個の増減係数Ｍを前記記憶手段に保持し、
前記基準点ａに前記ステップ幅αを加えた点から前記記憶手段に保持された複数個の増減係数Ｍのうちの一つを用いて該ステップ幅αを増加させることにより算出した関数値が、該基準点ａの関数値ｆ(ａ)を初めて上回ったときに、該上回った関数値および該上回った関数値を出力させる探索点を該記憶手段に保持し、
一つの増減係数Ｍについての当該探索点を求める処理を１回の囲い込み処理とするときに、該１回の囲い込み処理が終了する度にステップ幅αを該探索点の直前の探索点に復帰させ、かつ、前記記憶手段に保持された複数個の増減係数Ｍをその値が漸減する方向に順次読み出しつつ、当該増減係数Ｍごとに前記囲い込み処理を繰り返し実行し、
前記基準点ａにおける関数値ｆ(ａ)と最後に読み出された増減係数Ｍについて求められた探索点における関数値との偏差が所定値以下となったときの該探索点を他方の端点ｂとして求め、
前記最小解探索手段は、
前記求められた区間［ａ，ｂ］内に存在する最小値を探索することを特徴とする非線形最適解探索装置。
【請求項２】
前記囲い込み処理手段は、各１回の囲い込み処理中に、探索点の間隔が徐々に大きくなるステップ幅となるように増減係数Ｍを用いてステップ幅を増加させることを特徴とする請求項１に記載の非線形最適解探索装置。
【請求項３】
前記囲い込み処理手段は、基準点ａの関数値ｆ(ａ)と同じ値を最初に超える探索点ｘ1と、この探索点ｘ1の直前の探索点ｘ2との間に、ｆ(ｘ1)＜ｆ(ａ)＜ｆ(ｘ2)の関係が得られたとき、ｘ1、ｘ2、ｆ(ｘ1)、ｆ(ｘ2)から１次式ｇ(ｘ)を作成し、ｇ(ｘ3)＝ｆ(ａ)となる探索点ｘ3を次回探索の開始点とするとともに、最終的に得られた探索点ｘ3を他方の端点ｂとすることを特徴とする請求項１または２に記載の非線形最適解探索装置。
【請求項４】
前記最小解探索手段は、区間［ａ，ｂ］内の任意の３点から放物線近似による２次近似式を作成し、該２次近似式の１階微分が０となる近似最小点を求めることを特徴とする請求項１〜３のいずれか一つに記載の非線形最適解探索装置。
【請求項５】
前記最小解探索手段は、区間［ａ，ｂ］内の任意の３点以上から最小２乗法による２次近似式を作成し、該２次近似式の１階微分が０となる近似最小点を求めることを特徴とする請求項１〜３のいずれか一つに記載の非線形最適解探索装置。
【請求項６】
前記囲い込み処理手段は、探索方向ベクトルｄを勾配法を用いて求めることを特徴とする請求項１〜５のいずれか一つに記載の非線形最適解探索装置。
【請求項７】
前記関数ｆ(ｘ)の代わりにペナルティ係数γを付加した目的関数Ｕ(ｘ，γ)を用い、探索の際に該ペナルティ係数γを段階的に大きくすることを特徴とする請求項１〜６のいずれか一つに記載の非線形最適解探索装置。
【請求項８】
関数ｆの最大点を含む区間を求める囲い込み処理手段と、前記囲い込み処理手段によって求められた前記区間における前記関数ｆの最大値を求める最大解探索手段と、少なくとも前記囲い込み処理手段および前記最大解探索手段として機能する制御プログラムを保持する記憶手段と、前記記憶手段に保持された制御プログラムをコンピュータ動作させる制御手段と、を具備し、前記制御手段の制御に基づいて前記関数ｆにおける非線形最適解を探索する非線形最適解探索装置において、
前記囲い込み処理手段は、
前記区間の一方の端点を基準点ａとし、探索方向ベクトルｄ、該基準点ａからの探索方向へのステップ幅αおよび該ステップ幅αを増減させるための１より大きい複数個の増減係数Ｍを前記記憶手段に保持し、
前記基準点ａに前記ステップ幅αを加えた点から前記記憶手段に保持された複数個の増減係数Ｍのうちの一つを用いて該ステップ幅αを増加させることにより算出した関数値が、該基準点ａの関数値ｆ(ａ)を初めて下回ったときに、該下回った関数値および該下回った関数値を出力させる探索点を該記憶手段に保持し、
一つの増減係数Ｍについての当該探索点を求める処理を１回の囲い込み処理とするときに、該１回の囲い込み処理が終了する度にステップ幅αを該探索点の直前の探索点に復帰させ、かつ、前記記憶手段に保持された複数個の増減係数Ｍをその値が漸減する方向に順次読み出しつつ、当該増減係数Ｍごとに前記囲い込み処理を繰り返し実行し、
前記基準点ａにおける関数値ｆ(ａ)と最後に読み出された増減係数Ｍについて求められた探索点における関数値との偏差が所定値以下となったときの該探索点を他方の端点ｂとして求め、
前記最大解探索手段は、
前記求められた区間［ａ，ｂ］内に存在する最大値を探索することを特徴とする非線形最適解探索装置。
【請求項９】
前記囲い込み処理手段は、各１回の囲い込み処理中に、探索点の間隔が徐々に大きくなるステップ幅となるように増減係数Ｍを用いてステップ幅を増加させることを特徴とする請求項８に記載の非線形最適解探索装置。
【請求項１０】
前記囲い込み処理手段は、基準点ａの関数値ｆ(ａ)と同じ値を最初に小さくなる探索点ｘ1と、この探索点ｘ1の直前の探索点ｘ2との間に、ｆ(ｘ1)＜ｆ(ａ)＜ｆ(ｘ2)の関係が得られたとき、ｘ1、ｘ2、ｆ(ｘ1)、ｆ(ｘ2)から１次式ｇ(ｘ)を作成し、ｇ(ｘ3)＝ｆ(ａ)となる探索点ｘ3を次回探索の開始点とするとともに、最終的に得られた探索点ｘ3を他方の端点ｂとすることを特徴とする請求項８または９に記載の非線形最適解探索装置。
【請求項１１】
前記最大解探索手段は、区間［ａ，ｂ］内の任意の３点から放物線近似による２次近似式を作成し、該２次近似式の１階微分が０となる近似最大点を求めることを特徴とする請求項８〜１０のいずれか一つに記載の非線形最適解探索装置。
【請求項１２】
前記最大解探索手段は、区間［ａ，ｂ］内の任意の３点以上から最小２乗法による２次近似式を作成し、該２次近似式の１階微分が０となる近似最大点を求めることを特徴とする請求項８〜１０のいずれか一つに記載の非線形最適解探索装置。
【請求項１３】
前記囲い込み処理手段は、探索方向ベクトルｄを勾配法を用いて求めることを特徴とする請求項８〜１２のいずれか一つに記載の非線形最適解探索装置。
【請求項１４】
前記関数ｆ(ｘ)の代わりにペナルティ係数γを付加した目的関数Ｕ(ｘ，γ)を用い、探索の際に該ペナルティ係数γを段階的に大きくすることを特徴とする請求項８〜１３のいずれか一つに記載の非線形最適解探索装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、囲い込み処理によって関数の最小／最大点を含む区間を求め、最小／最大解探索処理によって求められた区間における最小／最大値を求める直線探索法に基づく制御プログラムを有し、この制御プログラムを用いてコンピュータを動作させることにより、非線形最適解を探索する非線形最適解探索装置に関するものである。
【０００２】
【従来の技術】
図１０（ａ）は、従来の囲い込み法の処理のフローチャートであり、図１０（ｂ）は、従来の囲い込み法の処理概念の説明図である。この従来の囲い込み法は、ある最小点を持つ関数ｆ(ｘ)があり、基準点ｘ0および基準点ｘ0での関数値ｆ(ｘ0)が小さくなる方向ベクトルｄがわかっているとき、ｘ0からｘ0の値を関数値ｆ(ｘ0)が小さくなる方向ｄに可変させたときに、ｘ0を基準点としてｆ(ｘ)の最小値を含む区間を求める方法である。
【０００３】
ここで、図１０（ｂ）に示したフローチャートにより、従来の囲い込み法を用いて、最小点を含む区間を求める方法について簡単に説明する。まず、初期化手順を実施する。初期化手順は、基準点をｘ0とし、そのときの関数値をｆ0(＝ｆ(ｘ0))とし、ステップ幅αは正の実数とし、ステップ幅の増加係数Ｍは１より大きい実数とする。また、ｘがｘ0から増加する場合にｆ(Ｘ)の値が増加するときは、ｄ＝−１とし、逆に、ｘがｘ0から増加する場合にｆ(Ｘ)の値が減少するときは、ｄ＝１とする。つぎに、ｘを可変させる処理手順を実施する。この処理手順は、まず、ｘを、ｘ0を基準としてｆ(ｘ)の値が小さくなる方向にαだけ可変し(ｘ1＝ｘ0＋α×ｄ)、このｘ1における関数値をｆ1(＝ｆ(ｘ1))とする。このとき、ｆ1とｆ0に関し、ｆ1＜ｆ0ならば、αをＭ倍(α＝α×Ｍ)するとともに、Ｍ倍したαを用いてｘの値をα・ｄだけ変化させ、処理を続ける。また、ｆ1＞ｆ0ならば処理を終了する。最終的に処理が終了したときに得られたαから、最小点を含む区間［ｘ0，ｘ0＋α］が求められる。なお、囲い込み法の反復回数は、初期ステップ幅αおよび増加係数Ｍに依存する。また、最大点を求める場合は、ｄの符号が逆になり、終了条件がｆ1＜ｆ0となることを除けば同様に求めることができる。
【０００４】
図１１（ａ）は、黄金分割法の処理のフローチャートであり、図１１（ｂ）は、黄金分割法の処理概念の説明図である。黄金分割法とは、ある最小点を持つ関数ｆ(ｘ)があり、最小点を含む区間［ａ，ｂ］が既知の時、区間［ａ，ｂ］内に存在するｆ(ｘ)が最小となる点ｘを求める方法である。
【０００５】
つぎに、図１１（ａ）に示したフローチャートにより、区間［ｘ1，ｘ2］内の最小点を、黄金分割法を用いて求める方法について簡単に説明する。まず、初期化手順を実施する。初期化手順としては、まず、最小点を含む区間［ｘ1，ｘ2］を設定し、例えば、黄金分割比Ｆを、Ｆ＝(５0.5−１)／(５0.5＋１)に設定する。なお、最小点を含む区間［ｘ1，ｘ2］は、他の方法(例えば前述の囲い込み法)によりあらかじめ分かっているものとする。つぎに、ｘを可変させる処理手順を実施する。この処理手順では、ｘ1、ｘ2、Ｆを用い、区間［ｘ1，ｘ2］の幅を逐次、狭めていく。具体的には次式により、ｘ1'、ｘ2'を求める。
ｘ1'＝ｘ1＋Ｆ×(ｘ2−ｘ1)
ｘ2'＝ｘ2−Ｆ×(ｘ2−ｘ1)
ｘ1'は区間［ｘ1，ｘ2］を(５0.5−１)：２に内分する点であり、ｘ2'は区間［ｘ1，ｘ2］を２：(５0.5−１)に内分する点である。
【０００６】
つぎにｘ1'、ｘ2'における関数値ｆ(ｘ1')、(ｘ2')を、それぞれｆ1'、ｆ2'としたときに、ｆ1'＞ｆ2'ならばｘ1＝ｘ1'とし、ｆ1'≦ｆ2'のときは、ｘ2＝ｘ2'として区間の幅を片方ずつ狭めていく。最後に｜ｘ1−ｘ2｜を収束判定に用い、目的とする最小値を求める。また、最大点を求める場合についても、囲い込み法と同様に、比較条件の符号の向きを逆にすることで同様に求めることができる。なお、黄金分割法の反復回数は、区間［ｘ1，ｘ2］の両端の関数値ｆ(ｘ1)、ｆ(ｘ2)の絶対値の差および収束判定誤差に依存する。
【０００７】
図１２は、従来の直線探索法のフローチャートを示したものである。従来の直線探索法においては、まず図１０に示した従来の囲い込み法により、最小／最大点を含む区間［ａ，ｂ］を求め、つぎに図１１に示した黄金分割法により区間［ａ，ｂ］内に存在する最小／最大点を求めている。
【０００８】
【発明が解決しようとする課題】
しかしながら、囲い込み法、黄金分割法は共に反復法であり、ある最小／最大化問題の対象となる関数において、十分な精度の最小／最大解を得るには、通常十数回〜数百回程度の反復計算が必要であるといわれている。
【０００９】
熱流体・構造・電磁界など電機機器等に対し自動的に設計最適化を実行する機能を備えた設計最適化装置においては、制御対象の計測データから、制御対象の状態を最適に設定するための最適解を探索し、制御対象を制御することが行われるが、従来の技術では、探索１回あたりの反復計算時間が大きく、また、反復計算時間にばらつきがあり、制御が安定しないという欠点があった。
【００１０】
この発明は上記に鑑みてなされたもので、非線形最適化問題における探索時間の短縮化と安定化を可能とする非線形最適解探索装置を得ることを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかる非線形最適解探索装置は、関数ｆの最小点を含む区間を求める囲い込み処理手段と、前記囲い込み処理手段によって求められた前記区間における前記関数ｆの最小値を求める最小解探索手段と、少なくとも前記囲い込み処理手段および前記最小解探索手段として機能する制御プログラムを保持する記憶手段と、前記記憶手段に保持された制御プログラムをコンピュータ動作させる制御手段と、を具備し、前記制御手段の制御に基づいて前記関数ｆにおける非線形最適解を探索する非線形最適解探索装置において、前記囲い込み処理手段は、前記区間の一方の端点を基準点ａとし、探索方向ベクトルｄ、該基準点ａからの探索方向へのステップ幅αおよび該ステップ幅αを増減させるための１より大きい複数個の増減係数Ｍを前記記憶手段に保持し、前記基準点ａに前記ステップ幅αを加えた点から前記記憶手段に保持された複数個の増減係数Ｍのうちの一つを用いて該ステップ幅αを増加させることにより算出した関数値が、該基準点ａの関数値ｆ(ａ)を初めて上回ったときに、該上回った関数値および該上回った関数値を出力させる探索点を該記憶手段に保持し、一つの増減係数Ｍについての当該探索点を求める処理を１回の囲い込み処理とするときに、該１回の囲い込み処理が終了する度にステップ幅αを該探索点の直前の探索点に復帰させ、かつ、前記記憶手段に保持された複数個の増減係数Ｍをその値が漸減する方向に順次読み出しつつ、当該増減係数Ｍごとに前記囲い込み処理を繰り返し実行し、前記基準点ａにおける関数値ｆ(ａ)と最後に読み出された増減係数Ｍについて求められた探索点における関数値との偏差が所定値以下となったときの該探索点を他方の端点ｂとして求め、前記最小解探索手段は、前記求められた区間［ａ，ｂ］内に存在する最小値を探索することを特徴とする。
【００１２】
この発明によれば、囲い込み処理手段は、区間の一方の端点を基準点ａとし、探索方向ベクトルｄ、基準点ａからの探索方向へのステップ幅αおよびステップ幅αを増減させるための１より大きい複数個の増減係数Ｍを記憶手段に保持し、基準点ａにステップ幅αを加えた点から記憶手段に保持された複数個の増減係数Ｍのうちの一つを用いてステップ幅αを増加させることにより算出した関数値が、基準点ａの関数値ｆ(ａ)を初めて上回ったときに、上回った関数値および上回った関数値を出力させる探索点を記憶手段に保持し、一つの増減係数Ｍについての当該探索点を求める処理を１回の囲い込み処理とするときに、１回の囲い込み処理が終了する度にステップ幅αを探索点の直前の探索点に復帰させ、かつ、記憶手段に保持された複数個の増減係数Ｍをその値が漸減する方向に順次読み出しつつ、当該増減係数Ｍごとに囲い込み処理を繰り返し実行し、基準点ａにおける関数値ｆ(ａ)と最後に読み出された増減係数Ｍについて求められた探索点における関数値との偏差が所定値以下となったときの探索点を他方の端点ｂとして求めることができる。また、最小解探索手段は、得られた区間［ａ，ｂ］内に存在する最小値を探索することができる。
【００１３】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、前記囲い込み処理手段は、各１回の囲い込み処理中に、探索点の間隔が徐々に大きくなるステップ幅となるように増減係数Ｍを用いてステップ幅を増加させることを特徴とする。
【００１４】
この発明によれば、囲い込み処理手段は、各１回の囲い込み処理中に、探索点の間隔が徐々に大きくなるステップ幅となるように増減係数Ｍを用いてステップ幅を増加させることができる。
【００１５】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、前記囲い込み処理手段は、基準点ａの関数値ｆ(ａ)と同じ値を最初に超える探索点ｘ1と、この探索点ｘ1の直前の探索点ｘ2との間に、ｆ(ｘ1)＜ｆ(ａ)＜ｆ(ｘ2)の関係が得られたとき、ｘ1、ｘ2、ｆ(ｘ1)、ｆ(ｘ2)から１次式ｇ(ｘ)を作成し、ｇ(ｘ3)＝ｆ(ａ)となる探索点ｘ3を次回探索の開始点とするとともに、最終的に得られた探索点ｘ3を他方の端点ｂとすることを特徴とする
【００１６】
この発明によれば、囲い込み処理手段は、基準点ａの関数値ｆ(ａ)と同じ値を最初に超える探索点ｘ1と、この探索点ｘ1の直前の探索点ｘ2との間に、ｆ(ｘ1)＜ｆ(ａ)＜ｆ(ｘ2)の関係が得られたとき、ｘ1、ｘ2、ｆ(ｘ1)、ｆ(ｘ2)から１次式ｇ(ｘ)を作成し、ｇ(ｘ3)＝ｆ(ａ)となる点ｘ3を前記次回探索の開始点とするとともに、最終的に得られた探索点ｘ3を他方の端点ｂとすることができる。
【００１７】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、前記最小解探索手段は、区間［ａ，ｂ］内の任意の３点から放物線近似による２次近似式を作成し、該２次近似式の１階微分が０となる近似最小点を求めることを特徴とする。
【００１８】
この発明によれば、最小解探索手段は、区間［ａ，ｂ］内の任意の３点から放物線近似による２次近似式を作成し、該２次近似式の１階微分が０となる近似最小点を求めることができる。
【００１９】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、前記最小解探索手段は、区間［ａ，ｂ］内の任意の３点以上から最小２乗法による２次近似式を作成し、該２次近似式の１階微分が０となる近似最小点を求めることを特徴とする。
【００２０】
この発明によれば、最小解探索手段は、区間［ａ，ｂ］内の任意の３点以上から最小２乗法による２次近似式を作成し、該２次近似式の１階微分が０となる近似最小点を求めることができる。
【００２１】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、前記囲い込み処理手段は、探索方向ベクトルｄを勾配法を用いて求めることを特徴とする。
【００２２】
この発明によれば、囲い込み処理手段は、探索方向ベクトルｄを勾配法を用いて求めることができる。
【００２３】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、前記関数ｆ(ｘ)の代わりにペナルティ係数γを付加した目的関数Ｕ(ｘ，γ)を用い、探索の際にペナルティ係数γを段階的に大きくすることを特徴とする。
【００２４】
この発明によれば、関数ｆ(ｘ)の代わりにペナルティ係数γを付加した目的関数Ｕ(ｘ，γ)を用い、探索の際にペナルティ係数γを段階的に大きくすることができる。
【００２５】
つぎの発明にかかる非線形最適解探索装置は、関数ｆの最大点を含む区間を求める囲い込み処理手段と、前記囲い込み処理手段によって求められた前記区間における前記関数ｆの最大値を求める最大解探索手段と、少なくとも前記囲い込み処理手段および前記最大解探索手段として機能する制御プログラムを保持する記憶手段と、前記記憶手段に保持された制御プログラムをコンピュータ動作させる制御手段と、を具備し、前記制御手段の制御に基づいて前記関数ｆにおける非線形最適解を探索する非線形最適解探索装置において、前記囲い込み処理手段は、前記区間の一方の端点を基準点ａとし、探索方向ベクトルｄ、該基準点ａからの探索方向へのステップ幅αおよび該ステップ幅αを増減させるための１より大きい複数個の増減係数Ｍを前記記憶手段に保持し、前記基準点ａに前記ステップ幅αを加えた点から前記記憶手段に保持された複数個の増減係数Ｍのうちの一つを用いて該ステップ幅αを増加させることにより算出した関数値が、該基準点ａの関数値ｆ(ａ)を初めて下回ったときに、該下回った関数値および該下回った関数値を出力させる探索点を該記憶手段に保持し、一つの増減係数Ｍについての当該探索点を求める処理を１回の囲い込み処理とするときに、該１回の囲い込み処理が終了する度にステップ幅αを該探索点の直前の探索点に復帰させ、かつ、前記記憶手段に保持された複数個の増減係数Ｍをその値が漸減する方向に順次読み出しつつ、当該増減係数Ｍごとに前記囲い込み処理を繰り返し実行し、前記基準点ａにおける関数値ｆ(ａ)と最後に読み出された増減係数Ｍについて求められた探索点における関数値との偏差が所定値以下となったときの該探索点を他方の端点ｂとして求め、前記最大解探索手段は、前記求められた区間［ａ，ｂ］内に存在する最大値を探索することを特徴とする。
【００２６】
この発明によれば、囲い込み処理手段は、区間の一方の端点を基準点ａとし、探索方向ベクトルｄ、基準点ａからの探索方向へのステップ幅αおよびステップ幅αを増減させるための１より大きい複数個の増減係数Ｍを記憶手段に保持し、基準点ａにステップ幅αを加えた点から記憶手段に保持された複数個の増減係数Ｍのうちの一つを用いて該ステップ幅αを増加させることにより算出した関数値が、基準点ａの関数値ｆ(ａ)を初めて下回ったときに、下回った関数値および下回った関数値を出力させる探索点を記憶手段に保持し、一つの増減係数Ｍについての当該探索点を求める処理を１回の囲い込み処理とするときに、１回の囲い込み処理が終了する度にステップ幅αを探索点の直前の探索点に復帰させ、かつ、記憶手段に保持された複数個の増減係数Ｍをその値が漸減する方向に順次読み出しつつ、当該増減係数Ｍごとに囲い込み処理を繰り返し実行し、基準点ａにおける関数値ｆ(ａ)と最後に読み出された増減係数Ｍについて求められた探索点における関数値との偏差が所定値以下となったときの該探索点を他方の端点ｂとして求めることができる。また、最大解探索手段は、得られた区間［ａ，ｂ］内に存在する最大値を探索することができる。
【００２７】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、囲い込み処理手段は、各１回の囲い込み処理中に、探索点の間隔が徐々に大きくなるステップ幅となるように増減係数Ｍを用いてステップ幅を増加させることを特徴とする。
【００２８】
この発明によれば、囲い込み処理手段は、各１回の囲い込み処理中に、探索点の間隔が徐々に大きくなるステップ幅となるように増減係数Ｍを用いてステップ幅を増加させることができる。
【００２９】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、前記囲い込み処理手段は、基準点ａの関数値ｆ(ａ)と同じ値を最初に小さくなる探索点ｘ1と、この探索点ｘ1の直前の探索点ｘ2との間に、ｆ(ｘ1)＜ｆ(ａ)＜ｆ(ｘ2)の関係が得られたとき、ｘ1、ｘ2、ｆ(ｘ1)、ｆ(ｘ2)から１次式ｇ(ｘ)を作成し、ｇ(ｘ3)＝ｆ(ａ)となる探索点ｘ3を次回探索の開始点とするとともに、最終的に得られた探索点ｘ3を他方の端点ｂとすることを特徴とする
【００３０】
この発明によれば、囲い込み処理手段は、基準点ａの関数値ｆ(ａ)と同じ値を最初に小さくなる探索点ｘ1と、この探索点ｘ1の直前の探索点ｘ2との間に、ｆ(ｘ1)＜ｆ(ａ)＜ｆ(ｘ2)の関係が得られたとき、ｘ1、ｘ2、ｆ(ｘ1)、ｆ(ｘ2)から１次式ｇ(ｘ)を作成し、ｇ(ｘ3)＝ｆ(ａ)となる点ｘ3を前記次回探索の開始点とするとともに、最終的に得られた探索点ｘ3を他方の端点ｂとすることができる。
【００３１】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、前記最大解探索手段は、区間［ａ，ｂ］内の任意の３点から放物線近似による２次近似式を作成し、該２次近似式の１階微分が０となる近似最大点を求めることを特徴とする。
【００３２】
この発明によれば、最大解探索手段は、区間［ａ，ｂ］内の任意の３点から放物線近似による２次近似式を作成し、該２次近似式の１階微分が０となる近似最大点を求めることができる。
【００３３】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、前記最大解探索手段は、区間［ａ，ｂ］内の任意の３点以上から最小２乗法による２次近似式を作成し、該２次近似式の１階微分が０となる近似最大点を求めることを特徴とする。
【００３４】
この発明によれば、最大解探索手段は、区間［ａ，ｂ］内の任意の３点以上から最小２乗法による２次近似式を作成し、該２次近似式の１階微分が０となる近似最大点を求めることができる。
【００３５】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、前記囲い込み処理手段は、探索方向ベクトルｄを勾配法を用いて求めることを特徴とする。
【００３６】
この発明によれば、囲い込み処理手段は、探索方向ベクトルｄを勾配法を用いて求めることができる。
【００３７】
つぎの発明にかかる非線形最適解探索装置は、上記の発明において、前記関数ｆ(ｘ)の代わりにペナルティ係数γを付加した目的関数Ｕ(ｘ，γ)を用い、探索の際にペナルティ係数γを段階的に大きくすることを特徴とする。
【００３８】
この発明によれば、関数ｆ(ｘ)の代わりにペナルティ係数γを付加した目的関数Ｕ(ｘ，γ)を用い、探索の際にペナルティ係数γを段階的に大きくすることができる。
【００３９】
【発明の実施の形態】
以下に、この発明にかかる非線形最適解探索装置の好適な実施の形態を詳細に説明する。なお、これ以後、最小／最大解を求める課題に関し、最小解を求める処理手順に限定して説明していく。前述したように、最大解を求める方法は、探索方向と判定基準が逆になるだけで、考え方および処理手順は同じである。
【００４０】
実施の形態１．
(１)囲い込み法の説明
図１は、図１０に示した従来の囲い込み法を改良した実施の形態１の囲い込み法の処理手順を示すフローチャートである。また、図２は、横軸が方向ベクトルｄであり、ある目的関数ｆ(ｘ)において、初期値をｘ0(α＝０)とし、ｘ0をα1・ｄ、α1'・ｄ、α1''・ｄ、α2''・ｄと増加させていった場合に、目的関数ｆ(ｘ)がとり得る値の範囲を曲線上に図示したものである。α1'＝α1×Ｍ、α1''＝α1'×Ｍ、α2''＝α1''×Ｍの関係にある。なお、従来の囲い込み法では、変数が一つの場合について説明したが、実施の形態１で説明する内容は複数の変数を取り扱うものである。一般的な非線形最適化問題においては、目的関数は多変量関数であるのが普通であり、したがって以下に示すｘ0、ｄは多次元ベクトルを意味するものである。
【００４１】
つぎに、図１および図２を用いて、実施の形態１の囲い込み法の処理手順を詳細に説明する。まず、初期化手順を実施する(ステップＳ４０１)。この初期化手順は、探索方向ベクトルをｄ、基準点をｘ0、ｘ0での関数値をｆ0(＝ｆ(ｘ0))、ステップ幅α(正の実数)をα1にそれぞれ初期設定しておくことによりおこなわれる。ここで、探索ベクトルｄは、勾配法により求められていることを前提とする。勾配法とは、１変数を含む多変数関数ｆ(ｘ)の最小解を求める場合において、ｆ(ｘ)が小さくなる方向ベクトルｄを求める方法であり、準ニュートン法、最急降下法などを使用して求めることができる。また、本発明のステップ幅αとは、基準点ｘ0から各探索点までの幅である。
【００４２】
つぎに、増減係数Ｍの値を設定する(ステップＳ４０２)。増減係数Ｍの値は、最初は大きな値に設定しておき、ステップＳ４０２からステップＳ４１２までの１つのループが終了する度に、徐々に１に近い値にステップ的に変化(漸減)させる。増減係数Ｍの初期値は、例えば、Ｍ＝１０程度に設定しておけばよい。この場合は、増減係数Ｍを例えば１０→２→１.１と変化させるようにしている。そして、ステップＳ４０５などでの処理の分岐を判定するためのフラグＦＬＧを０に設定する(ステップＳ４０３)。なお、フラグＦＬＧは、０か１のどちらかの値をとり得るように設定される。つぎに、基準点ｘ0を方向ベクトルｄの方向にα1・ｄだけ可変し、そのときの関数値ｆ1(＝ｆ(ｘ0＋α1・ｄ))を求める(ステップＳ４０４)。
【００４３】
つぎに、ＦＬＧの値により、分岐の判定をおこなう(ステップＳ４０５)。ステップＳ４０３においてＦＬＧ＝０に設定されているので、最初のステップＳ４０５の判定はＹｅｓとなり、手順はステップＳ４０６ａに移行される。
【００４４】
ステップＳ４０６ａにおいては、ｆ1とｆ0の大小を比較する。ｆ1＞ｆ0のときは、ＦＬＧを１に設定し(ステップＳ４０７)、手順はステップＳ４０８の処理に移行される。ｆ1≦ｆ0の場合は、増減係数Ｍを用いてステップ幅α1の値をＭ倍(α1＝α1・Ｍ)する処理を行う(ステップＳ４０９ａ、図２のα1’に対応)。α1が十分大きいか否か(所定の上限値より大きいか否か)を判定する(ステップＳ４１０ａ)。ステップＳ４１０ａの判定がＮｏのときは、ステップＳ４０４に戻り、Ｍ倍したステップ幅α1(＝α1・Ｍ)を用いて、そのときの関数値ｆ1(＝ｆ(ｘ0＋α1・ｄ))を求める。このときの関数値ｆ1は、図２のｆ1’に対応する。つぎに、ステップＳ４０５を経由した後、ステップＳ４０６ａにおいて、再度ｆ1(＝ｆ1’)とｆ0の大小を比較する。そして、ｆ1≦ｆ0の場合は、増減係数Ｍを用いてステップ幅α1の値をさらにＭ倍(最初α１から見ればＭ2倍となる)する処理を行う(ステップＳ４０９ａ、図２のα1''に対応)。このようにして、ステップＳ４０６ａの比較において、ｆ1＞ｆ0が成立するまで、ステップＳ４０４〜Ｓ４１０ａの手順を繰り返し実行することにより、増減係数Ｍを用いてステップ幅α1をＭ倍させる囲い込み探索を実行する。
【００４５】
なお、ステップＳ４１０ａにおいて、ステップ幅α1が十分に大きいと判断されたときは、ステップ幅αを−１にする(ステップＳ４１３ａ)。ステップＳ４１３ａにおけるα＝−１の処理は、勾配法により求められた探索方向のベクトルｄが非常に小さい場合、ステップ幅α1を大きくしてもｆ1＞ｆ0の条件が成立せず、解が求められないことを想定して挿入された例外処理のフローである。理論的には、探索の初期段階や、基準点が最小近傍点に位置している場合に起こることが想定されるが、実際にはほとんどないと考えてよい。なお、実際に例外処理が生じた場合には、基準点を選び直すことで、再探索をすればよい。
【００４６】
前述したように、ステップＳ４０６ａにおいて、ｆ1＞ｆ0が成立したときは、ＦＬＧが１に変更される(ステップＳ４０７)。図２の場合は、ステップ幅がα2''のときの関数値ｆ1(＝ｆ2'')で、ｆ1＞ｆ0が成立している。つぎのステップＳ４０８においては、今回の囲い込み処理の最終的な処理結果、すなわち最終的なステップ幅α1(図２の場合はα2'')と、そのときの関数値ｆ1(＝ｆ2'')が、保存される(α2＝α1、ｆ2＝ｆ1)。つぎに、ステップ幅α1を１／Ｍにすることにより、探索点をｆ1＞ｆ0が成立した最初の点から１つ前の点に戻す(ステップＳ４０９ｂ)。この１つ前の点とは、図２においては、α1''に対応している。つぎに、α1が十分小さいか否か(所定の下限値より小さいか否か)を判定し(ステップＳ４１０ｂ)、α1が十分小さいと判定されたときは、ステップ幅αを０とする。(ステップＳ４１３ｂ)。ステップＳ４１３ｂは、基準点が最小近傍点に存在する場合、α1を小さくしてもｆ1＜ｆ0の条件が成立せず、解が求められないことを想定して挿入された例外処理である。この場合には解が収束したと見なされる。理論的には、基準点が最小近傍点に位置している場合や、探索方向ベクトルｄがｆ(ｘ)の小さくなる方向に向いていない場合が考えられるが、準ニュートン法、最急降下法を用いれば、ほとんど起こり得ない現象であり、これらの手法を併用すれば問題は生じない。
【００４７】
ステップＳ４１０ｂの判定がＮｏのときは、手順はステップＳ４０４に移行され、ｆ1＞ｆ0が成立した最初の点から１つ前の点(図２のα1'')での関数値ｆ1(＝ｆ(ｘ0＋α1・ｄ))が求められる。このときの関数値ｆ1は、図２のｆ1''に対応する。つぎに、ステップＳ４０５でＦＬＧ＝０か否かが判定される。このときには、ＦＬＧ＝１であるので、手順はステップＳ４０６ｂに移行される。そして、ステップＳ４０６ｂにおいて、再度ｆ1(図２の場合はｆ1'')とｆ0の大小が比較される。この比較処理では、通常はｆ1＜ｆ0が成立するので、手順はステップＳ４１１に移行され、ステップ幅α1を補正する処理が実行される。
【００４８】
補正前のステップ幅α1は、前述したように、ｆ1＞ｆ0が成立した最初の点から１つ前の点(図２のα1'')に対応する。前述したように、αがα1''からα2''に変化したときに、ｆ1＜ｆ0であった関係が、ｆ1＞ｆ0の関係に変化している。このとき、このα1''におけるｆ1''とα2''におけるｆ2''を結ぶ直線Ｋの傾きをｍとすると、ｍは次式で表される。
【００４９】
【数１】
0003845029.tif 000002
【００５０】
ここで、関数ｆは、αがα1''とα2''との間で、ｆ0の値をとる場合があり、そのときのαをα1'''とすると、α1''、α2''をとおり、傾きｍを持つ直線Ｋの方程式をｇ(α)とし、(式１)を活用すると次式で表せる。
【００５１】
【数２】
0003845029.tif 000003
【００５２】
αがα1''のときにｇ(α1'')＝ｆ1''の条件を用いると、α1'''は次式で表せる。
【００５３】
【数３】
0003845029.tif 000004
【００５４】
また、このときｆ1''＜ｆ0＜ｆ2''の関係にあることも、図２から明らかである。
【００５５】
ステップＳ４１１においては、補正前のステップ幅α1(図２の場合はα1'')を(式３)によって求めたステップ幅α1'''に補正する。このようにして、ステップ幅αの補正処理が終了すると、最後の増減係数Ｍによるループが終了したか否かが判定される(ステップＳ４１２)。増減係数Ｍを１０→２→１.１と変化させる場合は、１.１が最後の増減係数Ｍである。
【００５６】
２回目の囲い込み処理においては、ステップＳ４０２において、増減係数Ｍが１回目よりも小さな値(例えば２)に設定される。そして、２回目の囲い込み処理においては、この減少させた増減係数Ｍを用いて前述した囲い込み処理が実行される。ただし、２回目の囲い込み処理のスタート点は、ステップＳ４１１で補正されたステップ幅α1に対応する点(図２の場合はα1''')となる。そして、このスタート点から、減少させた増減係数Ｍによる１回目よりも小さな探索点間隔での、探索方向ベクトルｄの方向(１回目と同じ)への囲い込み処理が行われる。
【００５７】
このような囲い込み処理が、最後の増減係数Ｍによるループが終了するまで繰り返される。Ｍの複数回のループが終了すると、最終的に求めるべきαが、α1に設定される(ステップＳ４１３ｃ)。この処理によって、基準点ｘ0からｆ(ｘ)が小さくなる方向にあり、ｆ(ｘ0)≒ｆ(ｘ0＋α・ｄ)の関係を有する最小点を含んだ区間［ｘ0，ｘ0＋α・ｄ］を求めることができる。
【００５８】
ところで、増減係数Ｍが大きくなると、少ない反復回数でｆ2''＞ｆ0となるｆ2''を求めることができる。ただしα2''はα1''のＭ倍なので、最悪ｆ1''とｆ0が近い値(最小点を挟んで互いに反対側に位置)であれば、ｆ2''はｆ0に比べて極端に大きな値となる可能性がある。このとき、目的関数が完全な２次式でなければ、近似式の精度は悪くなると推測される。
【００５９】
一方、増減係数Ｍの値を小さくすればｆ2'を求めるための反復回数は多くなるが、ｆ2''とｆ0の値が近くなり、近似式の精度が向上する。したがって、上述したように、初めにＭを大きくして粗くα1を求め、つぎにＭを小さくして細かくα1を求めることで、少ない反復回数で精度よい近似曲線を得ることができる。
【００６０】
このように、この改良された囲い込み法においては、ステップ幅αの増減係数Ｍをある程度大きくして、概略的にｆ1''＜ｆ0＜ｆ2''となるα1''、α2''を素早く探索し、その後徐々に増減係数Ｍを小さくしていくことにより、最終的にｆ2''≒ｆ0となるαを(式３)から求めることができる。このとき、最小点を含んだ区間［ｘ0，ｘ0＋α・ｄ］において、ｆ(ｘ0)≒ｆ(ｘ0＋α・ｄ)であり、区間の両端の関数値がほとんど等しいので、後に詳述する２次近似式最小解探索法において、区間の両端の数値が異なることによって生ずる、解の精度の劣化が、起こらないという利点も有している。また、Ｍの１つのループにおいて、増減係数Ｍを指数関数的に大きくすることで探索点間隔を徐々に大きくしているので、概略的にｆ1''＜ｆ0＜ｆ2''となるα1''、α2''を、能率良く短時間に探索することができる。
【００６１】
(２)最小解探索法の説明
図３は、最小２乗法による２次近似式または放物線近似式を用いた最小解探索法の処理の概念図である。同図では、関数ｆ(ｘ)＝ｆ(ｘ0＋α・ｄ)をαの関数と考え、関数ｆ(α)の最小点を挟む区間［０，α］において、放物線近似あるいは最小２乗法を用いて、区間［０，α］内の４点から２次近似式を得ている。この２次近似式から、下記の(式４)の導出手順に示すように、２次式の１階微分が０となる点から最小点を求めることができる。
【００６２】
【数４】
0003845029.tif 000005
【００６３】
なお、上述した２次近似式は、区間［０，α］内の任意の３点以上を使用して導くことができる。また、２次近似式を求める際に、用いる点が少ないと、計算時間が短縮され、逆に用いる点が多くなれば、計算精度を向上させることができる。
【００６４】
図４は、２次近似式による最小解探索法の処理手順を示したフローチャートである。この手法は、図２に示した黄金分割法を用いずに、図３に示した最小２乗法による２次近似式または放物線近似式を用いて、最小解を探索する手法である。同図を用いて、処理の流れを説明する。
【００６５】
まず、初期化手順を実施する。初期化手順は、ｆ0＝ｆ(ｘ0)、ｆ1＝ｆ(ｘ0＋α・ｄ)とし、分割点数Ｎを３以上とし、配列変数をａａ[１]＝０、ｙｙ[１]＝ｆ0、ａａ[Ｎ]＝α、ｙｙ[Ｎ]＝ｆ1とし、さらに、分割区間の幅Δａを、Δａ＝α／(Ｎ−１)とする(ステップＳ７０１)。つぎに、ループ変数Ｉにおける区間［０，α］を(Ｎ−１)に分割する各標本点と、その各標本点における、関数値をそれぞれ、ａａ[Ｉ]＝Δａ×(Ｉ−１)およびｙｙ[Ｉ]＝ｆ(ｘ0＋α・ｄ)の式で求める(ステップＳ７０２〜Ｓ７０４)。さらに上記で求めたＮ個の標本点ａａ[１]、ａａ[２]、・・・ａａ[Ｎ]と、この各標本点に対応する関数値ｙｙ[１]、ｙｙ[２]、・・・ｙｙ[Ｎ]から、２次式ｙ＝ｋ0＋ｋ1×α2＋ｋ2×αの係数ｋ0、ｋ1、ｋ2を最小２乗法による２次近似式または放物線近似式から求める。最後に、この得られたｋ0、ｋ1、ｋ2を用い、上記２次式ｙを最小にするαminを、(式４)の計算式を用いて求める(ステップＳ７０５)。
【００６６】
(３)直線探索法の説明
図５は、図１に示した改良された囲い込み法と、図４に示した２次近似式による最小解探索法とを組み合わせた、２次近似式による最小解／最大解を探索する直線探索法のフローチャートである。図５を用いて、その処理の流れについて簡単に説明する。
【００６７】
まず、上述した図１に示す改良された囲い込み法により、ある基準点ｘ0から関数ｆ(ｘ)が小さくなる方向にあって、最小点を含み、ｆ(ｘ0)≒ｆ(ｘ0＋α・ｄ)となる区間［ｘ0，ｘ0＋α・ｄ］を求める(ステップＳ８０１)。つぎに、α＝０か否かについて判定する(ステップＳ８０２)。α＝０の場合は、基準点ｘ0が最小解に一致するときであり、この処理を抜ける。α≠０の場合には、α＝−１か否かについて判定する(ステップＳ８０３)。α＝−１の場合は、上述した例外処理の場合である。この場合は、他の基準点を選び直すためにα＝１に設定し直し、この処理から抜ける。α＝０、α＝−１以外の場合には、上述した図４に示す２次近似式により、区間［ｘ0，ｘ0＋α・ｄ］を３点以上で分割し、分割点における関数値を近似した２次近似式から最小解を求める(ステップＳ８０５)。
【００６８】
（４）非線形最適解探索問題の説明
一般的な非線形最適化問題の定義を(式５)に示す。
【００６９】
【数５】
0003845029.tif 000006
【００７０】
(式５)のｘは変数ベクトル、ｆ(ｘ)は目的関数、ｇ(ｘ)≦０は不等式制約条件、ｈ(ｘ)＝０は等式制約条件である。この場合の非線形最適化問題とは、制約条件ｇ(ｘ)≦０、ｈ(ｘ)＝０を満足し、目的関数ｆ(ｘ)が最小となる変数ベクトルｘを求める問題である。一方(式６)に、外点ペナルティ法の定義を示す。
【００７１】
【数６】
0003845029.tif 000007
【００７２】
（式６）において、γはペナルティ係数、ｐはペナルティの大きさを制御する１以上の実数であり、逐次的に２次近似を用いる最適化手法では２が用いられる。外点ペナルティ法は、制約条件が存在する場合の最適化問題によく使用されるが、最適解探索の初期にγ＝０としてＵ(ｘ,γ)の最小解を探索し、探索の最中にγを徐々に大きくすることで、Ｕ(x,γ)が最小となる変数ｘを求めていく手法である。
【００７３】
図６および図７は、勾配法と図５に示した直線探索法を組み合わせた、最適解探索法の処理を示すフローチャートである。図６は、制約条件が無い場合の最適解探索手法であり、ある最小点を持つ目的関数ｆ(ｘ)が最小となる点ｘを探索する場合に用いる。図７は、制約条件がある場合の最適解探索手法であり、目的関数ｆ(ｘ)の変わりにペナルティを付加した目的関数Ｕ(ｘ,γ)を用い、図６に示した処理手順を活用している。まず、制約条件がない場合の処理手順について、図６を用いて説明する。
【００７４】
図６は、制約条件がない場合の非線形最適解探索手法を用いた処理手順を示すフローチャートである。まず、必要な初期化手順を実施する(ステップＳ９０１)。つぎに、勾配法を用い、ｘ0近傍において、ｆ(ｘ0)より小さくなる方向ｄを求める(ステップＳ９０２)。勾配法としては、ニュートン法、準ニュートン法、最急降下法等を用いればよい。特に、準ニュートン法、最急降下法を用いれば、前述したように、最適解が求められない場合や、探索方向ベクトルｄがｆ(ｘ)の小さくなる方向に向いていない場合等を回避することが可能である。
【００７５】
つぎに、ステップＳ９０２の処理で得られたｄについて、その値の大小について判定する(ステップＳ９０３)。ここで、ｄが十分小さい場合には、更新された基準点ｘ0が、所望の精度を有する最小解の場合であり、処理を終了する。ｄが十分小さくない場合は、図５のフローチャートで示した直線探索法の処理をおこない、ｆ(ｘ0＋α・ｄ)が最小となるαを求める(ステップＳ９０４)。そして、ステップＳ９０４で得られたαについて、その大小を判定する(ステップＳ９０５)。αが十分小さい場合とは、ステップＳ９０３におけるｄの判定のときと同様に、更新された基準点ｘ0が所望の精度を有する最小解の場合である。また、αが十分小さくない場合には、基準点ｘ0をｘ0＝ｘ0＋α・ｄで更新し(ステップＳ９０６)、ステップＳ９０２に戻って処理を繰り返す。
【００７６】
つぎに、制約条件がある場合の処理について説明する。図７は、この発明にかかる非線形最適解探索手法を用いた処理手順を示すフローチャートである。まず、ペナルティ係数γを設定し(ステップＳ１００１)、つぎに、図６に示した制約条件がない場合の非線形最適解探索手法において、ｆ(ｘ)を(式６)で示したＵ(ｘ，γ)で置き換え、図６のステップＳ９０３〜Ｓ９０７の処理を繰り返す(ステップＳ１００２)。そして、ペナルティ係数γを徐々に大きくする処理(ステップＳ１００１およびステップＳ１００３)を繰り返すことにより、Ｕ(ｘ，γ)が最小となる変数ｘを真の値に近づけていく。
【００７７】
（５）設計最適化装置の説明
図８は、熱流体・構造・電磁界などについての電機機器等に自動的に設計最適化を実行する機能を備えた設計最適化装置のブロック図である。この設計最適化装置は、上述した反復的な近似的直線探索法を用いている。同図において、１１は制御計算装置（コンピュータ）を、１２はＣＰＵ(Central Processing Unit)を、１３は入力装置を、１４は出力装置を、１５はメモリを、１６ａは制御プログラムを、１６ｂは制御データを、１７はＩ／Ｆ装置を、１８は計測装置を、１９は制御対象を、それぞれ示している。
【００７８】
この制御計算装置１１は、メモリ１５内に、上述した反復的な近似的直線探索法を用いた非線形最適解探索手法を備えた制御プログラム１６ａを格納している。また、制御計算装置１１は、計測装置１８から制御対象１９の計測結果を受信し、且つ制御プログラム１６ａの制御対象変更指示信号を、Ｉ／Ｆ装置１７を介して計測装置１８へ伝達する。計測装置１８は、制御対象１９の計測データを制御計算装置１１へ伝達する手段と、制御計算装置１１から受信した制御対象１９への変更指示信号にしたがって、制御対象１９の計測条件や制御条件などを変更する機能を有している。
【００７９】
この、近似的直線探索法を用いた設計最適化装置によれば、まず、制御計算装置１１の入力装置で、(式６)に基づく目的関数、設計変数、制約条件を入力し、メモリ１５へ格納する。つぎに、制御計算装置１１のメモリ１５に格納された制御プログラム１６ａを実行する。同図の制御計算装置１１のメモリ１５内の制御プログラム１６ａは、メモリ１５内の設計変数、Ｉ／Ｆ装置１７から受信した計測結果を用い、目的関数が最小となる設計変数の候補解を算出し、Ｉ／Ｆ装置１７へ、制御対象変更指示信号を送信する。その信号をＩ／Ｆ装置１７を介して受信した計測装置１８は、その内容に基づき制御対象１９の制御を更新し、再度計測を実施する。この動作を目的関数が最小となるまで自動的に繰り返すことができる。
【００８０】
このように、この実施の形態１によれば、制御プログラムが、図６または図７に示す近似的直線探索法を反復的に用いた非線形最適解探索手法を備えたことにより、直線探索１回あたりの反復計算回数を大幅に減らすことにより総反復計算回数を削減できるとともに、増減係数Ｍを効果的に漸減することにより反復計算回数のばらつきを少なくすることができるので、従来の設計手法では得られなかった近似的最良設計解を短時間、かつ、安定的に求めることができる。
【００８１】
実施の形態２．
図９は、実施の形態２における熱流体・構造・電磁界などについての電機機器等に自動的に設計最適化を実行する機能を備えた設計最適化装置のブロック図であり、この場合は設計最適化の対象を計測対象モデルとしている。この設計最適化装置は、上述した実施の形態１の近似的直線探索法を反復的に用いている。図８に示した装置と同一符号のものは、基本的に同じ装置を表している。図９において、２１は制御用計算装置を、１２はＣＰＵ(Central Processing Unit)を、１３は入力装置を、１４は出力装置を、１５はメモリを、１６ａは制御プログラムを、１６ｂは制御データを、２２ａは計測プログラムを、２２ｂは計測データを、２３ａは解析プログラムを、２３ｂは解析データを、２４は制御対象モデルデータを、それぞれ示している。
【００８２】
制御計算装置２１は、メモリ１５内に、近似的直線探索法を反復的に用いた非線形最適解探索手法を備えた制御プログラム１６ａを格納している。また、メモリ１５は、制御プログラム１６ａのほかに、計測プログラム２２ａおよび計測データ２２ｂ、解析プログラム２３ａおよび解析データ２３ｂならびに制御対象モデルデータ２４が格納されている。ここで、解析プログラム２３ａは、制御対象モデルデータ２４に基づいた熱流体・構造・電磁界などの数値解析を実行する機能を持っている。また、計測プログラム２２ａは、解析プログラム２３ａの結果を取得し、制御対象モデルデータ２４の形状データ、計算条件などを決定するデータの変更機能を有している。
【００８３】
図９の設計最適化装置を使用するには、まず制御計算装置２１の入力装置１３で、(式５)に基づく目的関数、設計変数、制約条件を入力し、メモリ１５へ格納する。つぎに、制御計算装置２１のメモリ１５に格納された制御プログラム１６ａを実行する。制御計算装置２１のメモリ１５内の制御プログラム１６ａは、メモリ１５内の設計変数、計測プログラム２２ａから受信した計測結果を用い、目的関数が最小となる設計変数の候補解を算出し、計測プログラム２２ａへ制御対象変更指示信号を送信する。その信号を受信した計測プログラム２２ａは、その信号に基づき制御対象モデルデータ２４を更新し、解析プログラム２３ａに実行を指示し、解析プログラム２３ａの解析結果を取得する。そして、この動作を目的関数が最小となるまで自動的に繰り返すことができる。
【００８４】
このように、この実施の形態２によれば、制御対象モデルについての設計最適化をおこなうための、制御プログラムが、図７に示す近似的直線探索法を反復的に用いた非線形最適解探索手法を備えたことにより、直線探索１回あたりの反復計算回数を大幅に減らすことにより総反復計算回数を削減できるとともに、増減係数Ｍを効果的に漸減することにより反復計算回数のばらつきを少なくすることができるので、従来の設計手法では得られなかった近似的最良設計解を短時間、かつ、安定的に求めることができる。
【００８５】
【発明の効果】
以上説明したように、この発明にかかる非線形最適解探索装置によれば、囲い込み処理手段は、区間の一方の端点を基準点ａとし、探索方向ベクトルｄ、基準点ａからの探索方向へのステップ幅αおよびステップ幅αを増減させるための１より大きい複数個の増減係数Ｍを記憶手段に保持し、基準点ａにステップ幅αを加えた点から記憶手段に保持された複数個の増減係数Ｍのうちの一つを用いてステップ幅αを増加させることにより算出した関数値が、基準点ａの関数値ｆ(ａ)を初めて上回ったときに、上回った関数値および上回った関数値を出力させる探索点を記憶手段に保持し、一つの増減係数Ｍについての当該探索点を求める処理を１回の囲い込み処理とするときに、１回の囲い込み処理が終了する度にステップ幅αを探索点の直前の探索点に復帰させ、かつ、記憶手段に保持された複数個の増減係数Ｍをその値が漸減する方向に順次読み出しつつ、当該増減係数Ｍごとに囲い込み処理を繰り返し実行し、基準点ａにおける関数値ｆ(ａ)と最後に読み出された増減係数Ｍについて求められた探索点における関数値との偏差が所定値以下となったときの探索点を他方の端点ｂとして求めることができ、最小解探索手段は、得られた区間［ａ，ｂ］内に存在する最小値を探索することができるので、直線探索１回あたりの反復計算回数を大幅に減らすことにより総反復計算回数を削減でき、従来の設計手法では得られなかった近似的最良設計解を短時間に求めることができる。
【００８６】
つぎの発明にかかる非線形最適解探索装置によれば、囲い込み処理手段は、各１回の囲い込み処理中に、探索点の間隔が徐々に大きくなるステップ幅となるように増減係数Ｍを用いてステップ幅を増加させることができるので、直線探索１回あたりの反復計算回数を減らすことにより総反復計算回数を大幅に削減でき、従来の設計手法では得られなかった近似的最良設計解を短時間に求めることができる。
【００８７】
つぎの発明にかかる非線形最適解探索装置によれば、囲い込み処理手段は、基準点ａの関数値ｆ(ａ)と同じ値を最初に超える探索点ｘ1と、この探索点ｘ1の直前の探索点ｘ2との間に、ｆ(ｘ1)＜ｆ(ａ)＜ｆ(ｘ2)の関係が得られたとき、ｘ1、ｘ2、ｆ(ｘ1)、ｆ(ｘ2)から１次式ｇ(ｘ)を作成し、ｇ(ｘ3)＝ｆ(ａ)となる点ｘ3を前記次回探索の開始点とするとともに、最終的に得られた探索点ｘ3を他方の端点ｂとすることができるので、直線探索１回あたりの反復計算回数を減らすことにより総反復計算回数を大幅に削減でき、従来の設計手法では得られなかった近似的最良設計解を短時間に求めることができる。
【００８８】
この発明にかかる非線形最適解探索装置によれば、最小解探索手段は、区間［ａ，ｂ］内の任意の３点から放物線近似による２次近似式を作成し、該２次近似式の１階微分が０となる近似最小点を求めることができるので、直線探索１回あたりの反復計算回数を減らすことにより総反復計算回数を大幅に削減できるとともに、反復計算回数のばらつきを少なくすることができ、従来の設計手法では得られなかった近似的最良設計解を短時間、かつ、安定的に求めることができる。
【００８９】
この発明にかかる非線形最適解探索装置によれば、最小解探索手段は、区間［ａ，ｂ］内の任意の３点以上から最小２乗法による２次近似式を作成し、該２次近似式の１階微分が０となる近似最小点を求めることができるので直線探索１回あたりの反復計算回数を減らすことにより総反復計算回数を大幅に削減できるとともに、反復計算回数のばらつきを少なくすることができ、従来の設計手法では得られなかった近似的最良設計解を短時間、かつ、安定的に求めることができる。
【００９０】
この発明にかかる非線形最適解探索装置によれば、探索方向ベクトルｄを勾配法を用いて求めることができるので、基準点が最小近傍点に存在する場合や、α1を小さくしてもｆ1＜ｆ0の条件が成立しない場合等の、解が求められない状態になるのを避けることができ、従来の設計手法では得られなかった近似的最良設計解を短時間、かつ、安定的に求めることができる。
【００９１】
この発明にかかる非線形最適解探索装置によれば、関数ｆ(ｘ)の代わりにペナルティ係数γを付加した目的関数Ｕ(ｘ，γ)を用い、探索の際にペナルティ係数γを段階的に大きくすることができるので、直線探索１回あたりの反復計算回数を減らすことにより総反復計算回数を大幅に削減できるとともに、反復計算回数のばらつきを少なくすることができ、従来の設計手法では得られなかった近似的最良設計解を短時間、かつ、安定的に求めることができる。
【００９２】
つぎの発明にかかる非線形最適解探索装置によれば、囲い込み処理手段は、区間の一方の端点を基準点ａとし、探索方向ベクトルｄ、基準点ａからの探索方向へのステップ幅αおよびステップ幅αを増減させるための１より大きい複数個の増減係数Ｍを記憶手段に保持し、基準点ａにステップ幅αを加えた点から記憶手段に保持された複数個の増減係数Ｍのうちの一つを用いて該ステップ幅αを増加させることにより算出した関数値が、基準点ａの関数値ｆ(ａ)を初めて下回ったときに、下回った関数値および下回った関数値を出力させる探索点を記憶手段に保持し、一つの増減係数Ｍについての当該探索点を求める処理を１回の囲い込み処理とするときに、１回の囲い込み処理が終了する度にステップ幅αを探索点の直前の探索点に復帰させ、かつ、記憶手段に保持された複数個の増減係数Ｍをその値が漸減する方向に順次読み出しつつ、当該増減係数Ｍごとに囲い込み処理を繰り返し実行し、基準点ａにおける関数値ｆ(ａ)と最後に読み出された増減係数Ｍについて求められた探索点における関数値との偏差が所定値以下となったときの該探索点を他方の端点ｂとして求めることができ、また、最大解探索手段は、得られた区間［ａ，ｂ］内に存在する最大値を探索することができるので、直線探索１回あたりの反復計算回数を大幅に減らすことにより総反復計算回数を削減でき、従来の設計手法では得られなかった近似的最良設計解を短時間に求めることができる。
【００９３】
つぎの発明にかかる非線形最適解探索装置によれば、囲い込み処理手段は、各１回の囲い込み処理中に、探索点の間隔が徐々に大きくなるステップ幅となるように増減係数Ｍを用いてステップ幅を増加させることができるので、直線探索１回あたりの反復計算回数を減らすことにより総反復計算回数を大幅に削減でき、従来の設計手法では得られなかった近似的最良設計解を短時間に求めることができる。
【００９４】
つぎの発明にかかる非線形最適解探索装置によれば、囲い込み処理手段は、基準点ａの関数値ｆ(ａ)と同じ値を最初に小さくなる探索点ｘ1と、この探索点ｘ1の直前の探索点ｘ2との間に、ｆ(ｘ1)＜ｆ(ａ)＜ｆ(ｘ2)の関係が得られたとき、ｘ1、ｘ2、ｆ(ｘ1)、ｆ(ｘ2)から１次式ｇ(ｘ)を作成し、ｇ(ｘ3)＝ｆ(ａ)となる点ｘ3を前記次回探索の開始点とするとともに、最終的に得られた探索点ｘ3を他方の端点ｂとすることができるので、直線探索１回あたりの反復計算回数を減らすことにより総反復計算回数を大幅に削減でき、従来の設計手法では得られなかった近似的最良設計解を短時間に求めることができる。
【００９５】
この発明にかかる非線形最適解探索装置によれば、最大解探索手段は、区間［ａ，ｂ］内の任意の３点から放物線近似による２次近似式を作成し、該２次近似式の１階微分が０となる近似最大点を求めることができるので、直線探索１回あたりの反復計算回数を減らすことにより総反復計算回数を大幅に削減できるとともに、反復計算回数のばらつきを少なくすることができ、従来の設計手法では得られなかった近似的最良設計解を短時間、かつ、安定的に求めることができる。
【００９６】
この発明にかかる非線形最適解探索装置によれば、最大解探索手段は、区間［ａ，ｂ］内の任意の３点以上から最小２乗法による２次近似式を作成し、該２次近似式の１階微分が０となる近似最大点を求めることができるので直線探索１回あたりの反復計算回数を減らすことにより総反復計算回数を大幅に削減できるとともに、反復計算回数のばらつきを少なくすることができ、従来の設計手法では得られなかった近似的最良設計解を短時間、かつ、安定的に求めることができる。
【００９７】
この発明にかかる非線形最適解探索装置によれば、囲い込み処理手段は、探索方向ベクトルｄを勾配法を用いて求めることができるので、基準点が最小近傍点に存在する場合や、α1を小さくしてもｆ1＜ｆ0の条件が成立しない場合等の、解が求められない状態になるのを避けることができ、従来の設計手法では得られなかった近似的最良設計解を短時間、かつ、安定的に求めることができる。
【００９８】
この発明にかかる非線形最適解探索装置によれば、関数ｆ(ｘ)の代わりにペナルティ係数γを付加した目的関数Ｕ(ｘ，γ)を用い、探索の際にペナルティ係数γを段階的に大きくすることができるので、直線探索１回あたりの反復計算回数を減らすことにより総反復計算回数を大幅に削減できるとともに、反復計算回数のばらつきを少なくすることができ、従来の設計手法では得られなかった近似的最良設計解を短時間、かつ、安定的に求めることができる。
【図面の簡単な説明】
【図１】  実施の形態１の囲い込み法の処理手順を示すフローチャートである。
【図２】  α1の補正処理を示す概念図である。
【図３】  最小２乗法による２次近似式または放物線近似式を用いた最小解探索法の処理の概念図である。
【図４】  ２次近似式による最小解探索法の処理手順を示したフローチャートである。
【図５】  図１に示した改良された囲い込み法と、図４に示した２次近似式による最小解探索法とを組み合わせた、２次近似式による最小解／最大解を探索する直線探索法のフローチャートである。
【図６】  制約条件が無い場合の、勾配法と図５に示した直線探索法を組み合わせた最適解探索法の処理を示すフローチャートである。
【図７】  制約条件がある場合の、勾配法と図５に示した直線探索法を組み合わせた最適解探索法の処理を示すフローチャートである。
【図８】  実施の形態１における、熱流体・構造・電磁界など電機機器等に自動的に設計最適化を実行する機能を備えた設計最適化装置のブロック図である。
【図９】  実施の形態２における、熱流体・構造・電磁界など電機機器等に自動的に設計最適化を実行する機能を備えた設計最適化装置のブロック図である。
【図１０】（ａ）は従来の囲い込み法の処理のフローチャートであり、（ｂ）は従来の囲い込み法の処理概念の説明図である。
【図１１】（ａ）は黄金分割法の処理のフローチャートであり、（ｂ）は黄金分割法の処理概念の説明図である。
【図１２】  従来の直線探索法のフローチャートを示したものである。
【符号の説明】
１１  制御用計算装置、１２  ＣＰＵ、１３  入力装置、１４  出力装置、１５  メモリ、１６ａ  制御プログラム、１６ｂ  制御データ、１７  Ｉ／Ｆ装置、１８  計測装置、１９  制御対象、２１  制御用計算装置、２２ａ  計測プログラム、２２ｂ  計測データ、２３ａ  解析プログラム、２３ｂ  解析データ、２４  制御対象モデル。
【図１】
0003845029.tif 000008
【図２】
0003845029.tif 000009
【図３】
0003845029.tif 000010
【図４】
0003845029.tif 000011
【図５】
0003845029.tif 000012
【図６】
0003845029.tif 000013
【図７】
0003845029.tif 000014
【図８】
0003845029.tif 000015
【図９】
0003845029.tif 000016
【図１０】
0003845029.tif 000017
【図１１】
0003845029.tif 000018
【図１２】
0003845029.tif 000019