最適化処理プログラム、方法及び装置
【課題】2以上の目的関数に対する最適化問題の解を数式で高速に得る。
【解決手段】本方法は、複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の多項式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより第1の式の射影因子である第2の式を生成させ、当該第2の式のデータをCAD処理部から取得する工程と、複数の目的関数の変数の値を複数生成して、複数の目的関数に代入することによって複数の目的関数の値セットを複数算出し、当該複数の値セットから複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出する工程と、第2の式の各々について、当該第2の式と仮最適点の各々との距離の評価値を算出する工程と、評価値が最も小さい第2の式を特定する工程とを含む。
【解決手段】本方法は、複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の多項式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより第1の式の射影因子である第2の式を生成させ、当該第2の式のデータをCAD処理部から取得する工程と、複数の目的関数の変数の値を複数生成して、複数の目的関数に代入することによって複数の目的関数の値セットを複数算出し、当該複数の値セットから複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出する工程と、第2の式の各々について、当該第2の式と仮最適点の各々との距離の評価値を算出する工程と、評価値が最も小さい第2の式を特定する工程とを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、コンピュータを用いた演算処理に関する。
【背景技術】
【0002】
2以上の目的関数の値を同時に最小化するといった問題は多目的最適化問題として知られている。このような多目的最適化問題は、例えばものづくりにおける設計段階で用いられており、SRAM(Static Random Access Memory)やハードディスクのスライダの設計に適用された従来例が存在している。
【0003】
例えばSRAMの設計の例では、電力についての目的関数f1(x1,x2)とサイズについての目的関数f2(x1,x2)とを、変数x1及びx2のそれぞれの値域において同時に最小化するという問題を解くことになる。
【0004】
このような多目的最適化問題を、数値解析にて高速に解こうとする技術は多数存在している。
【0005】
一方、多目的最適化問題を、数式処理により解く方法も存在している。この方法では、様々な設計パラメータの値について、計算機シミュレーションを実施し、各々のケースについて出力評価指標を算出する。そして、設計パラメータと出力評価指標との関係を近似するモデル式を計算し、このモデル式に基づいて数式処理による最適化を行う。この最適化のための処理として、得られた近似式及び制約条件からコストと性能との関係を表す数式を算出する場合がある。
【0006】
なお、数式処理については、限定子除去法(QE:Quantifier Elimination)という技術が知られている。この技術は、例えば∃x(x2+bx+c=0)という数式を、限定子(∃及び∀)を除去した等価な式b2−4c≧0に変形する技術である。
【0007】
具体的には、以下の文献を参照のこと。但し、QEについての文献は多数存在しているので、以下の文献以外でも有用な文献は存在している。
【0008】
数学セミナー 穴井宏和・横山和弘「計算実代数幾何入門」 日本評論社出版。第1回 CAD(Cylindrical Algebraic Decomposition)とQEの概要(2007年11月号)、第2回 QEによる最適化とその応用(2007年12月号)、第3回 CADアルゴリズム(前半)(2008年1月号)、第4回 CADアルゴリズム(後半)(2008年3月号)、第5回 CADによるQE(2008年4月号)。
【0009】
雑誌FUJITSU2009-9月号,穴井 宏和, 金児 純司, 屋並 仁史, 岩根 秀直,「数式処理を用いた設計技術」(http://img.jp.fujitsu.com/downloads/jp/jmag/vol60-5/paper24.pdfから2009年10月取得可能)
【0010】
Mats Jirstrand: Cylindrical Algebraic Decomposition - an Introduction,1995−10−18(http://www.control.isy.liu.se/research/reports/1995/1807.ps.Zから2009年10月取得可能)
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特表2008−507038号公報
【特許文献2】特表2008−502033号公報
【特許文献3】特開2010−146161号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
上で述べた限定子除去法によって上で述べたような多目的最適化問題の解を数式で得ることができる。しかしながら、上で述べた多目的最適化問題を限定子除去法で全て解くのは計算効率が悪く、処理時間がかかる。
【0013】
従って、本技術の目的は、一側面において、2以上の目的関数に対する最適化問題の解を数式で高速に得るための技術を提供することである。
【課題を解決するための手段】
【0014】
本最適化処理方法は、(A)複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の多項式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより第1の式の射影因子である第2の式を生成させ、当該第2の式のデータをCAD処理部から取得して、第1データ格納部に格納するステップと、(B)複数の目的関数の変数の値を複数生成して、複数の目的関数に代入することによって複数の目的関数の値セットを複数算出し、当該複数の値セットから複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、(C)第1データ格納部に格納されている第2の式の各々について、当該第2の式と第2データ格納部に格納されている仮最適点の各々との距離の評価値を算出し、第3データ格納部に第2の式と対応付けて格納する評価ステップと、(D)第3データ格納部に格納されている評価値が最も小さい第2の式を特定するステップとを含む。
【発明の効果】
【0015】
2以上の目的関数に対する最適化問題の解を数式で高速に得ることができるようになる。
【図面の簡単な説明】
【0016】
【図1】図1は、最適化処理装置の機能ブロック図である。
【図2】図2は、射影処理を説明するための図である。
【図3】図3は、メインの処理フローを示す図である。
【図4】図4は、多目的最適化問題の一例を示す図である。
【図5】図5は、射影因子集合生成処理の処理フローを示す図である。
【図6】図6は、QE問題の一例を示す図である。
【図7】図7は、パレート生成処理の処理フローを示す図である。
【図8】図8は、目的関数平面の一例を示す図である。
【図9】図9は、仮最適点集合を説明するための図である。
【図10】図10は、パレート式選択処理の処理フローを示す図である。
【図11】図11は、区間分割処理の処理フローを示す図である。
【図12】図12は、パレートデータ格納部に格納されるデータの一例を示す図である。
【図13】図13は、出力データ格納部に格納されるデータの一例を示す図である。
【図14】図14は、出力データ格納部に格納されるデータの一例を示す図である。
【図15】図15は、出力データの一例を示す図である。
【図16】図16は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【0017】
図1に、本実施の形態に係る最適化処理装置の構成を示す。最適化処理装置は、(A)ユーザなどからデータを受け付ける入力部1と、(B)入力部1からのデータを格納する入力データ格納部3と、(C)入力データ格納部3に格納されているデータ等を用いて処理を行いQEツール100に処理を行わせるQE(Quantifier Elimination)ツール制御部5と、(D)入力データ格納部3に格納されているデータ等を用いて処理を行うパレート生成部9と、(E)QEツール制御部5の処理結果等を格納する多項式格納部7と、(F)パレート生成部9の処理結果等を格納するパレートデータ格納部11と、(G)入力データ格納部3と多項式格納部7とパレートデータ格納部11とに格納されているデータを用いて処理を行うパレート式選択部13と、(H)パレート式選択部13の処理結果等を格納する出力データ格納部15と、(I)出力データ格納部15に格納されているデータを出力装置(印刷装置、表示装置等)に出力する出力部17とを有する。
【0018】
QEツール100は、背景技術の欄で述べたQE処理を実施するモジュール又は装置であり、CAD(Cylindrical Algebraic Decomposition)処理部110と、式構築部120とを有する。CAD処理部110は、射影部111と、ベース部112と、リフティング部113とを有する。なお、QEツール100は、最適化処理装置の一部である場合もあれば、他の装置又は他の装置に含まれる機能である場合もある。
【0019】
典型的には、背景技術の欄で述べたように、QEツール100に対して限定子付きの式を投入して、その式と等価な、限定子なしの式をQEツール100の出力として得る。すなわち、限定子付きの式を、射影部111で処理し、射影部111の出力をベース部112で処理し、ベース部112の出力をリフティング部113で処理し、リフティング部113の出力を式構築部120で処理することで、限定子なしの式を出力する。
【0020】
本実施の形態では、射影部111の処理結果のみを使用するので、射影部111の処理内容についてのみ多少説明しておく。図2に示すように、x1からxrの変数を含む多項式集合Frが与えられた場合に、この多項式集合Frに対して変数xrを除去するように第1回目の射影処理を実施する。なお、Qは、括弧内に含まれる変数を含む実数係数の全多項式の集合を表している。第1回目の射影処理を実施すると、変数x1からxr-1を含む多項式集合Fr-1が得られる。さらに、この多項式集合Fr-1に対して変数xr-1を除去するように第2回目の射影処理を実施する。そうすると、変数x1からxr-2を含む多項式集合Fr-2が得られる。
【0021】
このような処理を繰り返して、多項式集合F2に対して変数x2を除去するように第r−1回目の射影処理を実施する。そうすると、変数x1のみを含む多項式集合F1が得られる。射影部111は、変数が1個になると、多項式集合Fr乃至F1の全てを出力する。
【0022】
多項式集合Frについて変数xrを除去する射影処理は、(A)多項式集合Frに含まれる各多項式fにおける変数xrの係数、(B)多項式集合Frに含まれる各多項式fの判別式と、(C)多項式集合Frに含まれる各多項式f及びg(f≠g)の終結式とを生成する処理である。
【0023】
例えば、以下に述べるような多項式集合F4に対して射影処理を実施する場合を考える。
F4={f1−4x1,f2−x1+x1x2−5,x1−5,x1−1,x1−4,x2−2,x2−1}
【0024】
まず、多項式集合F4に対して変数x2を除去する第1回目の射影処理を実施すると、以下に述べる多項式集合F3が得られる。
F3={x1−4,x1,4x1+(−f12),x1,x1+(−f2−5),x1+(f2+5)}
【0025】
さらに、多項式集合F3に対して変数x1を除去する第2回目の射影処理を実施すると、以下に述べる多項式集合F2が得られる。
F2={f2+1,f2+4、f2+5,f2+6,f2+9,4f2+(−f12+20),4f2+(f12+20)}
【0026】
最後に、多項式集合F2に対して変数f2を除去する第3回目の射影処理を実施すると、以下に述べる多項式集合F1が得られる。
F1={f1−4,f1−2,f1,f1+2,f1+4,f12+4,f12+16}
【0027】
次に、図1に示した最適化処理装置の動作について図3乃至図15を用いて説明する。
【0028】
まず、ユーザは、最適化処理装置の入力部1に対して今回解くべき多目的最適化問題を入力する。入力部1は、ユーザから、多目的最適化問題の入力を受け付け、当該多目的最適化問題のデータを入力データ格納部3に格納する(ステップS1)。なお、入力するデータは、このほかに、以下の処理で用いるパラメータも含まれる。具体的にはサンプリング数上限、判定基準の距離δを含む。場合によっては、変数値を生成するアルゴリズム種別を含む場合もある。
【0029】
例えば、2つの目的関数f1及びf2を、制約条件の下で同時に最小化するという多目的最適化問題を検討するものとする。具体的には、図4に示すような多目的最適化問題のデータが入力されたものとする。図4から分かるように、目的関数f1は変数x1を含み、目的関数f2は変数x1及びx2を含む。そして、変数x1及びx2についての制約条件(x1−1≧0,4−x1≧0,x2−1≧0,2−x2≧0)も規定されている。
【0030】
次に、QEツール制御部5は、入力データ格納部3に格納されているデータを用いて、射影因子集合生成処理を実施する(ステップS3)。この射影因子集合生成処理については、図5及び図6を用いて説明する。
【0031】
QEツール制御部5は、入力データ格納部3に格納されている、多目的最適化問題のデータから等価なQE問題を生成し、例えばメインメモリなどの記憶装置に格納する(図5:ステップS11)。図4に示したような多目的最適化問題の場合、図6に示すような等価なQE問題が生成される。図6から分かるように、目的関数の式及び制約条件の式を連結して、目的関数の変数x1及びx2に存在を示す限定子∃を付加している。多目的最適化問題ではなく、このようなQE問題を入力部1から入力するようにしても良い。
【0032】
そして、QEツール制御部5は、QE問題で出現する多項式(場合によっては単項式を含む。以下同じ。)を抽出し、例えばメインメモリなどの記憶装置に格納する(ステップS13)。QE問題の多項式を単純化した上で、抽出する。図6の場合には、上で述べた多項式集合F4に含まれる多項式が得られる。
【0033】
そして、QEツール制御部5は、QEツール100のCAD処理部110内における射影部111に対して、抽出された多項式(実際的には多項式集合)のデータを出力して射影処理を実施させることで、当該抽出された多項式に対する射影因子となる他の多項式(実際的には多項式集合)を生成させ、当該射影因子となる他の多項式のデータを、QEツール100から取得し、多項式格納部7に格納する(ステップS15)。上で述べた例では、多項式集合F4乃至F1が射影因子となる他の多項式として取得され、多項式格納部7に格納される。そして元の処理に戻る。
【0034】
このように射影部111以外のベース部112及びリフティング部113の処理及び式構築部120の処理を省略しているので、それだけ短い処理時間で処理結果を得ることができる。
【0035】
図3の処理の説明に戻って、パレート生成部9は、入力データ格納部3に格納されているデータを用いてパレート生成処理を実施する(ステップS5)。このパレート生成処理については、図7乃至図9を用いて説明する。なお、ステップS3及びS5は独立した処理なので、処理順番を入れ替えたり、並列に実行することが可能である。
【0036】
まず、パレート生成部9は、入力データ格納部3に格納されている最適化問題のデータに含まれる目的関数に含まれる各変数の値域に従って、変数の値を1組生成し、例えばメインメモリなどの記憶装置に格納する(ステップS21)。そして、パレート生成部9は、生成された変数の値を各目的関数に代入することで、各目的関数の値を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS23)。図4から明らかなように、制約条件には変数の値域x1−1≧0,4−x1≧0,x2−1≧0,2−x2≧0が規定されているので、この中で適切な変数値を生成し、目的関数に代入する。変数値の生成については、値域内においてランダムに生成するようにしても良いし、遺伝的アルゴリズム(Genetic Algorithm)、PSO(Particle Swarm Optimization)、LHC(Latin Hyper-cubic method)といったアルゴリズムを用いて生成するようにしても良い。このようなアルゴリズムについては、設計者がステップS1で指定するようにしても良い。
【0037】
そして、パレート生成部9は、目的関数空間において、算出した目的関数値のセット(空間における点に相当)がパレート(すなわち非劣解)であるかを判断し、パレートであればパレート集合を更新する(ステップS25)。
【0038】
例えばパレート集合に含まれる点が登録されているパレートリストを、パレートデータ格納部11に格納しておく。また、パレート集合に含まれない点が登録されている非パレートリストも、パレートデータ格納部11に格納しておく。そして、今回算出した目的関数値のセットに対応する新規の点が、既にパレートリストに登録されている点のいずれかに支配されている場合には、非パレートリストに登録する。支配は、目的関数値のいずれもが優れていること、本例では小さい値であることを意味している。
【0039】
一方、新規の点が、既にパレートリストに登録されている点のいずれにも支配されていない場合には、パレートリストに登録すると共に、逆にパレートリストに登録されている点の方が新規の点に支配されている場合には、この点をパレートリストから除去して、非最適点リストに登録する。
【0040】
そして、パレート生成部9は、ステップS23で生成された目的関数値のセット数がサンプリング数上限に達したか判断する(ステップS27)。生成された目的関数値のセット数がサンプリング数上限に達していない場合には、ステップS21に戻る。
【0041】
図4の例では、例えば図8に示すような点群が、目的関数空間に配置される。すなわち、図8の例では、横軸は目的関数f1を表し、縦軸は目的関数f2を表している。ステップS23を実行することによって、図8に示すような点の各々が生成される。このうち、左下の原点に近い非劣解となる点が、パレート集合に含まれることになる。
【0042】
ステップS27で、生成された目的関数値のセット数がサンプリング数上限に達した場合には、パレート生成部9は、入力データ格納部3に格納されている距離δ=0が設定されているか又は全く距離δが設定されていないかを判断する(ステップS29)。本実施の形態では、パレート集合の数が少ない場合などに備えるために、補助的にパレート集合に含まれる点から距離δ以内であれば、パレート集合に追加登録する。但し、距離δ=0又は全く距離δが設定されていない場合には、パレート生成部9は、パレート集合の点を仮最適点集合に登録する(ステップS30)。仮最適点集合のリストを、パレートデータ格納部11に格納する。そして元の処理に戻る。
【0043】
一方、距離δ≠0が設定されている場合には、パレート生成部9は、パレート集合に含まれない、すなわち非パレート集合に含まれる目的関数値セット毎に、最も近いパレートとの距離がδ以内か確認し、δ以内であれば仮最適点集合に登録する(ステップS31)。仮最適点集合のリストを、パレートデータ格納部11に用意して、初期的にパレートリストに登録されている点を登録しておく。そして、ステップS31でδ以内と判定された点については追加登録する。その後元の処理に戻る。
【0044】
ステップS31を実施した場合には、例えば図9に示すように、点線で囲まれた部分が、仮最適点集合に含まれるようになる。
【0045】
図3の処理の説明に戻って、パレート式選択部13は、入力データ格納部3とパレートデータ格納部11と多項式格納部7とに格納されているデータを用いて、パレート式選択処理を実施する(ステップS7)。パレート式選択処理については、図10乃至図15を用いて処理を説明する。
【0046】
まず、パレート式選択部13は、区間分割処理を実施する(図10:ステップS41)。図9に示したような目的関数平面(一般的には空間)における最適解は、必ずしも1つの曲線で表されるわけではない。区間毎に異なる曲線が最適解となる場合もあるので、適切に区間分割して、区間毎に最適解となる曲線を特定するものである。区間分割処理については、図11及び図12を用いて説明する。
【0047】
パレート式選択部13は、基準となる目的関数の値域を、入力データ格納部3に格納されている最適化問題のデータから特定する(図11:ステップS61)。例えば、目的関数f1を基準となる目的関数とする。そして、制約条件に含まれる変数x1及びx2の値域から、目的関数f1の値域が算出できる。具体的には、この例ではx1の上限値及び下限値から、[2,4]であることが分かる。
【0048】
次に、パレート式選択部13は、多項式格納部7に格納されている、射影因子の多項式のうち基準となる目的関数についての多項式について実数根を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS63)。上で述べた例で目的関数f1について実数根を算出できる多項式は、多項式集合F1に含まれている。多項式集合F1に含まれている各多項式についての実数根は、−4,−2,0,2,4である。
【0049】
そして、パレート式選択部13は、ステップS63で算出された実数根から、基準となる目的関数の値域に含まれる実数根を抽出し、例えばメインメモリなどの記憶装置に格納する(ステップS65)。本例では、値域が[2,4]であるので、実数根2及び4が抽出される。但し、抽出されない場合もある。
【0050】
従って、値域に含まれる実数根が抽出されなかった場合(ステップS67:Noルート)には、パレート式選択部13は、基準となる目的関数の値域そのものを区間に設定し、当該区間のデータを出力データ格納部15に格納する(ステップS69)。そして、ステップS73に移行する。
【0051】
一方、値域に含まれる実数根が抽出された場合(ステップS67:Yesルート)には、パレート式選択部13は、基準となる目的関数の値域を、抽出された実数根で分割して区間を生成し、区間のデータを出力データ格納部15に格納する(ステップS71)。本例では、値域が[2,4]で、抽出された実数根が2及び4であるから、結果的には区間は[2,4]となる。一般的には、値域が[l,r]であり、ステップS65で実数根q1,q2,...qjが抽出されると、区間[l,q1][q1,q2][q2,q3]...[qj,r]に分割される。
【0052】
そして、パレート式選択部13は、パレートデータ格納部11に格納されている仮最適点集合に含まれている点を、出力データ格納部15に格納されている区間のデータに従って分類し、分類結果をパレートデータ格納部11に格納する(ステップS73)。例えば、図12に示すようなデータが、パレートデータ格納部11に格納される。図12の例では、目的関数f1の値と、目的関数f2の値と、区間の番号とが登録されている。例えば、区間の値が小さい順番に区間番号を付与して、該当する区間の番号が登録される。そして元の処理に戻る。
【0053】
図10の処理の説明に戻って、パレート式選択部13は、出力データ格納部15に登録されている区間のうち未処理の区間を1つ特定する(ステップS43)。そして、パレート式選択部13は、多項式格納部7において、未処理の多項式を1つ特定する(ステップS45)。その後、パレート式選択部13は、特定された多項式と、特定された区間内の仮最適点との距離の自乗和を評価値として算出し、多項式に対応付けて出力データ格納部15に格納する(ステップS47)。
【0054】
例えば、区間kの仮最適点集合OPkに属する仮最適点をPj,kと表し、多項式格納部7に格納されている多項式をGiとすると、評価値Di,kは、以下のように表される。
【0055】
【数1】
distance(A,B)は、式Bと点Aとの距離を表す。曲線と点の距離はよく知られているのでここでは述べない。この式(1)は一例であって、例えば距離の自乗和の平方根を採用しても良いし、該当する仮最適点の数で除することによって平均値を算出するようにしても良い。
【0056】
そして、パレート式選択部13は、多項式格納部7において、未処理の多項式が存在するか判断する(ステップS49)。未処理の多項式が存在する場合にはステップS45に戻る。このような処理を繰り返すと、例えば図13に示すようなデータが得られる。図13の例では、多項式に対応付けて評価値が格納されるようになっている。
【0057】
一方、未処理の多項式が存在しない場合には、パレート式選択部13は、評価値が最小となる多項式を特定し、ステップS43で特定された区間のデータに対応付けて出力データ格納部15に格納する(ステップS51)。例えば図13に示されるようなデータのうち評価値が最小となる行を特定し、当該行の多項式を特定する。
【0058】
そして、パレート式選択部13は、出力データ格納部15に格納されている区間のうち未処理の区間が存在するか判断する(ステップS53)。未処理の区間が存在していればステップS43に戻る。一方、未処理の区間が存在していなければ、元の処理に戻る。
【0059】
このような処理を実施すれば、例えば図14に示すようなデータが出力データ格納部15に格納される。図14の例では、各区間について、最も評価値が小さくなる多項式のデータが登録されている。なお、上で述べた例では、区間[2,4]について、「4f2+f12−20」が特定される。
【0060】
図3の処理の説明に戻って、出力部17は、出力データ格納部15に格納されている区間及び多項式のデータを用いて、多項式を表すグラフを出力装置(例えば表示装置又は印刷装置)に出力する(ステップS9)。例えば、「4f2+f12−20」の場合には4f2+f12−20=0を表示装置に表示する。
【0061】
例えば図15のようなグラフが表示される。図15の例では、横軸は目的関数f1を表し、縦軸は目的関数f2を表す。曲線aが、上記の多項式を表している。なお、ハッチングが付された領域Aは、実行可能領域としてQEツール100によって全て数式処理で解いた場合に特定される領域である。具体的には、以下の式が数式処理で得られる。
[f1−2≧0∨f1+2≦0]∧f1+4≧0∧f1−4≦0∧f2−5≦0∧4f2+f12−20≧0
【0062】
このような数式処理であれば、上でも述べたような時間のかかる処理を行うことになるが、本実施の形態であれば、簡単な処理で短時間で同じ処理結果を得ることができるようになる。
【0063】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図1の機能ブロック図は一例であって必ずしも実際のプログラムモジュール構成と一致しない場合もある。また、処理フローについても処理結果が変わらない限りにおいて、処理順番を入れ替えたり、並列実行するようにしても良い。
【0064】
さらに上で述べた例では、1台のコンピュータで実行する例を示しているが、複数台のコンピュータで処理を分担して実施するようにしても良い。
【0065】
また、2つの目的関数についての処理を一例として説明したが、3以上の目的関数についても、同様に処理することができる。
【0066】
なお、上で述べた最適化処理装置は、コンピュータ装置であって、図16に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0067】
以上述べた本実施の形態をまとめると、以下のようになる。
【0068】
本実施の形態に係る最適化処理方法は、(A)複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の多項式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより第1の式の射影因子である第2の式を生成させ、当該第2の式のデータをCAD処理部から取得して、第1データ格納部に格納するステップと、(B)複数の目的関数の変数の値を複数生成して、複数の目的関数に代入することによって複数の目的関数の値セットを複数算出し、当該複数の値セットから複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、(C)第1データ格納部に格納されている第2の式の各々について、当該第2の式と第2データ格納部に格納されている仮最適点の各々との距離の評価値を算出し、第3データ格納部に第2の式と対応付けて格納する評価ステップと、(D)第3データ格納部に格納されている評価値が最も小さい第2の多項式を特定するステップとを含む。
【0069】
通常CAD処理部で行われる射影処理より後の処理よりも、上で述べた処理の方が簡単な処理で短時間で行うことができる。従って、2以上の目的関数に対する最適化問題の解を数式で高速に得ることができるようになる。
【0070】
なお、本最適化処理方法は、複数の値セットのうち非劣解との距離が所定値以下の値セットを抽出し、仮最適点のデータとして第2データ格納部に格納するステップを更に含むようにしてもよい。例えば、非劣解の数が少ない場合などは有効である。
【0071】
さらに、上で述べた評価ステップが、複数の目的関数のうち特定の目的関数の値域を、最適化問題から特定するステップと、第1データ格納部に格納されている第2の式のうち特定の目的関数のみを変数として含む第3の式を抽出するステップと、抽出された第3の式の実数根を算出し、当該第3の式の実数根から特定の目的関数の値域に含まれる実数根を抽出するステップと、特定の目的関数の値域を、抽出された実数根で区分することによって、特定の目的関数の区間を生成するステップと、上記仮最適点を、特定の目的関数の区間に従って分類するステップとを含むようにしてもよい。その際、距離の評価値の算出を、特定の目的関数の区間毎に、当該特定の目的関数の区間に対応する分類に係る仮最適点について実施するようにしてもよい。このようにすれば、区間毎に適切な式を特定することができるようになる。
【0072】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
【0073】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0074】
(付記1)
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納するステップと、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納する評価ステップと、
前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するステップと、
を、コンピュータに実行させるための最適化処理プログラム。
【0075】
(付記2)
前記複数の値セットのうち前記非劣解との距離が所定値以下の値セットを抽出し、前記仮最適点のデータとして前記第2データ格納部に格納するステップ
を更に前記コンピュータに実行させるための付記1記載の最適化処理プログラム。
【0076】
(付記3)
前記評価ステップが、
前記複数の目的関数のうち特定の目的関数の値域を、前記最適化問題から特定するステップと、
前記第1データ格納部に格納されている前記第2の式のうち前記特定の目的関数のみを変数として含む第3の式を抽出するステップと、
抽出された前記第3の式の実数根を算出し、当該第3の式の実数根から前記特定の目的関数の値域に含まれる実数根を抽出するステップと、
前記特定の目的関数の値域を、抽出された前記実数根で区分することによって、前記特定の目的関数の区間を生成するステップと、
前記仮最適点を、前記特定の目的関数の区間に従って分類するステップと、
を含み、
前記距離の評価値の算出を、前記特定の目的関数の区間毎に、当該特定の目的関数の区間に対応する分類に係る前記仮最適点について実施する
付記1又は2記載の最適化処理プログラム。
【0077】
(付記4)
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納するステップと、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納する評価ステップと、
前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するステップと、
を含み、コンピュータに実行される最適化処理方法。
【0078】
(付記5)
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納する制御部と、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するパレート生成部と、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納し、前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するパレート式選択部と、
を有する最適化処理装置。
【符号の説明】
【0079】
1 入力部 3 入力データ格納部
5 QEツール制御部 7 多項式格納部
9 パレート生成部 11 パレートデータ格納部
13 パレート式選択部 15 出力データ格納部
17 出力部
100 QEツール
110 CAD処理部 111 射影部
112 ベース部 113 リフティング部
120 式構築部
【技術分野】
【0001】
本技術は、コンピュータを用いた演算処理に関する。
【背景技術】
【0002】
2以上の目的関数の値を同時に最小化するといった問題は多目的最適化問題として知られている。このような多目的最適化問題は、例えばものづくりにおける設計段階で用いられており、SRAM(Static Random Access Memory)やハードディスクのスライダの設計に適用された従来例が存在している。
【0003】
例えばSRAMの設計の例では、電力についての目的関数f1(x1,x2)とサイズについての目的関数f2(x1,x2)とを、変数x1及びx2のそれぞれの値域において同時に最小化するという問題を解くことになる。
【0004】
このような多目的最適化問題を、数値解析にて高速に解こうとする技術は多数存在している。
【0005】
一方、多目的最適化問題を、数式処理により解く方法も存在している。この方法では、様々な設計パラメータの値について、計算機シミュレーションを実施し、各々のケースについて出力評価指標を算出する。そして、設計パラメータと出力評価指標との関係を近似するモデル式を計算し、このモデル式に基づいて数式処理による最適化を行う。この最適化のための処理として、得られた近似式及び制約条件からコストと性能との関係を表す数式を算出する場合がある。
【0006】
なお、数式処理については、限定子除去法(QE:Quantifier Elimination)という技術が知られている。この技術は、例えば∃x(x2+bx+c=0)という数式を、限定子(∃及び∀)を除去した等価な式b2−4c≧0に変形する技術である。
【0007】
具体的には、以下の文献を参照のこと。但し、QEについての文献は多数存在しているので、以下の文献以外でも有用な文献は存在している。
【0008】
数学セミナー 穴井宏和・横山和弘「計算実代数幾何入門」 日本評論社出版。第1回 CAD(Cylindrical Algebraic Decomposition)とQEの概要(2007年11月号)、第2回 QEによる最適化とその応用(2007年12月号)、第3回 CADアルゴリズム(前半)(2008年1月号)、第4回 CADアルゴリズム(後半)(2008年3月号)、第5回 CADによるQE(2008年4月号)。
【0009】
雑誌FUJITSU2009-9月号,穴井 宏和, 金児 純司, 屋並 仁史, 岩根 秀直,「数式処理を用いた設計技術」(http://img.jp.fujitsu.com/downloads/jp/jmag/vol60-5/paper24.pdfから2009年10月取得可能)
【0010】
Mats Jirstrand: Cylindrical Algebraic Decomposition - an Introduction,1995−10−18(http://www.control.isy.liu.se/research/reports/1995/1807.ps.Zから2009年10月取得可能)
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特表2008−507038号公報
【特許文献2】特表2008−502033号公報
【特許文献3】特開2010−146161号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
上で述べた限定子除去法によって上で述べたような多目的最適化問題の解を数式で得ることができる。しかしながら、上で述べた多目的最適化問題を限定子除去法で全て解くのは計算効率が悪く、処理時間がかかる。
【0013】
従って、本技術の目的は、一側面において、2以上の目的関数に対する最適化問題の解を数式で高速に得るための技術を提供することである。
【課題を解決するための手段】
【0014】
本最適化処理方法は、(A)複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の多項式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより第1の式の射影因子である第2の式を生成させ、当該第2の式のデータをCAD処理部から取得して、第1データ格納部に格納するステップと、(B)複数の目的関数の変数の値を複数生成して、複数の目的関数に代入することによって複数の目的関数の値セットを複数算出し、当該複数の値セットから複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、(C)第1データ格納部に格納されている第2の式の各々について、当該第2の式と第2データ格納部に格納されている仮最適点の各々との距離の評価値を算出し、第3データ格納部に第2の式と対応付けて格納する評価ステップと、(D)第3データ格納部に格納されている評価値が最も小さい第2の式を特定するステップとを含む。
【発明の効果】
【0015】
2以上の目的関数に対する最適化問題の解を数式で高速に得ることができるようになる。
【図面の簡単な説明】
【0016】
【図1】図1は、最適化処理装置の機能ブロック図である。
【図2】図2は、射影処理を説明するための図である。
【図3】図3は、メインの処理フローを示す図である。
【図4】図4は、多目的最適化問題の一例を示す図である。
【図5】図5は、射影因子集合生成処理の処理フローを示す図である。
【図6】図6は、QE問題の一例を示す図である。
【図7】図7は、パレート生成処理の処理フローを示す図である。
【図8】図8は、目的関数平面の一例を示す図である。
【図9】図9は、仮最適点集合を説明するための図である。
【図10】図10は、パレート式選択処理の処理フローを示す図である。
【図11】図11は、区間分割処理の処理フローを示す図である。
【図12】図12は、パレートデータ格納部に格納されるデータの一例を示す図である。
【図13】図13は、出力データ格納部に格納されるデータの一例を示す図である。
【図14】図14は、出力データ格納部に格納されるデータの一例を示す図である。
【図15】図15は、出力データの一例を示す図である。
【図16】図16は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【0017】
図1に、本実施の形態に係る最適化処理装置の構成を示す。最適化処理装置は、(A)ユーザなどからデータを受け付ける入力部1と、(B)入力部1からのデータを格納する入力データ格納部3と、(C)入力データ格納部3に格納されているデータ等を用いて処理を行いQEツール100に処理を行わせるQE(Quantifier Elimination)ツール制御部5と、(D)入力データ格納部3に格納されているデータ等を用いて処理を行うパレート生成部9と、(E)QEツール制御部5の処理結果等を格納する多項式格納部7と、(F)パレート生成部9の処理結果等を格納するパレートデータ格納部11と、(G)入力データ格納部3と多項式格納部7とパレートデータ格納部11とに格納されているデータを用いて処理を行うパレート式選択部13と、(H)パレート式選択部13の処理結果等を格納する出力データ格納部15と、(I)出力データ格納部15に格納されているデータを出力装置(印刷装置、表示装置等)に出力する出力部17とを有する。
【0018】
QEツール100は、背景技術の欄で述べたQE処理を実施するモジュール又は装置であり、CAD(Cylindrical Algebraic Decomposition)処理部110と、式構築部120とを有する。CAD処理部110は、射影部111と、ベース部112と、リフティング部113とを有する。なお、QEツール100は、最適化処理装置の一部である場合もあれば、他の装置又は他の装置に含まれる機能である場合もある。
【0019】
典型的には、背景技術の欄で述べたように、QEツール100に対して限定子付きの式を投入して、その式と等価な、限定子なしの式をQEツール100の出力として得る。すなわち、限定子付きの式を、射影部111で処理し、射影部111の出力をベース部112で処理し、ベース部112の出力をリフティング部113で処理し、リフティング部113の出力を式構築部120で処理することで、限定子なしの式を出力する。
【0020】
本実施の形態では、射影部111の処理結果のみを使用するので、射影部111の処理内容についてのみ多少説明しておく。図2に示すように、x1からxrの変数を含む多項式集合Frが与えられた場合に、この多項式集合Frに対して変数xrを除去するように第1回目の射影処理を実施する。なお、Qは、括弧内に含まれる変数を含む実数係数の全多項式の集合を表している。第1回目の射影処理を実施すると、変数x1からxr-1を含む多項式集合Fr-1が得られる。さらに、この多項式集合Fr-1に対して変数xr-1を除去するように第2回目の射影処理を実施する。そうすると、変数x1からxr-2を含む多項式集合Fr-2が得られる。
【0021】
このような処理を繰り返して、多項式集合F2に対して変数x2を除去するように第r−1回目の射影処理を実施する。そうすると、変数x1のみを含む多項式集合F1が得られる。射影部111は、変数が1個になると、多項式集合Fr乃至F1の全てを出力する。
【0022】
多項式集合Frについて変数xrを除去する射影処理は、(A)多項式集合Frに含まれる各多項式fにおける変数xrの係数、(B)多項式集合Frに含まれる各多項式fの判別式と、(C)多項式集合Frに含まれる各多項式f及びg(f≠g)の終結式とを生成する処理である。
【0023】
例えば、以下に述べるような多項式集合F4に対して射影処理を実施する場合を考える。
F4={f1−4x1,f2−x1+x1x2−5,x1−5,x1−1,x1−4,x2−2,x2−1}
【0024】
まず、多項式集合F4に対して変数x2を除去する第1回目の射影処理を実施すると、以下に述べる多項式集合F3が得られる。
F3={x1−4,x1,4x1+(−f12),x1,x1+(−f2−5),x1+(f2+5)}
【0025】
さらに、多項式集合F3に対して変数x1を除去する第2回目の射影処理を実施すると、以下に述べる多項式集合F2が得られる。
F2={f2+1,f2+4、f2+5,f2+6,f2+9,4f2+(−f12+20),4f2+(f12+20)}
【0026】
最後に、多項式集合F2に対して変数f2を除去する第3回目の射影処理を実施すると、以下に述べる多項式集合F1が得られる。
F1={f1−4,f1−2,f1,f1+2,f1+4,f12+4,f12+16}
【0027】
次に、図1に示した最適化処理装置の動作について図3乃至図15を用いて説明する。
【0028】
まず、ユーザは、最適化処理装置の入力部1に対して今回解くべき多目的最適化問題を入力する。入力部1は、ユーザから、多目的最適化問題の入力を受け付け、当該多目的最適化問題のデータを入力データ格納部3に格納する(ステップS1)。なお、入力するデータは、このほかに、以下の処理で用いるパラメータも含まれる。具体的にはサンプリング数上限、判定基準の距離δを含む。場合によっては、変数値を生成するアルゴリズム種別を含む場合もある。
【0029】
例えば、2つの目的関数f1及びf2を、制約条件の下で同時に最小化するという多目的最適化問題を検討するものとする。具体的には、図4に示すような多目的最適化問題のデータが入力されたものとする。図4から分かるように、目的関数f1は変数x1を含み、目的関数f2は変数x1及びx2を含む。そして、変数x1及びx2についての制約条件(x1−1≧0,4−x1≧0,x2−1≧0,2−x2≧0)も規定されている。
【0030】
次に、QEツール制御部5は、入力データ格納部3に格納されているデータを用いて、射影因子集合生成処理を実施する(ステップS3)。この射影因子集合生成処理については、図5及び図6を用いて説明する。
【0031】
QEツール制御部5は、入力データ格納部3に格納されている、多目的最適化問題のデータから等価なQE問題を生成し、例えばメインメモリなどの記憶装置に格納する(図5:ステップS11)。図4に示したような多目的最適化問題の場合、図6に示すような等価なQE問題が生成される。図6から分かるように、目的関数の式及び制約条件の式を連結して、目的関数の変数x1及びx2に存在を示す限定子∃を付加している。多目的最適化問題ではなく、このようなQE問題を入力部1から入力するようにしても良い。
【0032】
そして、QEツール制御部5は、QE問題で出現する多項式(場合によっては単項式を含む。以下同じ。)を抽出し、例えばメインメモリなどの記憶装置に格納する(ステップS13)。QE問題の多項式を単純化した上で、抽出する。図6の場合には、上で述べた多項式集合F4に含まれる多項式が得られる。
【0033】
そして、QEツール制御部5は、QEツール100のCAD処理部110内における射影部111に対して、抽出された多項式(実際的には多項式集合)のデータを出力して射影処理を実施させることで、当該抽出された多項式に対する射影因子となる他の多項式(実際的には多項式集合)を生成させ、当該射影因子となる他の多項式のデータを、QEツール100から取得し、多項式格納部7に格納する(ステップS15)。上で述べた例では、多項式集合F4乃至F1が射影因子となる他の多項式として取得され、多項式格納部7に格納される。そして元の処理に戻る。
【0034】
このように射影部111以外のベース部112及びリフティング部113の処理及び式構築部120の処理を省略しているので、それだけ短い処理時間で処理結果を得ることができる。
【0035】
図3の処理の説明に戻って、パレート生成部9は、入力データ格納部3に格納されているデータを用いてパレート生成処理を実施する(ステップS5)。このパレート生成処理については、図7乃至図9を用いて説明する。なお、ステップS3及びS5は独立した処理なので、処理順番を入れ替えたり、並列に実行することが可能である。
【0036】
まず、パレート生成部9は、入力データ格納部3に格納されている最適化問題のデータに含まれる目的関数に含まれる各変数の値域に従って、変数の値を1組生成し、例えばメインメモリなどの記憶装置に格納する(ステップS21)。そして、パレート生成部9は、生成された変数の値を各目的関数に代入することで、各目的関数の値を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS23)。図4から明らかなように、制約条件には変数の値域x1−1≧0,4−x1≧0,x2−1≧0,2−x2≧0が規定されているので、この中で適切な変数値を生成し、目的関数に代入する。変数値の生成については、値域内においてランダムに生成するようにしても良いし、遺伝的アルゴリズム(Genetic Algorithm)、PSO(Particle Swarm Optimization)、LHC(Latin Hyper-cubic method)といったアルゴリズムを用いて生成するようにしても良い。このようなアルゴリズムについては、設計者がステップS1で指定するようにしても良い。
【0037】
そして、パレート生成部9は、目的関数空間において、算出した目的関数値のセット(空間における点に相当)がパレート(すなわち非劣解)であるかを判断し、パレートであればパレート集合を更新する(ステップS25)。
【0038】
例えばパレート集合に含まれる点が登録されているパレートリストを、パレートデータ格納部11に格納しておく。また、パレート集合に含まれない点が登録されている非パレートリストも、パレートデータ格納部11に格納しておく。そして、今回算出した目的関数値のセットに対応する新規の点が、既にパレートリストに登録されている点のいずれかに支配されている場合には、非パレートリストに登録する。支配は、目的関数値のいずれもが優れていること、本例では小さい値であることを意味している。
【0039】
一方、新規の点が、既にパレートリストに登録されている点のいずれにも支配されていない場合には、パレートリストに登録すると共に、逆にパレートリストに登録されている点の方が新規の点に支配されている場合には、この点をパレートリストから除去して、非最適点リストに登録する。
【0040】
そして、パレート生成部9は、ステップS23で生成された目的関数値のセット数がサンプリング数上限に達したか判断する(ステップS27)。生成された目的関数値のセット数がサンプリング数上限に達していない場合には、ステップS21に戻る。
【0041】
図4の例では、例えば図8に示すような点群が、目的関数空間に配置される。すなわち、図8の例では、横軸は目的関数f1を表し、縦軸は目的関数f2を表している。ステップS23を実行することによって、図8に示すような点の各々が生成される。このうち、左下の原点に近い非劣解となる点が、パレート集合に含まれることになる。
【0042】
ステップS27で、生成された目的関数値のセット数がサンプリング数上限に達した場合には、パレート生成部9は、入力データ格納部3に格納されている距離δ=0が設定されているか又は全く距離δが設定されていないかを判断する(ステップS29)。本実施の形態では、パレート集合の数が少ない場合などに備えるために、補助的にパレート集合に含まれる点から距離δ以内であれば、パレート集合に追加登録する。但し、距離δ=0又は全く距離δが設定されていない場合には、パレート生成部9は、パレート集合の点を仮最適点集合に登録する(ステップS30)。仮最適点集合のリストを、パレートデータ格納部11に格納する。そして元の処理に戻る。
【0043】
一方、距離δ≠0が設定されている場合には、パレート生成部9は、パレート集合に含まれない、すなわち非パレート集合に含まれる目的関数値セット毎に、最も近いパレートとの距離がδ以内か確認し、δ以内であれば仮最適点集合に登録する(ステップS31)。仮最適点集合のリストを、パレートデータ格納部11に用意して、初期的にパレートリストに登録されている点を登録しておく。そして、ステップS31でδ以内と判定された点については追加登録する。その後元の処理に戻る。
【0044】
ステップS31を実施した場合には、例えば図9に示すように、点線で囲まれた部分が、仮最適点集合に含まれるようになる。
【0045】
図3の処理の説明に戻って、パレート式選択部13は、入力データ格納部3とパレートデータ格納部11と多項式格納部7とに格納されているデータを用いて、パレート式選択処理を実施する(ステップS7)。パレート式選択処理については、図10乃至図15を用いて処理を説明する。
【0046】
まず、パレート式選択部13は、区間分割処理を実施する(図10:ステップS41)。図9に示したような目的関数平面(一般的には空間)における最適解は、必ずしも1つの曲線で表されるわけではない。区間毎に異なる曲線が最適解となる場合もあるので、適切に区間分割して、区間毎に最適解となる曲線を特定するものである。区間分割処理については、図11及び図12を用いて説明する。
【0047】
パレート式選択部13は、基準となる目的関数の値域を、入力データ格納部3に格納されている最適化問題のデータから特定する(図11:ステップS61)。例えば、目的関数f1を基準となる目的関数とする。そして、制約条件に含まれる変数x1及びx2の値域から、目的関数f1の値域が算出できる。具体的には、この例ではx1の上限値及び下限値から、[2,4]であることが分かる。
【0048】
次に、パレート式選択部13は、多項式格納部7に格納されている、射影因子の多項式のうち基準となる目的関数についての多項式について実数根を算出し、例えばメインメモリなどの記憶装置に格納する(ステップS63)。上で述べた例で目的関数f1について実数根を算出できる多項式は、多項式集合F1に含まれている。多項式集合F1に含まれている各多項式についての実数根は、−4,−2,0,2,4である。
【0049】
そして、パレート式選択部13は、ステップS63で算出された実数根から、基準となる目的関数の値域に含まれる実数根を抽出し、例えばメインメモリなどの記憶装置に格納する(ステップS65)。本例では、値域が[2,4]であるので、実数根2及び4が抽出される。但し、抽出されない場合もある。
【0050】
従って、値域に含まれる実数根が抽出されなかった場合(ステップS67:Noルート)には、パレート式選択部13は、基準となる目的関数の値域そのものを区間に設定し、当該区間のデータを出力データ格納部15に格納する(ステップS69)。そして、ステップS73に移行する。
【0051】
一方、値域に含まれる実数根が抽出された場合(ステップS67:Yesルート)には、パレート式選択部13は、基準となる目的関数の値域を、抽出された実数根で分割して区間を生成し、区間のデータを出力データ格納部15に格納する(ステップS71)。本例では、値域が[2,4]で、抽出された実数根が2及び4であるから、結果的には区間は[2,4]となる。一般的には、値域が[l,r]であり、ステップS65で実数根q1,q2,...qjが抽出されると、区間[l,q1][q1,q2][q2,q3]...[qj,r]に分割される。
【0052】
そして、パレート式選択部13は、パレートデータ格納部11に格納されている仮最適点集合に含まれている点を、出力データ格納部15に格納されている区間のデータに従って分類し、分類結果をパレートデータ格納部11に格納する(ステップS73)。例えば、図12に示すようなデータが、パレートデータ格納部11に格納される。図12の例では、目的関数f1の値と、目的関数f2の値と、区間の番号とが登録されている。例えば、区間の値が小さい順番に区間番号を付与して、該当する区間の番号が登録される。そして元の処理に戻る。
【0053】
図10の処理の説明に戻って、パレート式選択部13は、出力データ格納部15に登録されている区間のうち未処理の区間を1つ特定する(ステップS43)。そして、パレート式選択部13は、多項式格納部7において、未処理の多項式を1つ特定する(ステップS45)。その後、パレート式選択部13は、特定された多項式と、特定された区間内の仮最適点との距離の自乗和を評価値として算出し、多項式に対応付けて出力データ格納部15に格納する(ステップS47)。
【0054】
例えば、区間kの仮最適点集合OPkに属する仮最適点をPj,kと表し、多項式格納部7に格納されている多項式をGiとすると、評価値Di,kは、以下のように表される。
【0055】
【数1】
distance(A,B)は、式Bと点Aとの距離を表す。曲線と点の距離はよく知られているのでここでは述べない。この式(1)は一例であって、例えば距離の自乗和の平方根を採用しても良いし、該当する仮最適点の数で除することによって平均値を算出するようにしても良い。
【0056】
そして、パレート式選択部13は、多項式格納部7において、未処理の多項式が存在するか判断する(ステップS49)。未処理の多項式が存在する場合にはステップS45に戻る。このような処理を繰り返すと、例えば図13に示すようなデータが得られる。図13の例では、多項式に対応付けて評価値が格納されるようになっている。
【0057】
一方、未処理の多項式が存在しない場合には、パレート式選択部13は、評価値が最小となる多項式を特定し、ステップS43で特定された区間のデータに対応付けて出力データ格納部15に格納する(ステップS51)。例えば図13に示されるようなデータのうち評価値が最小となる行を特定し、当該行の多項式を特定する。
【0058】
そして、パレート式選択部13は、出力データ格納部15に格納されている区間のうち未処理の区間が存在するか判断する(ステップS53)。未処理の区間が存在していればステップS43に戻る。一方、未処理の区間が存在していなければ、元の処理に戻る。
【0059】
このような処理を実施すれば、例えば図14に示すようなデータが出力データ格納部15に格納される。図14の例では、各区間について、最も評価値が小さくなる多項式のデータが登録されている。なお、上で述べた例では、区間[2,4]について、「4f2+f12−20」が特定される。
【0060】
図3の処理の説明に戻って、出力部17は、出力データ格納部15に格納されている区間及び多項式のデータを用いて、多項式を表すグラフを出力装置(例えば表示装置又は印刷装置)に出力する(ステップS9)。例えば、「4f2+f12−20」の場合には4f2+f12−20=0を表示装置に表示する。
【0061】
例えば図15のようなグラフが表示される。図15の例では、横軸は目的関数f1を表し、縦軸は目的関数f2を表す。曲線aが、上記の多項式を表している。なお、ハッチングが付された領域Aは、実行可能領域としてQEツール100によって全て数式処理で解いた場合に特定される領域である。具体的には、以下の式が数式処理で得られる。
[f1−2≧0∨f1+2≦0]∧f1+4≧0∧f1−4≦0∧f2−5≦0∧4f2+f12−20≧0
【0062】
このような数式処理であれば、上でも述べたような時間のかかる処理を行うことになるが、本実施の形態であれば、簡単な処理で短時間で同じ処理結果を得ることができるようになる。
【0063】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図1の機能ブロック図は一例であって必ずしも実際のプログラムモジュール構成と一致しない場合もある。また、処理フローについても処理結果が変わらない限りにおいて、処理順番を入れ替えたり、並列実行するようにしても良い。
【0064】
さらに上で述べた例では、1台のコンピュータで実行する例を示しているが、複数台のコンピュータで処理を分担して実施するようにしても良い。
【0065】
また、2つの目的関数についての処理を一例として説明したが、3以上の目的関数についても、同様に処理することができる。
【0066】
なお、上で述べた最適化処理装置は、コンピュータ装置であって、図16に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0067】
以上述べた本実施の形態をまとめると、以下のようになる。
【0068】
本実施の形態に係る最適化処理方法は、(A)複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の多項式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより第1の式の射影因子である第2の式を生成させ、当該第2の式のデータをCAD処理部から取得して、第1データ格納部に格納するステップと、(B)複数の目的関数の変数の値を複数生成して、複数の目的関数に代入することによって複数の目的関数の値セットを複数算出し、当該複数の値セットから複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、(C)第1データ格納部に格納されている第2の式の各々について、当該第2の式と第2データ格納部に格納されている仮最適点の各々との距離の評価値を算出し、第3データ格納部に第2の式と対応付けて格納する評価ステップと、(D)第3データ格納部に格納されている評価値が最も小さい第2の多項式を特定するステップとを含む。
【0069】
通常CAD処理部で行われる射影処理より後の処理よりも、上で述べた処理の方が簡単な処理で短時間で行うことができる。従って、2以上の目的関数に対する最適化問題の解を数式で高速に得ることができるようになる。
【0070】
なお、本最適化処理方法は、複数の値セットのうち非劣解との距離が所定値以下の値セットを抽出し、仮最適点のデータとして第2データ格納部に格納するステップを更に含むようにしてもよい。例えば、非劣解の数が少ない場合などは有効である。
【0071】
さらに、上で述べた評価ステップが、複数の目的関数のうち特定の目的関数の値域を、最適化問題から特定するステップと、第1データ格納部に格納されている第2の式のうち特定の目的関数のみを変数として含む第3の式を抽出するステップと、抽出された第3の式の実数根を算出し、当該第3の式の実数根から特定の目的関数の値域に含まれる実数根を抽出するステップと、特定の目的関数の値域を、抽出された実数根で区分することによって、特定の目的関数の区間を生成するステップと、上記仮最適点を、特定の目的関数の区間に従って分類するステップとを含むようにしてもよい。その際、距離の評価値の算出を、特定の目的関数の区間毎に、当該特定の目的関数の区間に対応する分類に係る仮最適点について実施するようにしてもよい。このようにすれば、区間毎に適切な式を特定することができるようになる。
【0072】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
【0073】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0074】
(付記1)
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納するステップと、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納する評価ステップと、
前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するステップと、
を、コンピュータに実行させるための最適化処理プログラム。
【0075】
(付記2)
前記複数の値セットのうち前記非劣解との距離が所定値以下の値セットを抽出し、前記仮最適点のデータとして前記第2データ格納部に格納するステップ
を更に前記コンピュータに実行させるための付記1記載の最適化処理プログラム。
【0076】
(付記3)
前記評価ステップが、
前記複数の目的関数のうち特定の目的関数の値域を、前記最適化問題から特定するステップと、
前記第1データ格納部に格納されている前記第2の式のうち前記特定の目的関数のみを変数として含む第3の式を抽出するステップと、
抽出された前記第3の式の実数根を算出し、当該第3の式の実数根から前記特定の目的関数の値域に含まれる実数根を抽出するステップと、
前記特定の目的関数の値域を、抽出された前記実数根で区分することによって、前記特定の目的関数の区間を生成するステップと、
前記仮最適点を、前記特定の目的関数の区間に従って分類するステップと、
を含み、
前記距離の評価値の算出を、前記特定の目的関数の区間毎に、当該特定の目的関数の区間に対応する分類に係る前記仮最適点について実施する
付記1又は2記載の最適化処理プログラム。
【0077】
(付記4)
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納するステップと、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納する評価ステップと、
前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するステップと、
を含み、コンピュータに実行される最適化処理方法。
【0078】
(付記5)
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納する制御部と、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するパレート生成部と、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納し、前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するパレート式選択部と、
を有する最適化処理装置。
【符号の説明】
【0079】
1 入力部 3 入力データ格納部
5 QEツール制御部 7 多項式格納部
9 パレート生成部 11 パレートデータ格納部
13 パレート式選択部 15 出力データ格納部
17 出力部
100 QEツール
110 CAD処理部 111 射影部
112 ベース部 113 リフティング部
120 式構築部
【特許請求の範囲】
【請求項1】
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納するステップと、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納する評価ステップと、
前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するステップと、
を、コンピュータに実行させるための最適化処理プログラム。
【請求項2】
前記複数の値セットのうち前記非劣解との距離が所定値以下の値セットを抽出し、前記仮最適点のデータとして前記第2データ格納部に格納するステップ
を更に前記コンピュータに実行させるための請求項1記載の最適化処理プログラム。
【請求項3】
前記評価ステップが、
前記複数の目的関数のうち特定の目的関数の値域を、前記最適化問題から特定するステップと、
前記第1データ格納部に格納されている前記第2の式のうち前記特定の目的関数のみを変数として含む第3の式を抽出するステップと、
抽出された前記第3の式の実数根を算出し、当該第3の式の実数根から前記特定の目的関数の値域に含まれる実数根を抽出するステップと、
前記特定の目的関数の値域を、抽出された前記実数根で区分することによって、前記特定の目的関数の区間を生成するステップと、
前記仮最適点を、前記特定の目的関数の区間に従って分類するステップと、
を含み、
前記距離の評価値の算出を、前記特定の目的関数の区間毎に、当該特定の目的関数の区間に対応する分類に係る前記仮最適点について実施する
請求項1又は2記載の最適化処理プログラム。
【請求項4】
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納するステップと、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納する評価ステップと、
前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するステップと、
を含み、コンピュータに実行される最適化処理方法。
【請求項5】
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納する制御部と、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するパレート生成部と、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納し、前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するパレート式選択部と、
を有する最適化処理装置。
【請求項1】
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納するステップと、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納する評価ステップと、
前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するステップと、
を、コンピュータに実行させるための最適化処理プログラム。
【請求項2】
前記複数の値セットのうち前記非劣解との距離が所定値以下の値セットを抽出し、前記仮最適点のデータとして前記第2データ格納部に格納するステップ
を更に前記コンピュータに実行させるための請求項1記載の最適化処理プログラム。
【請求項3】
前記評価ステップが、
前記複数の目的関数のうち特定の目的関数の値域を、前記最適化問題から特定するステップと、
前記第1データ格納部に格納されている前記第2の式のうち前記特定の目的関数のみを変数として含む第3の式を抽出するステップと、
抽出された前記第3の式の実数根を算出し、当該第3の式の実数根から前記特定の目的関数の値域に含まれる実数根を抽出するステップと、
前記特定の目的関数の値域を、抽出された前記実数根で区分することによって、前記特定の目的関数の区間を生成するステップと、
前記仮最適点を、前記特定の目的関数の区間に従って分類するステップと、
を含み、
前記距離の評価値の算出を、前記特定の目的関数の区間毎に、当該特定の目的関数の区間に対応する分類に係る前記仮最適点について実施する
請求項1又は2記載の最適化処理プログラム。
【請求項4】
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納するステップと、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するステップと、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納する評価ステップと、
前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するステップと、
を含み、コンピュータに実行される最適化処理方法。
【請求項5】
複数の目的関数を含む最適化問題と等価な限定子除去問題に出現する第1の式に対して、CAD(Cylindrical Algebraic Decomposition)処理部に射影処理を実施させることにより前記第1の式の射影因子である第2の式を生成させ、当該第2の式のデータを前記CAD処理部から取得して、第1データ格納部に格納する制御部と、
前記複数の目的関数の変数の値を複数生成して、前記複数の目的関数に代入することによって前記複数の目的関数の値セットを複数算出し、当該複数の値セットから前記複数の目的関数の値で張られる空間における非劣解である仮最適点を抽出し、第2データ格納部に格納するパレート生成部と、
前記第1データ格納部に格納されている前記第2の式の各々について、当該第2の式と前記第2データ格納部に格納されている前記仮最適点の各々との距離の評価値を算出し、第3データ格納部に前記第2の式と対応付けて格納し、前記第3データ格納部に格納されている前記評価値が最も小さい第2の式を特定するパレート式選択部と、
を有する最適化処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2012−68870(P2012−68870A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2010−212686(P2010−212686)
【出願日】平成22年9月22日(2010.9.22)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願日】平成22年9月22日(2010.9.22)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]