説明

最適化シミュレーションプログラムおよび最適化シミュレーション装置

【課題】
目標値と目標値の重みをキーボードから入力する必要が無く、局所解からの脱出を容易にし、パラメーターの入力による計算結果のグラフ表示・グラフの変形による最適化結果のパラメーター表示の双方向オペレーションを可能にする最適化シミュレーション技術を提供する。
【解決手段】
初期パラメーターに基づきプログラムは関数の計算をおこない、計算結果をグラフ表示する。プログラムは、ユーザーがグラフをマウスなどのポインティング装置を用いて所望の形状に近づくように変形させることができる機能を持つ。さらにマウスカーソルがグラフのデーター点を通過した回数に応じて最適化に使用する重みを増やす機能を持つ。プログラムは、変形されたグラフのデーター点を目標値として、最適化手法を用いてパラメーターを最適化する。最適化後のパラメーターを初期パラメーターとして上記手順を繰り返し、所望の目標値に近づけていく。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、目標値となる与えられたデーター点に対して関数のパラメーターを最適化する際の、最適解の導出を効率的におこなう技術に関するものである。
【背景技術】
【0002】
パラメーターの最適化には、シンプレックス法、最急降下法、ニュートン法、準ニュートン法、ガウス・ニュートン法、勾配法、共役勾配法、レーベンバーグ・マーカート法等を利用した最小二乗法や、焼きなまし法(シミュレーテッド・アニーリング)、遺伝的アルゴリズム、タブーサーチ、ニューロネットワークを利用した方法等、様々な手法が用いられている。
【0003】
いずれの手法であっても、最適化の手順は、初期パラメーター、目標値となるデーター点および各データー点の重みを与え、上記のような最適化手法による探索をおこない、関数の値と目標値との差が最小となるパラメーターを得るというものである。
【0004】
例えば、多層光学薄膜の設計においては、初期値として各層の膜厚と膜の屈折率を設定し、目標値となるデーター点として各波長の反射率または透過率を設定し、必要に応じて各データー点の重みを設定する。そして初期値として与えられた膜厚を初期パラメーターとして上記のような最適化手法を用いて最適化をおこない、目標とする反射特性または透過特性を実現するための各層の膜厚を得る。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平7−262170号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記のような手順では、目標値となるデーター点とその重みをユーザーが入力する必要があり手間がかかるという問題があった。例として上記多層光学薄膜において波長350nmから850nmまで5nmおきの目標値を設定する場合、入力すべきデーター点の数は100個になる。
【0007】
また、上記のような最適化手法では、本来の最適解ではない局所解に解が落ち込んでしまい、所望の解が得られない場合があるという問題がある。所望の解が得られなかった場合は、別の目標値や重みを再入力して最適化を実行する作業を繰り返さなければならず、大変手間がかかる。
【0008】
また、目標値を入力しなければならないため操作の連続性が途切れ、目標値への到達可能性を直感的に判断しにくいという問題がある。
【0009】
そこで、本発明は、最適化シミュレーションにおいて、目標値となるデーター点とその重みをユーザーが入力する手間を省き、なおかつ局所解からの脱出を容易にし、直感的で効率的な最適化シミュレーションをおこなうことができる技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明は、コンピューターに、関数のパラメーターを入力するパラメーター入力ステップA、パラメーターに基づき関数を計算する計算ステップB、ステップBでの計算結果を画面上のグラフに表示する計算結果表示ステップC、ステップCで表示された画面上のグラフをポインティング装置を用いてユーザーが変形させることができる計算結果変形ステップD、ステップDで変形されたグラフのデーター点を目標値として関数のパラメーターを、ステップBでのパラメーターを初期値として最適化する最適化ステップE、ステップEでの最適化後のパラメーターを画面に表示する表示ステップF、ステップEでの最適化後のパラメーターを新たなパラメーターとして、ステップBからステップFまでを繰り返しおこなう繰り返しステップG、を実行させることを特徴とする。
【0011】
ここで、ステップEで使用する最適化方法としては、シンプレックス法、最急降下法、ニュートン法、準ニュートン法、ガウス・ニュートン法、勾配法、共役勾配法、レーベンバーグ・マーカート法等を利用した最小二乗法や、焼きなまし法(シミュレーテッド・アニーリング)、遺伝的アルゴリズム、タブーサーチ、ニューロネットワークを利用した方法があげられるが、これに限定されず、使用する関数に応じて適切な最適化方法を選択すればよい。
【0012】
ステップDにおけるグラフの変形は、グラフ全体の変形であってもグラフの部分的な変形であっても良い。
【0013】
使用するポインティング装置としては、一例としてマウス、タッチパッド、ポインティングスティック、タッチパネルディスプレイを利用することができる。
【0014】
前記計算結果変形ステップDにおいて、ポインティング装置のカーソルがデーター点を通過した回数に応じて当該データー点の最適化のための重みを増やす、重み付けステップH、を実行させることが好ましい。
【0015】
前記重み付けステップHにおいて、重みの大きさに応じて当該データー点の表示サイズを変更する、データー点表示サイズ変更ステップI、を実行させることが好ましい。
【0016】
ここで、データー点の表示サイズの変更は、データー点そのもののサイズ変更だけでなく、データー点の形状の変更や、色の変更、グラフが折れ線グラフの場合はデーター点間を結ぶ線の太さの変更であってもよい。
【0017】
前記関数は光学薄膜の光学特性を計算するための関数であることが好ましい。
【0018】
光学薄膜の光学特性は、基板と入射媒質の屈折率および各層の膜厚と膜の屈折率を用いて以下の特性マトリックス式を含む計算式によって計算できる。光学特性は、横軸を波長、縦軸を反射率、透過率、吸収率とした散布図または折れ線グラフとして表わすことができるため、前記計算結果変形ステップDをおこなうにあたって好適であり、光学多層膜の各層の膜厚と屈折率を関数のパラメーターとして最適化をおこなうことができる。なお、パラメーターは、各層の膜厚だけであっても、各層の膜の屈折率だけであっても、各層の膜厚と膜の屈折率の両方であっても良い。
【0019】
すなわち、光学薄膜において所望の光学特性を得るために膜厚と膜の屈折率の最適化をおこなう方法として本発明は好適である。
【0020】
【数1】

