説明

最適化処理プログラム、方法及び装置

【課題】数式処理により適切な最適化処理を高速に行う。
【解決手段】本方法では、パラメータの値を複数セット生成して各セットについてシミュレーションを実行させて評価指標の値を取得し、評価指標とパラメータとの関係を表し且つ第1の次数についての第1モデル式と、評価指標とパラメータとの関係を表し且つ第1の次数より高次の第2モデル式とを生成する。そして、第1モデル式と制約条件から限定子除去法により第1モデル式の最適解を実現するパラメータの値を算出させる。さらに、算出されたパラメータの値のうち値が制約条件に含まれる上限値又は下限値となったパラメータを特定し、第2モデル式に対して、特定されたパラメータの値として上限値等を代入して第2モデル式を変形する。また、変形後の第2モデル式と制約条件の該当部分から限定子除去法により、変形後の第2モデル式の最適解を実現する、変形後の第2モデル式内のパラメータの値を算出させる。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、数式処理による最適化技術に関する。
【背景技術】
【0002】
ものづくりにおける設計段階では、設計条件を予め定められた設計パラメータの関数(すなわち目的関数)として表現し、例えば目的関数の値が最小になるように設計パラメータを設定することが必要となる。その際、設計者はベースとなる形状を決めた後で各設計パラメータの変動幅を設定し、設計パラメータ空間内で最適化を行う。しかし設計パラメータ数が多い場合、設計パラメータ空間内をくまなく探索しようとすると組み合わせ数が膨大となってしまう組み合わせ爆発が起こり、実時間内では計算不可能となる。
【0003】
このような数値計算による最適化処理について、高速に処理しようとする技術は多数存在している。
【0004】
一方、計算機シミュレーションによる最適設計には、数式処理による最適化という手法も存在している。この手法では、様々な設計パラメータの値について、計算機シミュレーションを実施し、各々のケースについて出力評価指標を算出する。そして、設計パラメータと出力評価指標との関係を近似するモデル式を計算し、このモデル式に基づいて数式処理による最適化を行う。この最適化のための処理として、得られた近似式及び制約条件からコストと性能との関係を表す数式を算出する場合がある。
【0005】
なお、数式処理については、限定子除去法(QE:Quantifier Elimination)という技術が知られている。この技術は、例えば∃x(x2+bx+c=0)という数式を、限定子(∃及び∀)を除去した等価な式b2−4c≧0に変形する技術である。
【0006】
具体的には、以下の文献を参照のこと。但し、QEについての文献は多数存在しているので、以下の文献以外でも有用な文献は存在している。
【0007】
数学セミナー 穴井宏和・横山和弘「計算実代数幾何入門」 日本評論社出版。第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月号)。
雑誌FUJITSU2009-9月号,穴井 宏和, 金児 純司, 屋並 仁史, 岩根 秀直,「数式処理を用いた設計技術」(http://img.jp.fujitsu.com/downloads/jp/jmag/vol60-5/paper24.pdfから2009年10月取得可能)
Mats Jirstrand: Cylindrical Algebraic Decomposition - an Introduction,1995−10−18(http://www.control.isy.liu.se/research/reports/1995/1807.ps.Zから2009年10月取得可能)
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特表2008−507038号公報
【特許文献2】特表2008−502033号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、QEでも計算量が多いという問題がある。このため、制約条件の数を減らして問題を簡略化するか、モデル式の次数を落としたり変数や項の数を減らすといったモデルの簡略化を行う必要が出てくる。しかし、このような簡略化は誤差を大きくするため、最適な解を与える1点を求める場合に影響が大きい。
【0010】
従って、本技術の目的は、数式処理により適切な最適化処理を高速に行うための技術を提供することである。
【課題を解決するための手段】
【0011】
本最適化処理方法は、(A)予め定められた設計パラメータの値を複数セット生成して各セットについてシミュレーションを実行させることにより、予め定められた評価指標の値を取得し、評価指標と設計パラメータとの関係を表し且つ第1の次数についての第1のモデル式と、評価指標と設計パラメータとの関係を表し且つ第1の次数より高次の第2のモデル式とを生成し、モデル式格納部に格納するステップと、(B)モデル式格納部に格納されている第1のモデル式と予め定められた制約条件とから限定子除去法により第1のモデル式の最適解を実現する設計パラメータの値を算出させ、設計パラメータ値格納部に格納するステップと、(C)設計パラメータ値格納部に格納されている値が制約条件に含まれる上限値又は下限値となった設計パラメータを特定し、モデル式格納部に格納されている第2のモデル式に対して、特定された設計パラメータの値として上限値又は下限値を代入して第2のモデル式を変形する変形ステップと、(D)変形後の第2のモデル式と制約条件の該当部分とから限定子除去法により、変形後の第2のモデル式の最適解を実現する、変形後の第2のモデル式内の設計パラメータの値を算出させ、設計パラメータ値格納部に格納するステップとを含む。
【発明の効果】
【0012】
数式処理により適切な最適化処理を高速に行うことができるようになる。
【図面の簡単な説明】
【0013】
【図1】図1は、最適化処理装置の機能ブロック図である。
【図2】図2は、本技術の実施の形態に係る処理フローを示す図である。
【図3】図3は、モデル式生成処理の処理フローを示す図である。
【図4】図4は、モデル式データ格納部に格納されるデータの一例を示す図である。
【図5】図5は、シミュレーション結果を模式的に示す図である。
【図6】図6は、低次数のモデル式の導出を模式的に示す図である。
【図7】図7は、高次数のモデル式の導出を模式的に示す図である。
【図8】図8は、第1QE処理の処理フローを示す図である。
【図9A】図9Aは、制約付き最適化問題の一例を示す図である。
【図9B】図9Bは、QE問題の一例を示す図である。
【図10】図10は、制約付き最適化問題の一例を示す図である。
【図11】図11は、実行可能領域の一例を示す図である。
【図12】図12は、第2QE処理の処理フローを示す図である。
【図13】図13は、設計パラメータx1とモデル式との関係を模式的に示す図である。
【図14】図14は、第3QE処理の処理フローを示す図である。
【図15】図15は、コンピュータの機能ブロック図である。
【図16】図16は、QE処理部の処理を説明するための図である。
【図17】図17は、QE処理部の処理を説明するための図である。
【図18】図18は、QE処理部の処理を説明するための図である。
【図19】図19は、QE処理部の処理を説明するための図である。
【図20】図20は、QE処理部の処理を説明するための図である。
【図21】図21は、QE処理部の処理を説明するための図である。
【図22】図22は、QE処理部の処理を説明するための図である。
【図23】図23は、QE処理部の処理を説明するための図である。
【図24】図24は、QE処理部の処理を説明するための図である。
【図25】図25は、QE処理部の処理を説明するための図である。
【図26】図26は、最適化処理装置の機能ブロック図である。
【発明を実施するための形態】
【0014】
本技術の実施の形態では、設計対象物の物理量(例えば、長さや厚みなど)を設計パラメータとして採用し、当該設計パラメータの関数である目的関数の値を最適化(例えば最小化又は最大化)すると共に、当該最適値を実現するための設計パラメータの値を高精度で算出する。より具体的には、半導体設計のうちSRAM(Static Random Access Memory)形状の設計を一例にする。SRAM形状の設計では、例えばセル電圧、Loadゲート長、Driverゲート長、Transferゲート長、Load幅、Driver幅、Transfer幅、WordLine電位、LoadのVth、DriverのVth、TransferのVthなどが設計パラメータとして採用され得る。
【0015】
本実施の形態では、設計パラメータの値を所定の変動幅内で変動させてシミュレーションを行い、シミュレーションの結果から設計パラメータとシミュレーション結果である評価指標との関係をモデル化することによって、目的関数を特定する。SRAM形状の設計では、高精度でのモデル化が必要で、線形モデルでは不十分とされている。しかしながら、目的関数の最適解を与える設計パラメータの値は、設計パラメータの上限値又は下限値のいずれかになることが多いことが知られている。例えば設計パラメータが0以上1以下という値域で定義されている場合には、下限値が「0」であり、上限値が「1」である。但し、設計パラメータの値が下限値になるか、上限値になるかについては、様々な要因が関係しており、特に複数の評価指標を同時に評価する必要がある場合には、一義的に上限値であるか下限値になるかを事前に特定することはできない。
【0016】
本実施の形態では、このような特性を活用している。但し、SRAM形状の設計以外にも、このような特性を有するようなものであれば、本実施の形態を適用することができる。
【0017】
本技術の一実施の形態に係る最適化処理装置100の機能ブロック図を図1に示す。最適化処理装置100は、(A)設計者から問題設定についてのデータなどの入力を受け付ける入力部1と、(B)入力部1により受け付けられたデータを格納する問題設定データ格納部2と、(C)問題設定データ格納部2に格納されているデータを用いてモデル式生成処理を実施するモデル式生成部3と、(D)モデル式生成部3の処理結果を格納するモデル式データ格納部4とを有する。
【0018】
また、最適化処理装置100は、(E)問題設定データ格納部2とモデル式データ格納部4とに格納されたデータを用いて処理を行う第1QE処理部5と、(F)第1QE処理部5などの処理結果を格納する処理結果格納部8と、(G)問題設定データ格納部2とモデル式データ格納部4と処理結果格納部8とに格納されているデータを用いて処理を行う第2QE処理部6と、(H)問題設定データ格納部2とモデル式データ格納部4と処理結果格納部8とに格納されているデータを用いて処理を行う第3QE処理部7と、(I)処理結果格納部8に格納されているデータを出力する出力部9とを有する。
【0019】
例えば最適化処理装置100とは別に設けられ且つネットワークを介して接続されているコンピュータ上で実行されているシミュレータ200は、例えばSPICE(Simulation Program with Integrated Circuit Emphasis)シミュレータなどであり、最適化処理装置100のモデル式生成部3と連携する。但し、シミュレータ200は、最適化処理装置100において実行される場合もある。
【0020】
また、例えば最適化処理装置100とは別に設けられ且つネットワークを介して接続されているコンピュータ上で実行されているQEツール300は、最適化処理装置100の第1乃至第3QE処理部5乃至7と連携する。但し、QEツール300は、最適化処理装置100において実行される場合もある。QEツール300は、従来技術の欄で述べたように、x2+bx+c=0というモデル式を得た場合に、周知の限定子除去法でxの存在し得る範囲としてb2−4c≧0を算出するような処理を行う。
【0021】
次に、図1に示した最適化処理装置100の処理内容について図2乃至図15を用いて説明する。
【0022】
設計者は、問題設定のためのデータを最適化処理装置100に入力する。最適化処理装置100の入力部1は、設計者から問題設定のためのデータを受け付け、当該データを問題設定データ格納部2に格納する(ステップS1)。例えば、評価指標F1=SNM(Static Noise Margin)及び評価指標F2=WM(Write Margin)を指定して、目的関数として評価指標F1及びF2のうち小さい値(min(F1,F2))を指定する。さらに、設計パラメータとしてx1乃至x7を指定して、これら設計パラメータの制約条件(制約式とも呼ぶ。)を0≦xi≦1として指定する。このようなデータを、問題設定データ格納部2に格納する。
【0023】
次に、モデル式生成部3は、問題設定データ格納部2に格納されているデータを用いて、モデル式の生成処理を実施する(ステップS3)。このモデル式の生成処理については、図3乃至図7を用いて説明する。
【0024】
まず、モデル式生成部3は、LatinHypercubeサンプリング法等の既に知られた方法を用いて、問題設定データ格納部2に格納されている制約条件に従った設計パラメータの値の複数のセットを生成し、例えばモデル式データ格納部4に格納する(ステップS21)。例えば、図4に示すように、設計パラメータx1乃至x7の値を、制約条件を満たすように複数セット生成する。図4の例では、F1及びF2の値をも登録する例を示しているが、本ステップではまだ値は登録されない。
【0025】
そして、モデル式生成部3は、シミュレータ200に、生成された設計パラメータ値セットの各々に対してシミュレーションを実施させ、シミュレータ200から評価指標F1及びF2の値を取得し、例えばモデル式データ格納部4に格納する(ステップS23)。この段階で図4に示すように、各行に評価指標F1の値及び評価指標F2の値が登録される。
【0026】
また、モデル式生成部3は、シミュレーション結果に基づき低次数の(例えば線形の)モデル式を例えば最小二乗法等により生成して、当該モデル式のデータをモデル式データ格納部4に格納する(ステップS25)。例えば、設計パラメータを1つと仮定して、ステップS23で取得されたシミュレーション結果をグラフに表すと図5のようになる。図5では、横軸が設計パラメータの値を表し、縦軸が評価指標の値を表す。そうすると、このような空間において、シミュレータ200への入力(すなわち設計パラメータ値)と出力(シミュレーションによる評価指標の値)とをプロットすることができる。本ステップでは、例えば最小二乗法等により、例えば線形のモデル式を生成する。図5のような場合には、図6に示すように、直線C1がモデル式として算出される。
【0027】
例えば、設計パラメータがx1からx7までである場合には、それらの設計パラメータと評価指標F1との関係を表す低次数のモデル式及び設計パラメータと評価指標F2との関係を表す低次数のモデル式がモデル式データ格納部4に格納される。
【0028】
そして、例えば以下のようなモデル式が得られたものとする。なお、線形モデルの場合にはF11及びF12と記すものとする。
【0029】
【数1】

【0030】
さらに、モデル式生成部3は、シミュレーション結果に基づき高次数の(例えば2次の)モデル式を例えば最小二乗法等により生成して、当該モデル式のデータをモデル式データ格納部4に格納する(ステップS27)。基本的な考え方はステップS25と同じであるが、例えば図7に示すように、曲線C2のような高次のモデル式を算出する。
【0031】
例えば、設計パラメータがx1からx7までである場合には、それらの設計パラメータと評価指標F1との関係を表す高次数のモデル式及び設計パラメータと評価指標F2との関係を表す高次数のモデル式がモデル式データ格納部4に格納される。
【0032】
そして、例えば以下のような2次のモデル式が得られたものとする。なお、2次のモデルの場合にはF21及びF22と記すものとする。
【0033】
【数2】

【0034】
【数3】

【0035】
このように低次数のモデル式と高次数のモデル式を活用して、以下の処理において適切な設計パラメータ値を算出する。
【0036】
図2の処理の説明に戻って、第1QE処理部5は、問題設定データ格納部2とモデル式データ格納部4とに格納されているデータを用いて、QEツール300と連携して第1QE処理を実施し、処理結果を処理結果格納部8に格納する(ステップS5)。この第1QE処理については、図8乃至図11を用いて説明する。
【0037】
第1QE処理は、最初から次数の高いモデル式をQEでは解けないので次数の低いモデル式をQEで解くことによって、考慮すべき設計パラメータを減らすための前処理である。低い次数のモデル式を使用すると精度は低いが、おおよその設計パラメータの値を得ることができる。設計パラメータの値は上限値又は下限値になることが多いという特徴がある問題を解く場合には、精度が低い低次数のモデル式で設計パラメータの値を算出して上限値又は下限値になることが分かれば、高次数のモデル式で設計パラメータの値を算出しても、その設計パラメータについては同じように上限値又は下限値になる。従って、低次数のモデル式で上限値又は下限値となった設計パラメータについては、高次数のモデル式では定数として扱っても問題なく、考慮すべき設計パラメータを減らすことができるようになる。
【0038】
第1QE処理部5は、問題設定データ格納部2に格納されている制約条件及び目的関数とモデル式データ格納部4に格納されている低次数のモデル式とでQE問題を生成して、例えばメインメモリなどの記憶装置に格納する(ステップS31)。
【0039】
一般的には、図9Aに示したような制約付き最適化問題から、QE問題を生成する場合には、以下のような処理を実施する。すなわち、目的関数(−x−2y−5z)に含まれる変数(本実施の形態であれば設計パラメータ)について存在を表す「∃」を付与する(図9BのA)。さらに、目的関数を最大化するということを表すために、例えば変数sを導入して「s≦目的関数」という関係式に変換する(図9BのB)、この関係式と全ての制約条件(「Subject to」の後の条件)をANDを表す「∧」で結合する(図9BのC)。すなわち、s≦−x−2y−5z∧2x+3y+z=7∧x+y≧1∧x≧0∧y≧0∧z≧0という条件を満たすsを求めるという問題に変換する。これによって、s、すなわち目的関数−x−2y−5zの実行可能領域を解く問題となる。なお、図9BのQE問題をQEツール300で解けば、2s+7≦0が得られる。この実行可能領域の中で最も大きい値を最適解として採用する。
【0040】
上で述べた7つの設計パラメータx1乃至x7で表されるF11及びF12の例は、図10に示すような制約付き最適化問題として把握される。ここで、目的関数min(F11,F12)については、SNMとWMの両方が悪くない部分を求めるということである。但し、代数的にminを直接表すことができないので、新たな変数zを導入する。そして、z≦F11∧z≦F12と変形することで、zはF11及びF12両方よりも大きくない変数となる。すなわち、z≦min(F11,F12)と同じ意味を有する。具体的には、図11(縦軸はzを表し、横軸は1つの設計パラメータの値を表す)に示すように、直線F11が直線F12より値が小さい範囲では直線F11以下の部分、直線F12が直線F11より値が小さい範囲では直線F12以下の部分が、実行可能領域となる。
【0041】
従って、ステップS31では、以下のようなQE問題が生成される。
∃x1∃x2∃x3∃x4∃x5∃x6∃x7(0≦x1≦1∧0≦x2≦1∧0≦x3≦1∧0≦x4≦1∧0≦x5≦1∧0≦x6≦1∧0≦x7≦1∧z≦F11∧z≦F12)
【0042】
そして、第1QE処理部5は、QEツール300に、ステップS31で生成されたQE問題を解くように要求し、QEツール300から目的関数の最適解を取得し、処理結果格納部8に格納する(ステップS33)。QEツール300の具体的処理については、限定子除去法としてよく知られた処理であるから、ここでは説明を省略する。なお、付録で処理の具体例について説明しておく。
【0043】
上で述べたようなQE問題の場合には、以下のような結果が得られる。
1274223392000000000*z−10521725891745634157≦0
【0044】
これによって変数zの実行可能領域が特定される。このような変数zの実行可能領域が得られれば、変数zの最大値が得られる。この変数zの最大値を、目的関数の最適解として特定する。上の例では、z=10521725891745634157/1274223392000000000である。
【0045】
従って、第1QE処理部5は、目的関数の最適解を実現する設計パラメータの値を求めるためのQE問題を生成して、QEツール300に、当該QE問題を解くように要求し、QEツール300から設計パラメータの値を取得し、処理結果格納部8に格納する(ステップS35)。
【0046】
具体的には以下のような手順を行う。
1)x7を消去したQE問題を作成し、x7の値を求める。
∃x1∃x2∃x3∃x4∃x5∃x6∃z(0≦x1≦1∧0≦x2≦1∧0≦x3≦1∧0≦x4≦1∧0≦x5≦1∧0≦x6≦1∧0≦x7≦1∧z≦F11∧z≦F12∧1274223392000000000*z−10521725891745634157=0)
2)x7の結果を条件に反映し、x6を消去したQE問題を作成し、x6の値を求める。
∃x1∃x2∃x3∃x4∃x5∃x7∃z(0≦x1≦1∧0≦x2≦1∧0≦x3≦1∧0≦x4≦1∧0≦x5≦1∧0≦x6≦1∧x7=1∧z≦F11∧z≦F12∧1274223392000000000*z−10521725891745634157=0)
3)x6,x7の結果を条件に反映し、x5を消去したQE問題を作成し、x5の値を求める。
∃x1∃x2∃x3∃x4∃x6∃x7∃z(0≦x1≦1∧0≦x2≦1∧0≦x3≦1∧0≦x4≦1∧0≦x5≦1∧x6=1∧x7=1∧z≦F11∧z≦F12∧1274223392000000000*z−10521725891745634157=0)
4)x5,x6,x7の結果を条件に反映し、x4を消去したQE問題を作成し、x4の値を求める。
∃x1∃x2∃x3∃x5∃x6∃x7∃z(0≦x1≦1∧0≦x2≦1∧0≦x3≦1∧0≦x4≦1∧x5=1∧x6=1∧x7=1∧z≦F11∧z≦F12∧1274223392000000000*z−10521725891745634157=0)
5)x4,x5,x6,x7の結果を条件に反映し、x3を消去したQE問題を作成し、x3の値を求める。
∃x1∃x2∃x4∃x5∃x6∃x7∃z(0≦x1≦1∧0≦x2≦1∧0≦x3≦1∧x4=1∧x5=1∧x6=1∧x7=1∧z≦F11∧z≦F12∧1274223392000000000*z−10521725891745634157=0)
6)x3,x4,x5,x6,x7の結果を条件に反映し、x2を消去したQE問題を作成し、x2の値を求める。
∃x1∃x3∃x4∃x5∃x6∃x7∃z(0≦x1≦1∧0≦x2≦1∧x3=1∧x4=1∧x5=1∧x6=1∧x7=1∧z≦F11∧z≦F12∧1274223392000000000*z−10521725891745634157=0)
7)x2,x3,x4,x5,x6,x7の結果を条件に反映し、x1を消去したQE問題を作成し、x1の値を求める。
∃x2∃x3∃x4∃x5∃x6∃x7∃z(0≦x1≦1∧x2=1∧x3=1∧x4=1∧x5=1∧x6=1∧x7=1∧z≦F11∧z≦F12∧1274223392000000000*z−10521725891745634157=0)
【0047】
このように、ステップS33で得られた変数zの実行可能領域のうちの最大値を条件として、ステップS31で生成されたQE問題の条件にANDでさらに連結する。また、変数zについても存在を表す記号「∃」を付与して、他の設計パラメータと同じように列記する。すなわち、0≦x1≦1∧0≦x2≦1∧0≦x3≦1∧0≦x4≦1∧0≦x5≦1∧0≦x6≦1∧0≦x7≦1∧z≦F11∧z≦F12∧1274223392000000000*z−10521725891745634157=0という条件を満たすような設計パラメータx1乃至x7及び変数zの値を求める問題にする。変数zについては、既に求められているので、そのまま出力される。
【0048】
そうすると、QEツール300は、よく知られた限定子除去法によりQE問題を解いて、上で述べたような条件を満たすような設計パラメータの値を出力する。
【0049】
上で述べた例では、以下のような結果が得られる。
1=7013720457/14016457312=0.5003918,
2=1,
3=1,
4=1,
5=1,
6=1,
7=1,
z=10521725891745634157/1274223392000000000
【0050】
このように、低次数のモデル式に含まれる設計パラメータの値が得られるようになる。上でも述べたように、多くの設計パラメータの値が、上限値になっていることが分かる。但し、F11及びF12の内容によって、下限値になるかもしれないので、第1QE処理によってどの設計パラメータが上限値又は下限値になるのかを確認している。
【0051】
図8の処理の説明から図2の処理の説明に戻って、第2QE処理部6は、処理結果格納部8と問題設定データ格納部2とモデル式データ格納部4とに格納されているデータを用いて、第2QE処理を実施し、処理結果を処理結果格納部8に格納する(ステップS7)。この第2QE処理については、図12及び図13を用いて説明する。
【0052】
第2QE処理部6は、処理結果格納部8に格納されており且つ第1QE処理で得られた設計パラメータの値のうち上限値又は下限値である設計パラメータについて、モデル式データ格納部4に格納されている高次数モデル式に対して、得られた上限値又は下限値を代入して、高次数モデル式を変形し、例えばメインメモリなどの記憶装置に格納する(ステップS41)。
【0053】
上で述べた例では、x1以外のx2乃至x7は、上限値「1」となっているので、高次数のモデル式F21及びF22においてx2乃至x7に「1」を代入する。そうすると、以下のような簡略化された式が得られる。
F21b=8.500756371−0.8407133034*x1+0.1922736364*x12
F22b=7.953391257+1.351922165*x1+0.3143480967*x12
【0054】
そして、第2QE処理部6は、変形後の高次数モデル式と、問題設定データ格納部2に格納されている制約条件及び目的関数とでQE問題を生成し、例えばメインメモリなどの記憶装置に格納する(ステップS43)。
【0055】
ステップS43では、基本的にはステップS31と同様の処理を実施する。但し、min(F21b,F22b)が目的関数となる。また、設計パラメータは値が上限値又は下限値ではないx1のみになっているので、制約条件もx1についての制約条件のみが選択される。また、解くことになる設計パラメータもx1だけになる。従って、ステップS43で生成されるQE問題は、以下のようになる。
∃x1(0≦x1≦1∧z≦F21b∧z≦F22b)
【0056】
その後、第2QE処理部6は、QEツール300に、ステップS43で生成されたQE問題を解くように要求し、QEツール300から目的関数の最適解を取得し、処理結果格納部8に格納する(ステップS45)。
【0057】
ステップS45では、基本的にはステップS33と同様の処理を実施する。そうすると、以下のような変数zの値が得られる。
【0058】
【数4】

