JPH0554057A - 非線形最適化方法及びその装置 - Google Patents
非線形最適化方法及びその装置Info
- Publication number
- JPH0554057A JPH0554057A JP21064291A JP21064291A JPH0554057A JP H0554057 A JPH0554057 A JP H0554057A JP 21064291 A JP21064291 A JP 21064291A JP 21064291 A JP21064291 A JP 21064291A JP H0554057 A JPH0554057 A JP H0554057A
- Authority
- JP
- Japan
- Prior art keywords
- function
- partial derivative
- calculation
- linear optimization
- optimization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Feedback Control In General (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 非線形最適化問題の解の探索を実行する非線
形最適化装置における求解効率と精度の向上を図り、更
に使い勝手の向上を図る。 【構成】 非線形最適化装置を、非線形最適化問題の目
的関数および制約関数の偏導関数を記号処理により自動
的に作成する偏導関数作成機能と、該目的関数,制約関
数及びこれらの偏導関数に基づいて最適化計算を実行す
る最適化計算機能で構成する。これにより、数値微分計
算が排除され、最適化計算の効率と精度を向上でき、ま
た手作業での偏導関数作成の手間が無くなるので、非線
形最適化装置としての使い勝手が向上する。
形最適化装置における求解効率と精度の向上を図り、更
に使い勝手の向上を図る。 【構成】 非線形最適化装置を、非線形最適化問題の目
的関数および制約関数の偏導関数を記号処理により自動
的に作成する偏導関数作成機能と、該目的関数,制約関
数及びこれらの偏導関数に基づいて最適化計算を実行す
る最適化計算機能で構成する。これにより、数値微分計
算が排除され、最適化計算の効率と精度を向上でき、ま
た手作業での偏導関数作成の手間が無くなるので、非線
形最適化装置としての使い勝手が向上する。
Description
【0001】
【産業上の利用分野】本発明は非線形最適化方法及びそ
の装置に係り、特に、解を高速に求めるのに好適な非線
形最適化方法及びその装置に関する。
の装置に係り、特に、解を高速に求めるのに好適な非線
形最適化方法及びその装置に関する。
【0002】
【従来の技術】与えられた制約条件のもとで、非線形最
適化問題の目的関数の解(最小値あるいは最大値)また
は局所解(極小値あるいは極大値)を求める場合、従来
は、目的関数に数値を代入して計算して極値を求めた
り、あるいは、目的関数の数値微分を行いこれが極値で
あるか否かを判定していた。
適化問題の目的関数の解(最小値あるいは最大値)また
は局所解(極小値あるいは極大値)を求める場合、従来
は、目的関数に数値を代入して計算して極値を求めた
り、あるいは、目的関数の数値微分を行いこれが極値で
あるか否かを判定していた。
【0003】尚、非線形最適化問題を求める従来技術と
して、例えば特開平1−193971号や、特開平2−
71358号等がある。
して、例えば特開平1−193971号や、特開平2−
71358号等がある。
【0004】
【発明が解決しようとする課題】従来の様に、目的関数
に数値を代入したり数値微分をしたりして問題を解決す
る方法は、問題領域を小領域に分割し各小領域において
目的関数に数値代入を行い計算すれば、極値を求めるこ
とはできる。しかし、これは、問題領域を無数の無限小
領域に分割した場合の話であって、計算時間が膨大とな
り、実用的でない。そこで、問題領域を有限個の小領域
に分割し各小領域で数値微分等を行い、解を求めること
になるが、求めた解が真の解や局所解である精度は悪く
なってしまう。
に数値を代入したり数値微分をしたりして問題を解決す
る方法は、問題領域を小領域に分割し各小領域において
目的関数に数値代入を行い計算すれば、極値を求めるこ
とはできる。しかし、これは、問題領域を無数の無限小
領域に分割した場合の話であって、計算時間が膨大とな
り、実用的でない。そこで、問題領域を有限個の小領域
に分割し各小領域で数値微分等を行い、解を求めること
になるが、求めた解が真の解や局所解である精度は悪く
なってしまう。
【0005】本発明の目的は、精度の高い解あるいは局
所解を短時間で求めることができる非線形最適化方法及
びその装置を提供することにある。
所解を短時間で求めることができる非線形最適化方法及
びその装置を提供することにある。
【0006】
【課題を解決するための手段】上記目的は、非線形最適
化問題の解の探索を実行する場合において、非線形最適
化問題の目的関数および制約関数の偏導関数を記号処理
に基づいて自動的に作成し、作成した偏導関数及びその
目的関数,制約関数に基づいて最適化計算を実行するこ
とで、達成される。
化問題の解の探索を実行する場合において、非線形最適
化問題の目的関数および制約関数の偏導関数を記号処理
に基づいて自動的に作成し、作成した偏導関数及びその
目的関数,制約関数に基づいて最適化計算を実行するこ
とで、達成される。
【0007】
【作用】本発明の非線形最適化では、数値微分ではな
く、数式微分を採用するので、短時間に高精度の解ある
いは局所解を求めることが可能となる。
く、数式微分を採用するので、短時間に高精度の解ある
いは局所解を求めることが可能となる。
【0008】
【実施例】以下、本発明の一実施例を図面を参照して説
明する。先ず最初に、非線形最適化問題について説明す
る。与えられた制約条件の下で、少なくとも1つの変数
によって記述される目的関数を最大化あるいは最小化す
る最適化問題のうち、目的関数と制約関数の少なくとも
一方が非線形関数であるものを非線形最適化問題と呼
ぶ。非線形最適化問題は、一般に次の数式1で表され
る。
明する。先ず最初に、非線形最適化問題について説明す
る。与えられた制約条件の下で、少なくとも1つの変数
によって記述される目的関数を最大化あるいは最小化す
る最適化問題のうち、目的関数と制約関数の少なくとも
一方が非線形関数であるものを非線形最適化問題と呼
ぶ。非線形最適化問題は、一般に次の数式1で表され
る。
【0009】
【数1】
【0010】ここで、f(x) :目的関数、 gi(x):不等号制約関数、 hj(x):等号制約関数、 MI :不等号制約条件の添字集合、 ME :等号制約条件の添字集合、 x :n次元空間内の一点の座標であり、非線形最
適化問題のn個の変数を表している。
適化問題のn個の変数を表している。
【0011】非線形最適化問題に対しては現在のとこ
ろ、線形計画問題における単体法やカ−マ−カ法に対応
するような決定的な求解手法は得られていない。代表的
な非線形最適化手法としては、今野浩,山下浩著の「非
線形計画法」(日科技連、1978)に書かれているよ
うに、目的関数と制約関数とを融合した関数を最適化す
る変換法、線形計画における単体法を非線形最適化の場
合に拡張した簡約勾配法、二次計画を繰返し実行して探
索点を改善する逐次二次計画法等が挙げられる。いずれ
の手法も、基本的には探索の開始点から目的関数を改善
する方向に探索点を更新して行き、最終的に目的関数の
値をそれ以上改善できない最適点に収束させるという考
え方に基づいている。
ろ、線形計画問題における単体法やカ−マ−カ法に対応
するような決定的な求解手法は得られていない。代表的
な非線形最適化手法としては、今野浩,山下浩著の「非
線形計画法」(日科技連、1978)に書かれているよ
うに、目的関数と制約関数とを融合した関数を最適化す
る変換法、線形計画における単体法を非線形最適化の場
合に拡張した簡約勾配法、二次計画を繰返し実行して探
索点を改善する逐次二次計画法等が挙げられる。いずれ
の手法も、基本的には探索の開始点から目的関数を改善
する方向に探索点を更新して行き、最終的に目的関数の
値をそれ以上改善できない最適点に収束させるという考
え方に基づいている。
【0012】このような最適化手法を初めとして、現在
有効とされる非線形最適化手法の多くは、探索方向を目
的関数および制約関数の勾配に基づいて決定している。
例えば、逐次二次計画法の実行の過程においては、探索
方向は次ぎの数式2に示すような二次計画問題を解いて
決定される。
有効とされる非線形最適化手法の多くは、探索方向を目
的関数および制約関数の勾配に基づいて決定している。
例えば、逐次二次計画法の実行の過程においては、探索
方向は次ぎの数式2に示すような二次計画問題を解いて
決定される。
【0013】
【数2】
【0014】ここで、xk :非線形最適化問題における
k番目の探索点、 B :非線形最適化問題のラグランジュ関数のヘッセ行
列、 d :二次計画法における探索点、 ∇ :勾配列ベクトル であり、この二次計画問題を解くためには、f,gi,
hjの全ての変数に関する勾配値を求める必要がある。
k番目の探索点、 B :非線形最適化問題のラグランジュ関数のヘッセ行
列、 d :二次計画法における探索点、 ∇ :勾配列ベクトル であり、この二次計画問題を解くためには、f,gi,
hjの全ての変数に関する勾配値を求める必要がある。
【0015】関数の勾配値の計算には以下の二つの方法
が考えられる。 (a)値微分法(数値的な反復計算)により勾配値を近
似的に求める。
が考えられる。 (a)値微分法(数値的な反復計算)により勾配値を近
似的に求める。
【0016】(b)関数の偏導関数をあらかじめ求めて
おき、探索点の座標を代入することにより勾配値を計算
する。
おき、探索点の座標を代入することにより勾配値を計算
する。
【0017】上記の(a)の数値微分は、近似計算であ
る以上、計算誤差は避けられない。このため、非線形最
適化問題の解を高い精度で求めることは難しい。また、
反復計算を必要とするため、特に非線形性の強い関数の
勾配値を求めようとした場合に計算時間が長くなってし
まう。このように、数値微分を非線形最適化計算の中で
用いることは、計算の精度と効率とを低下させる原因の
一つとなっている。また、最適化手法の中には二階の偏
導関数値を用いるものがあるが、この場合、数値微分法
では、計算の精度と効率とがさらに悪化してしまう。
る以上、計算誤差は避けられない。このため、非線形最
適化問題の解を高い精度で求めることは難しい。また、
反復計算を必要とするため、特に非線形性の強い関数の
勾配値を求めようとした場合に計算時間が長くなってし
まう。このように、数値微分を非線形最適化計算の中で
用いることは、計算の精度と効率とを低下させる原因の
一つとなっている。また、最適化手法の中には二階の偏
導関数値を用いるものがあるが、この場合、数値微分法
では、計算の精度と効率とがさらに悪化してしまう。
【0018】一方、(b)の手法は、計算誤差と計算効
率とを数値微分法より改善することができる。しかし、
変数の数が多い場合や関数の形が複雑である場合には、
手作業による偏導関数作成に要する労力が極めて大きく
なり、実際上これを採用することは不可能である。
率とを数値微分法より改善することができる。しかし、
変数の数が多い場合や関数の形が複雑である場合には、
手作業による偏導関数作成に要する労力が極めて大きく
なり、実際上これを採用することは不可能である。
【0019】また、近年開発されてきたREDUCEや
MACSYMAといった数式処理システムを用いて目的
関数や制約関数の偏導関数を作成することは可能である
が、偏導関数を最適化計算で使用できるフォ−マットに
書き換えるためには人間の介在を必要とするため、使い
勝手の点で問題がある。
MACSYMAといった数式処理システムを用いて目的
関数や制約関数の偏導関数を作成することは可能である
が、偏導関数を最適化計算で使用できるフォ−マットに
書き換えるためには人間の介在を必要とするため、使い
勝手の点で問題がある。
【0020】図2は、本発明の一実施例に係る非線形最
適化装置の構成図であり、キーボード等の入力装置1
と、CRT等の画像表示装置8と、演算装置とからな
り、演算装置は、入力装置1に接続される入力部2と、
作業記憶領域3と、第1記憶領域4と、第2記憶領域5
と、演算処理部6と、画像表示装置8に接続された出力
部7とからなる。
適化装置の構成図であり、キーボード等の入力装置1
と、CRT等の画像表示装置8と、演算装置とからな
り、演算装置は、入力装置1に接続される入力部2と、
作業記憶領域3と、第1記憶領域4と、第2記憶領域5
と、演算処理部6と、画像表示装置8に接続された出力
部7とからなる。
【0021】入力装置1から入力された非線形最適化問
題は、入力部2を介して作業記憶領域3に記憶される。
また第1記憶領域4には偏導関数作成機能が、第2記憶
領域5には最適化計算機能が、夫々逐次的な処理手続き
として記憶される。これらの処理手続きは、演算処理部
6に逐一読み込まれ実行される。
題は、入力部2を介して作業記憶領域3に記憶される。
また第1記憶領域4には偏導関数作成機能が、第2記憶
領域5には最適化計算機能が、夫々逐次的な処理手続き
として記憶される。これらの処理手続きは、演算処理部
6に逐一読み込まれ実行される。
【0022】この非線形最適化装置では、まず、偏導関
数作成機能の処理手続きを実行する。この機能の詳細に
ついては後述する。偏導関数作成機能の実行の結果、非
線形最適化問題の目的関数,制約関数およびこれらの関
数の偏導関数を計算する計算手続きが作成され、作業記
憶領域3に記憶される。次に、最適化計算機能の処理手
続きを実行する。最適化計算機能は、偏導関数作成機能
の実行の結果作成された非線形最適化問題の目的関数,
制約関数およびこれらの関数の偏導関数を計算する計算
手続きを用いて非線形最適化計算を実行し、非線形最適
化問題の解を求めて、これを作業記憶領域3に記憶す
る。作業記憶領域3に記憶されたデ−タは、処理手続き
の中に書かれた参照要求や、ユ−ザから入力された参照
要求に応じて、出力部7を介し画像出力装置8に出力さ
れる。
数作成機能の処理手続きを実行する。この機能の詳細に
ついては後述する。偏導関数作成機能の実行の結果、非
線形最適化問題の目的関数,制約関数およびこれらの関
数の偏導関数を計算する計算手続きが作成され、作業記
憶領域3に記憶される。次に、最適化計算機能の処理手
続きを実行する。最適化計算機能は、偏導関数作成機能
の実行の結果作成された非線形最適化問題の目的関数,
制約関数およびこれらの関数の偏導関数を計算する計算
手続きを用いて非線形最適化計算を実行し、非線形最適
化問題の解を求めて、これを作業記憶領域3に記憶す
る。作業記憶領域3に記憶されたデ−タは、処理手続き
の中に書かれた参照要求や、ユ−ザから入力された参照
要求に応じて、出力部7を介し画像出力装置8に出力さ
れる。
【0023】図1は、偏導関数作成機能の詳細説明図で
ある。本実施例において、偏導関数作成機能は3つのス
テップから構成されている。第1ステップでは、目的関
数および制約関数を、偏導関数作成に適した内部表現に
変換する。ここで、偏導関数作成に適した内部表現と
は、関数の演算順序が陽に表された関数記述形式のこと
を言う。例えば、Fortranの記述形式で書かれた関数
は、計算ステップが陽に表現されない。すなわち、
ある。本実施例において、偏導関数作成機能は3つのス
テップから構成されている。第1ステップでは、目的関
数および制約関数を、偏導関数作成に適した内部表現に
変換する。ここで、偏導関数作成に適した内部表現と
は、関数の演算順序が陽に表された関数記述形式のこと
を言う。例えば、Fortranの記述形式で書かれた関数
は、計算ステップが陽に表現されない。すなわち、
【0024】
【数3】A×B+(C−D)/E という数式3において、“×”演算の実行が、“+”演
算より優先するということは、この数式3からは直接読
み取ることはできない。これに対してこの数式3を、例
えば、
算より優先するということは、この数式3からは直接読
み取ることはできない。これに対してこの数式3を、例
えば、
【0025】
【数4】 (+ (× A B)(/ (− C D) E)) と記述すると、演算の実行順序が明確になる。ここで用
いた内部表現は、図3に示すように、関数の計算過程を
表した計算グラフに対応付けられる。計算グラフにおい
て、グラフの頂点は関数の中間変数に、分岐点は関数の
基本演算子にそれぞれ相当する。
いた内部表現は、図3に示すように、関数の計算過程を
表した計算グラフに対応付けられる。計算グラフにおい
て、グラフの頂点は関数の中間変数に、分岐点は関数の
基本演算子にそれぞれ相当する。
【0026】偏導関数の作成に際しては、関数の実行順
序が明確である必要がある。偏導関数作成機能の第1ス
テップでは、数式3を数式4で示すような関数記述形式
に変換する処理を行う。数式4は、与えられた数式を、
より基本的な算術要素へと展開していく過程で生成され
る。算術要素とは、算術式,項,因子,一次子の総称で
あり、これらは図4に示すように再帰的な形で定義され
る。ここで再帰的とは、一次子の引数として算術式を記
述できることを指す。図5に簡単な数式を内部表現に展
開していく処理手順を示す。
序が明確である必要がある。偏導関数作成機能の第1ス
テップでは、数式3を数式4で示すような関数記述形式
に変換する処理を行う。数式4は、与えられた数式を、
より基本的な算術要素へと展開していく過程で生成され
る。算術要素とは、算術式,項,因子,一次子の総称で
あり、これらは図4に示すように再帰的な形で定義され
る。ここで再帰的とは、一次子の引数として算術式を記
述できることを指す。図5に簡単な数式を内部表現に展
開していく処理手順を示す。
【0027】図5において、与えられた算術式(次ぎの
数式5)
数式5)
【0028】
【数5】3*A+B**2/sin(C+D) に対し、先ず、項への展開を試みる。この場合、算術式
は[3*A]と[B**2/sin(C+D)]の2つの
項に展開可能である。次ぎに、第1の項[3*A]に対
して、因子への展開を試みる。この結果、[3*A]は
[3]という算術定数と、[A]という算術変数に展開
される。[3]も[A]もこれ以上は展開不可能であ
る。
は[3*A]と[B**2/sin(C+D)]の2つの
項に展開可能である。次ぎに、第1の項[3*A]に対
して、因子への展開を試みる。この結果、[3*A]は
[3]という算術定数と、[A]という算術変数に展開
される。[3]も[A]もこれ以上は展開不可能であ
る。
【0029】次ぎに、第2の項[B**2/sin(C+
D)]の因子への展開を試みる。この結果、この項は、
[B**2]と[sin(C+D)]の2つの因子に展開
される。これらは更に、[B],[2],[C+D]と
いう3つの一次子へと展開される。[B],[2]はそ
れぞれ算術変数,算術定数であるため、これ以上は展開
できない。これに対し、[C+D]は、更に項へと展開
可能である。このように、与えられた算術式を、項→因
子→一次子→項→…と繰り返し展開して行くことによ
り、図5に示す様な算術グラフを得ることができる。こ
の処理は、全ての算術要素が算術定数、または算術変数
に展開されるまで繰り返される。
D)]の因子への展開を試みる。この結果、この項は、
[B**2]と[sin(C+D)]の2つの因子に展開
される。これらは更に、[B],[2],[C+D]と
いう3つの一次子へと展開される。[B],[2]はそ
れぞれ算術変数,算術定数であるため、これ以上は展開
できない。これに対し、[C+D]は、更に項へと展開
可能である。このように、与えられた算術式を、項→因
子→一次子→項→…と繰り返し展開して行くことによ
り、図5に示す様な算術グラフを得ることができる。こ
の処理は、全ての算術要素が算術定数、または算術変数
に展開されるまで繰り返される。
【0030】また、この計算グラフは、
【0031】
【数6】(+ (* 3 A) (/ (** B
2) (sin (+C D)))) なる内部表現で記憶される。
2) (sin (+C D)))) なる内部表現で記憶される。
【0032】図1の第2ステップでは、内部表現に変換
された目的関数および制約関数の偏導関数を作成する。
ここでは、偏導関数作成手法として、FAD(高速自動
微分法)を用いる場合について説明する。FADの実行
に際しては、まず前述した計算グラフにおいて、上位の
頂点u1から下位の頂点u2とを結ぶ辺上に、要素的偏
導関数、∂u1/∂u2を求めて対応付ける。ここで、
関数Fの入力変数Xに関する偏導関数は、計算グラフ上
で頂点Xから頂点Fへいたるパス上の各辺の要素的偏導
関数の積を作り、そのような積を、頂点Xから頂点Fへ
のあらゆるパスに関して加え合わせたものである。
された目的関数および制約関数の偏導関数を作成する。
ここでは、偏導関数作成手法として、FAD(高速自動
微分法)を用いる場合について説明する。FADの実行
に際しては、まず前述した計算グラフにおいて、上位の
頂点u1から下位の頂点u2とを結ぶ辺上に、要素的偏
導関数、∂u1/∂u2を求めて対応付ける。ここで、
関数Fの入力変数Xに関する偏導関数は、計算グラフ上
で頂点Xから頂点Fへいたるパス上の各辺の要素的偏導
関数の積を作り、そのような積を、頂点Xから頂点Fへ
のあらゆるパスに関して加え合わせたものである。
【0033】図6に、本実施例で用いたFADのアルゴ
リズムを示す。このアルゴリズムは計算グラフを深さ優
先でたどることにより偏導関数を作成する。
リズムを示す。このアルゴリズムは計算グラフを深さ優
先でたどることにより偏導関数を作成する。
【0034】図7に、FADの具体例として、
【0035】
【数7】F=sin(X1+X2)/(X2−2X3) なる関数に対応する計算グラフ、およびこの計算グラフ
を用いて求めた偏導関数を示す。この図7では、説明の
ために、各中間変数はFortranの記述形式で書かれてい
るが、実際は、これらの変数は内部表現の形をしてい
る。
を用いて求めた偏導関数を示す。この図7では、説明の
ために、各中間変数はFortranの記述形式で書かれてい
るが、実際は、これらの変数は内部表現の形をしてい
る。
【0036】次ぎに、図7の計算グラフにおいて、図6
のアルゴリズムがどのように働くかを説明する。算術式
は、予め計算グラフに展開されているものとする。先ず
ステップ1では、入力関数の計算グラフ及び入力変数を
ユーザが与える。図7の例では、入力変数はX1,X2,
X3の3つである。ステップ2では、偏導関数の初期化
を行う。即ち、入力変数X1,X2,X3の夫々について
の偏導関数∂f/∂X1,∂f/∂X2,∂f/∂X3に
全て“0”を代入する。ステップ3では、偏導関数作成
のための仮引数formに“1”を代入する。ステップ
4では、偏導関数作成を実行する関数FADを、f及び
formを引数として呼び出す。
のアルゴリズムがどのように働くかを説明する。算術式
は、予め計算グラフに展開されているものとする。先ず
ステップ1では、入力関数の計算グラフ及び入力変数を
ユーザが与える。図7の例では、入力変数はX1,X2,
X3の3つである。ステップ2では、偏導関数の初期化
を行う。即ち、入力変数X1,X2,X3の夫々について
の偏導関数∂f/∂X1,∂f/∂X2,∂f/∂X3に
全て“0”を代入する。ステップ3では、偏導関数作成
のための仮引数formに“1”を代入する。ステップ
4では、偏導関数作成を実行する関数FADを、f及び
formを引数として呼び出す。
【0037】ステップ5では、fの種類により処理を分
岐する。fは“/”をオペレータ、“sin(X1+X
2)”を第1オペランドとし、“X2−2X3”を第2オ
ペランドとする二項演算式であるから、最後の条件文に
マッチングされ、ステップ10以下の処理が実行され
る。ステップ10では、u1にfの第1オペランドを代
入する。この例では、u1=sin(X1+X2)であり、u
1は図7の中間変数v1に対応する。ステップ11では、
∂f/∂u1=1よりform’=cos(X1+X2)/
(X2−2X3)が求められる。次ぎのステップ12で
は、u1=X1,form’=cos(X1+X2)/(X2−
2X3)を引数として、FADを再帰的に呼び出す。
岐する。fは“/”をオペレータ、“sin(X1+X
2)”を第1オペランドとし、“X2−2X3”を第2オ
ペランドとする二項演算式であるから、最後の条件文に
マッチングされ、ステップ10以下の処理が実行され
る。ステップ10では、u1にfの第1オペランドを代
入する。この例では、u1=sin(X1+X2)であり、u
1は図7の中間変数v1に対応する。ステップ11では、
∂f/∂u1=1よりform’=cos(X1+X2)/
(X2−2X3)が求められる。次ぎのステップ12で
は、u1=X1,form’=cos(X1+X2)/(X2−
2X3)を引数として、FADを再帰的に呼び出す。
【0038】ステップ4では、fにはu1が対応付けら
れ、formにはform’が対応付けられる。ステッ
プ5では、fの種類により処理が分岐される。f=u1
=X1は入力変数であるから、ステップ6の処理が実行
される。このステップ6においては、X1の偏導関数∂
f/∂X1にform’を加える処理を行う。この処理
により、FAD(X1,cos(X1+X2)/(X2−2X
3))の計算は終了する。即ち、FAD(X1,cos(X1
+X2)/(X2−2X3))の計算におけるステップ12
の処理を終了し、ステップ13の処理を再開する。この
ステップ13では、u2=X2とする。
れ、formにはform’が対応付けられる。ステッ
プ5では、fの種類により処理が分岐される。f=u1
=X1は入力変数であるから、ステップ6の処理が実行
される。このステップ6においては、X1の偏導関数∂
f/∂X1にform’を加える処理を行う。この処理
により、FAD(X1,cos(X1+X2)/(X2−2X
3))の計算は終了する。即ち、FAD(X1,cos(X1
+X2)/(X2−2X3))の計算におけるステップ12
の処理を終了し、ステップ13の処理を再開する。この
ステップ13では、u2=X2とする。
【0039】ステップ14では、f=X1+X2のu2=
X2に関する偏導関数を求めて、これをform=cos
(X1+X2)/(X2−2X3)に乗じ、form’に代
入する。この例では、∂f/∂u2=1より、for
m’=cos(X1+X2)/(X2−2X3)を引数として
FADを再帰的に呼び出す。
X2に関する偏導関数を求めて、これをform=cos
(X1+X2)/(X2−2X3)に乗じ、form’に代
入する。この例では、∂f/∂u2=1より、for
m’=cos(X1+X2)/(X2−2X3)を引数として
FADを再帰的に呼び出す。
【0040】以下、同様に図6に示すアルゴリズムを実
行することにより、与えられた入力関数fの全ての入力
変数X1,X2,X3に関する偏導関数を作成することが
できる。作成された変動関数は、次ぎの数式8となる。
行することにより、与えられた入力関数fの全ての入力
変数X1,X2,X3に関する偏導関数を作成することが
できる。作成された変動関数は、次ぎの数式8となる。
【0041】
【数8】
【0042】偏導関数の作成手法としては、FAD以外
にも、パタ−ンマッチングに基づく手法がある。これ
は、例えば、
にも、パタ−ンマッチングに基づく手法がある。これ
は、例えば、
【0043】
【数9】F=f(x)×g(x) という関数の偏導関数を求める場合に、
【0044】
【数10】
【0045】なる公式を適用する。この公式によると、
∂F/∂xを求めるためには、∂f(x)/∂xおよ
び、∂g(x)/∂xが求まらなければならない。この
ように、与えられた問題を小問題に分割して行き、小問
題を解くことにより最終的な解を得るという考え方に基
づいている。
∂F/∂xを求めるためには、∂f(x)/∂xおよ
び、∂g(x)/∂xが求まらなければならない。この
ように、与えられた問題を小問題に分割して行き、小問
題を解くことにより最終的な解を得るという考え方に基
づいている。
【0046】図1の第3ステップでは、第2ステップで
求めた偏導関数を最適化計算機能の入力フォ−マットに
変換して出力する。基本的には、第1ステップの逆の考
え方に基づいて変換処理を実行する。第3ステップにお
いて、例えば、(* 3 A)なる内部表現を、3*A
なる算術式に変換する。括弧が多く使われている内部表
現の変換は、内側の括弧から行う。即ち、
求めた偏導関数を最適化計算機能の入力フォ−マットに
変換して出力する。基本的には、第1ステップの逆の考
え方に基づいて変換処理を実行する。第3ステップにお
いて、例えば、(* 3 A)なる内部表現を、3*A
なる算術式に変換する。括弧が多く使われている内部表
現の変換は、内側の括弧から行う。即ち、
【0047】
【数11】(sin (+ C D))→(sin C+D)
→sin(C+D) この手順に従うと、複雑な内部表現も、
→sin(C+D) この手順に従うと、複雑な内部表現も、
【0048】
【数12】
【0049】という順序でFortran形式の算術式に変換
することができる。
することができる。
【0050】次ぎに、偏導関数の計算ルーチンの作成手
順について説明する。システムには、サブルーチンの雛
型が予め最適化計算のために入力データ記憶領域に用意
されている。本実施例においては、入力データ記憶領域
として、図1の作業記憶領域3に次ぎのサブルーチンの
雛型を用意する。この雛型では、例えば∂f/∂X1の
計算ルーチンの名前をDFDX1としてある。
順について説明する。システムには、サブルーチンの雛
型が予め最適化計算のために入力データ記憶領域に用意
されている。本実施例においては、入力データ記憶領域
として、図1の作業記憶領域3に次ぎのサブルーチンの
雛型を用意する。この雛型では、例えば∂f/∂X1の
計算ルーチンの名前をDFDX1としてある。
【0051】 SUBROUTINE DFDX1(N,X,VALU
E) DIMENSION X(N) VALUE=******** RETURN ここで、 N:入力変数の数 X:入力変数の座標ベクトル VALUE:∂f/∂X1の値を代入する変数 同様に、DFDX2,DFDX3の雛型も用意してお
く。
E) DIMENSION X(N) VALUE=******** RETURN ここで、 N:入力変数の数 X:入力変数の座標ベクトル VALUE:∂f/∂X1の値を代入する変数 同様に、DFDX2,DFDX3の雛型も用意してお
く。
【0052】次ぎに、前記雛型の「********」
の部分に、FADを用いて作成した偏導関数∂f/X1
の内部表現を変換した算術式を当てはめる。この結果、
先の例では、 SUBROUTINE DFDX1(N,X,DFDX
1) DIMENSION X(N) DFDX1=cos(X1+X2)/(X2−2X3) RETURN なる偏導関数(∂f/∂X1)値計算サブルーチンほを
完成する。このサブルーチンは最適化計算のための入力
データ記憶領域に記憶され、最適化計算の実行時に用い
られる。
の部分に、FADを用いて作成した偏導関数∂f/X1
の内部表現を変換した算術式を当てはめる。この結果、
先の例では、 SUBROUTINE DFDX1(N,X,DFDX
1) DIMENSION X(N) DFDX1=cos(X1+X2)/(X2−2X3) RETURN なる偏導関数(∂f/∂X1)値計算サブルーチンほを
完成する。このサブルーチンは最適化計算のための入力
データ記憶領域に記憶され、最適化計算の実行時に用い
られる。
【0053】最適化計算機能で用いる最適化手法は、逐
次二次計画法,勾配法,変換法など、その計算過程で目
的関数や制約関数の一階または二階の偏導関数を用いる
ものであれば適用可能である。
次二次計画法,勾配法,変換法など、その計算過程で目
的関数や制約関数の一階または二階の偏導関数を用いる
ものであれば適用可能である。
【0054】次ぎに、上述した実施例に係る非線形最適
化装置を用いた、資源の最適配分決定装置を説明する。
ここで資源とは、対象とする問題がスケジュ−リング問
題である場合には人員や機材、経済問題である場合には
資金や賃金、生産計画問題である場合には原材料の投入
量や電力の供給量などを指している。
化装置を用いた、資源の最適配分決定装置を説明する。
ここで資源とは、対象とする問題がスケジュ−リング問
題である場合には人員や機材、経済問題である場合には
資金や賃金、生産計画問題である場合には原材料の投入
量や電力の供給量などを指している。
【0055】ここでは、図8に示すような生産システム
の最適制御を考える。この生産システムは、原料Aと原
料Bとを用いて、ある製品を生産する。原料AをXa単
位、原料BをXb単位使用した場合の製品の生産高P
は、
の最適制御を考える。この生産システムは、原料Aと原
料Bとを用いて、ある製品を生産する。原料AをXa単
位、原料BをXb単位使用した場合の製品の生産高P
は、
【0056】
【数13】 P(Xa,Xb)=C−100(Xb−Xa)−(1−Xa) なる式で与えられるものとする。ここでCは外部から与
えられる定数であるとする。また、制約条件として、 0<Xa<5 0<Xb<5 を設定する。本発明による資源の最適配分決定装置を実
際に利用するためには、まず対象とする問題が最適化問
題として定式化されている必要がある。定式化された最
適化問題は、最適化問題記憶装置に記憶される。次に最
適化問題は、最適化問題記憶装置から読み出され、非線
形最適化装置に入力される。非線形最適化装置は、偏導
関数作成機能および最適化計算機能から構成されてお
り、偏導関数作成機能により求められた目的関数および
制約関数の偏導関数を用いて、最適化計算機能により非
線形最適化問題の最適解を求める。この問題において
は、偏導関数作成機能の結果得られる、Pの一階の偏導
関数は以下のようなものである。
えられる定数であるとする。また、制約条件として、 0<Xa<5 0<Xb<5 を設定する。本発明による資源の最適配分決定装置を実
際に利用するためには、まず対象とする問題が最適化問
題として定式化されている必要がある。定式化された最
適化問題は、最適化問題記憶装置に記憶される。次に最
適化問題は、最適化問題記憶装置から読み出され、非線
形最適化装置に入力される。非線形最適化装置は、偏導
関数作成機能および最適化計算機能から構成されてお
り、偏導関数作成機能により求められた目的関数および
制約関数の偏導関数を用いて、最適化計算機能により非
線形最適化問題の最適解を求める。この問題において
は、偏導関数作成機能の結果得られる、Pの一階の偏導
関数は以下のようなものである。
【0057】
【数14】
【0058】また、最適化計算機能の実行の結果得られ
るPを最大とする最適化問題の解は、Xa=Xb=1と
なる。従って、この問題では、生産システムは原料Aお
よび原料BをそれぞれXa、Xb単位用い、製品をP単
位生産することになる。
るPを最大とする最適化問題の解は、Xa=Xb=1と
なる。従って、この問題では、生産システムは原料Aお
よび原料BをそれぞれXa、Xb単位用い、製品をP単
位生産することになる。
【0059】
【発明の効果】本発明によれば、非線形最適化計算過程
において用いられる勾配の値を高精度に求めることがで
き、求解の精度が向上する。また、数値微分で必要とさ
れる繰返し計算を必要としないため、求解の効率が向上
する。さらに、偏導関数を自動的に求められるため、使
い勝手が向上する。
において用いられる勾配の値を高精度に求めることがで
き、求解の精度が向上する。また、数値微分で必要とさ
れる繰返し計算を必要としないため、求解の効率が向上
する。さらに、偏導関数を自動的に求められるため、使
い勝手が向上する。
【図1】本発明の一実施例に係る非線形最適化装置の構
成図である。
成図である。
【図2】図1に示す非線形最適化装置における偏導関数
作成機能の処理手順を示すフローチャートである。
作成機能の処理手順を示すフローチャートである。
【図3】目的関数,制約関数の内部表現の説明図であ
る。
る。
【図4】算術式の構成説明図である。
【図5】目的関数,制約関数の内部表現への展開手順の
説明図である。
説明図である。
【図6】偏導関数作成手法の一実施例の説明図である。
【図7】偏導関数の作成例を示す図である。
【図8】図1に示す非線形最適化装置の一実施例を適用
した生産システムの構成図である。
した生産システムの構成図である。
1…入力装置、2…入力部、3…作業記憶領域、4…第
1記憶領域、5…第2記憶領域、6…演算処理部、7…
出力部、8…画像出力装置。
1記憶領域、5…第2記憶領域、6…演算処理部、7…
出力部、8…画像出力装置。
Claims (12)
- 【請求項1】 非線形最適化問題の解の探索を実行する
非線形最適化方法において、非線形最適化問題の目的関
数および制約関数の偏導関数を記号処理に基づいて自動
的に作成し、作成した偏導関数及びその目的関数,制約
関数に基づいて最適化計算を実行することを特徴とする
非線形最適化方法。 - 【請求項2】 非線形最適化問題の解の探索を実行する
非線形最適化装置において、非線形最適化問題の目的関
数および制約関数の偏導関数を記号処理に基づいて自動
的に作成する偏導関数作成手段と、該目的関数,制約関
数およびこれらの偏導関数に基づいて最適化計算を実行
する最適化計算手段とから構成されることを特徴とする
非線形最適化装置。 - 【請求項3】 非線形最適化問題の解の探索を実行する
非線形最適化方法において、非線形最適化問題の目的関
数および制約関数の偏導関数を計算する計算手続きを記
号処理に基づいて自動的に作成し、これらの偏導関数と
その目的関数,制約関数に基づいて最適化計算を実行す
ることを特徴とする非線形最適化方法。 - 【請求項4】 非線形最適化問題の解の探索を実行する
非線形最適化装置において、非線形最適化問題の目的関
数および制約関数の偏導関数を計算する計算手続きを記
号処理に基づいて自動的に作成する偏導関数作成手段
と、該目的関数,制約関数およびこれらの偏導関数に基
づいて最適化計算を実行する最適化計算手段とから構成
されることを特徴とする非線形最適化装置。 - 【請求項5】 請求項1または請求項3において、偏導
関数を自動的に作成するとき、入力された目的関数およ
び制約関数を計算機の内部表現に変換するステップと、
内部表現に変換された数式の偏導関数を作成するステッ
プと、該偏導関数を最適化計算機能の入力フォ−マット
に変換するステップとで行うことを特徴とする非線形最
適化方法。 - 【請求項6】 請求項2または請求項4において、偏導
関数作成手段が、入力された目的関数および制約関数を
計算機の内部表現に変換する手段と、内部表現に変換さ
れた数式の偏導関数を作成する手段と、該偏導関数を最
適化計算機能の入力フォ−マットに変換する手段とから
構成されることを特徴とする非線形最適化装置。 - 【請求項7】 請求項1または請求項3において、偏導
関数を自動的に作成するときに、入力された目的関数お
よび制約関数を計算機の内部表現に変換するステップ
と、内部表現に変換された数式の一階および二階偏導関
数を作成するステップと、該偏導関数を最適化計算機能
の入力フォ−マットに変換するステップとで行うことを
特徴とする非線形最適化方法。 - 【請求項8】 請求項2または請求項4において、偏導
関数作成手段が、入力された目的関数および制約関数を
計算機の内部表現に変換する手段と、内部表現に変換さ
れた数式の一階および二階偏導関数を作成する手段と、
該偏導関数を最適化計算機能の入力フォ−マットに変換
する手段とから構成されることを特徴とする非線形最適
化装置。 - 【請求項9】 請求項1,3,5,7のいずれかに記載
の非線形最適化方法を用いて、資源の最適配分計算を行
い計算結果を出力することを特徴とする資源最適配分計
算方法。 - 【請求項10】 請求項2,4,6,8のいずれかに記
載の非線形最適化装置を備え、資源の最適配分計算を行
い計算結果を出力する手段を備えることを特徴とする資
源最適配分計算装置。 - 【請求項11】 非線形最適化問題の目的関数の極値を
該非線形最適化問題の制約関数のもとで探索する非線形
最適化方法において、数式微分にて前記極値を探索すべ
く該目的関数の偏導関数を求め、該偏導関数により最適
化計算を行うことを特徴とする非線形最適化方法。 - 【請求項12】 非線形最適化問題の目的関数の極値を
該非線形最適化問題の制約関数のもとで探索する非線形
最適化装置において、数式微分にて前記極値を探索すべ
く該目的関数の偏導関数を求める手段と、該偏導関数に
より最適化計算を行う手段とを備えることを特徴とする
非線形最適化装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21064291A JPH0554057A (ja) | 1991-08-22 | 1991-08-22 | 非線形最適化方法及びその装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21064291A JPH0554057A (ja) | 1991-08-22 | 1991-08-22 | 非線形最適化方法及びその装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0554057A true JPH0554057A (ja) | 1993-03-05 |
Family
ID=16592692
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP21064291A Pending JPH0554057A (ja) | 1991-08-22 | 1991-08-22 | 非線形最適化方法及びその装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0554057A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015501991A (ja) * | 2011-12-07 | 2015-01-19 | アルカテル−ルーセント | 地理的に分散されたデータセンタでのレイテンシ短縮および弾力性改善のための最適化機構 |
| JP5816387B1 (ja) * | 2015-04-30 | 2015-11-18 | 徹 山里 | 非線形最適解探索システム |
-
1991
- 1991-08-22 JP JP21064291A patent/JPH0554057A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015501991A (ja) * | 2011-12-07 | 2015-01-19 | アルカテル−ルーセント | 地理的に分散されたデータセンタでのレイテンシ短縮および弾力性改善のための最適化機構 |
| JP5816387B1 (ja) * | 2015-04-30 | 2015-11-18 | 徹 山里 | 非線形最適解探索システム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5557774A (en) | Method for making test environmental programs | |
| US3705409A (en) | Tableau network design system | |
| US8239822B2 (en) | Symbolic forward and reverse differentiation | |
| CN117634363B (zh) | 一种基于量子Koopman分析的流场重构方法 | |
| JP2022040049A (ja) | 高レベルソースコードからのqubo又は高次定式化の自動生成のためのフレームワーク | |
| Cook Jr | ALPAL, a program to generate physics simulation codes from natural descriptions | |
| JPH0554057A (ja) | 非線形最適化方法及びその装置 | |
| Shu et al. | Instruction-set matching and GA-based selection for embedded-processor code generation | |
| Stout | arc. lib: A Singular library for jet schemes with fast partial reduction | |
| US6260032B1 (en) | Method for learning multivalued mapping | |
| Riché et al. | Converting executable floating-point models to executable and synthesizable fixed-point models | |
| Hasan et al. | Optimal fuzzy solution for fully fuzzy quadratic fractional programming problems with decagonal membership function and ranking function technique | |
| Fleming et al. | Matlab: Its toolboxes and open structure | |
| Uehara et al. | Logic circuit synthesis using Prolog | |
| Humphries et al. | COMPUTATIONAL SCIENCE & ENGINEERING | |
| Cellier et al. | Matrix environments for continuous system modeling and simulation | |
| Dall’Osso | Computer algebra systems as mathematical optimizing compilers | |
| Sun et al. | Automated Visualization for Structural Form-Finding using Orchestrated Multimodal Machine Learning Agents | |
| Sarma et al. | High-level synthesis: Technology transfer to industry | |
| Al-Thiga et al. | An interactive language for computer-aided identification and control system design | |
| Hebel | Javelina: An Environment for Digital Signal Processing Software Development | |
| US6237125B1 (en) | High-level synthesis method including processing for optimizing arithmetic sequence of an operation string | |
| Carpentier et al. | Multimethod Optimal Power Flows at Electricite De France | |
| JPH09297604A (ja) | 状態方程式の生成方法及び状態方程式の自動生成装置 | |
| JP2000105760A (ja) | ベクトル変数ブロック線図の解析装置 |