【0021】
【数2】

【0022】
【数3】

【0023】
【数4】

【0024】
【数5】

【0025】
【数6】

【0026】
【数7】

【0027】
上記の数式において、r=1は入射媒質側の層、qは層数、Nは第r層の複素屈折率、dは第r層の物理的膜厚、θは第r層への光線入射角、λは波長、*は複素共役、ηは第r層のアドミタンス、ηは入射媒質のアドミタンス、ηは基板のアドミタンス、Rは多層膜の反射率、Tは多層膜の透過率、Aは多層膜の吸収率である。
【0028】
本発明に係る最適化シミュレーション装置は、関数のパラメーターを入力するパラメーター入力手段A、パラメーターに基づき関数を計算する計算手段B、手段Bでの計算結果を画面上のグラフに表示する計算結果表示手段C、画面上の任意の位置をユーザーが指示するためのポインティング装置、手段Cで表示された画面上のグラフを前記ポインティング装置を用いてユーザーが変形させることができる計算結果変形手段D、手段Dで変形されたグラフのデーター点を目標値として関数のパラメーターを、手段Bでのパラメーターを初期値として最適化する最適化手段E、手段Eでの最適化後のパラメーターを画面に表示する表示手段F、手段Eでの最適化後のパラメーターを新たなパラメーターとして、手段Bから手段Fまでを繰り返しおこなう繰り返し手段G、を備えることを特徴とする。
【0029】
本発明に係る前記最適化シミュレーション装置は、前記計算結果変形手段Dにおいて、ポインティング装置のカーソルがデーター点を通過した回数に応じて当該データー点の最適化のための重みを増やす、重み付け手段H、を備えることが好ましい。
【0030】
本発明に係る前記最適化シミュレーション装置は、前記重み付け手段Hにおいて、重みの大きさに応じて当該データー点の表示サイズを変更する、データー点表示サイズ変更手段I、を備えることが好ましい。
【0031】
本発明に係る前記最適化シミュレーション装置における関数は光学薄膜の光学特性を計算するための関数であることが好ましい。
【発明の効果】
【0032】
本発明によれば、ポインティング装置によるグラフの変形によって目標値となるデーター点を設定できるため、ユーザーが目標値となるデーター点を入力する手間を省くことができる。
【0033】
また、繰り返し手段を有することにより、局所解に落ち込んでしまった場合に、目標値となるデーター点の再設定と最適化を繰り返しおこなうことで一旦局所解から脱出し、再度本来の目標値に向かって最適化をおこなうことが可能になる。
【0034】
また、パラメーターの入力によるグラフ表示、グラフの変形によるパラメーターの表示という双方向の直感的なオペレーションが可能となるため、ユーザーの作業性が向上し、また、目標値への到達可否の判断が容易になる。
【0035】
また、重み付けをおこなう場合には、グラフの変形時に同時にポインティング装置によって重み付けができるため、作業性を損なうことなく重み付けをおこなうことができる。
【0036】
また、重み付けの状態がグラフ上のデーター点のサイズで把握できるため、ユーザーの作業性、視認性が向上する。
【図面の簡単な説明】
【0037】
【図1】本発明の一実施形態に係る最適化シミュレーション装置の全体構成図である。
【図2】図1のディスプレイ2の表示内容を示す図である。
【図3】図1の記憶部4に格納する内容を示す図である。
【図4】最適化シミュレーション装置の全体フローチャートを表わす図である。
【図5】グラフ変形部のフローチャートを表わす図である。
【発明を実施するための形態】
【0038】
以下、本発明の一実施形態に係る最適化シミュレーション装置の構成および動作について図面を用いて説明する。
【0039】
図1は、本発明の一実施形態における最適化シミュレーション装置の全体構成である。
【0040】
キーボード1は、ユーザーが関数の初期パラメーターを入力するためのものである。ディスプレイ2は、関数のパラメーター、グラフ、マウス3のカーソルを表示するためのものである。マウス3は、ディスプレイ2に表示されたカーソルと連動していて、ユーザーがマウスを前後左右に移動させるとそれに同期してカーソルが上下左右に移動する装置であり、押しボタンが付属しているものである。記憶部4は、関数のパラメーター、各データー点における関数の変数xと計算結果yの値、各データー点の重み、前回変更対象のデーター点のx値、現在変更対象のデーター点のx値を格納するためのものである。制御部5は、関数の計算、ディスプレイ2上へのグラフ表示、マウスが指し示すカーソル位置とマウスのボタン状態の把握、ディスプレイ2上へのカーソルの表示を制御するためのものである。
【0041】
一例として、光学多層膜の分光反射特性の最適化をおこなうものとして前記数1〜数5の特性マトリックス式を含む計算式を関数として用いる。
【0042】
図2は、ディスプレイ2の表示内容を示す。パラメーター表示エリアには光学多層膜の各層の膜厚dと屈折率nが基板側の層から順番に上から表示されている。グラフ表示エリアにはパラメーターに基づいて前記数1〜数5の数式を用いて計算した結果がグラフ表示されている。本実施形態では横軸が波長、縦軸が光学多層膜の反射率である。
【0043】
図3は、記憶部に格納される項目を示す。
【0044】
ここで、d, nはパラメーターであり、それぞれd1, d2,...,
dq、n1, n2, ..., nqのq個、合計2×q個のパラメーターである。dは層の膜厚、nは層の屈折率、層数はq層である。xはグラフのx軸に相当する値であり、ここでは波長である。yは、関数のxでの計算結果であり、グラフのy軸に相当する値(ここでは反射率)である。xには、シミュレーションをおこないたいx軸範囲の、x1, x2, ..., xNのN個の固定値をあらかじめ与えておく。zは点xにおける最適化に使用する重みである。
【0045】
以上の構成の最適化シミュレーション装置の制御手順について図4のフローチャートに従って説明する。
【0046】
最初にステップS101で、ユーザーが最適化の出発点となる2×q個の初期パラメーターをキーボード1を用いて入力する。制御部5は、入力されたパラメーターをディスプレイ2のパラメーター表示エリアに表示し、記憶部4にこれらのパラメーターを格納する。
【0047】
次にステップS102で、制御部5は記憶部4に格納されたパラメーターとx値を用いて関数の計算をおこない、計算結果として得られた前記計算式のy値を記憶部4に格納する。さらに重みzをすべて0にする。
【0048】
次にステップS103で、制御部5は、記憶部4に格納されているx値、y値を用いて、グラフの横軸をx座標、縦軸をy座標としてN個のx値に対するy値をグラフ上のデーター点としてプロットする。データー点間はわかりやすいように直線で結び、折れ線グラフとしてディスプレイ2に表示する。
【0049】
次にステップS104では、ユーザーが終了ボタンを押すなどして終了指示を出した場合に動作を終了する。ユーザーが終了指示を出さなければ次のステップへ移る。
【0050】
次にステップS105で、ユーザーがマウス3を用いて各波長(x)の反射率(y)が所望の値となるようにグラフを変形させる。ステップS105のフローチャートを図5に示す。
【0051】
最初にステップS201で制御部5は、カーソルがグラフエリア内にあるかどうかを判断する。カーソルがグラフエリア内にある場合はステップS202に進む。無い場合はステップS201を繰り返し実行する。
【0052】
ステップS202では、制御部5は、マウスボタンが押されているかどうかを判断する。マウスボタンが押されている場合はステップS203に進む。押されていない場合はステップS201に戻る。
【0053】
ステップS203では、制御部5はカーソルのグラフ上でのx,y値を検出する。この値をxc, ycとする。
【0054】
次にステップS204で制御部5は、N個データー点の中から、x値がカーソルのx値xcに最も近いデーター点を探索する。探索には、計算式d = (xc-xN)2 を用いてdが最も小さくなるデーター点を探す。制御部は探し出したデーター点のx値を、「現在変更対象のデーター点のx値」p1として記憶部4に格納する。
【0055】
次にステップS205で制御部5は、記憶部4に格納されている「前回変更対象のデーター点のx値」p0と、「現在変更対象のデーター点のx値」p1を比較する。p0とp1が異なっている場合はステップS206に進む。p0とp1が同じ場合はステップS209へ進む。
【0056】
ステップS206で制御部5は、データー点p1のy値をカーソルのy値ycに変更し、ディスプレイ2のグラフ上のデーター点の位置も変更する。
【0057】
次にステップS207で制御部5は、データー点p1の重みを+1する。この際、図2のグラフ表示エリアに示す当該データー点の丸印の大きさを重みの大きさに応じて大きくし、隣接するデーター点を結ぶ直線の太さを重みの大きさに応じて太くする。
【0058】
次にステップS208で制御部5は、記憶部4に格納されている「前回変更対象のデーター点のx値」p0の値を「現在変更対象のデーター点のx値」p1に変更する。
【0059】
ステップS209で制御部5は、マウスボタンが押されているかどうかを判断する。マウスボタンが押されている場合はステップS203に進む。押されていない場合はこのフローチャートの手続きを終了する。
【0060】
図5のフローチャートの手続きが終了した後、図4のステップS106に進む。
【0061】
ステップS106で制御部5は、記憶部4に格納されている重みが0の値を全て1に変更する。次に記憶部4に格納されているパラメーター、テーター点のx値、y値、データー点の重みを用いてパラメーターの最適化をおこなう。
【0062】
本実施形態では、最適化は、次の数8においてJが最小となるようにレーベンバーク・マーカート法を用いておこなう。
【0063】
【数8】

