(57)【要約】【課題】複数の処理装置を使用して遺伝的アルゴリズムにより物理モデルの多数のパラメータなどを短時間で調整可能なパラメータ調整装置を提供すること。【解決手段】パラメータ調整装置は、複数の処理手段の内の一部を局所探索法による探索処理に割り当てる処理割り当て手段を備え、性能が低いプロセッサに局所探索の処理を割り当てる。また、遺伝的アルゴリズムによる探索の中間結果を収集し、局所探索法による探索処理に利用する。システム内の資源を有効活用して調整処理を並列化および効率化することにより、短時間で最適なパラメータ群を決定できるという効果がある。【選択図】図１
2005190372.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理手段を用いて遺伝的アルゴリズムを使用してパラメータを最適化するパラメータ調整装置において、
前記複数の処理手段の内の一部を局所探索法による探索処理に割り当てる処理割り当て手段を備えたことを特徴とするパラメータ調整装置。
【請求項２】
前記処理割り当て手段は、前記複数の処理手段の内の処理能力の最も小さいものを局所探索法による探索処理に割り当てることを特徴とする請求項１に記載のパラメータ調整装置。
【請求項３】
更に、前記複数の処理手段の内の遺伝的アルゴリズムによる処理に割り当てられた処理手段から探索の中間結果を収集し、局所探索法による探索処理に利用する探索処理制御手段を備えたことを特徴とする請求項１に記載のパラメータ調整装置。
【請求項４】
更に、前記複数の処理手段の内の遺伝的アルゴリズムによる処理に割り当てられた処理手段における遺伝的アルゴリズム処理される個体数をそれぞれの処理手段の処理能力に応じて決定する個体数決定手段を備えたことを特徴とする請求項１に記載のパラメータ調整装置。
【請求項５】
前記複数の処理手段はそれぞれ探索処理終了条件を満足するか否かを判定する判定手段を備え、任意の処理手段において終了の判定がなされた場合には、装置の全体の処理を終了することを特徴とする請求項１に記載のパラメータ調整装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パラメータ調整装置に関するものであり、特に、複数の処理装置（プロセッサ、ＣＰＵ）を使用して遺伝的アルゴリズム（以下ＧＡと記す）により物理モデルの多数のパラメータなどを短時間で調整可能なパラメータ調整装置に関するものである。
【背景技術】
【０００２】
従来、実験結果などからＧＡを用いて複数のパラメータを含む物理モデルのパラメータフィッティング（調整）処理を自動的に行うパラメータ調整装置が提案されている。ＧＡの参考文献としては、例えば下記非特許文献１がある。なお、本発明でいうＧＡとは進化的計算手法のことをいい、進化的戦術（Evolution Strategy：ＥＳ）の手法も含むものである。進化的戦術の参考文献としては、例えば、下記非特許文献２がある。
更に、下記の特許文献１には、ＧＡを用いて複数のパラメータを含む物理モデルのパラメータ調整処理を自動的に行うパラメータ調整装置が提案されている。
【非特許文献１】David E.Goldberg著「Genetic Algorithms in Search,Optimization,and Machine Learning」1989年、出版社ADDISON-WESLEY PUBLISHING COMPANY,INC.が出版
【非特許文献２】H.P.Schwefel著「Evolution and Optimum Seeking」1995年、出版社John Wiley & Sonsが出版
【特許文献１】特開２００３−１０８９７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記した従来のパラメータ調整方法においては、まず最初にＧＡを用いてパラメータ調整（探索）を行い、探索の終盤においては局所的探索法を用いて精度を向上させる手法が採用されていた。しかし、ＧＡを用いた探索は終盤において探索速度が低下するので、ＧＡで精度を上げようとすると処理時間が長くなってしまい、一方で早く局所的探索法に切り換えると最適解にたどり着かない恐れがあるという問題点があった。
【０００４】
また、ＧＡ処理は比較的並列処理に向いているが、局所的探索法は並列処理による高速化には向いていないという問題点もあった。更に、適用するモデルによってはＧＡよりも局所的探索法の方が早く最適解にたどり着く可能性があるが、このようなモデルにおいても従来の方法では処理時間の短縮ができないという問題点もあった。
【課題を解決するための手段】
【０００５】
本発明は、上記した課題を解決することを目的とし、このために、本発明のパラメータ調整装置は、複数の処理手段（ＣＰＵ）を用いて遺伝的アルゴリズムを使用してパラメータを最適化するパラメータ調整装置において、複数の処理手段の内の一部をPowell法などの局所探索法による探索処理に割り当てる処理割り当て手段を備えたことを主要な特徴とする。
【０００６】
また、複数あるプロセッサの性能が均一ではない場合に、性能が低いプロセッサに局所探索の処理を割り当てる点にも特徴がある。また、複数のプロセッサの内の遺伝的アルゴリズムによる処理に割り当てられたプロセッサから探索の中間結果を収集し、局所探索法による探索処理に利用する点にも特徴がある。
【０００７】
また、複数の処理手段の内の遺伝的アルゴリズムによる処理に割り当てられた処理手段における遺伝的アルゴリズム処理される個体数をそれぞれの処理手段の処理能力に応じて決定する個体数決定手段を備えた点にも特徴がある。更に、複数のプロセッサはそれぞれ探索処理終了条件を満足するか否かを判定する判定手段を備え、任意のプロセッサにおいて終了の判定がなされた場合には、装置の全体の処理を終了する点にも特徴がある。
【発明の効果】
【０００８】
本発明のパラメータ調整装置は上記のような特徴によって、システム内の資源を有効活用してフィッティング処理を並列化および効率化することにより、短時間で最適なパラメータ群を決定できるという効果がある。
【発明を実施するための最良の形態】
【０００９】
本発明のパラメータ調整装置は、例えば半導体製造ラインにおいて異なる形状のトランジスタをいくつか試作し、測定した電気特性のデータを用いて、トランジスタ電気特性モデル関数のモデルパラメータを最適化し、このモデルを使用して任意の形状のトランジスタのシミュレーションを行うために使用可能である。但し、本発明はこの例に限らず、ＧＡを用いる任意の処理に適用可能である。以下実施例について説明する。
【実施例１】
【００１０】
図１は、本発明のパラメータ調整装置の実施例のハードウェア構成を示すブロック図である。ＣＰＵ１（１０）〜ＣＰＵｎ（１３）の周知のｎ台のパソコンが周知のＬＡＮ１４によって接続されている。ＣＰＵ１（１０）にはデータ入出力用の周知のディスプレイ１６、キーボード１５が接続されているが、他のＣＰＵにも接続されていてもかまわない。それぞれのＣＰＵには周知のデータ入出力装置を搭載してもかまわない。本発明のパラメータ調整装置は、各ＣＰＵにそれぞれ後述するプログラムを作成してインストールすることにより実現する。
【００１１】
なお、この構成は一例であり、１台のサーバー中に複数のＣＰＵが搭載されている場合、あるいはインターネットを介して複数のパソコンが接続されている場合など、本発明は実質的に複数の処理装置（ＣＰＵ）による並列処理が可能な任意のコンピュータシステムに適用可能である。また、ハイパースレッディング機能など、１つのＣＰＵによって実質的に複数の処理を並列に実行可能な場合においても本発明を適用することが可能である。
【００１２】
図２は、本発明のＧＡを使用したパラメータ調整（フィッティング）処理を示す概略タイムチャートである。ＣＰＵ１は管理用ＣＰＵとして機能し、ＧＡ処理（局所法処理）以外にデータの入出力、他のＣＰＵへの処理の割り当て、パラメータ調整処理全体の管理等を行う。ＣＰＵ２〜ＣＰＵｎ−１は、ＧＡ処理用に割り当てられたＣＰＵである。ＣＰＵｎは、局所法の探索処理用に割り当てられたＣＰＵである。なお、ｎは２以上の整数である。
【００１３】
ＣＰＵ１は、所定の周期（ＧＡの所定数の世代交代処理＝ＧＡｎ処理）毎に他のＣＰＵから処理結果（評価値の良い個体情報）を収集し終了条件を判定して、終了条件を満足している場合には処理全体を終了し、結果を出力する。ＧＡ処理用ＣＰＵは、管理用ＣＰＵ１から指示がある度にＧＡｎ処理を実行する。ＧＡｎ処理中には所定の周期で他のＧＡ用ＣＰＵと個体を交換する移住処理が行われる。また、これとは独立した周期で、局所法用ＣＰＵｎへ（あるいは管理用ＣＰＵを介して）その時点で評価値の良い個体情報を送信する。
【００１４】
局所法用ＣＰＵｎは、管理用ＣＰＵあるいはＧＡ用ＣＰＵから個体（パラメータ）情報を受信すると、公知の局所的探索方法によりパラメータの最適化（探索）を行う。そして探索結果を管理用ＣＰＵに送信する。
【００１５】
図３は、管理ＣＰＵ１における処理内容を示すフローチャートである。Ｓ１０においてはＧＡ用あるいは局所法用として利用可能な他のＣＰＵを検索する。Ｓ１１においては、利用可能なＣＰＵの処理能力は既知か否かが判定され、判定結果が否定の場合にはＳ１２に移行する。Ｓ１２においては処理能力が未知のＣＰＵの処理能力を判定する。能力としてはＣＰＵのクロック周波数情報を読み出す、簡単なベンチマークテストプログラムを走らせて処理時間を測定することにより能力を測定する等の方法を採用可能である。
【００１６】
Ｓ１３においては局所法用のＣＰＵを選定する。選定条件としては、例えば最も処理能力の低いＣＰＵを選定する。管理用ＣＰＵ１が局所法用のＣＰＵとして選定されてもかまわないが、この例では別のＣＰＵｎが選定されたものとする。なお、Ｓ１０〜１３の処理は、予め事前に実行しておいてもよく。管理ＣＰＵ１に利用可能なＣＰＵおよびその処理能力、処理の割り当て等を予め登録しておいてもよい。
【００１７】
Ｓ１４においてはＧＡあるいは局所法処理に必要な入力データ等を各ＣＰＵに分配する。Ｓ１５においては管理用ＣＰＵにおけるＧＡ処理用の個体(染色体)を生成する。例えば半導体製造ラインの場合にはトランジスタの物理モデル関数の全てあるいは一部のパラメータの値を遺伝子とする染色体（個体）をＮ個生成し、個体母集団とする。個体の生成とは染色体中の遺伝子の値を決定することである。なお、公知のＢＳＩＭなどのトランジスタの物理モデルにおいては、各パラメータについて推奨するパラメータ初期値の範囲が定められているので、各パラメータについて、推奨するパラメータ初期値の範囲内においてランダムに初期値を決定して遺伝子の値とする。
【００１８】
個体数Ｎは、基本的には調整すべきパラメータの数に基づき決定する。実施例においては、例えば個体数Ｎ＝パラメータ数×定数（例えば５〜１５）としてもよい。なお、個体数Ｎは大きいほど精度は向上するが処理時間も長くなる。一方、処理能力の異なる複数のＣＰＵに同じ個体数ＮのＧＡ処理を実行させると、速いＣＰＵは遅いＣＰＵの処理が終了するまで待たされることになる。そこで、処理能力の大きなＣＰＵほどＮを大きくすることにより、ＧＡ用に割り当てられた複数のＣＰＵの処理時間がほぼ同じになるようにしてもよい。
【００１９】
Ｓ１６においては後述するＧＡｎ処理（あるいは局所法処理）が行われる。Ｓ１７においては自分のデータも含めて全てのＣＰＵの処理結果データを収集する。Ｓ１８においては、終了条件を満足するか否かが判定される。終了条件としては例えば以下の（１）〜（３）のいずれかの条件を満足した時とする。（１）何れかの個体の評価値が予め定められた目標値以上に達した。（２）評価値の増加率が所定値を下まわった。（３）計算回数が所定値を超えた。Ｓ１９においては全てのＣＰＵに対して終了を指示し、Ｓ２０においては例えばディスプレイ、プリンタ、ファイル等に結果を出力する。なお、Ｓ１６の処理中に上記終了条件の（１）の情報が他のＣＰＵから送信されてきた場合には、直ちにＳ１６の処理を中止し、Ｓ１９に移行してもよい。
【００２０】
図４は、ＧＡ用ＣＰＵ処理の内容を示すフローチャートである。Ｓ３０においては管理ＣＰＵからデータを受信するまで待ち、Ｓ３１においては、受信したデータが終了指示ならば処理を終了する。Ｓ３２においては受信したデータがＳ１４において分配されたデータであるか否かが判定され、判定結果が肯定の場合にはＳ３３に移行する。Ｓ３３においては自ＣＰＵにおけるＧＡ処理用の個体(染色体)を生成する。この処理はＳ１５と同じ処理である。Ｓ３４においては生成した個体を母集団として登録して、Ｓ３６に移行する。
【００２１】
Ｓ３５においては、受信したデータが続行指示か否かが判定され、判定結果が肯定の場合にはＳ３６に移行する。Ｓ３６においては後述するＧＡの所定数の世代交代処理であるＧＡｎ処理が実行される。Ｓ３７においてはＧＡ処理の結果である、評価値が上位の所定個数の個体の情報を管理ＣＰＵに転送し、Ｓ３０に戻る。
【００２２】
図５は、局所法用のＣＰＵ処理の内容を示すフローチャートである。Ｓ５０においては管理ＣＰＵからデータを受信するまで待ち、Ｓ５１においては、受信したデータが終了指示ならば処理を終了する。Ｓ５２においては受信したデータがＳ１４において分配されたデータであるか否かが判定され、判定結果が肯定の場合にはＳ５５に移行する。
【００２３】
Ｓ５３においては、ＧＡ用ＣＰＵから送信された中間結果である評価上位データであるか否かが判定され、判定結果が肯定の場合にはＳ５４に移行する。Ｓ５４においては、各ＣＰＵから収集した上位個体データを評価値順にソートするなどして、探索処理する個体を選択する。なお、局所法用のＣＰＵが他のＣＰＵのＧＡｎ処理中に局所法探索処理を複数回実行可能であれば、実行可能な範囲内で選択する個体数は複数であってもよく、複数の場合には１つずつ順に処理する。
【００２４】
Ｓ５５においては、例えば「ニューメリカルレシピ・イン・シー、技術評論社、１９９３」などに記載の公知のＰｏｗｅｌｌ法あるいはその他の公知の局所的探索法によりパラメータの調整、即ち評価値の良いパラメータの探索を行う。この処理はＧＡ処理と比べて処理負荷が軽いので、処理能力の低いＣＰＵであってもＧＡ処理と比べて短時間で処理可能である。Ｓ５６においては、処理の結果である、評価値が上位の所定個数の個体の情報を管理ＣＰＵに転送し、Ｓ５０に戻る。
【００２５】
図６は、Ｓ１６、Ｓ３６の、ＧＡの所定数の世代交代処理であるＧＡｎ処理の内容を示すフローチャートである。Ｓ６０〜６２においては公知の遺伝的アルゴリズム処理における１世代の世代更新処理が行われる。なお、詳細については前記した特許文献に記載されている。まず、Ｓ６０においては母集団から個体をランダムに所定数選択し、交叉処理により子個体を生成する。交叉処理とは、選択した親個体のコピーをそれぞれ任意個生成して、それらのコピー個体間において遺伝子の一部を交換するか、あるいはそれぞれの遺伝子から新たな遺伝子を生成することにより任意個の子個体を生成する処理である。
【００２６】
Ｓ６１においてはＳ６０で生成された子個体の評価値を計算する。評価値とは、染色体中の遺伝子がパラメータとしてどれだけ理想的な値に近いかを示す値である。半導体製造ラインに適用する場合には、染色体中の遺伝子をモデルパラメータとするトランジスタ電気特性モデル関数で計算した特性の推定値と、トランジスタの試作実験により得られた特性の測定値との二乗誤差を計算する。そして、２乗誤差値が低ければ低いほど評価が良いものとする。
【００２７】
Ｓ６２においてはＳ６０で選択した親個体と生成した子個体の中から評価の良い順に取り出した個体数分だけを母集団に戻し、残りを破棄する。この処理によって評価値の低い染色体が淘汰される。なお、この他に、親個体の一部を淘汰の対象にせずにそのまま母集団に戻し、残りの親個体と子個体から評価の良い順に「残りの親個体」数分戻す方法、あるいは全ての個体を母集団に戻してから、もとの母集団の数だけ残して他を淘汰する方法を用いてもよい。
【００２８】
通常、ＧＡにおいては交叉の他に突然変異という処理を行う。しかし、例えば前記した特許文献においては、交叉過程において乱数を用いて子固体の遺伝子を生成しているため、突然変異の性質も兼ね備えている。そのため、上記のような交叉手法を用いる場合は別に突然変異は行う必要がない。なお、実数値を扱うＧＡの場合、突然変異処理として染色体の各遺伝子に正規分布に従って発生させた正規乱数を加算する操作が提案されており、このような突然変異処理を追加してもよい。
【００２９】
Ｓ６３においては、精度、即ち個体のパラメータを使用した物理モデルの実験結果との誤差＝評価値が最も良いものが目標値に達しているか否かが判定され、判定結果が肯定の場合にはＳ７２に移行する。Ｓ６４においてはＧＡ処理（世代交代）が予め定められた回数（図２では６回）実行されたか否かが判定され、判定結果が肯定の場合にはＳ７２に移行する。
【００３０】
Ｓ６５においては、局所法用の個体抽出周期（図２では３回）が到来したか否かが判定され、判定結果が肯定の場合にはＳ６６に移行する。Ｓ６６においては、評価の良い個体を所定数だけ局所法用ＣＰＵに転送する。Ｓ６７においては、移住周期（図２では２回）が到来したか否かが判定され、判定結果が肯定の場合にはＳ６８に移行するが、否定の場合にはＳ６０に戻る。
【００３１】
本発明の並列ＧＡ方式は個体集団をプロセッサ毎に独立して進化させる。このため、プロセッサ毎のＧＡでは単一集団のＧＡに比べ解の多様性が低下するためにフィッティング性能が低下してしまう。そこで、移住と呼ばれる処理を追加する。移住は各ＣＰＵの個体集団間で染色体の入れ替えを行う処理である。この処理により、解の多様性を維持し、単一集団時と同等以上のフィッティング性能を維持する。
【００３２】
Ｓ６８においては、評価が上位の個体を所定個数だけ抽出する。Ｓ６９においては、抽出した個体データを予め定められたＣＰＵへ転送する。転送先のＣＰＵは予め固定されていてもよいし、何回目はどのＣＰＵに転送するかを決めるテーブルあるいは演算式を予め作成して配布しておいてもよい。一例としては、例えばＣＰＵ１はＣＰＵ２へ、ＣＰＵ２はＣＰＵ３へ、…ＣＰＵn-1はＣＰＵ１へというようにリング状に転送してもよい。
【００３３】
Ｓ７０においては、他のＣＰＵからの移住データを受信する。Ｓ７１においては、移住データを個体の母集団に加え、Ｓ６０に戻る。
終了が判定された場合には、Ｓ７２において処理の結果である、評価値が上位の所定個数の個体の情報を管理ＣＰＵに転送し、報告してＧＡｎ処理を終了する。
【００３４】
以上のような構成および処理によって、短時間で高精度のパラメータ調整ができる。そして、物理モデルに当該パラメータを採用することにより、試作をせずに高精度の回路シミュレーションを行うことができるので、半導体素子の製造効率が向上する。
【００３５】
以上実施例１を説明したが、本発明のパラメータ調整装置には以下のような変形例も考えられる。実施例においては局所法処理用の個体は周期的に上位のものを送信する例を開示したが、各ＧＡ用ＣＰＵにおいて所定の精度を満足するものが出現した場合に、その個体情報を局所法用ＣＰＵに随時送信するようにしてもよい。
【００３６】
実施例においてはそれぞれのＣＰＵはＧＡ処理あるいは局所法処理のいずれか一方に割り当てる例を開示したが、例えば１台だけ処理能力の高いＣＰＵがある場合などには、処理能力の最も高いＣＰＵにＧＡ処理と局所法処理の両方を割り当て、その他のＣＰＵにＧＡ処理のみを割り当てるようにすることも可能である。
【００３７】
実施例においてはＧＡ処理の中間結果の上位のものについて局所法による探索を行う例を開示したが、パラメータ空間内で評価値のピークが複数個ある場合などにおいて、ＧＡ処理の中間結果の上位のものが、パラメータ空間において所定の範囲内に収まる複数のグループに分類できる場合には、それぞれのグループの代表個体について局所法による探索を行うようにしてもよい。
【図面の簡単な説明】
【００３８】
【図１】本発明のパラメータ調整装置の実施例のハードウェア構成を示すブロック図である。
【図２】本発明のＧＡを使用したパラメータ調整処理を示す概略タイムチャートである。
【図３】管理ＣＰＵ１における処理内容を示すフローチャートである。
【図４】ＧＡ用ＣＰＵ処理の内容を示すフローチャートである。
【図５】局所法用のＣＰＵ処理の内容を示すフローチャートである。
【図６】Ｓ１６、Ｓ３６のＧＡｎ処理の内容を示すフローチャートである。
【符号の説明】
【００３９】
１０、１１、１２、１３    ＣＰＵ
１４    ＬＡＮ
１５    キーボード
１６    ディスプレイ
【図１】
2005190372.tif 000003
【図２】
2005190372.tif 000004
【図３】
2005190372.tif 000005
【図４】
2005190372.tif 000006
【図５】
2005190372.tif 000007
【図６】
2005190372.tif 000008