(57)【特許請求の範囲】
【請求項１】
遺伝的アルゴリズムを用いて、測定値又は目標値と計算値との間の誤差を表す評価関数値を算出し、前記評価関数値を最小化することでパラメータフィッティングを行うパラメータフィッティング方法であって、
前記評価関数値に所定条件を代入したときに得られる評価関数値に対するボーダー値と前記ボーダー値に基づく所定値とを定めて、前記評価関数値が前記ボーダー値を超えたとき、又は、前記評価関数値に基づく予測値が前記所定値を超えたときには処理を打切るステップを有することを特徴とするパラメータフィッティング方法。
【請求項２】
前記ボーダー値を世代ごとに定めることを特徴とする請求項１に記載のパラメータフィッティング方法。
【請求項３】
前記ボーダー値を世代中の個体ごとに定めることを特徴とする請求項１に記載のパラメータフィッティング方法。
【請求項４】
前記評価関数値に所定条件を代入するときにおける前記所定条件の代入順序が予め定められることを特徴とする請求項１乃至請求項３のいずれかに記載のパラメータフィッティング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遺伝的アルゴリズムを用いて最適化を行う際に用いられるパラメータフィッティング方法に関する。
【背景技術】
【０００２】
光学などの分野で用いられるパラメータフィッティングなどの最適化においては、ローカルな最適化とグローバルや最適化があって、例えば、前者の最適化手法としては山登り法、準ニュートン法、共役傾斜法などを挙げることができ、また、後者の最適化手法としては焼きなまし法、遺伝的アルゴリズムなどを挙げることができる。
【０００３】
例えば、特許文献１（米国特許５９６３３２９号明細書）には、散乱計測による微細形状解析で最適化を行う際に前者の手法を用いることが開示されており、また、特許文献２（特開２００７−１２１０５７号公報）には、マイクロレンズの凹凸形状を後者の手法である遺伝的アルゴリズムで最適化する技術が開示されている。
【特許文献１】米国特許５９６３３２９号明細書
【特許文献２】特開２００７−１２１０５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、遺伝的アルゴリズムは、ローカルな最適化に比べローカルミニマム（局所的極小値であるが真の最小値で無い）に陥るのを防ごうとする利点を有するが、パラメータの組を多数計算するため計算時間がかかる、という問題があった。
【課題を解決するための手段】
【０００５】
本発明は以上のような課題を解決するためのもので、請求項１に係る発明は、遺伝的アルゴリズムを用いて、測定値又は目標値と計算値との間の誤差を表す評価関数値を算出し、前記評価関数値を最小化することでパラメータフィッティングを行うパラメータフィッティング方法であって、前記評価関数値に所定条件を代入したときに得られる評価関数値に対するボーダー値と前記ボーダー値に基づく所定値とを定めて、前記評価関数値が前記ボーダー値を超えたとき、又は、前記評価関数値に基づく予測値が前記所定値を超えたときには処理を打切るステップを有することを特徴とする。
【０００６】
また、請求項２に係る発明は、請求項１に記載のパラメータフィッティング方法において、前記ボーダー値を世代ごとに定めることを特徴とする。
【０００７】
また、請求項３に係る発明は、請求項１に記載のパラメータフィッティング方法において、前記ボーダー値を世代中の個体ごとに定めることを特徴とする。
【０００８】
また、請求項４に係る発明は、請求項１乃至請求項３のいずれかに記載のパラメータフィッティング方法において、前記評価関数値に所定条件を代入するときにおける前記所定条件の代入順序が予め定められることを特徴とする。
【発明の効果】
【００１０】
本発明の実施の形態に係るパラメータフィッティング方法によれば、パラメータの組を多数計算する際に、複数条件（例えば、波長が複数個や入射角が複数個や偏光角が複数個など、およびその組合せ）の計算を行う場合に、複数条件の途中段階で評価関数の途中の値や予測値を用いて、適宜打切り処理を行うものであるので、打切り判定の場合はそのパラメータの組については途中で計算を打切るため計算時間を短縮できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るパラメータフィッティング方法で用いられるシステム構成の一例を示す図である。
【図２】ホログラムの透過率を測定する方法を説明する図である。
【図３】ホログラムにおけるチャープ率を説明する図である。
【図４】本発明の実施形態に係るパラメータフィッティング方法によるフローチャートを示す図である。
【図５】図４の続きのフローチャートを示す図である。
【図６】図５の続きのフローチャートを示す図である。
【図７】図４〜図６の遺伝的アルゴリズムを用いた処理を模式的に表現した図である。
【図８】従来のパラメータフィッティングによってホログラムの透過率の波長分布を計算した例を示す図である。
【図９】パラメータフィッティングによって計算値を目標値（又は測定値）に適切に合わせ込んだ例を示す図である。
【図１０】本発明の第１実施形態に係るパラメータフィッティング方法に係るフローチャートを示す図である。
【図１１】本発明の第１実施形態に係るパラメータフィッティング方法をホログラムパラメータフィッティングに応用した例を示す図である。
【図１２】本発明の第２実施形態に係るパラメータフィッティング方法に係るフローチャートを示す図である。
【図１３】本発明の第３実施形態に係るパラメータフィッティング方法に係るフローチャートを示す図である。
【図１４】本発明の第４実施形態に係るパラメータフィッティング方法に係るフローチャートを示す図である。
【図１５】本発明の第５実施形態に係るパラメータフィッティング方法に係る第１のフローチャートを示す図である。
【図１６】本発明の第５実施形態に係るパラメータフィッティング方法で用いる目標値と計算順序との関係を示す図である。
【図１７】本発明の第５実施形態に係るパラメータフィッティング方法で用いる計算順序テーブルを示す図である。
【図１８】本発明の第５実施形態に係るパラメータフィッティング方法に係る第２のフローチャートを示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面を参照しつつ説明する。図１は本発明の実施形態に係るパラメータフィッティング方法で用いられるシステム構成の一例を示す図である。
【００１３】
図１において、１０はシステムバス、１１はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、１２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、１３はＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、１４は外部情報機器との通信を司る
通信制御部、１５はキーボードコントローラなどの入力制御部、１６はディスプレイコントローラなどの出力制御部、１７は外部記憶装置制御部、１８はキーボード、ポインティングデバイス、マウスなどの入力機器からなる入力部、１９はＬＣＤディスプレイなどの表示装置や印刷装置からなる出力部、２０はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の外部記憶装置である。
【００１４】
図１において、ＣＰＵ１１は、ＲＯＭ１３内のプログラム用ＲＯＭ、或いは、大容量の外部記憶装置２０に記憶されたプログラム等に応じて、外部機器と通信することでデータを検索・取得したり、また、図形、イメージ、文字、表等が混在した出力データの処理を実行したり、更に、外部記憶装置２０に格納されているデータベースの管理を実行したり、などといった演算処理を行うものである。
【００１５】
また、ＣＰＵ１１は、システムバス１０に接続される各デバイスを統括的に制御する。ＲＯＭ１３内のプログラム用ＲＯＭあるいは外部記憶装置２０には、ＣＰＵ１１の制御用の基本プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等が記憶されている。また、ＲＯＭ１３あるいは外部記憶装置２０には出力データ処理等を行う際に使用される各種データが記憶されている。ＲＡＭ１２は、ＣＰＵ１１の主メモリ、ワークエリア等として機能する。
【００１６】
入力制御部１５は、キーボードや不図示のポインティングデバイスからの入力部１８を制御する。また、出力制御部１６は、ＬＣＤディスプレイ等の表示装置やプリンタなどの印刷装置の出力部１９の出力制御を行う。
【００１７】
外部記憶装置制御部１７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶するＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や、或いはフロッピーディスク（ＦＤ）等の外部記憶装置２０へのアクセスを制御する。
【００１８】
また、通信制御部１４は、ネットワークを介して、外部機器と通信を制御するものであり、これによりシステムが必要とするデータを、インターネットやイントラネット上の外部機器が保有するデータベースから取得したり、外部機器に情報を送信したりすることができるように構成される。
【００１９】
外部記憶装置２０には、ＣＰＵ１１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）以外に、本発明のパラメータフィッティング方法をＣＰＵ１１上で動作させるシステムプログラム、及びこのシステムプログラムで用いるデータなどがインストールされ保存・記憶されている。
【００２０】
本発明のパラメータフィッティング方法を実現するシステムプログラムで利用されるデータとしては、基本的には外部記憶装置２０に保存されていることが想定されているが、場合によっては、これらのデータを通信制御部１４を介してインターネットやイントラネット上の外部機器から取得するように構成することも可能である。
【００２１】
次に、以上のように構成されるシステムを用いて、本発明の実施形態に係るパラメータフィッティング方法を実現させるための具体的な方法について説明する。
【００２２】
図２はホログラムの透過率を測定する方法を説明する図であり、図３はホログラムにおけるチャープ率を説明する図である。図２に示すように、厚さｄのホログラム２００は、光源１００からの入射光を受け、当該入射光の透過位置に設けられたディテクタ３００で光強度が測定されることによって、透過率の波長分布が測定される。ここで、ホログラム
２００の媒質中には、図２に示すような屈折率ｎ、屈折率変調Δｎによって表される屈折率分布が存在し、格子ピッチはΛであるものとする。また、図３に示すように、ホログラム２００に対して、チャープ率Ｃ、チャープ次数ｊが定義されているものとすると、ホログラム２００は下記
Δｎ：屈折率変調
ｄ：膜厚［μｍ］
Λ：格子ピッチ［μｍ］
Ｃ：チャープ率
ｊ：チャープ次数
の５つのパラメータによって、波長λに対する透過率Ｘを理論的に演算することが可能である（屈折率ｎは予め別の方法で測定しておくことで固定値とすることができる）。すなわち、透過率Ｘは（λ，Δｎ，ｄ，Λ，Ｃ，ｊ）の関数として表現することができる。
【００２３】
次に、以下のように複数組の（Δｎ，ｄ，Λ，Ｃ，ｊ）に対する評価関数値ｅを求める。ここで、評価関数値ｅは、一般的には次のような式（１）によって定義されるものである。
【００２４】
【数１】
0005574105.tif 000002
評価関数値ｅについて、誤差の二乗平均を考える場合には、以下の式（２）を用いることができる。
【００２５】
【数２】
0005574105.tif 000003
なお、評価関数値ｅについて、誤差の絶対値を基準として考える場合には、以下の式（３）も用いることができる。
【００２６】
【数３】
0005574105.tif 000004
ここで（Ｘmesrd）は実測した透過率であり、（Ｘcalcd）は算出された計算値である。
【００２７】
この評価関数値ｅは、誤差の二乗平均平方根であり、当然小さい方が実測値（Ｘmesrd
）と計算値（Ｘcalcd）の差が小さく、望ましいものである。
【００２８】
以上のように定義される評価関数を、次の図４〜図６の遺伝的アルゴリズムを適用するフローの初期状態とする。
【００２９】
図４〜図６に、遺伝的アルゴリズムによるパラメータフィッティングのフローチャートを示す。
【００３０】
最初に図４に示すように、ｓｔｅｐ１１〜１２で、初期設定を行う。すなわち、ｓｔｅｐ１１で、初期状態のｔ個の各変数ｖ0k（１≦ｋ≦ｔ）の値の読み込みを行う。
【００３１】
次いで、ｓｔｅｐ１２で、遺伝的アルゴリズム各世代ｇの個体数Ｎg及び第１世代の各
変数の範囲ｖ1kmin，ｖ1kmaxを設定する。変数ｖgkはΔｎ、ｄ、Λ、Ｃ、ｊ（例えば、ｖg1＝Δｎ、ｖg2＝ｄ、ｖg3＝Λ、ｖg4＝Ｃ、ｖg5＝ｊ）を表し、範囲はパーセント（例えば、±何％）としても実寸などの実の値としてもよい。
【００３２】
次いで、遺伝的アルゴリズムの第１世代として、まず、以下のｓｔｅｐ１３〜１６を個体数Ｎ1（Ｎgのｇ＝１：第１世代の個体数）個について繰返す。
【００３３】
ｓｔｅｐ１３で、各変数ｖ0kから各変数ｖ1kの値をｓｔｅｐ１２で設定した範囲内でランダムに決定する。
【００３４】
次いで、ｓｔｅｐ１４で、評価関数値ｅ1（ｅgのｇ＝１：第１世代の評価関数値）を算出する。ここで、評価関数値ｅ1は、式（２）を用いて算出する。
【００３５】
次いで、ｓｔｅｐ１５で、ｓｔｅｐ１４で算出した評価関数値ｅ1が設定した閾値より
小さいか否かを問う。ここで、閾値は十分に小さい値を選ぶ。
【００３６】
ｓｔｅｐ１５で、ｅ1が設定した閾値より小さいと判定されると、それ以上の演算は必
要ないと判断し、処理を終了させる。
【００３７】
ｓｔｅｐ１５で、ｅ1が設定した閾値以上と判定されると、次のｓｔｅｐ１６へ進み、
第１世代の個体数Ｎ1だけ全部が終了したか否かを問う。この判定で、評価関数値ｅ1の算定と閾値との比較が個体数Ｎ1だけ全部終了しない限り、ｓｔｅｐ１３〜１５に戻って各
変数ｖ0kから各変数ｖ1kの値を設定した範囲内でランダムに選んだ個体について評価関数値ｅ1の算定と閾値との比較を行い、同様に繰返す。
【００３８】
ｓｔｅｐ１６で、第１世代の個体数Ｎ1全部について、評価関数値ｅ1の算定と閾値との比較を行ったと判定されると、ｓｔｅｐ１７へ進み、Ｎ1個の個体それぞれの確率ｐ1（ｐgのｇ＝１：第１世代の確率）を算出する。確率ｐは、ｑを各個体の評価関数値ｅが大き
ければ大きい程小さな値として、
【００３９】
【数４】
0005574105.tif 000005
と、Ｎ個のｑの総和でそれぞれのｑを規格化したもので定義し、ここでは、ｑ＝ｅ-4とした。他にｅ-3を用いてもよい。ｅ-1、ｅ-2を用いると収束が遅くなり望ましくない。
【００４０】
次いで、ｓｔｅｐ１８で、第１世代の個体数Ｎ1の評価関数値ｅ1、確率ｐ1、各変数ｖ1kのリストを作成し、遺伝的アルゴリズムの第１世代の演算を終えて、図５のＡへ進む。
【００４１】
図５は遺伝的アルゴリズムの第２世代以降の各世代の優先遺伝と突然変位を示すフローチャートであり、各世代で繰返し行う処理である。
【００４２】
まず、ｓｔｅｐ２１で、今世代の個体数Ｎgの各変数ｖgkの値を決定する際の範囲を設
定する。この処理は、ｓｔｅｐ１２での設定と同様に範囲はパーセントとしても実寸とし
てもよい。その範囲の値は第１世代と同じでも、何世代か毎に少しずつ小さくしていってもよい。
【００４３】
次いで、ｓｔｅｐ２２で、優性遺伝の個体数ＮA,g個、突然変異の個体数ＮB,g個を設定する。今世代の個体数はＮgであるから、通常の遺伝の個体数は残りのＮg−（ＮA,g＋ＮB,g）となる。
【００４４】
次いで、優先遺伝のｓｔｅｐ２３へ進み、前世代のリストの中、評価関数値ｅg-1が最
も良い（小さい）方からＮA,g個までの、すなわち、優性な個体の評価関数値ｅg-1、確率ｐg-1、各変数ｖg-1,kのリストを今世代にそのまま継承（ＮA,g個について繰返し）する
。
【００４５】
次いで、突然変位として、ｓｔｅｐ２４で、前世代の中から１つの個体をリストの確率で重み付けてランダムに選定する。この際、ｓｔｅｐ２３で選択されたものも重複して選定される可能性がある。
【００４６】
次いで、ｓｔｅｐ２５で、所定の範囲内でランダムに選んだ一定値（一般的に各変数により異なる値）を選定されたその個体の各変数ｖg-1,kに付加し、今世代の各変数ｖgkの
値に設定する。この一定値は負の値も含むので、一定値を付加したものが負となる場合は０とする（ただし、Ｃ，ｊは負の値もあるため除く）。この一定値の範囲は、ｓｔｅｐ２１で設定した範囲を越えた範囲内でランダムに選ぶ。
【００４７】
次いで、ｓｔｅｐ２６で、ｓｔｅｐ２５で設定した変数ｖgkの個体について評価関数値ｅgを算出する。その評価関数値ｅgは、式（２）を用いて算出する。
【００４８】
次いで、ｓｔｅｐ２７で、今世代の突然変異の個体数ＮB,g個の処理が終わったか否か
（優性遺伝の個体数ＮA,g個を加えると、ＮA,g＋ＮB,g個の処理が終わったか否か）を判
定する。個体数ＮB,gだけ全部終了しない限り、ｓｔｅｐ２４〜２６に戻って新たに設定
した変数ｖgkの個体について評価関数値ｅgの算出を行い、同様に繰返す。
【００４９】
なお、以上のｓｔｅｐ２５〜２６の処理は、ランダムな乱数以外に、通常の最適化方法を用いることも考えられる。
【００５０】
さらに、以上の優性遺伝、突然変異の他に、遺伝的アルゴリズムの交叉（異なる２つの個体のｔ個の変数ｖgkを途中で相互に入れ換える。）等を入れることも考えられる。
【００５１】
以上の第２世代以降の各世代の優先遺伝と突然変位の処理の後に、図６に示す通常の遺伝を示すフローチャートの処理が行われる。すなわち、ｓｔｅｐ３１で、前世代の中から１つの個体をリストの確率で重み付けてランダムに選定する。この際、ｓｔｅｐ２３、２４で選択されたものも重複して選定される可能性がある。
【００５２】
次いで、ｓｔｅｐ３２で、前世代から選定した個体の各変数ｖg-1,kから今世代の各変
数ｖgkの値をｓｔｅｐ２１で設定した範囲内でランダムに決定する。
【００５３】
次いで、ｓｔｅｐ３３で、ｓｔｅｐ３２で決定した変数ｖgkの個体について評価関数値ｅgを算出する。その評価関数値ｅgは、式（２）を用いて算出する。
【００５４】
次いで、ｓｔｅｐ３４で、ｓｔｅｐ３３で算出した評価関数値ｅgが設定した閾値より
小さいか否かを問う。ここで、閾値は十分に小さい値を選ぶ。
【００５５】
ｓｔｅｐ３４で、ｅgが設定した閾値より小さいと判定されると、それ以上の演算は必
要ないと判断し、処理を終了させる。
【００５６】
ｓｔｅｐ３４で、ｅgが設定した閾値以上と判定されると、次のｓｔｅｐ３５へ進み、
今世代の通常の遺伝の個体数Ｎg−（ＮA，g＋ＮB,g）個の処理が終わったか否か（優性遺伝の個体数ＮA,g個、突然変異の個体数ＮB,g個を加えると、Ｎg個の処理が終わったか否
か）を判定する。個体数Ｎg−（ＮA,g＋ＮB,g）だけ全部終了しない限り、ｓｔｅｐ３１
〜３４に戻って新たに設定した変数ｖgkの個体について評価関数値ｅgの算出を行い、同
様に繰返す。
【００５７】
ｓｔｅｐ３５で、今世代の通常の遺伝の個体数Ｎg−（ＮA,g＋ＮB,g）個の処理が終わ
ったと判定されると、次のｓｔｅｐ３６へ進み、今世代の個体数Ｎg個それぞれの確率ｐgを算出する。これは、ｓｔｅｐ１７と同様に、式（４）を用いて算出する。
【００５８】
次いで、ｓｔｅｐ３７で、今世代の個体数Ｎgの評価関数値ｅg、確率ｐg、各変数ｖgk
のリストを作成する。
【００５９】
次いで、ｓｔｅｐ３８で、終了条件を満たすか否かを判定する。終了条件としては、世代数が所定の値までや、評価関数値の世代中の最小値が所定の値になるまでや、評価関数値の世代中の最小値がほとんど変わらなくなるまで等がある。
【００６０】
ｓｔｅｐ３８の終了条件を満たさない場合は、図５のＡへ戻り、次の世代の処理を同様に行う。
【００６１】
図７は、以上の図４〜図６の遺伝的アルゴリズムを用いた処理を模式的に表現した図であり、図４が対応する第１世代で第０世代のパラメータｖ0kを設定した範囲でＮ1個の個
体に変形し、次に、図５〜図６が対応する第２世代でその第１世代のＮ1個の個体から所
定数の個体のパラメータを優性遺伝、突然変異、通常の遺伝として引継ぐ。以下、第３世代以降も同様に引継ぐ。
【００６２】
ここで、優性遺伝は、前世代の中から適合度が最も良い方から特定個体数までをそのまま継承する。突然変異は、前世代からランダムに個体を選び、指定した範囲内でランダムに決定（個体毎に実行）した一定値（一般的に各変数により異なる値）を全パラメータに加える。通常の遺伝は、前世代からランダムに個体を選び、その個体が持つ各パラメータを指定した範囲内でランダムに決定（ｓｔｅｐ２１で設定した範囲を越えた範囲内で）する。なお、第１世代は第０世代の１つの個体を元に通常の遺伝を行うものである。
【００６３】
なお、図７では、世代間にわたって個体をそのまま引継ぐように見えるが、優性遺伝以外は、上記のような変形を加えて継承する。
【００６４】
次に、以上のような遺伝的アルゴリズムに基づいて改良を加えた本発明の実施形態に係るパラメータフィッティング方法について詳しく説明するが、いまいちど、本発明に係るパラメータフィッティング方法を用いずに、これまでに説明してきたアルゴリズムによって演算処理を実行した場合に、どの程度目標値からの乖離が起こり得て、計算時間を無駄に要するかを確認する。図８は従来のパラメータフィッティングによってホログラムの透過率の波長分布を計算した例を示す図である。図８に示す例では、遺伝的アルゴリズムを用いたパラメータフィッティングによって計算値を、目標値（又は測定値）に合わせ込むようにしているが、図８中の「×」に示すプロットについては目標値（又は測定値）から大きく乖離しているものであり、明らかに途中で計算を打切るように処理しても構わないところであるが、従来のパラメータフィッティング方法においては、打切り処理は行わな
かったので、パラメータの組を多数計算するための計算時間がかかり問題であった。なお、図９はパラメータフィッティングによって計算値を目標値（又は測定値）に適切に合わせ込んだ例を示す図である。
【００６５】
次に、以上を踏まえた上で、改良を加えた本発明の実施形態に係るパラメータフィッティング方法について詳しく説明する。まず、本発明の第１のパラメータフィッティング方法について説明する。図１０は本発明の第１実施形態に係るパラメータフィッティング方法に係るフローチャートを示す図である。
【００６６】
図１０のフローの流れとしては、図４のフローのｓｔｅｐ１４、又は図５のフローのｓｔｅｐ２６、又は図６のフローのｓｔｅｐ３３のいずれかからジャンプしてくることにより開始され、リターンによってそれぞれのフローによって元のルーチンに戻ることにより終了する。
【００６７】
図１０のフローにおいて、ｓｔｅｐ４１では、変数ｍに１がセットされる。
【００６８】
続く、ｓｔｅｐ４２においては、各パラメータからＸcalcd,mを計算し、ｅmidを算出する。ここで、ｅmidは、評価関数に複数の条件を入力して順々に計算している間の途中の
計算値であることを示している。
【００６９】
評価関数値ｅmidについて、誤差の二乗平均を考える場合には、以下の式（５）を用い
ることができる。
【００７０】
【数５】
0005574105.tif 000006
また、評価関数値ｅmidについて、誤差の絶対値を基準として考える場合には、以下の
式（６）も用いることができる。
【００７１】
【数６】
0005574105.tif 000007
次の、ｓｔｅｐ４３では、所定の条件が代入された計算途中の評価関数値であるｅmid
が予め定められたボーダー値Ｂより大きいか否かが判定される。ボーダー値Ｂは、打切り処理を実行するか否かを判定するために予め定められた値である。
【００７２】
ｓｔｅｐ４３における判定の結果がＹＥＳである場合には、ｓｔｅｐ４７に進み、仮のｅgを算出した後に、リターンし元のルーチンに戻る。このように、ｓｔｅｐ４３におけ
る判定でｅmidが予め定められたボーダー値Ｂより大きい場合には、計算を打切る処理を
行うようになっているので、計算が無駄となってしまうパラメータの組については途中で計算を打切るため計算時間を短縮できる。
【００７３】
一方、ｓｔｅｐ４３における判定の結果がＮＯである場合には、ｓｔｅｐ４４でｍを１
インクリメントし、ｓｔｅｐ４５でｍ≦Ｍであるか否かが判定される。このＭは全ての条件の総数である。ｓｔｅｐ４５における判定がＹＥＳであるときにはｓｔｅｐ４２に戻りループし、ＮＯである場合には、ｓｔｅｐ４６に進み、ｅgを算出し、その後、元のルー
チンにリターンする。
【００７４】
図１１は本発明の第１実施形態に係るパラメータフィッティング方法をホログラムパラメータフィッティングに応用した例を示す図である。図１１に示すように、計算途中の評価関数値であるｅmidがボーダー値Ｂを越えたパラメータ３（３の周りには○付き）のケ
ースについては、計算処理を打切るようになっているので、その分計算時間を短縮することが可能となる。
【００７５】
表１は従来のパラメータフィッティング方法と第１実施形態によるパラメータフィッティング方法とで、全ての世代を計算した場合のトータル計算時間の比を示すものである。なお、従来の方法による計算時間を１として規格化してある。表1からもわかるように、
第１実施形態に係るパラメータフィッティング方法を採用することにより、従来の方法に比べて、計算時間をおよそ３割程度削減することが可能となる。
【００７６】
【表１】
0005574105.tif 000008
以上、まとめると、第１実施形態に係るパラメータフィッティング方法は、遺伝的アルゴリズムを用いて、測定値又は目標値と計算値との間の誤差を表す評価関数値を算出し、前記評価関数を最小化することでパラメータフィッティングを行うパラメータフィッティング方法であって、前記評価関数に所定条件を代入したときに得られる評価関数値に対するボーダー値を定めて、前記評価関数値が前記ボーダー値を超えたときは処理を打切るステップを有することを特徴とする。このような第１実施形態に係るパラメータフィッティング方法によれば、評価関数の途中値を用いて、適宜打切り処理を行うものであるので、打切り判定の場合はそのパラメータの組については途中で計算を打切るため計算時間を短縮できる。
【００７７】
次に、本発明の第２実施形態について説明する。図１２は本発明の第２実施形態に係るパラメータフィッティング方法に係るフローチャートを示す図である。
【００７８】
図１２のフローの流れとしては、図４のフローのｓｔｅｐ１４、又は図５のフローのｓｔｅｐ２６、又は図６のフローのｓｔｅｐ３３のいずれかからジャンプしてくることにより開始され、リターンによってそれぞれのフローによって元のルーチンに戻ることにより終了する。
【００７９】
図１２のフローにおいて、ｓｔｅｐ５１では、ｍ1＝ｒ2Ｍによって、必要最小個数ｍ1
が計算される。ここで、Ｍは全ての条件の総数であり、ｒ2は０＜ｒ2＜１を満たす定数である。次の、ｓｔｅｐ５２では、変数ｍに１がセットされる。
続く、ｓｔｅｐ５３においては、各パラメータからＸcalcd,mを計算し、ｅmidを算出する。ここで、ｅmidは、評価関数に複数の条件を入力して順々に計算している間の途中の
計算値であることを示している。さらに、このｓｔｅｐにおいては、ｅmidからｅpredを
算出する。
【００８０】
評価関数値ｅmidについて、誤差の二乗平均を考える場合には、先の式（５）を用いる
ことができる。また、評価関数値ｅmidについて、誤差の絶対値を基準として考える場合
には、先の式（６）も用いることができる。
【００８１】
次の、ｓｔｅｐ５４では、所定の条件が代入された計算途中の評価関数値であるｅmid
が予め定められたボーダー値Ｂより大きいか否か、又は、ｍ≧ｍ1のときｅpredがｒ1Ｂの値より大きいか否かが判定される。ボーダー値Ｂは、打切り処理を実行するか否かを判定するために予め定められた値である。また、ｒ1は１より大きい予め定められた定数であ
る。また、ｅpredは評価関数値の予測値であり、評価関数が通常の分布であるとき（目標値・測定値の分布がランダムである場合）には、ｅmidに基づいて下式（７）によって定
めることができる。
【００８２】
【数７】
0005574105.tif 000009
また、特定の分布であるときには、ｅmidに基づいて下式（８）によって定めることが
できる。
【００８３】
【数８】
0005574105.tif 000010
式（８）は、目標値・測定値の分布において、誤差が小さい側はほぼ０の場合に用いられ、２ｍ＜Ｍのときｌ＝２ｍであり、そうでないときｌ＝Ｍである。
【００８４】
ｓｔｅｐ５４における判定の結果がＹＥＳである場合には、ｓｔｅｐ５８に進み、仮のｅgを算出した後に、リターンし元のルーチンに戻る。このように、ｓｔｅｐ５４におけ
る判定でｅmidが予め定められたボーダー値Ｂより大きいか、又は、ｍ≧ｍ1のときｅpredがｒ1Ｂの値より大きい場合には、計算を打切る処理を行うようになっているので、計算
が無駄となってしまうパラメータの組については途中で計算を打切るため計算時間を短縮できる。
【００８５】
一方、ｓｔｅｐ５４における判定の結果がＮＯである場合には、ｓｔｅｐ５５でｍを１インクリメントし、ｓｔｅｐ５６でｍ≦Ｍであるか否かが判定される。このＭは全ての条件の総数である。ｓｔｅｐ５６における判定がＹＥＳであるときにはｓｔｅｐ５３に戻りループし、ＮＯである場合には、ｓｔｅｐ５７に進み、ｅgを算出し、その後、元のルー
チンにリターンする。
【００８６】
以上、まとめると、第２実施形態に係るパラメータフィッティング方法は、遺伝的アルゴリズムを用いて、測定値又は目標値と計算値との間の誤差を表す評価関数値を算出し、前記評価関数を最小化することでパラメータフィッティングを行うパラメータフィッティング方法であって、前記評価関数に所定条件を代入したときに得られる評価関数値に対す
るボーダー値と前記ボーダー値に基づく所定値とを定めて、前記評価関数値が前記ボーダー値を超えたとき、又は、前記評価関数値に基づく予測値が前記所定値を超えたときには処理を打切るステップを有することを特徴とする。このような第２実施形態に係るパラメータフィッティング方法によれば、複数条件の途中段階で評価関数の途中の値や予測値を用いて、適宜打切り処理を行うものであるので、打切り判定の場合はそのパラメータの組については途中で計算を打切るため計算時間を短縮できる。
【００８７】
次に、本発明の第３実施形態について説明する。図１３は本発明の第３実施形態に係るパラメータフィッティング方法に係るフローチャートを示す図である。第３実施形態に係るパラメータフィッティング方法は、第１実施形態又は第２実施形態に係るパラメータフィッティング方法と併用するものである。
【００８８】
図１３のフローの流れとしては、図４のフローのｓｔｅｐ１８からジャンプしてくることにより開始され、ｓｔｅｐ６１が実行されると、ｓｔｅｐ２１に戻るようになっている。ｓｔｅｐ６１においては、これまで説明したボーダー値を、リストのＮA,g番目のｅgとして定めるようにしている。このようにボーダー値を世代毎に定めることで、より早い段階で打切り判定を行い、計算時間を短縮できる。
【００８９】
表２は従来のパラメータフィッティング方法と第３実施形態によるパラメータフィッティング方法とで、全ての世代を計算した場合のトータル計算時間の比を示すものである。なお、従来の方法による計算時間を１として規格化してある。表２からもわかるように、第３実施形態に係るパラメータフィッティング方法を採用することにより、従来の方法に比べて、計算時間をおよそ７割程度削減することが可能となる。
【００９０】
【表２】
0005574105.tif 000011
以上のように、第３実施形態に係るパラメータフィッティング方法によれば、複数条件の途中段階で評価関数の途中の値や予測値を用いて、適宜打切り処理を行うものであるので、打切り判定の場合はそのパラメータの組については途中で計算を打切るため計算時間を短縮できる。
【００９１】
次に、本発明の第４実施形態について説明する。図１４は本発明の第４実施形態に係るパラメータフィッティング方法に係るフローチャートを示す図である。第４実施形態に係るパラメータフィッティング方法は、第１実施形態又は第２実施形態に係るパラメータフィッティング方法と併用するものである。
【００９２】
図１４のフローの流れとしては、図４のフローのｓｔｅｐ１５、又は図５のフローのｓｔｅｐ２６、又は図６のフローのｓｔｅｐ３４のいずれかからジャンプしてくることにより開始され、ｓｔｅｐ７１が実行されると、それぞれ図４のフローのｓｔｅｐ１６、又は図５のフローのｓｔｅｐ２７、又は図６のフローのｓｔｅｐ３５に戻るようになっている。ｓｔｅｐ７１においては、評価関数テーブルの書換え判定を行い、書換えられた場合には、これまで説明したボーダー値を、評価関数テーブルのＮA,g番目のｅgとして定めるよ
うにしている。このようにボーダー値を個体毎に定めることで、より早い段階で打切り判定を行い、計算時間を短縮できる。
【００９３】
表３は従来のパラメータフィッティング方法と第４実施形態によるパラメータフィッティング方法とで、全ての世代を計算した場合のトータル計算時間の比を示すものである。なお、従来の方法による計算時間を１として規格化してある。表３からもわかるように、第４実施形態に係るパラメータフィッティング方法を採用することにより、従来の方法に比べて、計算時間をおよそ７割程度削減することが可能となる。
【００９４】
【表３】
0005574105.tif 000012
以上のように、第４実施形態に係るパラメータフィッティング方法によれば、複数条件の途中段階で評価関数の途中の値や予測値を用いて、適宜打切り処理を行うものであるので、打切り判定の場合はそのパラメータの組については途中で計算を打切るため計算時間を短縮できる。
【００９５】
次に、本発明の第５実施形態について説明する。図１５は本発明の第５実施形態に係るパラメータフィッティング方法に係る第１のフローチャートを示す図である。図１８は本発明の第５実施形態に係るパラメータフィッティング方法に係る第２のフローチャートを示す図である。第５実施形態に係るパラメータフィッティング方法は、第１実施形態乃至第４実施形態に係るパラメータフィッティング方法と併用するものである。
【００９６】
図１５のフローの流れとしては、図４のフローの「開始」からジャンプしてくることにより開始され、ｓｔｅｐ８１が実行されると、図４のフローのｓｔｅｐ１１に戻るようになっている。ｓｔｅｐ８１においては、計算順序テーブルが作成される処理が実行される。これまでの実施形態においては、ｍが１，２，３・・・の順序で計算処理が実行されていたが、本実施形態においては、ｍが１，２，３・・・に対応するｍ’の順序で計算処理を実行することで、より早い段階で打切り処理を行ない得るようにしている。
【００９７】
また、図１６は本発明の第５実施形態に係るパラメータフィッティング方法で用いる目標値と計算順序との関係を示す図であり、また、図１７は本発明の第５実施形態に係るパラメータフィッティング方法で用いる計算順序テーブルを示す図である。計算順序テーブルはｍの順序で計算するように定めるものであるが、図１６、図１７に示すように、これによれば、目標値の極値近傍から計算が順次行われることとなる。
【００９８】
なお、第５実施形態においては、式（１）に代えて下記式（９）
【数９】
0005574105.tif 000013
が用いられ、式（２）に代えて下記式（１０）
【数１０】
0005574105.tif 000014
が用いられ、式（５）に代えて下記式（１１）
【数１１】
0005574105.tif 000015
が用いられ、式（３）に代えて下記式（１２）
【数１２】
0005574105.tif 000016
が用いられ、式（６）に代えて下記式（１３）
【数１３】
0005574105.tif 000017
が用いられる。なお、ｍ'（ｋ）が計算順序テーブルで定められた関係を示すものである
。
【００９９】
次に、以上のような計算順序テーブルに基づいて実行される図１８の第２フローチャートについて説明する。図１８のフローの流れとしては、図４のフローのｓｔｅｐ１４、又は図５のフローのｓｔｅｐ２６、又は図６のフローのｓｔｅｐ３３のいずれかからジャンプしてくることにより開始され、リターンによってそれぞれのフローによって元のルーチンに戻ることにより終了する。
【０１００】
図１８のフローにおいて、ｓｔｅｐ９１では、ｍ1＝ｒ2Ｍによって、必要最小個数ｍ1
が計算される。ここで、Ｍは全ての条件の総数であり、ｒ2は０＜ｒ2＜１を満たす定数である。次の、ｓｔｅｐ９２では、変数ｍに１がセットされる。
ｓｔｅｐ９３においては、これまでに説明した計算順序テーブルによって、ｍに対応する実際の計算順序であるｍ’を取得する。
【０１０１】
続く、ｓｔｅｐ９４においては、各パラメータからＸcalcd,m'を計算し、ｅmidを算出
する。ここで、ｅmidは、評価関数に複数の条件を入力して順々に計算している間の途中
の計算値であることを示している。
【０１０２】
評価関数値ｅmidについて、誤差の二乗平均を考える場合には、先の式（１１）を用い
ることができる。また、評価関数値ｅmidについて、誤差の絶対値を基準として考える場
合には、先の式（１３）も用いることができる。
【０１０３】
次の、ｓｔｅｐ９５では、所定の条件が代入された計算途中の評価関数値であるｅmid
が予め定められたボーダー値Ｂより大きいか否か、又は、ｍ≧ｍ1のときｅpredがｒ1Ｂの値より大きいか否かが判定される。ボーダー値Ｂは、打切り処理を実行するか否かを判定するために予め定められた値である。また、ｒ1は１より大きい予め定められた定数であ
る。また、ｅpredは評価関数値の予測値であり、評価関数が通常の分布であるとき（目標値・測定値の分布がランダムである場合）には、ｅmidに基づいて先の式（７）によって
定めることができる。
【０１０４】
ｓｔｅｐ９５における判定の結果がＹＥＳである場合には、ｓｔｅｐ９９に進み、仮のｅgを算出した後に、リターンし元のルーチンに戻る。このように、ｓｔｅｐ９５におけ
る判定でｅmidが予め定められたボーダー値Ｂより大きいか、又は、ｍ≧ｍ1のときｅpredがｒ1Ｂの値より大きい場合には、計算を打切る処理を行うようになっているので、計算
が無駄となってしまうパラメータの組については途中で計算を打切るため計算時間を短縮できる。
【０１０５】
一方、ｓｔｅｐ９５における判定の結果がＮＯである場合には、ｓｔｅｐ９６でｍを１インクリメントし、ｓｔｅｐ９７でｍ≦Ｍであるか否かが判定される。このＭは全ての条件の総数である。ｓｔｅｐ９７における判定がＹＥＳであるときにはｓｔｅｐ９３に戻りループし、ＮＯである場合には、ｓｔｅｐ９８に進み、ｅgを算出し、その後、元のルー
チンにリターンする。
【０１０６】
表４は第１実施形態によるパラメータフィッティング方法と第５実施形態によるパラメータフィッティング方法とで、全ての世代を計算した場合のトータル計算時間の比を示すものである。表４からもわかるように、第５実施形態に係るパラメータフィッティング方法を採用することにより、第１実施形態による方法に比べて、計算時間をおよそ５割以下に削減することが可能となる。
【０１０７】
【表４】
0005574105.tif 000018
以上、まとめると、第５実施形態に係るパラメータフィッティング方法は、評価関数に所定条件を代入するときにおける前記所定条件の代入順序が予め定められることを特徴としている。このような、第５実施形態に係るパラメータフィッティング方法によれば、複数条件の途中段階で評価関数の途中の値や予測値を用いて、適宜打切り処理を行うものであるので、打切り判定の場合はそのパラメータの組については途中で計算を打切るため計算時間を大幅に短縮できる。
【符号の説明】
【０１０８】
１０・・・システムバス、１１・・・ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、１２・・・ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、１３・・・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、１４・・・通信制御部、１５・・・入力制御部、１６・・・出力制御部、１７・・・外部記憶装置制御部、１８・・・入力部、１９・・・出力部、２０・・・外部記憶装置、１００・・・光源、２００・・・ホログラム、３００・・・ディテクタ
【図１】
0005574105.tif 000019
【図２】
0005574105.tif 000020
【図３】
0005574105.tif 000021
【図４】
0005574105.tif 000022
【図５】
0005574105.tif 000023
【図６】
0005574105.tif 000024
【図７】
0005574105.tif 000025
【図８】
0005574105.tif 000026
【図９】
0005574105.tif 000027
【図１０】
0005574105.tif 000028
【図１１】
0005574105.tif 000029
【図１２】
0005574105.tif 000030
【図１３】
0005574105.tif 000031
【図１４】
0005574105.tif 000032
【図１５】
0005574105.tif 000033
【図１６】
0005574105.tif 000034
【図１７】
0005574105.tif 000035
【図１８】
0005574105.tif 000036