【0064】
上記の数式において、Rは前記数5に示した数式を表わす。
【0065】
この時の最適化アルゴリズムは、例えば、William H. Press他「NUMERICAL RECIPES in C」
第14章4項P.505 Levenberg-Marquardt法,
日本, 株式会社技術評論社,
平成18年5月5日初版第13刷, ISBN4-87408-560-1、に記載のコードを用いることができる。
【0066】
次にステップS107で制御部5は、最適化後のパラメーターをディスプレイ2に表示し、記憶部4に最適化後のパラメーターを格納する。
【0067】
次にステップS102へ戻り、ステップS102からステップS107までの動作を繰り返す。
【符号の説明】
【0068】
1 キーボード
2 ディスプレイ
3 マウス
4 記憶部
5 制御部

【特許請求の範囲】
【請求項1】
コンピューターに、関数のパラメーターを入力するパラメーター入力ステップA、パラメーターに基づき関数を計算する計算ステップB、ステップBでの計算結果を画面上のグラフに表示する計算結果表示ステップC、ステップCで表示された画面上のグラフをポインティング装置を用いてユーザーが変形させることができる計算結果変形ステップD、ステップDで変形されたグラフのデーター点を目標値として関数のパラメーターを、ステップBでのパラメーターを初期値として最適化する最適化ステップE、ステップEでの最適化後のパラメーターを画面に表示する表示ステップF、ステップEでの最適化後のパラメーターを新たなパラメーターとして、ステップBからステップFまでを繰り返しおこなう繰り返しステップG、を実行させることを特徴とする最適化シミュレーションプログラム。
【請求項2】
前記計算結果変形ステップDにおいて、ポインティング装置のカーソルがデーター点を通過した回数に応じて当該データー点の最適化のための重みを増やす、重み付けステップH、を実行させることを特徴とする請求項1記載の最適化シミュレーションプログラム。
【請求項3】
前記重み付けステップHにおいて、重みの大きさに応じて当該データー点の表示サイズを変更する、データー点表示サイズ変更ステップI、を実行させることを特徴とする請求項1または請求項2記載の最適化シミュレーションプログラム。
【請求項4】
請求項1記載の関数は光学薄膜の光学特性を計算するための関数であることを特徴とする請求項1から3のいずれか一項に記載の最適化シミュレーションプログラム。
【請求項5】
関数のパラメーターを入力するパラメーター入力手段A、パラメーターに基づき関数を計算する計算手段B、手段Bでの計算結果を画面上のグラフに表示する計算結果表示手段C、画面上の任意の位置をユーザーが指示するためのポインティング装置、手段Cで表示された画面上のグラフを前記ポインティング装置を用いてユーザーが変形させることができる計算結果変形手段D、手段Dで変形されたグラフのデーター点を目標値として関数のパラメーターを、手段Bでのパラメーターを初期値として最適化する最適化手段E、手段Eでの最適化後のパラメーターを画面に表示する表示手段F、手段Eでの最適化後のパラメーターを新たなパラメーターとして、手段Bから手段Fまでを繰り返しおこなう繰り返し手段G、を備えることを特徴とする最適化シミュレーション装置。
【請求項6】
前記計算結果変形手段Dにおいて、ポインティング装置のカーソルがデーター点を通過した回数に応じて当該データー点の最適化のための重みを増やす、重み付け手段H、を備えることを特徴とする請求項5記載の最適化シミュレーション装置。
【請求項7】
前記重み付け手段Hにおいて、重みの大きさに応じて当該データー点の表示サイズを変更する、データー点表示サイズ変更手段I、を備えることを特徴とする請求項5または請求項6記載の最適化シミュレーション装置。
【請求項8】
請求項5記載の関数は光学薄膜の光学特性を計算するための関数であることを特徴とする請求項5から7のいずれか一項に記載の最適化シミュレーション装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−210226(P2011−210226A)
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願番号】特願2010−180528(P2010−180528)
【出願日】平成22年8月11日(2010.8.11)
【特許番号】特許第4690495号(P4690495)
【特許公報発行日】平成23年6月1日(2011.6.1)
【出願人】(310003348)
【Fターム(参考)】