【0059】
これはさらに整理されて以下のような変数zの式が得られる。
238618787270928516302097379198561373969109372528*z2−3948898513981542665325272158255992498641993331585*z+16337501656369998932875768265187359652159276835066≦0 or
61093111211285133307320208872464185567392*z−505514462704138254311579799314432635828595<0
最終的には、変数zの実行可能領域は、z≦8.29074…となる。従って、変数zの最大値は、8.29074…となる。なお、本願で小数点以下の数字を「…」を含む形で表した場合、実際にはルート√を含む形で出力されるが、表記の都合上近似値を用いていることを表している。
【0060】
さらに、第2QE処理部6は、目的関数の最適解を実現する設計パラメータの値を求めるためのQE問題を生成して、QEツール300に、当該QE問題を解くように要求し、QEツール300から設計パラメータの値を取得し、処理結果格納部8に格納する(ステップS47)。
【0061】
上で述べた例では、以下のようなQE問題を生成する。
∃x1∃z(0≦x1≦1∧z≦F21b∧z≦F22b∧238618787270928516302097379198561373969109372528*z2−3948898513981542665325272158255992498641993331585*z+16337501656369998932875768265187359652159276835066=0 or
61093111211285133307320208872464185567392*z−505514462704138254311579799314432635828595>0)
なお、この式においても表記の都合上近似値が用いられている。
【0062】
従って、0≦x1≦1∧z≦F21b∧z≦F22b∧z=8.2904といった条件を満たす設計パラメータx1の値及び変数zの値を求める問題となる。なお、変数zの値は既に求まっているので、変数zの値についてはそのまま出力される。
【0063】
QEツール300は、よく知られた限定子除去法によりQE問題を解いて、上で述べたような条件を満たすような設計パラメータの値を出力する。
【0064】
上で述べた例では、以下のような結果が得られる。
147369062865673278681489897354299172230888310212951405753448549687*x14−1267585231880821011490655336656612299953463686527769426803057971300*x13+3026832164187229605677018935740423336948896624044750813252776489960*x12−1294814954233025589235990288953847635054037925349792811665028977000*x1+153374672525527731144963940745339046776486276154608383375827336700≧0 and
13783646935592814416188923068045742305401334162815422297006892092*x14−120537537699802114369719508264578689747806603680459929386166019204*x13+295964917461532064463036717507200901977755721564516665233454151547*x12−141846512456883797861995180769761248346815031482078133627654338810*x1+18989383858381045985849754233804905380729776996135581477310597575≧0 and
1835405414309906452852689890486911373094821422542*x12−8025279897097359340954146906679274179148864319177*x1+2159873695219589023157307374252815016052936539755≧0 and
545582478146275943640962608991635504887081954057*x12−2346395772026885507191646225202102006739498467150*x1+557302446970863503723288521839833928729371673530≦0 and
1−1≦0 and
1≧0
【0065】
これをさらに整理すれば以下のような設計パラメータx1の実行可能領域が得られる。
1−1<0 and
184630436769134077176252*x12−799072005181775017876755*x1+199478730104451626416796=0
【0066】
これから最大値を与えるx1=0.2659847156…が得られる。
【0067】
上で示したF21b及びF22bについて図示すると図13に示すようになる。すなわち、x軸は設計パラメータx1を表し、y軸は変数zを表す。このグラフからすると、zの最適値は、曲線F21b及びF22bの交点における8.29074…であり、その際の設計パラメータx1の値は、0.2659847156…となることが分かる。
【0068】
このように、第1QE処理で得られた設計パラメータx1の値とは異なる値が第2QE処理で得られている。すなわち、第2QE処理を実施することによって、設計パラメータx1について誤差の小さい値を得ることができる。
【0069】
図2の処理フローの説明に戻って、例えば第3QE処理部7は、目的関数に対して感度又は寄与度が高い変数について計算をやり直すか判断する(ステップS9)。例えば設計者による指示がなされているか否か、又は最適化処理装置100への設定として第3QE処理部7が処理を行うように設定されているか否かを判断する。
【0070】
目的関数に対して感度又は寄与度が高い変数について計算をやり直すことになっていない場合には、処理はステップS13に移行する。
【0071】
一方、目的関数に対して感度又は寄与度が高い変数について計算をやり直すことになっている場合には、第3QE処理部7は、処理結果格納部8と問題設定データ格納部2とモデル式データ格納部4に格納されているデータを用いて、第3QE処理を実施し、処理結果を処理結果格納部8に格納する(ステップS11)。第3QE処理については、図14を用いて説明する。
【0072】
設計パラメータの値が上限値又は下限値になるような場合が多いという特性を用いて、第2QE処理においては、第1QE処理で得られた設計パラメータの上限値又は下限値をそのまま採用して設計パラメータの数を減らしている。しかしながら、第1QE処理は低次数のモデル式でQE処理を実施しているので、精度の高い計算を行った場合には例えばx7=0.95だが、誤差で上限値「1」と算出されている可能性がある。従って、目的関数に対して影響が大きい設計パラメータについて、第3QE処理で確認を行う。
【0073】
なお、目的関数に対する感度又は寄与度というのは、設計パラメータを変化させたときの目的関数への影響度を表す。例えば、目的関数における係数の絶対値が大きければ、影響度が高く、感度又は寄与度が高いと判断できる。
【0074】
まず、第3QE処理部7は、モデル式データ格納部4に格納されている低次数モデル式において、上限値は下限値が求められた設計パラメータのうち、感度又は寄与度が高い設計パラメータを特定する(ステップS51)。
【0075】
例えば、F11及びF12で、最も絶対値が大きい係数はx7の係数である。従って、x7を特定する。複数の設計パラメータを特定しても良いが、高次数のモデル式で高次の項が複数残ることになるので、QE処理の処理時間が長くなる。ここでは、1つ選択することとする。
【0076】
次に、第3QE処理部7は、ステップS51で特定された設計パラメータ及び第1QE処理で上限値又は下限値でない値が得られた設計パラメータ以外については、処理結果格納部8に格納されており且つ第1QE処理で得られた値を、モデル式データ格納部4に格納されている高次数モデル式に代入することによって、高次数モデル式の変形を行って、変形後の高次数モデル式を例えばメインメモリなどの記憶装置に格納する(ステップS53)。
【0077】
上で述べた例では、設計パラメータx2乃至x6について上限値「1」を代入するので、以下のような変形後の高次数モデル式が得られる。
F21c=-2.464051045*x7+10.92366518−0.7848741460*x1+0.1922736364*x12+0.4114223556×10-1*x72−0.5583915742×10-1*x7*x1
F22c=4.739436358*x7+3.052324427+1.279031039*x1−0.3143480967*x12+0.1616304724*x72+0.7289112590×10-1*x7*x1
【0078】
第3QE処理部7は、変形後の高次数モデル式と、問題設定データ格納部2に格納されている制約条件及び目的関数とでQE問題を生成し、例えばメインメモリなどの記憶装置に格納する(ステップS55)。
【0079】
ステップS55では、基本的にはステップS31と同様の処理を実施する。但し、min(F21c,F22c)が目的関数となる。また、設計パラメータは値が上限値又は下限値ではないx1及びx7のみになっているので、制約条件もx1及びx7についての制約条件のみが選択される。また、解くことになる設計パラメータもx1及びx7だけになる。従って、ステップS55で生成されるQE問題は、以下のようになる。
∃x1∃x7(0≦x1≦1∧0≦x7≦1∧z≦F21c∧z≦F22c)
【0080】
その後、第3QE処理部7は、QEツール300に、ステップS55で生成されたQE問題を解くように要求し、QEツール300から目的関数の最適解を取得し、処理結果格納部8に格納する(ステップS57)。
【0081】
ステップS57では、基本的にはステップS33と同様の処理を実施する。そうすると、以下のような変数zの値が得られる。
76521692628371604200094665888089031213570348775719997908381149434130894497838804645345122280727232499000550400*z2−1266356274402535285733613562992528809428335713014481227199628488088920626515945478646176290112631818545299010496*z+5239207254170329463799573892494718766285329013399382293501296580397159499617737745543801847759123880991116365945≦0 and
463443635747785967425472797218181077323632916075879549238739474499290774293298730400*z−3834760678983826041395849039351295208012618621640274564860057389386590727945878723723<0
【0082】
最終的には、変数zの実行可能領域は、z≦8.290742434…となる。従って、変数zの最大値は、8.290742434…となる。これは、第2QE処理部6で算出された値とほぼ同じである。
【0083】
さらに、第3QE処理部7は、目的関数の最適解を実現する設計パラメータの値を求めるためのQE問題を生成して、QEツール300に、当該QE問題を解くように要求し、QEツール300から設計パラメータの値を取得し、処理結果格納部8に格納する(ステップS59)。
【0084】
ステップS59では、基本的にはステップS35と同様の処理を実施する。そうすると、上で述べた例では、以下のようなQE問題を生成する。
∃x1∃x7∃z(0≦x1≦1∧0≦x7≦1∧z≦F21c∧z≦F22c∧z=8.290742434)
【0085】
従って、0≦x1≦1∧0≦x7≦1∧z≦F21c∧z≦F22c∧z=8.290742434といった条件を満たす設計パラメータx1及びx7の値及び変数zの値を求める問題となる。なお、変数zの値は既に求まっているので、変数zの値についてはそのまま出力される。
【0086】
QEツール300は、よく知られた限定子除去法によりQE問題を解いて、上で述べたような条件を満たすような設計パラメータの値を出力する。
【0087】
上で述べた例では、以下のような結果が得られる。
1=0.2659847199,
7=0.9999999988
【0088】
このように、第2QE処理部6で算出されたものとほぼ同じ値が得られる。この例ではほぼ同じ結果が得られているが、そうでない場合もある。従って、設計者は第2QE処理部6の処理結果と第3QE処理部7の処理結果とを比較しつつ、いずれの値を採用するか決定すればよい。
【0089】
図2の処理の説明に戻って、出力部9は、処理結果格納部8に格納されている目的関数の最適値及び各設計パラメータの値を、出力装置(例えばプリンタや表示装置など。場合によってはネットワークに接続されている他のコンピュータや同一又は他のコンピュータで実行されている他のプログラム)に出力する(ステップS13)。これによって、設計者は、採用すべき設計パラメータの値を取得することができる。なお、第3QE処理を実施している場合には、第2QE処理で得られた目的関数の最適値及び各設計パラメータの値と第3QE処理で得られた目的関数の最適値及び各設計パラメータの値とを出力する。これによって、設計者は第1QE処理の処理結果の妥当性を判断することもできる。
【0090】
以上本技術の実施の形態について説明したが、本技術はこれに限定されるものではない。例えば、図1の機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致するわけではない。
【0091】
また、処理フローについても処理結果が変わらない限り、実行順序を入れ替えたり、並列実施するようにしても良い。例えば、第3QE処理を必ず実施するのであれば、第2QE処理と第3QE処理については並列実施可能である。さらに、第2QE処理の処理結果を出力した後に、設計者がその出力を考慮の上、第3QE処理を実施するか否かを指示するようにしても良い。
【0092】
なお、QEツール300は、複数設けられる場合もある。例えば、低次数モデル式と高次数モデル式とで異なるQEツール300を用いるようにしても良い。より具体的には、低次数モデルには、Virtual Substitutionというアルゴリズムを採用したQEツールを適用し、高次数モデルには、CAD(Cylindrical Algebraic Decomposition)というアルゴリズムを採用したQEツールを適用するようにしても良い。
【0093】
また、スタンドアロン型コンピュータで最適化処理装置を実施する例を示したが、コンピュータネットワークに接続させて、当該コンピュータネットワークに接続されている複数のコンピュータと連携して上記の処理を実施するようにしても良い。
【0094】
なお、上で述べた最適化処理装置は、コンピュータ装置であって、図15に示すように、メモリ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及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0095】
[付録:実行可能領域の算出方法の具体例]
以下、QEツール300により実施される実行可能領域の算出処理について具体例を用いて説明する。
【0096】
まず、入力変数をX及びYとし、出力変数をZとし、入出力関係を表すモデル式をZ=X2+Y2−1とする。さらに、制約条件をZ<0且つX3−Y2=0とする。
【0097】
(1)計算手順1
(1−1)関数F及びGを以下のように設定する。
F(X,Y)=X2+Y2−1
G(X,Y)=X3−Y2
(1−2)判別式dircriminant(F,Y)=−4x2+4=0を計算する。
X=−1,1
(1−3)判別式dircriminant(G,Y)=4x3=0を計算する。
X=0
(1−4)終結式resultant(F,G,Y)=(x3+x2−1)=0を計算する。
この式を満たすXの値をAとする。
X=A
【0098】
(2)計算手順2
(2−1)計算手順1で計算したXの値を整理する。
X={−1,0,A,1}
(2−2)Xの最小値より小さい値と、Xの計算値と計算値の間の値、Xの最大値より大きい値を追加する。
X={X1,X2=−1,X3,X4=0,X5,X6=A,X7,X8=1,X9}
【0099】
(3)計算手順3
Xの各々の値の場合について、F(X,Y)=0又はG(X,Y)=0となるYを計算する。
X=X1・・・該当無し
X=X2・・・Y={Y21=0}
X=X3・・・Y={Y31,Y32}
X=X4・・・Y={Y41=−1,Y42=0,Y43=1}
X=X5・・・Y={Y51,Y52,Y53,Y54}
X=X6・・・Y={Y61=−A3/2,Y62=A3/2
X=X7・・・Y={Y71,Y72,Y73,Y74}
X=X8・・・Y={Y81=−1,Y82=0,Y83=1}
X=X9・・・Y={Y91,Y92}
【0100】
(4)計算手順4
Yの最小値より小さい値、Yの計算値と計算値の間の値、Yの最大値より大きい値を追加する。該当無しの場合には0を設定する。
X=X1・・・Y={YY11=0}
X=X2・・・Y={YY21,YY22=Y21,YY23}
X=X3・・・Y={YY31,YY32=Y31,YY33,YY34=Y32,YY35}
X=X4・・・Y={YY41,YY42=Y41,YY43,YY44=Y42,YY45,YY46=Y43,YY47}
X=X5・・・Y={YY51,YY52=Y51,YY53,YY54=Y52,YY55,YY56=Y53,YY57,YY58=Y54,YY59}
X=X6・・・Y={YY61,YY62=Y61,YY63,YY64=Y62,YY65}
X=X7・・・Y={YY71,YY72=Y71,YY73,YY74=Y72,YY75,YY76=Y73,YY77,YY78=Y74,YY79}
X=X8・・・Y={YY81,YY82=Y81,YY83,YY84=Y82,YY85,YY86=Y83,YY87}
X=X9・・・Y={YY91,YY92=Y91,YY93,YY94=Y92,YY95}
【0101】
(5)計算手順5
(5−1)計算手順4で算出された、XとYの組み合わせについて、F(X,Y)とG(X,Y)の符号を計算する。
(X,Y)=(X1,YY11)−>(F,G)=(+,−)
というような計算を全ての組み合わせについて実施する。
図16に示すように、XY平面において、F(X,Y)=0は原点を中心とした半径1の円であり、G(X,Y)=0はGで表す曲線である。X1は−1より小さい値であり、X=X1は点線で表す直線となる。YY11=0であるので、X=X1とY=0の交点が(X1,YY11)である。F及びGの定義から、(F,G)=(+,−)となる。
【0102】
さらに、図17にX=X2=−1における状態を示す。X2=−1であるので、X=X2はF(X,Y)=0に接する直線となる。そして、YY22=0であって、YY21は正の値であり、YY23は負の値となる。このことから、以下のような計算結果が得られる。
(X,Y)=(X2,YY23)−>(F,G)=(+,−)
(X,Y)=(X2,YY22)−>(F,G)=(0,−)
(X,Y)=(X2,YY21)−>(F,G)=(+,−)
【0103】
また、図18にX=X3における状態を示す。X3は−1より大きく0より小さい値である。一方、YY32=Y31、YY34=Y32であり、Y31及びY32は、F(X,Y)=0上の点である。また、YY33=0とする。さらに、YY35は、YY34より大きい値であり、YY31はYY32より小さい値である。そうすると、以下のような計算結果が得られる。
(X,Y)=(X3,YY35)−>(F,G)=(+,−)
(X,Y)=(X3,YY34)−>(F,G)=(0,−)
(X,Y)=(X3,YY33)−>(F,G)=(−,−)
(X,Y)=(X3,YY32)−>(F,G)=(0,−)
(X,Y)=(X3,YY31)−>(F,G)=(+,−)
【0104】
さらに、図19にX=X4=0における状態を示す。YY42=Y41=−1であり、YY44=Y42=0であり、YY46=Y43=1である。従って、YY41は−1より小さい値であり、YY43は−1より大きく0未満であり、YY45は0より大きく1未満であり、YY47は1より大きい値である。そうすると、以下のような計算結果が得られる。
(X,Y)=(X4,YY47)−>(F,G)=(+,−)
(X,Y)=(X4,YY46)−>(F,G)=(0,−)
(X,Y)=(X4,YY45)−>(F,G)=(−,−)
(X,Y)=(X4,YY44)−>(F,G)=(−,0)
(X,Y)=(X4,YY43)−>(F,G)=(−,−)
(X,Y)=(X4,YY42)−>(F,G)=(0,−)
(X,Y)=(X4,YY41)−>(F,G)=(+,−)
【0105】
また、図20にX=X5における状態を示す。X5は、0より大きく、X3+X2−1=0を満たすXの値Aより小さい値である。さらに、Y51,Y52,Y53,Y54はF(X,Y)=0又はG(X,Y)=0となる値であり、YY52=Y51,YY54=Y52,YY56=Y53,YY58=Y54であるから、(X5,YY52)はF(X,Y)=0とX=X5との交点のうちYが負の値の点となり、(X5,YY54)はG(X,Y)=0とX=X5との交点のうちYが負の値の点となり、(X5,YY56)はG(X,Y)=0とX=X5の交点のうちYが正の値の点となり、(X5,YY58)はF(X,Y)=0とX=X5との交点のうちYが正の値の点となる。さらに、YY55は、YY56とYY54の間の点であるがここではYY55=0とする。なお、YY51は、YY52より小さい値であり、YY59は、YY58より大きい値である。そうすると、以下のような計算結果が得られる。
(X,Y)=(X5,YY59)−>(F,G)=(+,−)
(X,Y)=(X5,YY58)−>(F,G)=(0,−)
(X,Y)=(X5,YY57)−>(F,G)=(−,−)
(X,Y)=(X5,YY56)−>(F,G)=(−,0)
(X,Y)=(X5,YY55)−>(F,G)=(−,+)
(X,Y)=(X5,YY54)−>(F,G)=(−,0)
(X,Y)=(X5,YY53)−>(F,G)=(−,−)
(X,Y)=(X5,YY52)−>(F,G)=(0,−)
(X,Y)=(X5,YY51)−>(F,G)=(+,−)
【0106】
また、図21にX=X6における状態を示す。X6は、X3+X2−1=0を満たすXの値Aである。すなわち、X=X6はF(X,Y)=0とG(X,Y)=0の交点を通る直線となる。なお、YY62=Y61=−A3/2,YY64=Y62=A3/2であり、(X6,YY62)はF(X,Y)=0とG(X,Y)=0の交点のうちYが負の値となる点に対応し、(X6,YY64)はF(X,Y)=0とG(X,Y)=0の交点のうちYが正の値となる点に対応する。YY63はYY62とYY64の間の値であるが、ここではYY63=0とする。YY65はYY64より大きい値であり、YY61はYY62より小さい値である。そうすると、以下のような計算結果が得られる。
(X,Y)=(X6,YY65)−>(F,G)=(+,−)
(X,Y)=(X6,YY64)−>(F,G)=(0,0)
(X,Y)=(X6,YY63)−>(F,G)=(−,+)
(X,Y)=(X6,YY62)−>(F,G)=(0,0)
(X,Y)=(X6,YY61)−>(F,G)=(+,−)
【0107】
さらに、図22にX=X7における状態を示す。X7は、X6とX=1との間の値である。また、(X7,YY72=Y71)は、X=X7とG(X,Y)=0の交点のうちYが負の値の点であり、(X7,YY74=Y72)は、X=X7とF(X,Y)=0の交点のうちYが負の値の点であり、(X7,YY76=Y73)は、X=X7とF(X,Y)=0の交点のうちYが正の値の点であり、(X7,YY78=Y74)はX=X7とG(X,Y)=0の交点のうちYが正の値の点である。YY71は、YY72より小さい値であり、YY73は、YY72とYY74との間の値であり、YY75は、YY74とYY76との間の値であるが、ここではYY75=0である。また、YY77は、YY76とYY78との間の値であり、YY79は、YY78より大きい値である。そうすると、以下のような計算結果が得られる。
(X,Y)=(X7,YY79)−>(F,G)=(+,−)
(X,Y)=(X7,YY78)−>(F,G)=(+,0)
(X,Y)=(X7,YY77)−>(F,G)=(+,+)
(X,Y)=(X7,YY76)−>(F,G)=(0,+)
(X,Y)=(X7,YY75)−>(F,G)=(−,+)
(X,Y)=(X7,YY74)−>(F,G)=(0,+)
(X,Y)=(X7,YY73)−>(F,G)=(+,+)
(X,Y)=(X7,YY72)−>(F,G)=(+,0)
(X,Y)=(X7,YY71)−>(F,G)=(+,−)
【0108】
また、図23にX=X8=1における状態を示す。YY82=Y81=−1であり、YY84=Y82=0であり、YY86=Y83=1である。従って、YY81は−1より小さい値であり、YY83は−1より大きく0未満であり、YY85は0より大きく1未満であり、YY87は1より大きい値である。そうすると、以下のような計算結果が得られる。
(X,Y)=(X8,YY87)−>(F,G)=(+,−)
(X,Y)=(X8,YY86)−>(F,G)=(+,0)
(X,Y)=(X8,YY85)−>(F,G)=(+,+)
(X,Y)=(X8,YY84)−>(F,G)=(0,+)
(X,Y)=(X8,YY83)−>(F,G)=(+,+)
(X,Y)=(X8,YY82)−>(F,G)=(+,0)
(X,Y)=(X8,YY81)−>(F,G)=(+,−)
【0109】
さらに、図24にX=X9>1における状態を示す。(X9,YY92=Y91)はX=X9とG(X,Y)=0との交点のうちYが負の値の点であり、(X9,YY94=Y92)はX=X9とG(X,Y)=0との交点のうちYが正の値の点である。また、YY91は、YY92より小さい値であり、YY95は、YY94より大きい値である。YY93は、YY92とYY94との間の点であるが、ここではYY93=0である。そうすると、以下のような計算結果が得られる。
(X,Y)=(X9,YY95)−>(F,G)=(+,−)
(X,Y)=(X9,YY94)−>(F,G)=(+,0)
(X,Y)=(X9,YY93)−>(F,G)=(+,+)
(X,Y)=(X9,YY92)−>(F,G)=(+,0)
(X,Y)=(X9,YY91)−>(F,G)=(+,−)
【0110】
(5−2)(F,G)=(−,0)のものを選択する。
これは、制約条件としてG(X,Y)=0であり、F(X,Y)=Z<0であるためである。
(X,Y)=(X4,YY44),(X5,YY54),(X5,YY56)
【0111】
(6)計算手順6
(6−1)(X,Y)=(X4,YY44)を満足する条件を計算する。
図19及び上で述べた説明から分かるように、(X,Y)=(X4,YY44)=(0,0)である。
(6−2)(X,Y)=(X5,YY54)を満足する条件を計算する。
図20及び上で述べた説明から分かるように、X5は0<X<Aを満たす。また、Y<YY55=0である。さらに、G(X,Y)=0上の点であるから、X3−Y2=0である。
(6−3)(X,Y)=(X5,YY56)を満足する条件を計算する。
図20及び上で述べた説明から分かるように、X5は0<X<Aを満たす。また、Y>YY55=0である。さらに、G(X,Y)=0上の点であるから、X3−Y2=0である。
【0112】
(7)計算手順7
(X,Y)=(X4,YY44)、(X,Y)=(X5,YY54)又は(X,Y)=(X5,YY56)を満足し且つ計算手順6で算出された条件を整理する。
この例では、(X,Y)=(X4,Y44)があるので(X,Y)=(0,0)が含まれる。従って、X3−Y2=0且つ0≦X<Aとなる。すなわち、図25に示すように、G(X,Y)=0曲線上の一部分が実行可能領域となる。
【0113】
以上述べた本実施の形態をまとめると、以下のようになる。
【0114】
本最適化処理方法は、(A)予め定められた設計パラメータの値を複数セット生成して各セットについてシミュレーションを実行させることにより、予め定められた評価指標の値を取得し、評価指標と設計パラメータとの関係を表し且つ第1の次数についての第1のモデル式と、評価指標と設計パラメータとの関係を表し且つ第1の次数より高次の第2のモデル式とを生成し、モデル式格納部に格納するステップと、(B)モデル式格納部に格納されている第1のモデル式と予め定められた制約条件とから限定子除去法により第1のモデル式の最適解を実現する設計パラメータの値を算出させ、設計パラメータ値格納部に格納するステップと、(C)設計パラメータ値格納部に格納されている値が制約条件に含まれる上限値又は下限値となった設計パラメータを特定し、モデル式格納部に格納されている第2のモデル式に対して、特定された設計パラメータの値として上限値又は下限値を代入して第2のモデル式を変形する変形ステップと、(D)変形後の第2のモデル式と制約条件の該当部分とから限定子除去法により、変形後の第2のモデル式の最適解を実現する、変形後の第2のモデル式内の設計パラメータの値を算出させ、設計パラメータ値格納部に格納するステップとを含む。
【0115】
設計パラメータの値の多くが上限値又は下限値になるという特性を用いれば、第1のモデル式で、どの設計パラメータが上限値又は下限値になり、どの設計パラメータがそうでないのかが高速に特定される。この結果を第2のモデル式に適用して、第2のモデル式が簡略化できれば、第2のモデル式を高速に処理することができるようになる。すなわち、全体として精度を保持しつつ、処理速度が高速化される。
【0116】
また、本最適化処理方法は、(E)設計パラメータ値格納部に格納されている設計パラメータの値のうち値が制約条件に含まれる上限値又は下限値となった設計パラメータの中から、モデル式格納部に格納されている第1のモデル式に対する影響度の条件を満たす設計パラメータを抽出するステップと、(F)設計パラメータ値格納部に格納されている設計パラメータの値が制約条件に含まれる上限値又は下限値となった設計パラメータのうち、抽出された設計パラメータ以外の設計パラメータの値として上限値又は下限値を、モデル式格納部に格納されている第2のモデル式に代入して第2のモデル式の第2の変形式を生成するステップと、(G)第2のモデル式の第2の変形式と制約条件の該当部分とから限定子除去法により第2の変形式の最適解を実現する、第2の変形式内の設計パラメータの値を算出し、設計パラメータ値格納部に格納するステップとをさらに含むようにしても良い。
【0117】
このようにすれば、第1のモデル式から得られた設計パラメータの値の妥当性を評価することができるようになる。
【0118】
また、本最適化処理装置(図26)は、(A)予め定められた設計パラメータの値を複数セット生成して各セットについてシミュレーションを実行させることにより、予め定められた評価指標の値を取得し、評価指標と設計パラメータとの関係を表し且つ第1の次数についての第1のモデル式と、評価指標と設計パラメータとの関係を表し且つ第1の次数より高次の第2のモデル式とを生成し、モデル式データ格納部(図26:3002)に格納するモデル式生成部(図26:3001)と、(B)モデル式データ格納部に格納されている第1のモデル式と予め定められた制約条件とから限定子除去法により第1のモデル式の最適解を実現する設計パラメータの値を算出させ、設計パラメータ値格納部(図26:3005)に格納する第1設計パラメータ値生成部(図26:3003)と、(C)設計パラメータ値格納部に格納されている設計パラメータの値が制約条件に含まれる上限値又は下限値となった設計パラメータを特定し、モデル式データ格納部に格納されている第2のモデル式に対して、特定された前記設計パラメータの値として上限値又は下限値を代入して第2のモデル式を変形し、変形後の第2のモデル式と制約条件の該当部分とから限定子除去法により変形後の第2のモデル式の最適解を実現する、変形後の第2のモデル式内の設計パラメータの値を算出させ、設計パラメータ値格納部に格納する第2設計パラメータ値生成部(図26:3004)とを有する。
【0119】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
【0120】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0121】
(付記1)
予め定められた設計パラメータの値を複数セット生成して各セットについてシミュレーションを実行させることにより、予め定められた評価指標の値を取得し、前記評価指標と前記設計パラメータとの関係を表し且つ第1の次数についての第1のモデル式と、前記評価指標と前記設計パラメータとの関係を表し且つ前記第1の次数より高次の第2のモデル式とを生成し、モデル式データ格納部に格納するステップと、
前記モデル式データ格納部に格納されている前記第1のモデル式と予め定められた制約条件とから限定子除去法により前記第1のモデル式の最適解を実現する前記設計パラメータの値を算出させ、設計パラメータ値格納部に格納するステップと、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータを特定し、前記モデル式データ格納部に格納されている前記第2のモデル式に対して、特定された前記設計パラメータの値として前記上限値又は下限値を代入して前記第2のモデル式を変形する変形ステップと、
変形後の第2のモデル式と前記制約条件の該当部分とから前記限定子除去法により前記変形後の第2のモデル式の最適解を実現する、前記変形後の第2のモデル式内の設計パラメータの値を算出させ、前記設計パラメータ値格納部に格納するステップと、
を、コンピュータにより実行させるための最適化処理プログラム。
【0122】
(付記2)
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータの中から、前記モデル式データ格納部に格納されている前記第1のモデル式に対する影響度の条件を満たす設計パラメータを抽出するステップと、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータのうち、抽出された前記設計パラメータ以外の設計パラメータの値として前記上限値又は下限値を、前記モデル式データ格納部に格納されている前記第2のモデル式に代入して前記第2のモデル式の第2の変形式を生成するステップと、
前記第2のモデル式の第2の変形式と前記制約条件の該当部分とから前記限定子除去法により前記第2の変形式の最適解を実現する、前記第2の変形式内の設計パラメータの値を算出し、前記設計パラメータ値格納部に格納するステップと、
をさらに前記コンピュータに実行させるための付記1記載の最適化処理プログラム。
【0123】
(付記3)
予め定められた設計パラメータの値を複数セット生成して各セットについてシミュレーションを実行させることにより、予め定められた評価指標の値を取得し、前記評価指標と前記設計パラメータとの関係を表し且つ第1の次数についての第1のモデル式と、前記評価指標と前記設計パラメータとの関係を表し且つ前記第1の次数より高次の第2のモデル式とを生成し、モデル式データ格納部に格納するステップと、
前記モデル式データ格納部に格納されている前記第1のモデル式と予め定められた制約条件とから限定子除去法により前記第1のモデル式の最適解を実現する前記設計パラメータの値を算出させ、設計パラメータ値格納部に格納するステップと、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータを特定し、前記モデル式データ格納部に格納されている前記第2のモデル式に対して、特定された前記設計パラメータの値として前記上限値又は下限値を代入して前記第2のモデル式を変形する変形ステップと、
変形後の第2のモデル式と前記制約条件の該当部分とから前記限定子除去法により前記変形後の第2のモデル式の最適解を実現する、前記変形後の第2のモデル式内の設計パラメータの値を算出させ、前記設計パラメータ値格納部に格納するステップと、
を含み、コンピュータに実行される最適化処理方法。
【0124】
(付記4)
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータの中から、前記モデル式データ格納部に格納されている前記第1のモデル式に対する影響度の条件を満たす設計パラメータを抽出するステップと、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータのうち、抽出された前記設計パラメータ以外の設計パラメータの値として前記上限値又は下限値を、前記モデル式データ格納部に格納されている前記第2のモデル式に代入して前記第2のモデル式の第2の変形式を生成するステップと、
前記第2のモデル式の第2の変形式と前記制約条件の該当部分とから前記限定子除去法により前記第2の変形式の最適解を実現する、前記第2の変形式内の設計パラメータの値を算出し、前記設計パラメータ値格納部に格納するステップと、
をさらに含む付記3記載の最適化処理方法。
【0125】
(付記5)
予め定められた設計パラメータの値を複数セット生成して各セットについてシミュレーションを実行させることにより、予め定められた評価指標の値を取得し、前記評価指標と前記設計パラメータとの関係を表し且つ第1の次数についての第1のモデル式と、前記評価指標と前記設計パラメータとの関係を表し且つ前記第1の次数より高次の第2のモデル式とを生成し、モデル式データ格納部に格納するモデル式生成部と、
前記モデル式データ格納部に格納されている前記第1のモデル式と予め定められた制約条件とから限定子除去法により前記第1のモデル式の最適解を実現する前記設計パラメータの値を算出させ、設計パラメータ値格納部に格納する第1設計パラメータ値生成部と、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータを特定し、前記モデル式データ格納部に格納されている前記第2のモデル式に対して、特定された前記設計パラメータの値として前記上限値又は下限値を代入して前記第2のモデル式を変形し、変形後の第2のモデル式と前記制約条件の該当部分とから前記限定子除去法により前記変形後の第2のモデル式の最適解を実現する、前記変形後の第2のモデル式内の設計パラメータの値を算出させ、前記設計パラメータ値格納部に格納する第2設計パラメータ値生成部と、
を有する最適化処理装置。
【0126】
(付記6)
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータの中から、前記モデル式データ格納部に格納されている前記第1のモデル式に対する影響度の条件を満たす設計パラメータを抽出し、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータのうち、抽出された前記設計パラメータ以外の設計パラメータの値として前記上限値又は下限値を、前記モデル式データ格納部に格納されている前記第2のモデル式に代入して前記第2のモデル式の第2の変形式を生成し、
前記第2のモデル式の第2の変形式と前記制約条件の該当部分とから前記限定子除去法により前記第2の変形式の最適解を実現する、前記第2の変形式内の設計パラメータの値を算出し、前記設計パラメータ値格納部に格納する
第3設計パラメータ値生成部
をさらに有する付記5記載の最適化処理装置。
【符号の説明】
【0127】
1 入力部 2 問題設定データ格納部
3 モデル式生成部 4 モデル式データ格納部
5 第1QE処理部 6 第2QE処理部 7 第3QE処理部
8 処理結果格納部 9 出力部

【特許請求の範囲】
【請求項1】
予め定められた設計パラメータの値を複数セット生成して各セットについてシミュレーションを実行させることにより、予め定められた評価指標の値を取得し、前記評価指標と前記設計パラメータとの関係を表し且つ第1の次数についての第1のモデル式と、前記評価指標と前記設計パラメータとの関係を表し且つ前記第1の次数より高次の第2のモデル式とを生成し、モデル式データ格納部に格納するステップと、
前記モデル式データ格納部に格納されている前記第1のモデル式と予め定められた制約条件とから限定子除去法により前記第1のモデル式の最適解を実現する前記設計パラメータの値を算出させ、設計パラメータ値格納部に格納するステップと、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータを特定し、前記モデル式データ格納部に格納されている前記第2のモデル式に対して、特定された前記設計パラメータの値として前記上限値又は下限値を代入して前記第2のモデル式を変形する変形ステップと、
変形後の第2のモデル式と前記制約条件の該当部分とから前記限定子除去法により前記変形後の第2のモデル式の最適解を実現する、前記変形後の第2のモデル式内の設計パラメータの値を算出させ、前記設計パラメータ値格納部に格納するステップと、
を、コンピュータにより実行させるための最適化処理プログラム。
【請求項2】
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータの中から、前記モデル式データ格納部に格納されている前記第1のモデル式に対する影響度の条件を満たす設計パラメータを抽出するステップと、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータのうち、抽出された前記設計パラメータ以外の設計パラメータの値として前記上限値又は下限値を、前記モデル式データ格納部に格納されている前記第2のモデル式に代入して前記第2のモデル式の第2の変形式を生成するステップと、
前記第2のモデル式の第2の変形式と前記制約条件の該当部分とから前記限定子除去法により前記第2の変形式の最適解を実現する、前記第2の変形式内の設計パラメータの値を算出し、前記設計パラメータ値格納部に格納するステップと、
をさらに前記コンピュータに実行させるための請求項1記載の最適化処理プログラム。
【請求項3】
予め定められた設計パラメータの値を複数セット生成して各セットについてシミュレーションを実行させることにより、予め定められた評価指標の値を取得し、前記評価指標と前記設計パラメータとの関係を表し且つ第1の次数についての第1のモデル式と、前記評価指標と前記設計パラメータとの関係を表し且つ前記第1の次数より高次の第2のモデル式とを生成し、モデル式データ格納部に格納するステップと、
前記モデル式データ格納部に格納されている前記第1のモデル式と予め定められた制約条件とから限定子除去法により前記第1のモデル式の最適解を実現する前記設計パラメータの値を算出させ、設計パラメータ値格納部に格納するステップと、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータを特定し、前記モデル式データ格納部に格納されている前記第2のモデル式に対して、特定された前記設計パラメータの値として前記上限値又は下限値を代入して前記第2のモデル式を変形する変形ステップと、
変形後の第2のモデル式と前記制約条件の該当部分とから前記限定子除去法により前記変形後の第2のモデル式の最適解を実現する、前記変形後の第2のモデル式内の設計パラメータの値を算出させ、前記設計パラメータ値格納部に格納するステップと、
を含み、コンピュータに実行される最適化処理方法。
【請求項4】
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータの中から、前記モデル式データ格納部に格納されている前記第1のモデル式に対する影響度の条件を満たす設計パラメータを抽出するステップと、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータのうち、抽出された前記設計パラメータ以外の設計パラメータの値として前記上限値又は下限値を、前記モデル式データ格納部に格納されている前記第2のモデル式に代入して前記第2のモデル式の第2の変形式を生成するステップと、
前記第2のモデル式の第2の変形式と前記制約条件の該当部分とから前記限定子除去法により前記第2の変形式の最適解を実現する、前記第2の変形式内の設計パラメータの値を算出し、前記設計パラメータ値格納部に格納するステップと、
をさらに含む請求項3記載の最適化処理方法。
【請求項5】
予め定められた設計パラメータの値を複数セット生成して各セットについてシミュレーションを実行させることにより、予め定められた評価指標の値を取得し、前記評価指標と前記設計パラメータとの関係を表し且つ第1の次数についての第1のモデル式と、前記評価指標と前記設計パラメータとの関係を表し且つ前記第1の次数より高次の第2のモデル式とを生成し、モデル式データ格納部に格納するモデル式生成部と、
前記モデル式データ格納部に格納されている前記第1のモデル式と予め定められた制約条件とから限定子除去法により前記第1のモデル式の最適解を実現する前記設計パラメータの値を算出させ、設計パラメータ値格納部に格納する第1設計パラメータ値生成部と、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータを特定し、前記モデル式データ格納部に格納されている前記第2のモデル式に対して、特定された前記設計パラメータの値として前記上限値又は下限値を代入して前記第2のモデル式を変形し、変形後の第2のモデル式と前記制約条件の該当部分とから前記限定子除去法により前記変形後の第2のモデル式の最適解を実現する、前記変形後の第2のモデル式内の設計パラメータの値を算出させ、前記設計パラメータ値格納部に格納する第2設計パラメータ値生成部と、
を有する最適化処理装置。
【請求項6】
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータの中から、前記モデル式データ格納部に格納されている前記第1のモデル式に対する影響度の条件を満たす設計パラメータを抽出し、
前記設計パラメータ値格納部に格納されている前記設計パラメータの値が前記制約条件に含まれる上限値又は下限値となった前記設計パラメータのうち、抽出された前記設計パラメータ以外の設計パラメータの値として前記上限値又は下限値を、前記モデル式データ格納部に格納されている前記第2のモデル式に代入して前記第2のモデル式の第2の変形式を生成し、
前記第2のモデル式の第2の変形式と前記制約条件の該当部分とから前記限定子除去法により前記第2の変形式の最適解を実現する、前記第2の変形式内の設計パラメータの値を算出し、前記設計パラメータ値格納部に格納する
第3設計パラメータ値生成部
をさらに有する請求項5記載の最適化処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2011−154439(P2011−154439A)
【公開日】平成23年8月11日(2011.8.11)
【国際特許分類】
【出願番号】特願2010−14062(P2010−14062)
【出願日】平成22年1月26日(2010.1.26)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】