(57)【要約】【課題】  解探索において、有効な初期値、初期分布を作り、解探索の効率を上げることを目的とする。【解決手段】  解探索装置１００において、パラメータ探索範囲入力部１１は、パラメータの探索範囲を取得してパラメータ探索範囲記憶部２１に記憶する。次に、パラメータ設定部１２は、パラメータ探索範囲記憶部２１に記憶したパラメータの探索範囲に対して、パラメータの探索範囲の少なくとも一部分に対してパラメータ値の対数値の分布が一様分布、正規分布になるようにパラメータの初期値を設定し、パラメータ記憶部２２に記憶する。そして、探索部１５は、パラメータ記憶部２２に記憶したパラメータを読み込んで所定のアルゴリズムにより解を探索する。【選択図】        図３
2006023868.tif 000002
【特許請求の範囲】
【請求項１】
所定の探索範囲をもつパラメータを用いて所定のアルゴリズムにより解を探索する解探索装置において、
パラメータの探索範囲を記憶するパラメータ探索範囲記憶部と、
複数のパラメータを記憶するパラメータ記憶部と、
パラメータ探索範囲記憶部に記憶されたパラメータの探索範囲を参照し、パラメータの探索範囲の少なくとも一部分に対するパラメータ値の対数値が所定の分布になるようなパラメータ値を生成し、生成したパラメータ値を設定したパラメータをパラメータ記憶部に記憶するパラメータ設定部と、
パラメータ設定部によりパラメータ値が設定されたパラメータをパラメータ記憶部から読み込んで所定のアルゴリズムにより解を探索する探索部と
を備えたことを特徴とする解探索装置。
【請求項２】
パラメータ設定部は、パラメータの探索範囲の少なくとも一部分に対するパラメータ値の対数値が一様分布になるようなパラメータ値を生成する一様分布計算部を備えたことを特徴とする請求項１記載の解探索装置。
【請求項３】
所定の探索範囲をもつパラメータを用いて所定のアルゴリズムにより解を探索する解探索装置において、
パラメータの探索範囲を記憶するパラメータ探索範囲記憶部と、
複数のパラメータを記憶するパラメータ記憶部と、
パラメータ探索範囲記憶部に記憶されたパラメータの探索範囲を参照し、パラメータの探索範囲の一部分のパラメータ値の対数値の分布がパラメータの探索範囲の他部分のパラメータ値の対数値の分布に比べて蜜になるようなパラメータ値を生成し、生成したパラメータ値を設定したパラメータをパラメータ記憶部に記憶するパラメータ設定部と、
パラメータ設定部によりパラメータ値が設定されたパラメータをパラメータ記憶部から読み込んで所定のアルゴリズムにより解を探索する探索部と
を備えたことを特徴とする解探索装置。
【請求項４】
パラメータ設定部は、パラメータの探索範囲の一部分のパラメータ値の対数値の分布が正規分布となるようなパラメータ値を生成する正規分布計算部を備えたことを特徴とする請求項３記載の解探索装置。
【請求項５】
パラメータ設定部は、パラメータの探索範囲の他部分のパラメータ値の対数値の分布が一様分布となるようなパラメータ値を生成する一様分布計算部を備えたことを特徴とする請求項３または４記載の解探索装置。
【請求項６】
遺伝的アルゴリズムを用いて記憶部に記憶したパラメータの値を更新しながら解を探索する解探索装置の初期値設定方法において、
パラメータの探索範囲を取得して記憶部に記憶する探索範囲記憶工程と、
記憶部に記憶したパラメータの探索範囲に対して、パラメータ値の対数値の分布が所定の分布になるようにパラメータの初期値を設定して記憶部に記憶する初期値設定工程と
を有することを特徴とする解探索装置の初期値設定方法。
【請求項７】
初期値設定工程は、パラメータの探索範囲の少なくとも一部分に対してパラメータ値の対数値の分布が一様分布になるようにパラメータの初期値を設定することを特徴とする請求項６記載の解探索装置の初期値設定方法。
【請求項８】
初期値設定工程は、パラメータの探索範囲の少なくとも一部分に対してパラメータ値の対数値の分布が正規分布になるようにパラメータの初期値を設定することを特徴とする請求項６または７記載の解探索装置の初期値設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、解探索装置及びその初期値設定方法に関するものである。例えば、本発明は、数値計算によって物理化学現象をシミュレーションするソフトウェアに組み込まれた物理化学モデルが用いる複数のパラメータの値が、測定結果の様に外部から与えられたデータとの誤差を最小となる様に、遺伝的アルゴリズムを用いて自動的に探索する計算方法に関するものである。さらに、具体的には、本発明の解探索装置、例えば、半導体回路シミュレータが内蔵するトランジスタモデルが持つ複数のパラメータを実測した電流電圧データ（Ｉ−Ｖデータ）の誤差が小さくなる様に合せ込んだり、半導体プロセスシミュレータが内蔵するイオン注入モデルが持つ複数のパラメータをＳＩＭＳ測定した結果に合せ込んだりして、これらのシミュレータと実測結果の食い違いを抑制する事で、これらのシミュレータの予測性を高める為に用いられるものである。
【背景技術】
【０００２】
一般に、複数のパラメータを持つ非線形性が強いモデルのもつ複数のパラメータの値を探索する場合に、測定データとの誤差をこれらパラメータの関数として表現すると、複数の極小値を持つ事が経験的に知られている。図１０に示すように目標とする測定データ（○印）に対してＰｅａｒｓｏｎ４関数と呼ばれる４個のパラメータをもつモデル関数を当てはめた結果では、図１１に示すように、その合わせ誤差を２個のパラメータに対して表示すると左右の谷が現われ、同程度に合わせ誤差が小さいパラメータの組み合わせが複数存在する事が判る。
【０００３】
この様な場合には、最も誤差が少ないパラメータセットを探索することは、複数の谷の中から最も低い谷となるパラメータセットを探す事に対応する。この様な問題は「多峰性問題」と呼ばれる。パラメータセットが与える誤差に対する勾配を利用した探索手法をこうした問題に適用すると、最終的に得られるパラメータセットでの誤差は、探索開始時に初期値として与えたパラメータの値に強く依存してしまうためうまくいかない。そこで近年、多峰性問題でも実用的に誤差が十分小さい解を探索できる、遺伝的アルゴリズム（ＧＡ）が有力な手法として注目されている。
【０００４】
遺伝的アルゴリズムでは、まず探索する各パラメータごとに予め探索範囲となる最小値と最大値を与え、その範囲で一様分布する疑似乱数を用いて各パラメータの値をランダムに設定する。個々のパラメータ値を、たとえば１と０からなる１０ビットの列で表し、４個のパラメータを探索する場合には４０個の１又は０で表される列を作り、これを「遺伝子」と呼ぶ。そして１つの遺伝子に対して、その遺伝子が表すパラメータセットでモデル関数を計算したときの測定データとの誤差の値を対応させ、これを「適合値」と呼ぶ。こうして類似乱数で発生した遺伝子と、それに対応した適合値との対を十分な個数、例えば１００個作る。
【特許文献１】特開２００３−８５５２６号公報
【非特許文献１】和田、金村「遺伝的アルゴリズムを用いたパラメータ抽出方法の検討」、応用物理学会  シリコンテクノロジー分科会  Ｎｏ．３２、ＳＴＭ０１−０７、ｐｐ３７−４２、２００１
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、こうした探索ではパラメータの探索範囲を指定する必要がある。そして指定された範囲を上下限とした範囲でパラメータの初期値を設定する。たとえば、パラメータｐ０が１以上２０以下と指定された場合には、最初に発生させる全遺伝子についてｐ０の値は１から２０の範囲で一様分布する乱数で設定する。しかし、この方法では探索範囲が数桁変化するパラメータに対しては、以下の理由でその効果が低下する。
【０００６】
例えば、ｐ０の探索範囲が１０から１０００００の様に広いレンジを持つパラメータを含む問題で真の解が２０である問題を、１００個の遺伝子個体を用いて探索する事を考える。図１２に示すように、この場合の探索範囲である１０から１０００００の範囲で一様分布する乱数を用いてｐ０の初期分布を作るとその大部分は１００００以上の値となり例えば１００以下のｐ０の値は殆ど設定されない。そのため探索開始後も例えば１００以下の範囲に探索が及ぶ可能性は、以下の理由から、非常に低下する。ＧＡの探索でｐ０が特定範囲に至る為には、選択された親個体のパラメータ値をもとにした「交配」と「突然変異」操作による。もしｐ０の初期値が全個体で１００以上の場合には、真の解２０程度の値に対応した１と０のビット列がどの遺伝子個体にも含まれないため、交配操作では２０程度の値に対応したビット列は生じない。従って「突然変異」でこうしたビット列が発生するのを待つしかない。そこで突然変異の発生確率を高く設定すると、交配操作で絞込まれてきた望ましいビット列情報が破壊される確率が高まり、その結果探索の効率が低下する。
【０００７】
本発明は、上記のような課題を解決するためになされたもので、解探索において、有効な初期値、初期分布を作り、解探索の効率を上げることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の解探索装置は、パラメータの探索範囲を記憶するパラメータ探索範囲記憶部と、複数のパラメータを記憶するパラメータ記憶部と、パラメータ探索範囲記憶部に記憶されたパラメータの探索範囲を参照し、パラメータの探索範囲の少なくとも一部分に対するパラメータ値の対数値が所定の分布になるようなパラメータ値を生成し、生成したパラメータ値を設定したパラメータをパラメータ記憶部に記憶するパラメータ設定部と、パラメータ設定部によりパラメータ値が設定されたパラメータをパラメータ記憶部から読み込んで所定のアルゴリズムにより解を探索する探索部とを備えたことを特徴とする。
【０００９】
パラメータ設定部は、パラメータの探索範囲の少なくとも一部分に対するパラメータ値の対数値が一様分布になるようなパラメータ値を生成する一様分布計算部を備えたことを特徴とする。
【００１０】
本発明の解探索装置は、パラメータの探索範囲を記憶するパラメータ探索範囲記憶部と、複数のパラメータを記憶するパラメータ記憶部と、パラメータ探索範囲記憶部に記憶されたパラメータの探索範囲を参照し、パラメータの探索範囲の一部分のパラメータ値の対数値の分布がパラメータの探索範囲の他部分のパラメータ値の対数値の分布に比べて蜜になるようなパラメータ値を生成し、生成したパラメータ値を設定したパラメータをパラメータ記憶部に記憶するパラメータ設定部と、パラメータ設定部によりパラメータ値が設定されたパラメータをパラメータ記憶部から読み込んで所定のアルゴリズムにより解を探索する探索部とを備えたことを特徴とする。
【００１１】
パラメータ設定部は、パラメータの探索範囲の一部分のパラメータ値の対数値の分布が正規分布となるようなパラメータ値を生成する正規分布計算部を備えたことを特徴とする。
【００１２】
パラメータ設定部は、パラメータの探索範囲の他部分のパラメータ値の対数値の分布が一様分布となるようなパラメータ値を生成する一様分布計算部を備えたことを特徴とする。
【００１３】
本発明の初期値設定方法は、パラメータの探索範囲を取得して記憶部に記憶する探索範囲記憶工程と、記憶部に記憶したパラメータの探索範囲に対して、パラメータ値の対数値の分布が所定の分布になるようにパラメータの初期値を設定して記憶部に記憶する初期値設定工程とを有することを特徴とする。
【００１４】
初期値設定工程は、パラメータの探索範囲の少なくとも一部分に対してパラメータ値の対数値の分布が一様分布になるようにパラメータの初期値を設定することを特徴とする。
【００１５】
初期値設定工程は、パラメータの探索範囲の少なくとも一部分に対してパラメータ値の対数値の分布が正規分布になるようにパラメータの初期値を設定することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、解探索において、有効な初期値、初期分布を作り、解探索の効率を上げることができる。
【発明を実施するための最良の形態】
【００１７】
実施の形態１．
図１は、実施の形態１における解探索装置の外観の一例を示す図である。
図１において、解探索装置１００は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）表示装置９０１、キーボード（Ｋ／Ｂ）９０２、マウス９０３、コンパクトディスク装置（ＣＤＤ）９０５、プリンタ装置９０６、スキャナ装置９０７を備え、これらはケーブルで接続されている。
さらに、解探索装置１００は、ＦＡＸ機９３２、電話器９３１とケーブルで接続され、また、ローカルエリアネットワーク（ＬＡＮ）９４２、ウェブサーバ９４１を介してインターネット９４０に接続されている。
【００１８】
図２は、実施の形態１における解探索装置１００のハードウェア構成の一例を示す図である。
図２において、解探索装置１００は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９１１を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、ＣＲＴ表示装置９０１、Ｋ／Ｂ９０２、マウス９０３、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）９０４、磁気ディスク装置９２０、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７と接続されている。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード９１５は、ＦＡＸ機９３２、電話器９３１、ＬＡＮ９４２等に接続されている。
例えば、通信ボード９１５、Ｋ／Ｂ９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部の一例である。
また、例えば、通信ボード９１５、ＣＲＴ表示装置９０１などは、出力部の一例である。
【００１９】
ここで、通信ボード９１５は、ＬＡＮ９４２に限らず、直接、インターネット９４０、或いはＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）に接続されていても構わない。直接、インターネット９４０、或いはＩＳＤＮ等のＷＡＮに接続されている場合、解探索装置１００は、インターネット９４０、或いはＩＳＤＮ等のＷＡＮに接続され、ウェブサーバ９４１は不用となる。
磁気ディスク装置９２０には、オペレーティングシステム（ＯＳ）９２１、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３は、ＣＰＵ９１１、ＯＳ９２１、ウィンドウシステム９２２により実行される。
【００２０】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明するものが、「〜ファイル」として記憶されている。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータの入出力を示し、そのデータの入出力のためにデータは、磁気ディスク装置９２０、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体に記録される。あるいは、信号線やその他の伝送媒体により伝送される。
【００２１】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
【００２２】
また、以下に述べる実施の形態を実施するプログラムは、また、磁気ディスク装置９２０、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体による記録装置を用いて記憶されても構わない。
【００２３】
図３は、実施の形態１における解探索装置１００の論理構成の一例を示す図である。
図３に示す解探索装置１００は、所定の探索範囲をもつパラメータを用いて所定遺伝的アルゴリズムにより解を探索する装置である。
【００２４】
解探索装置１００は、パラメータの探索範囲を記憶するパラメータ探索範囲記憶部２１と、複数のパラメータを持った遺伝子データ（以下、単に、遺伝子または固体という）を記憶するパラメータ記憶部２２を備えている。図３では、遺伝子は、４つのパラメータｐ０、ｐ１、ｐ２、ｐ３を持つモデル関数である。図３では、１００個の遺伝子が記憶されている場合を示している。
解探索装置１００は、入力装置からパラメータの探索範囲を入力し、パラメータの探索範囲をパラメータ探索範囲記憶部２１に記憶するパラメータ探索範囲入力部１１を備えている。
また、解探索装置１００は、パラメータ探索範囲記憶部２１に記憶されたパラメータの探索範囲を参照し、パラメータの探索範囲の少なくとも一部分に対するパラメータ値の対数値が所定の分布になるようなパラメータ値を生成し、生成したパラメータ値を設定したパラメータをパラメータ記憶部２２に記憶するパラメータ設定部１２を備えている。
また、解探索装置１００は、パラメータ設定部１２によりパラメータ値が設定されたパラメータをパラメータ記憶部２２から読み込んで遺伝的アルゴリズムにより解を探索する探索部１５を備えている。
【００２５】
パラメータ設定部１２は、パラメータの探索範囲の少なくとも一部分に対するパラメータ値の対数値が一様分布になるようなパラメータ値を生成する一様分布計算部１３を備えている。
正規分布計算部１４については、実施の形態２で説明する。
【００２６】
以下、遺伝的アルゴリズムを用いて記憶部に記憶したパラメータの値を更新しながら解を探索する解探索装置の初期値設定方法について説明する。実施の形態１の解探索装置の初期値設定方法は、数桁の範囲で値を取り得るパラメータｐ０の初期値の設定方法に特徴がある。
例えば１０から１０００００までの値を取り得るパラメータｐ０を含む４つのパラメータｐ０、ｐ１、ｐ２、ｐ３を持つモデル関数を、与えられた測定データに当てはめる例で説明する。また、１００個の個体を用いたＧＡでパラメータを探索する場合を説明する。
【００２７】
探索範囲記憶工程では以下の動作を行う。
パラメータ探索範囲入力部１１は、入力装置からパラメータｐ０、ｐ１、ｐ２、ｐ３の探索範囲を入力し、パラメータｐ０、ｐ１、ｐ２、ｐ３の探索範囲をパラメータ探索範囲記憶部２１に記憶する。ここで、探索範囲は、下限値と上限値とで表わされるものとする。
ここで、パラメータｐ０は、１０から１０００００までの値を取り得るものとする。すなわち、パラメータｐ０の下限値はｐ０ｍｉｎ＝１０、上限値はｐ０ｍａｘ＝１０００００である。
パラメータｐ０、ｐ１、ｐ２、ｐ３の探索範囲は以下のようなものとして入力されたものとする。
パラメータｐ１の下限値はｐ１ｍｉｎ、上限値はｐ１ｍａｘである。
パラメータｐ２の下限値はｐ２ｍｉｎ、上限値はｐ２ｍａｘである。
パラメータｐ３の下限値はｐ３ｍｉｎ、上限値はｐ３ｍａｘである。
【００２８】
初期値設定工程では以下の動作を行う。
パラメータ設定部１２は、パラメータ探索範囲記憶部２１に記憶されたパラメータｐ０、ｐ１、ｐ２、ｐ３の探索範囲を参照し、パラメータの初期値を設定してパラメータ記憶部２２に記憶する。
一様分布計算部１３は、パラメータｐ０の探索範囲に対するパラメータ値の対数値が一様分布になるようなパラメータ値を１００個生成し、生成した１００個のパラメータ値をパラメータ記憶部２２の固体のパラメータｐ０に設定し記憶する。すなわち、１００個の個体を用いたＧＡでパラメータを探索する場合、各個体毎に、Ｒを［０、１］の間で一様分布する乱数として、ｐ０＝１０＾｛ｌｏｇ（ｐ０ｍｉｎ）＋Ｒ＊（ｌｏｇ（ｐ０ｍａｘ／ｐ０ｍｉｎ））｝（ただし、＾はべき乗を示す）として１００個のｐ０を求める。
【００２９】
図４は、実施の形態１のパラメータ設定部１２の初期値設定工程によるパラメータｐ０の初期値の対数分布を示す図である。横軸は、対数メモリであり、ｐ０の対数値ｌｏｇ（ｐ０）である。縦軸は、パラメータの発生確率である。
ここで、パラメータｐ０の下限値はｐ０ｍｉｎ＝１０、上限値はｐ０ｍａｘ＝１０００００として、以下に、ｐ０の対数値ｌｏｇ（ｐ０）を計算する。基底は１０とする。
ｌｏｇ（ｐ０）＝ｌｏｇ１０＾｛ｌｏｇ（ｐ０ｍｉｎ）＋Ｒ＊（ｌｏｇ（ｐ０ｍａｘ／ｐ０ｍｉｎ））｝
ｌｏｇ（ｐ０）＝ｌｏｇ１０＾｛ｌｏｇ（１０）＋Ｒ＊（ｌｏｇ（１０００００／１０））｝
ｌｏｇ（ｐ０）＝ｌｏｇ１０＾｛ｌｏｇ（１０）＋Ｒ＊（ｌｏｇ（１００００））｝
ｌｏｇ（ｐ０）＝ｌｏｇ１０＾｛１＋Ｒ＊４｝
ｌｏｇ（ｐ０）＝１＋Ｒ＊４
ここで、Ｒは［０、１］の間で一様分布する乱数であり、Ｒの最小値＝０、Ｒの最大値＝１であるから、
Ｒ＝０のとき、ｌｏｇ（ｐ０）＝１＋Ｒ＊４＝１
Ｒ＝１のとき、ｌｏｇ（ｐ０）＝１＋Ｒ＊４＝５
となる。よって、ｐ０の対数値の最小値＝１、最大値＝５である。Ｒは［０、１］の間で一様分布する乱数であるから、ｐ０の対数値も一様に分布する。
したがって、図４に示すように、ｐ０の対数値は、１と５の間で一様に分布する。
【００３０】
一方、パラメータ設定部１２は、各個体毎に、Ｒを［０、１］の間で一様分布する乱数として、パラメータｐ１、ｐ２、ｐ３については、
ｐ１＝ｐ１ｍｉｎ＋Ｒ＊（ｐ１ｍａｘ−ｐ１ｍｉｎ）
ｐ２＝ｐ２ｍｉｎ＋Ｒ＊（ｐ２ｍａｘ−ｐ２ｍｉｎ）
ｐ３＝ｐ３ｍｉｎ＋Ｒ＊（ｐ３ｍａｘ−ｐ３ｍｉｎ）
を計算してそれぞれ１００個のｐ１、ｐ２、ｐ３を求める。
こうすることで、ｐ１、ｐ２、ｐ３はそれぞれの上限値と下限値の間で一様に分布する。
【００３１】
探索工程では以下の動作を行う。
探索部１５は、パラメータ設定部１２によりパラメータ値が設定された固体をパラメータ記憶部２２から読み込んで遺伝的アルゴリズムにより最適解を探索する。
以下では、図５を用いて、探索部１５が最適値を探す方法として遺伝的アルゴリズムを説明する。
【００３２】
個々のパラメータ値を、１と０からなる１０ビットの列で表すと、パラメータが４個の場合、遺伝子は４０個の１又は０で表される列になる。
１つの遺伝子に対して、その遺伝子が表すパラメータセットでモデル関数を計算したときの測定データとの誤差の値を対応させ、これを「適合値」と呼ぶ。
探索部１５は、ランダムではあるが好ましい適合値、即ちより小さな適合値を持つ遺伝子はより選ばれ易くなるような選択方法で２個の遺伝子Ａ、Ｂを選択する。遺伝子Ａ、Ｂを「親」と呼ぶ。
探索部１５は、それぞれ４０個の１または０からなる数字列に対して、４０以下のランダムに選んだ数字に対応する場所で遺伝子を交叉させる事で新たな１または０からなる２個の遺伝子Ｃ、Ｄを作成する。遺伝子Ｃ、Ｄを「子」と呼ぶ。
【００３３】
例えば、遺伝子Ｃは最初から例えば１３番目まではＡと同じ並びで、１４番目から３７番目まではＢの対応する位置の並びと同じ、３８番目以降はＡの対応する位置の並びと同じ、遺伝子Ｄは最初から例えば１３番目まではＢと同じ並びで、１４番目から３７番目まではＡの対応する位置の並びと同じ、３８番目以降はＢの対応する位置の並びと同じものとなる。この探索部１５の操作を「交配」と呼ぶ。
【００３４】
次に、探索部１５は、所定の確率、例えば５％の確率で遺伝子Ｃと遺伝子Ｄの１、０の値を反転させ、遺伝子ＣとＤの適合値をそれぞれ計算する。この探索部１５の操作を「突然変異」と呼ぶ。上記探索部１５の操作を、この例では５０回繰り返して新たな１００個の遺伝子を作成する。新たな遺伝子の個数が最初に作成した遺伝子の個数と同じになった時点で、最初に作成した遺伝子の中で最も小さな適合値をもつ遺伝子のみを残して、新たに作成した遺伝子から最大の適合値をもつ遺伝子を除いた９９個の新しい遺伝子で置き換える。
【００３５】
探索部１５は、上記操作を繰り返す。上記操作を繰り返すと、１００個の遺伝子の中で最小の適合値を持つ遺伝子が表すパラメータの値は、次第に最小値（最適解）に近づく。
初期の遺伝子を初期値設定工程で発生させた後、探索工程で、親の選択、交配、突然変異を繰り返すことで、パラメータの値に関する情報を有効にして探索を効果的に進めることが出来る。
【００３６】
以上のように、実施の形態１では、解探索装置１００が、利用者が指定したモデル関数、複数のパラメータの個数やその探索範囲に関する情報、当てはめ対象とする測定データファイル、計算結果を出力するファイルに関する情報を読込む機能と、遺伝的アルゴリズムを用いて下限値探索を行う計算処理機能と、指定されたファイルにパラメータの探索結果を書き出す機能とを有している。
【００３７】
解探索装置１００は、さらに、利用者が指定したパラメータの探索範囲と初期値を読み込む機能と、該初期値指定での指定内容に基づき探索対象パラメータの初期設定操作においてパラメータの対数値での分布を当該パラメータの探索範囲に対して一様に分布する様に設定させる機能とを有している。
【００３８】
以下に本発明により得られる効果を説明する。
図６は、与えられた測定データ（○印）に対して５個のモデルパラメータを持つＬｏｒｅｎｔｚ関数がモデル関数で５個のパラメータ中の１つは１０から１０００００の範囲を取り得るものとして、そのパラメータに対しては本発明による方法で対数値が一様分布する様な初期値設定をし、２００個の個体数を用いたＧＡで当てはめを行った結果である。
【００３９】
図７は同じ計算を、全てのパラメータを一様分布する乱数を使って初期値設定して計算した結果ある。図６、図７の比較から本発明ではデータがより一致している事が判る。
【００４０】
図８は、上記問題に対して乱数系列を変えて１０回の抽出を繰返した時の当てはめ誤差を示す図である。計算機内部で発生させる乱数は、最初に「種」となる整数値を与え、それに演算を施して発生する数字を乱数として使っている。ここで言う「乱数系列を変える」とは最初に与える種の値を変えたことを意味する。乱数系列を変えるとＧＡの場合には結果が微妙に変わるので、乱数系列を変えてＧＡを複数回実行することにより、この実施の形態（計算プログラム）の安定性、すなわち、この実施の形態は発生する乱数、乱数系列の違いにより、当てはめ誤差についての精度に大きな影響が無いことを確認することができる。
【００４１】
１列目は試行回数である。２列目は各個体のパラメータの初期値は従来法、即ち全て一様分布する乱数で与えた結果での当てはめ誤差である。３列目は本実施の形態による用法で探索範囲の広いパラメータはその対数値が一様分布する様に初期値設定した結果での当てはめ誤差ある。ＧＡでは計算に乱数を用いるため、一般に計算結果は毎回少しずつ異なるので、この様に何回も試行してこの実施の形態（計算プログラム）の安定性を確認する事が重要である。
【００４２】
従来法と本発明との安定性を確認すると、図７のグラフや図８の１列目の値から分かるように従来法の場合には誤差が大きく、図６のグラフや図８の２列目の値のように、本発明の方法では殆どの場合で従来法より当てはめ誤差が小さいことが判る。
【００４３】
実施の形態２．
実施の形態２では、図３を用いて、実施の形態１と異なる点について説明する。
実施の形態２の解探索装置１００では、パラメータ設定部１２が、パラメータ探索範囲記憶部２１に記憶されたパラメータの探索範囲を参照し、パラメータの探索範囲の一部分のパラメータ値の対数値の分布がパラメータの探索範囲の他部分のパラメータ値の対数値の分布に比べて蜜になるようなパラメータ値を生成し、生成したパラメータ値を設定したパラメータをパラメータ記憶部２２に記憶する点が特徴である。
【００４４】
正規分布計算部１４は、パラメータの探索範囲の一部分のパラメータ値の対数値の分布が正規分布となるようなパラメータ値を生成する。
以下、実施の形態２の解探索装置１００のパラメータ設定部１２の初期値設定工程の動作について説明する。
【００４５】
ここでも、パラメータｐ０が数桁の範囲で値を取り得るものとする。また、パラメータｐ０の推定値ｐ０’が与えられるものとする。パラメータ探索範囲入力部１１は、入力装置からパラメータｐ０の推定値ｐ０’、上限値ｐ０ｍａｘ、下限値ｐ０ｍｉｎを初期値の情報として入力しパラメータ探索範囲記憶部２１に記憶する。
パラメータｐ０の推定値ｐ０’、上限値ｐ０ｍａｘ、下限値ｐ０ｍｉｎが与えられた場合には、全遺伝子のたとえば３０％の遺伝子に対して、正規分布計算部１４が、対数軸上で平均値がｐ０’、Ｇａｕｓｓ型分布の幅が（ｐ０ｍａｘ−ｐ０ｍｉｎ）／５になる様にパラメータｐ０の初期値を分布させる。残り７０％の固体に対して、一様分布計算部１３が、ｐ０の値をその対数値が一様分布する様に、実施の形態１の方法で設定する。こうして、与えられた初期値の情報を有効利用できる。
【００４６】
図９は、実施の形態２のパラメータ設定部１２の初期値設定工程によるパラメータｐ０の初期値の対数分布を示す図である。横軸は、対数メモリであり、ｐ０の対数値ｌｏｇ（ｐ０）である。縦軸は、パラメータの発生確率である。
【００４７】
図９は、例えば、一様分布計算部１３が対数値が一様分布する様に７０個のパラメータ値を発生させ、加えて、正規分布計算部１４が、対数軸上で平均値がｐ０’のＧａｕｓｓ型の分布をするように３０個のパラメータ値を発生させている場合を示している。図示するように、ｐ０の解の値をｐ０’と推定し、一様分布するパラメータ値に、平均値がｐ０’でＧａｕｓｓ型で分布するパラメータ値を加えることで、推定値であるｐ０’近傍の値の発生確率が高くなっている。もし、上記Ｇａｕｓｓ型分布で発生させた値がｐ０ｍｉｎ以下またはｐ０ｍａｘ以上になった場合には、その値を捨てて再度設定する操作を繰り返せば、全初期値が確実に探索範囲内に納まる。図９では、Ｇａｕｓｓ型分布で発生させた値がｐ０ｍｉｎ以下になった部分を不使用にしていることを示している。
【００４８】
以下に、Ｇａｕｓｓ型分布で発生させるパラメータ値の割合について、３０％が望ましい理由を述べる。
利用者が推定値として設定した値と、実際の解が大きく外れる事がある。
全ての固体に対して当該パラメータの推定値近傍だけにバラ撒くと（前述した理由で）そこから遠く離れた範囲に探しに行く確率は低くなるので、探索失敗の公算が高くなる。そこで、一部は初期値近傍を充分探索できるように配置し、残りはハズレに備えて取り得る値の全域に配置しておくことにし、当たれば短時間で解に到達でき、外れても全体をカバーしているので失敗しにくくするため３０％としている。ただし、３０％は、厳密な意味での根拠はなく、経験上の数値である。
【００４９】
また、初期値の近傍により稠密な「網を張る」ために、初期値近くほど確率を高めたＧａｕｓｓ型分布を使うのが望ましい。
【００５０】
次に、Ｇａｕｓｓ型分布の幅として（ｐ０ｍａｘ−ｐ０ｍｉｎ）／５が望ましい理由を述べる。
パラメータ値があまりに近い値ばかりとなってしまう乱数（分布幅の狭い乱数）を発生させると、ハズした時の代償が大きいので、全体の１／５程度が初期値近傍を充分探索できるようになる範囲と考えたのである。
【００５１】
なお、３０％と１／５は、以下の意味で互いに関連する。例えば、個体数の３０％（３／１０）に対して、パラメータ探索範囲全体の３０％（３／１０）となる範囲にパラメータの初期値を発生させると、これは探索範囲全体に対して一様に発生させた場合とほとんど同じになってしまう。すなわち、個数と範囲を同じ割合にすると意味がなくなる可能性がある。そこで、個数と範囲を異なる割合にしたのである。個数の割合は、３／１０であり、範囲の割合は１／５＝２／１０であり、個数の割合＞範囲の割合としている。すなわち、狭い範囲に多くの個数を発生させていることになり、この意味で両者には相関がある。
【００５２】
以上のように、実施の形態２では、初期値設定操作において利用者の指定に基づき探索対象パラメータの対数値での分布が指定された初期値付近で密に分布してそれ以外の範囲ではほぼ一様に分布させる機能を有する事を特徴とする。
【００５３】
この実施の形態によれば、初期の遺伝子を初期値設定工程で発生させた後、探索工程で、親の選択、交配、突然変異を繰り返すことで、予め判っているパラメータの値に関する情報を有効にして探索を効果的に進めることが出来る。
【００５４】
なお、この例では、一様分布計算部１３が対数値が一様分布する様に７０個のパラメータ値を発生させ、加えて、正規分布計算部１４が、対数軸上で平均値がｐ０’のＧａｕｓｓ型の分布をするように３０個のパラメータ値を発生させている場合を示したが、一様分布計算部１３が何もせず、正規分布計算部１４のみが、対数軸上で平均値がｐ０’のＧａｕｓｓ型の分布をするように１００個すべてのパラメータ値を発生させてもよい。
【００５５】
また、パラメータ設定部１２は、一様分布以外や正規分布以外の分布を発生してもよい。
また、上記解探索装置１００の機能による最適パラメータ解の探索方法をコンピュータに実行させるプログラムで実現してもよい。
また、遺伝的アルゴリズムでなくてもよく、他の解探索アルゴリズムを用いてもよい。
【図面の簡単な説明】
【００５６】
【図１】実施の形態１における解探索装置１００の外観の一例を示す図。
【図２】実施の形態１における解探索装置１００のハードウェア構成の一例を示す図。
【図３】実施の形態１における解探索装置１００の論理構成の一例を示す図。
【図４】実施の形態１のパラメータ設定部１２の初期値設定工程によるパラメータｐ０の初期値の対数分布を示す図。
【図５】探索部１５が最適値を探す方法として遺伝的アルゴリズムを説明する図。
【図６】パラメータ値を本発明の方法で初期値を設定したＧＡの結果を示す図。
【図７】個体のパラメータ値が単純な一様分布からスタートしたＧＡの結果を示す図。
【図８】探索範囲が桁で変化するパラメータを含むモデル関数に対する合わせ込みでの誤差を示す図。
【図９】実施の形態２のパラメータ設定部１２の初期値設定工程によるパラメータｐ０の初期値の対数分布を示す図。
【図１０】当てはめたいデータ（○印）にＰｅａｒｓｏｎ４関数を当てはめた（曲線）計算例を示す図。
【図１１】図１０の結果で４個のパラメータ中の２個に対する合わせ誤差を縦軸に表示した結果を示す図。
【図１２】パラメータｐ０の探索範囲（１０から１０００００）で一様分布した初期分布を示す図。
【符号の説明】
【００５７】
１００  解探索装置、１１  パラメータ探索範囲入力部、１２  パラメータ設定部、１３  一様分布計算部、１４  正規分布計算部、１５  探索部、２０  記憶装置、２１  パラメータ探索範囲記憶部、２２  パラメータ記憶部、９０１  ＣＲＴ表示装置、９０２  Ｋ／Ｂ、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ＦＡＸ機、９４０  インターネット、９４１  ウェブサーバ、９４２  ＬＡＮ。
【図１】
2006023868.tif 000003
【図２】
2006023868.tif 000004
【図３】
2006023868.tif 000005
【図４】
2006023868.tif 000006
【図５】
2006023868.tif 000007
【図６】
2006023868.tif 000008
【図７】
2006023868.tif 000009
【図８】
2006023868.tif 000010
【図９】
2006023868.tif 000011
【図１０】
2006023868.tif 000012
【図１１】
2006023868.tif 000013
【図１２】
2006023868.tif 000014