(57)【要約】【課題】使用者の意図を最適化問題の計算過程に簡単かつ的確に反映でき、最適解の適応度の向上および計算時間の短縮を可能とする最適化問題計算装置を提供する。【解決手段】依存関係生成部１０３が、計算部１０２から探索処理の途中における解候補を受け取り、その解候補に基づいてパラメータ間の依存関係を生成する。表示・編集部１０４は、パラメータ間の依存関係を表示し、かつ、その依存関係を編集するためのＧＵＩを使用者に提供する。そして、使用者により依存関係が編集された場合には、計算部１０２が、編集後の依存関係を考慮しつつ探索処理を再開する。【選択図】  図２
2005025445.tif 000002
【特許請求の範囲】
【請求項１】
複数のパラメータの組み合わせ最適化問題の解を、解候補の更新および評価を繰り返すことによって探索する最適化問題計算手段と、
探索処理の途中における解候補に基づいてパラメータ間の依存関係を生成する依存関係生成手段と、
生成された依存関係を表示し、かつ、その依存関係を編集するためのユーザーインターフェイスを使用者に提供する依存関係編集手段と、を有し、
最適化問題計算手段は、使用者により編集された依存関係を考慮しつつ探索処理を再開可能である最適化問題計算装置。
【請求項２】
依存関係編集手段は、依存関係をグラフ構造により表示する請求項１記載の最適化問題計算装置。
【請求項３】
依存関係編集手段は、グラフ構造の構成要素を対話的に編集可能なユーザーインターフェイスを提供する請求項２記載の最適化問題計算装置。
【請求項４】
依存関係編集手段は、グラフ構造の構成要素に任意のラベルを付与可能なユーザーインターフェイスを提供する請求項２または３記載の最適化問題計算装置。
【請求項５】
依存関係の初期値を入力するためのユーザーインターフェイスを使用者に提供する初期値入力手段をさらに有する請求項１〜４のうちいずれか１項記載の最適化問題計算装置。
【請求項６】
最適化問題計算手段は、依存関係を、解候補を更新する際の制約条件として用いる請求項１〜５のうちいずれか１項記載の最適化問題計算装置。
【請求項７】
最適化問題計算手段は、進化型計算アルゴリズムを用いて探索処理を実行する請求項１〜６のうちいずれか１項記載の最適化問題計算装置。
【請求項８】
コンピュータシステムが、
複数のパラメータの組み合わせ最適化問題の解を、解候補の更新および評価を繰り返すことによって探索し、
探索処理の途中における解候補に基づいてパラメータ間の依存関係を生成し、
生成された依存関係を表示装置に表示し、
入力装置を用いてその依存関係を編集するためのユーザーインターフェイスを使用者に提供し、
使用者により編集された依存関係を考慮しつつ探索処理を再開する最適化問題計算方法。
【請求項９】
コンピュータシステムに、
複数のパラメータの組み合わせ最適化問題の解を、解候補の更新および評価を繰り返すことによって探索する処理と、
探索処理の途中における解候補に基づいてパラメータ間の依存関係を生成する処理と、
生成された依存関係を表示装置に表示する処理と、
入力装置を用いてその依存関係を編集するためのユーザーインターフェイスを使用者に提供する処理と、
使用者により編集された依存関係を考慮しつつ探索処理を再開する処理と、を実行させる最適化問題計算プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムによって組み合わせ最適化問題を計算する技術に関する。
【０００２】
【従来の技術】
コンピュータシステムを用いた組み合わせ最適化問題の計算手法に関しては、従来より様々なものが提案されている。
【０００３】
最適化問題には、局所解への落ち込み・解が複数求まり最適な１つを判断できないといった問題や、良好なパラメータの組み合わせを途中で崩してしまうことによって最適な解になかなか収束しないという問題が発生することがある。
【０００４】
前者の問題に対して、人間の判断を組み込む対話的なアルゴリズムが考案されている。たとえば、特許文献１では、最適化問題計算の結果、複数の最適解候補が求まった場合に使用者の意図を考慮した解の絞込みを行うスケジュール作成装置が提案されている。特許文献２では、解の探索過程を提示し、使用者が解のパラメータ変更を行うことで解の探索範囲を変更し、使用者の納得する解が求まるまで探索を続けるヒューリスティックな探索装置が提案されている。
【０００５】
後者の問題に関しては一般的に、良好な結果を残す解に共通して見受けられるパラメータの組を固定し、その他のパラメータだけを操作する手段が用いられている。特許文献３では、遺伝的アルゴリズムを使用する問題において、使用者が問題の構造を熟知していなくとも自動的に良好なパラメータの組み合わせ（ビルディングブロック）を構築する方法が提案されている。
【０００６】
【特許文献１】
特開２００２−２０７５１０号公報
【特許文献２】
特開２００１−１４２７０８号公報
【特許文献３】
特開２０００−１１２９１６号公報
【０００７】
【発明が解決しようとする課題】
しかしながら、従来のシステムでは、使用者は解またはその評価値を操作することしかできず、その解が得られるまでの計算過程の内容を把握することができなかった。また、自動的に良好なパラメータの組み合わせが得られたとしても、その組み合わせの意味を直感的に理解することは難しかった。
【０００８】
それゆえ、従来のシステムでは、使用者の意図を計算過程に的確に反映させることが困難であり、試行錯誤的な操作を強いられたり、高度なスキルあるいはノウハウが必要であったり、多大な計算時間を要したりするのが現状であった。しかも、使用者が納得できる最適解に到達することができない場合も多く、問題となっていた。
【０００９】
本発明は上記実情に鑑みてなされたものであって、その目的とするところは、使用者の意図を最適化問題の計算過程に簡単かつ的確に反映でき、最適解の適応度の向上および計算時間の短縮を可能とする最適化問題計算装置を提供することにある。
【００１０】
【課題を解決するための手段】
上記目的を達成するために本発明では、以下の手段または処理によって最適化問題の計算を行う。
【００１１】
本発明では、最適化問題計算手段が、複数のパラメータの組み合わせ最適化問題の解を、解候補の更新および評価を繰り返すことによって探索する。
【００１２】
ここで、最適化問題の計算アルゴリズムとして、進化型計算アルゴリズムを用いることが好ましい。進化型計算アルゴリズムには、遺伝的アルゴリズム（ＧＡ：Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍｓ）、遺伝的プログラミング（ＧＰ：Ｇｅｎｅｔｉｃ  Ｐｒｏｇｒａｍｍｉｎｇ）、進化戦略（ＥＳ：Ｅｖｏｌｕｔｉｏｎ  Ｓｔｒａｔｅｇｙ）、進化的プログラミング（ＥＰ：Ｅｖｏｌｕｔｉｏｎａｒｙ  Ｐｒｏｇｒａｍｍｉｎｇ）などが含まれるが、いずれを用いてもよい。また、進化型計算アルゴリズム以外の計算アルゴリズム、たとえば、焼きなまし法（ＳＡ：Ｓｉｍｕｌａｔｅｄ  Ａｎｎｅａｌｉｎｇ）などを用いてもよい。
【００１３】
本発明では、依存関係生成手段が、探索処理の途中における解候補に基づいてパラメータ間の依存関係を生成する。依存関係生成手段は、最適化問題計算手段で解候補が算出されるたびに依存関係を生成してもよいし、最適化問題計算手段で複数回繰り返し計算を行った後にその時点での解候補から依存関係を生成してもよい。
【００１４】
パラメータ間の依存関係とは、あるパラメータの挙動と他のパラメータの挙動との相関を示すものである。たとえば、あるパラメータの値の変化が他のパラメータの値の変化に与える影響（変化量や変化率など）を依存関係として捉えることができる。また、計算アルゴリズムとして遺伝的アルゴリズムを用いる場合には、交叉のときに同時に入れ替えるべきパラメータの組（ブロック）を依存関係として捉えてもよい。この場合には、さらに、パラメータ間の依存関係に、パラメータとパラメータの依存関係（１対１の関係）のみならず、パラメータとブロックの依存関係（１体多の関係）、ブロックとブロックの依存関係（多対多の関係）を含めてもよい。
【００１５】
本発明では、依存関係編集手段が、生成された依存関係を表示し、かつ、その依存関係を編集するためのユーザーインターフェイスを使用者に提供する。そして、使用者により依存関係が編集された場合には、最適化問題計算手段が、使用者により編集された依存関係を考慮しつつ探索処理を再開する。
【００１６】
パラメータ間の依存関係は、最適化問題の計算過程における解候補の更新の仕方に直接影響を及ぼすものである。本発明では、探索処理の途中の段階での依存関係を表示することによって、使用者に探索処理の計算過程の具体的内容を把握させることができる。しかも、ユーザーインターフェイスを用いて依存関係を使用者に直接編集させ、以降の探索処理では編集後の依存関係を考慮しつつ計算を行うので、使用者の意図を最適化問題の計算過程に簡単かつ的確に反映させることができる。その結果として、使用者の意図する方向に探索処理が進むので、最適解の適応度の向上および計算時間の短縮を図ることが可能となる。
【００１７】
ここで、最適化問題計算手段が、パラメータ間の依存関係を、解候補を更新する際の制約条件として用いるとよい。つまり、ある段階の解候補に基づいて次の解候補を生成する際に、パラメータ間の依存関係を満たすように考慮するのである。これにより、使用者の意図が計算過程に正確に反映されることとなる。
【００１８】
また、依存関係編集手段が、パラメータ間の依存関係をグラフ構造により表示することが好ましい。グラフ構造は複数のノードとノード間を結合するリンクから構成される図形である。たとえば、各パラメータをノードに割り当て、パラメータ間の依存関係をリンクで表現するなどのモデル化を行うことによって、最適化問題計算で用いる複数のパラメータの関係を視覚化することができる。このようなグラフ構造によれば、使用者はパラメータ間の関係を容易に理解可能となる。
【００１９】
この場合には、依存関係編集手段が、グラフ構造の構成要素（ノード、リンクなど）を対話的に編集可能なユーザーインターフェイスを提供するとよい。これにより、簡単かつ直感的な操作で依存関係を編集することができる。
【００２０】
また、依存関係編集手段が、グラフ構造の構成要素に任意のラベルを付与可能なユーザーインターフェイスを提供することも好ましい。ラベルを付与することにより構成要素に意味付けをすることができるので、依存関係の編集作業の作業性が向上する。
【００２１】
本発明では、依存関係の初期値を入力するためのユーザーインターフェイスを使用者に提供する初期値入力手段をさらに有することも好ましい。これにより、最適化問題の計算初期から使用者の意図を考慮した探索処理を行うことができる。また、初期値入力手段は、このユーザーインターフェイスを用いて、最適化問題計算のパラメータの初期値や初期条件などを入力させるようにしてもよい。
【００２２】
なお、本発明は、上記手段の少なくとも一部を有する最適化問題計算装置として捉えることができる。また、本発明は、上記処理の少なくとも一部を含む最適化問題計算方法、または、かかる方法を実現するためのプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【００２３】
たとえば、本発明の一態様としての最適化問題計算装置は、複数のパラメータの組み合わせ最適化問題の解を、解候補の更新および評価を繰り返すことによって探索する最適化問題計算手段と、探索処理の途中における解候補に基づいてパラメータ間の依存関係を生成する依存関係生成手段と、生成された依存関係を表示し、かつ、その依存関係を編集するためのユーザーインターフェイスを使用者に提供する依存関係編集手段と、を有し、最適化問題計算手段は、使用者により編集された依存関係を考慮しつつ探索処理を再開可能であることが好適である。
【００２４】
また、本発明の一態様としての最適化問題計算方法では、コンピュータシステムが、複数のパラメータの組み合わせ最適化問題の解を、解候補の更新および評価を繰り返すことによって探索し、探索処理の途中における解候補に基づいてパラメータ間の依存関係を生成し、生成された依存関係を表示装置に表示し、入力装置を用いてその依存関係を編集するためのユーザーインターフェイスを使用者に提供し、使用者により編集された依存関係を考慮しつつ探索処理を再開することが好適である。
【００２５】
また、本発明の一態様としての最適化問題計算プログラムは、コンピュータシステムに、複数のパラメータの組み合わせ最適化問題の解を、解候補の更新および評価を繰り返すことによって探索する処理と、探索処理の途中における解候補に基づいてパラメータ間の依存関係を生成する処理と、生成された依存関係を表示装置に表示する処理と、入力装置を用いてその依存関係を編集するためのユーザーインターフェイスを使用者に提供する処理と、使用者により編集された依存関係を考慮しつつ探索処理を再開する処理と、を実行させることが好適である。
【００２６】
【発明の実施の形態】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
【００２７】
（第１の実施形態）
本実施形態では、本発明を、基板はんだ検査装置のティーチング処理に適用している。そこで、まずは図１を参照して基板はんだ検査装置の構成について簡単に説明する。
【００２８】
（基板はんだ検査装置の構成）
この基板はんだ検査装置１は、プリント基板３０に実装された電子部品３１のはんだ付け状態を自動的に検査する装置である。基板はんだ検査装置１は、概略、コンピュータシステム１０と撮像部２０から構成される。コンピュータシステム１０は、ハードウエアとして、ＣＰＵ（中央演算処理装置）、メモリ、記憶装置（ハードディスク、ＭＯ装置など）１１、表示装置１２、入力装置（キーボード、ポインティングデバイスなど）１３などを備える。起動時には、記憶装置１１内のプログラムがメモリに読み込まれＣＰＵによって実行されることにより、ソフトウエアとハードウエアとが協働して、画像入力部１４、画像処理部１５、検査部１６、ティーチング部１７の各機能が実現される。一方、撮像部２０は、ハードウエアとして、撮像装置（ＣＣＤカメラなど）２１、複数の光源２２、プリント基板３０を設置するステージ２３などを備え、これらはコンピュータシステム１０によって制御される。
【００２９】
撮像部２０では、互いに異なる入射角になるように設置された複数の光源（赤色光源２２Ｒ、緑色光源２２Ｇ、青色光源２２Ｂ）でプリント基板３０を照射し、撮像装置２１でカラー画像を撮影する。このとき、電子部品３１のはんだ３２，３３の傾斜角に応じて撮像装置２１に入射する反射光のスペクトルが異なるため、はんだ３２，３３の３次元形状が疑似色表現による２次元情報として画像化されることになる。同図の例では、良好なはんだ３２は大部分が青色に写り、不良なはんだ３３は大部分が赤色もしくは緑色に写ることになる。
【００３０】
このカラー画像は、画像入力部１４によってコンピュータシステム１０に取り込まれる。そして、画像処理部１５が、Ｒ，Ｇ，Ｂそれぞれの色フィルタを用いて画像中の検査箇所（はんだ部分）の領域抽出を行う。この色フィルタは、検査箇所ごとの明度や色相のしきい値で構成されるパラメータの集合体である。抽出された各領域データは、検査部１６において良否判定データと比較される。これにより、はんだ状態の良否判定が行われ、その判定結果が表示装置１２に出力される。
【００３１】
上記検査処理において用いられる色フィルタおよび良否判定データは、あらかじめティーチング部１７で生成され、記憶装置１１に格納されるものである。ティーチング部１７では、良品サンプルもしくは不良品サンプルの教師画像から、適切な領域抽出を行うための色フィルタの生成、および、適切な良否判定を行うための良否判定データの生成を行う。この処理をティーチング処理という。
【００３２】
通常、１つのプリント基板上には複数の電子部品が実装されている。そして、個々の部品ごとに、はんだの面積や形状および光源との相対位置が異なるため、領域抽出のための色フィルタのパラメータを異ならせる必要がある。したがって、ティーチング処理においては、それぞれの部品領域で適切な領域抽出ができるように数十個のパラメータの最適な値の組み合わせを決定する必要がある。これは、典型的な組み合わせ最適化問題となる。
【００３３】
そこで、本実施形態では、ティーチング部１７における色フィルタの各パラメータの決定処理に最適化問題計算装置を利用している。また、最適化問題計算のアルゴリズムにはＧＡ（遺伝的アルゴリズム）を用いている。
【００３４】
（最適化問題計算装置の構成）
図２は、ティーチング部１７に実装される最適化問題計算装置の機能構成を示すブロック図である。
【００３５】
最適化問題計算装置１００は、入力部１０１、計算部１０２、依存関係生成部１０３、表示・編集部１０４、Ｐテーブル１０５、Ｓテーブル１０６、Ｒテーブル１０７などから構成される。これらの機能は、最適化問題計算プログラムによって実現されるものである。
【００３６】
入力部１０１は、最適化問題計算のパラメータの初期値（初期個体）や初期条件（初期制約条件）、および、パラメータ間の依存関係の初期値を入力するためのユーザーインターフェイスを使用者に提供する初期値入力手段として機能する。これらの初期値および初期条件は、入力装置１３またはファイルから入力される。
【００３７】
パラメータとしては、色フィルタの種類・数、各部品領域ごと及び各色ごとの色フィルタの明度・色相のしきい値などが想定される。また、パラメータの制約条件としては、パラメータがとり得る値の範囲（最大値および最小値）、交叉のルール、突然変異の起きる確率などが想定される。また、パラメータ間の依存関係としては、あるパラメータの値の変化が他のパラメータの値の増加または減少に与える影響（変化量や変化率など）、交叉のときに同時に入れ替えるべきパラメータの組（ブロック）などが想定される。なお、パラメータ、その初期個体、初期制約条件および依存関係として何を採用するかは、装置構成、検査対象、検査項目などの最適化問題の具体的内容に応じて適宜選択すればよい。
【００３８】
計算部１０２は、複数のパラメータの組み合わせ最適化問題の解を、解候補の更新および評価を繰り返すことによって探索する最適化問題計算手段として機能する。計算部１０２では、入力部１０１で入力された初期個体および初期制約条件を基礎として、ＧＡによる探索処理を実行する。
【００３９】
依存関係生成部１０３は、計算部１０２での探索処理の途中における解候補に基づいてパラメータ間の依存関係を生成する依存関係生成手段として機能する。具体的には、依存関係生成部１０３では、計算部１０２で算出されたある世代における複数の解候補のなかから評価（適応度）の高いものをサンプルとして抽出し、そのサンプルにおけるパラメータの値の類似度や変化の相関などから、パラメータ間の依存関係を推定する。本実施形態では、ベイジアンネットを構築するためのＫ−２アルゴリズムを用いて、パラメータ間の依存関係を構築することとした（Ｋ−２アルゴリズムの詳細はＣｏｏｐｅｒらによる文献「Ａ  Ｂａｙｅｓｉａｎ  ｍｅｔｈｏｄ  ｆｏｒ  ｔｈｅ  ｉｎｄｕｃｔｉｏｎ  ｏｆ  ｐｒｏｂａｂｉｌｉｓｔｉｃ  ｎｅｔｗｏｒｋ  ｆｒｏｍ  Ｄａｔａ，  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ，  Ｖｏｌ．９，  ｐｐ．３０９−３４７  （１９９２）」などを参照）。
【００４０】
表示・編集部１０４は、依存関係生成部１０３で生成された依存関係を表示装置１２に表示し、かつ、その依存関係を画面上で編集するためのユーザーインターフェイスを使用者に提供する依存関係編集手段として機能する。ここでは、重みつき有向木などのグラフ構造により依存関係をグラフィカルに表示する。また、入力装置（特に、マウスなどのポインティングデバイス）１３を用いて、画面上に表示されたグラフ構造の構成要素（ノードやリンク）を対話的に編集可能とする。
【００４１】
Ｐテーブル１０５は、組み合わせ最適化問題の計算に使用するパラメータおよびその制約条件を格納するパラメータ記憶手段である。図３はＰテーブル１０５の構成例を示している。同図において、「ＰａｒａｍＮ（Ｎ＝１，２，３．．）」はパラメータである。各パラメータは、ＧＡにおける遺伝子に対応する。「ＰａｒａｍＮａｍｅ」は使用者が任意に付けることができる、パラメータの名称である。この例ではＰａｒａｍ１には「ＴｏｐＦｉｌｔｅｒ＿Ｒ」という名称が付されている。「ＣｏｄｅＭａｘ」はＧＡにおける個体の、遺伝子（パラメータ）がとり得る値の最大値であり、「ＣｏｄｅＭｉｎ」はＧＡにおける個体の、遺伝子（パラメータ）がとり得る値の最小値である。ＣｏｄｅＭａｘとＣｏｄｅＭｉｎはＧＡの世代交代時における制約条件の役割を果たす。この例ではＰａｒａｍ１は１３５以上２５５以下の値をとることができる。「ＣｏｄｅＰｏｓｉｔｉｏｎ」は遺伝子の配列における位置を示すポインタである。この例ではＰａｒａｍ１は０〜７ｂｉｔに格納され、Ｐａｒａｍ２は８〜１５ｂｉｔに格納されている。「ＢｌｏｃｋＮ（Ｎ＝１，２，３．．）」はＧＡにおけるブロックを形成する要素を表し、ＴＲＵＥならブロックの要素、ＦＡＬＳＥなら要素でないと見なす。ブロックは複数定義することができる。たとえばＢｌｏｃｋ１の定義に従えば、個体間の交叉を行う際に、Ｐａｒａｍ１とＰａｒａｍ３の遺伝子（パラメータ）が一緒に入れ替えられることとなる。
【００４２】
Ｓテーブル１０６は、解候補およびその適応度などの個体情報を格納するための解候補記憶手段である。図４はＳテーブル１０６の構成例を示している。同図において、「ＰａｒａｍＮ（Ｎ＝１，２，３．．）」は、パラメータである。「Ｆｉｔｎｅｓｓ」は、ＧＡにおける解候補の適応度である。「ＳｏｌｕｔｉｏｎＮ（Ｎ＝１，２，３．．）」は、ＧＡにおける個体（解候補）である。この例では、Ｓｏｌｕｔｉｏｎ１はＰａｒａｍ１＝２４０、Ｐａｒａｍ２＝５５．．なので、Ｓｏｌｕｔｉｏｎ１＝（２４０，５５，．．．．）と表記される。
【００４３】
Ｒテーブル１０７は、依存関係を格納するための依存関係記憶手段である。図５はＲテーブル１０７の構成例を示している。同図において、「Ｒｅｌａｔｉｏｎ」はパラメータ間の関係を表し、「Ｉｎｆｌｕｅｎｃｅ」は関係の強さ（影響度）を表す。なお、ＰｒＮはＰテーブル１０５のＰａｒａｍＮに対応し、ＢｌＮはＰテーブル１０５のＢｌｏｃｋＮに対応している。「ＲｕｌｅＮ（Ｎ＝１，２，３…）」は依存関係のルールを示す。Ｒｕｌｅ１ではＰｒ３がＰｒ１に従属することを定義し、Ｒｕｌｅ２ではＰｒ２とＰｒ５の値が等しいことを定義し、Ｒｕｌｅ３ではＰｒ２がＢｌ２に従属することを定義している。ここで、パラメータＡがパラメータＢに従属するとは、パラメータＢの値が変化したときに一緒にパラメータＡの値も変化する関係をいう。このときの変化量の比率を表すものが「Ｉｎｆｌｕｅｎｃｅ」である。したがって、Ｒｕｌｅ１では、Ｐｒ１が変化したときに、その１０％の比率で、Ｐｒ３も変化することとなる。
【００４４】
（最適化問題計算装置の処理）
次に、上記構成の最適化問題計算装置における処理の流れについて説明する。
図６は、最適化問題計算方法の処理全体の流れを示すフローチャートである。
【００４５】
プログラムを起動すると、入力部１０１が、パラメータの初期個体や初期制約条件および依存関係の初期値を入力するためのユーザーインターフェイスを表示装置１２に表示し、使用者による入力を促す。使用者がキーボードやマウスなどの入力装置１３を操作して初期値等を入力したり、初期値等が記述されたファイルを指定すると、それらの内容が読み込まれ、計算部１０２に引き渡される（ステップＳ２０１）。
【００４６】
そして、計算部１０２は、制約条件と依存関係を考慮しつつ、初期個体に交叉を施して新たな世代の個体（解候補）を生成するとともに、それぞれの解候補の適応度を算出する（ステップＳ２０２）。計算部１０２は、算出した解候補およびその適応度を依存関係生成部１０３に引き渡す。
【００４７】
依存関係生成部１０３では、解候補および適応度に基づいてパラメータ間の依存関係を生成する（ステップＳ２０３）。詳しくは、依存関係生成部１０３は、図７のフローチャートに示すように、まず計算部１０２から受け取った解候補および適応度をＳテーブル１０６に格納する（ステップＳ４０１）。次に、更新されたＳテーブル１０６を参照して、パラメータ間の依存関係を推定する（ステップＳ４０２）。推定された依存関係のうち、パラメータ間の従属関係などはＲテーブル１０７に格納され（ステップＳ４０３）、ブロック定義はＰテーブル１０５に格納される（ステップＳ４０４）。そして、依存関係生成部１０３は、Ｐテーブル１０５とＲテーブル１０７の内容を表示・編集部１０４に引き渡す（ステップＳ４０５）。
【００４８】
表示・編集部１０４では、Ｐテーブル１０５とＲテーブル１０７の内容に基づいて、依存関係と解候補を表示装置１２に出力する（図６；ステップＳ２０４）。
【００４９】
図８は、依存関係と解候補の表示例を示している。ここでは、表示画面の左側に最も適応度の高い解候補（Ｓｏｌｕｔｉｏｎ）の内容が表示されている。「ｓｔｏｐ」は計算処理を強制終了させるボタンであり、「ｒｅｊｅｃｔ」は表示中の解候補を破棄するボタンである。また、「ＮｕｍｂｅｒｏｆＣａｌｃ」は世代数であり、「ＢｅｓｔＳｃｏｒｅ」は適応度である。
【００５０】
一方、画面右側には、パラメータ間の依存関係が重みつき有向木によりグラフィカルに表示されている。本実施形態では、以下のような表示方法で依存関係を表現している。
【００５１】
（１）それぞれのノードがパラメータに対応する。ノードに付された数字がパラメータ番号を表す。
（２）ノードの円の大きさがパラメータの最大値を表す。
（３）重なっているノードはブロック化されているパラメータを表す。
（４）リンクがパラメータ間の従属関係を表す。
（５）リンクの太さが関係の強さ（影響度）を表す。
【００５２】
このように依存関係をモデル化することによって、最適化問題計算で用いる複数のパラメータの関係を視覚化することができ、使用者はパラメータ間の関係を容易に理解可能となる。図８の例では、Ｐａｒａｍ１とＰａｒａｍ３の間に強い従属関係があること、Ｐａｒａｍ２とＰａｒａｍ５がブロック化されていること、Ｐａｒａｍ４はＰａｒａｍ２とＰａｒａｍ５からなるブロックおよびＰａｒａｍ３に従属していること、などを直感的に把握することができる。また、Ｐａｒａｍ１とＰａｒａｍ３の依存関係が強く、かつ他のパラメータと関連しないので、これら２つのパラメータをブロックとして扱ったほうが良いことなど、依存関係に加えるべき修正に関しても容易に見出すことができる。
【００５３】
使用者は、この画面上で依存関係を対話的に編集（修正）することができる（ステップＳ２０５，Ｓ２０６）。そのためのＧＵＩ（グラフィカルユーザインターフェイス）としては、以下のものが提供されている。
【００５４】
（１）「ｃｏｎｎｅｃｔ」ボタンを押下した後、２つのノードを選択すると、先に選択したノードから後に選択したノードに向かうリンクが生成される。これにより、パラメータ間の従属関係を追加することができる。
【００５５】
（２）リンクを選択した後、「ｃｕｔ」ボタンを押下すると、リンクが削除される。これにより、パラメータ間の従属関係を解除することができる。
【００５６】
（３）ノードを選択した後、「ｓｉｚｅ」ボタンを押下すると、入力ダイアログが表示される。このダイアログにてノードの円の大きさを変更できる。これにより、パラメータの最大値を変更することができる。
【００５７】
（４）リンクを選択した後、「ｓｉｚｅ」ボタンを押下すると、入力ダイアログが表示される。このダイアログにてノードの太さを変更できる。これにより、パラメータ間の関係の強さを変更することができる。
【００５８】
（５）ノードをドラッグして他のノードと重ねると、パラメータをブロック化できる。逆に、重なっているノードを離すと、ブロックを解除できる。
【００５９】
このようなユーザインターフェイスにより簡単かつ直感的な操作で依存関係を編集し、パラメータ定義などに反映させることができる。
【００６０】
依存関係の編集作業が完了すると、表示・編集部１０４は、編集された依存関係を依存関係生成部１０３に引き渡す。依存関係生成部１０３では、図９のフローチャートに示すように、編集された依存関係のうち従属関係と関係の強さに関する情報をＲテーブル１０７に格納する（ステップＳ５０１）。次に、編集された依存関係のうちパラメータの最大値とブロック定義に関する情報に基づいて、パラメータを再定義し（ステップＳ５０２）、その内容をＰテーブル１０５に格納する（ステップＳ５０３）。そして、依存関係生成部１０３は各テーブルの内容を計算部１０２に引き渡す（ステップＳ５０４）。
【００６１】
上記処理の後、使用者が定めた終了条件を満たしていれば（解の適合度がしきい値を超えたか、世代数の上限に達したかなど）、計算処理を終了し、そうでなければ、再びステップＳ２０２に戻り探索処理を再開する（図６；ステップＳ２０７）。後者の場合、計算部１０２では作業者により編集された依存関係を考慮しつつ最適化問題の再計算が実行されることになる。
【００６２】
パラメータ間の依存関係は、ＧＡの計算過程における解候補（個体）の更新の仕方に直接影響を及ぼすものである。本実施形態では、探索処理の途中の段階での依存関係をグラフ構造で表示することによって、使用者に探索処理の計算過程の具体的内容を把握させることができる。しかも、ＧＵＩ（グラフィカルユーザーインターフェイス）を用いて依存関係を使用者に直接編集させ、以降の探索処理では編集後の依存関係を考慮しつつ計算を行うので、使用者の意図を最適化問題の計算過程に簡単かつ的確に反映させることができる。その結果として、使用者の意図する方向に探索処理が進むので、最適解の適応度の向上および計算時間の短縮（少ない世代での収束）を図ることが可能となる。
【００６３】
そして、本実施形態では、このような最適化問題計算装置をティーチング処理に応用したので、適切な色フィルタを高速に求めることができ、ティーチング処理の簡易化および高精度化を図ることができる。さらに、その結果として、はんだ状態の良否判定を高精度に行うことが可能となる。
【００６４】
なお、図６のフローチャートでは、最適化問題計算（ステップＳ２０２）、依存関係生成（ステップＳ２０３）、依存関係表示・編集（ステップＳ２０４，Ｓ２０６）の各処理を順番に実行しているが、最適化問題計算処理と依存関係表示・編集処理とを並列的に実行してもよい。また、最適化問題計算処理において複数回世代交代を行った後、依存関係生成処理を実行しても構わない。
【００６５】
（第２の実施形態）
本発明の第２の実施形態は、第１の実施形態の最適化問題計算装置に、解候補の評価を対話的に編集可能な機能を追加したものである。また、本実施形態では、ＧＡにエリート戦略と突然変異を実装している。その他の構成部分については第１の実施形態のものと同様であるので、ここでは詳しい説明を省略する。
【００６６】
図１０は、本実施形態のＰテーブルの構成例を示す。「ＥｌｉｔｅＮ」、「ＭｕｔａｔｉｏｎＲａｔｅ」以外の項目については第１の実施形態のものと同じである。「ＥｌｉｔｅＮ（Ｎ＝１，２，３．．）」はＧＡにおけるエリート戦略に使用する個体を表す。ここでは、エリート個体としてＥｌｉｔｅ１＝（２４１，６８，１７７，１９８．．．．）が示されている。「ＭｕｔａｔｉｏｎＲａｔｅ」はパラメータごとの突然変異の起きる確率を表す。
【００６７】
図１１は、本実施形態の最適化問題計算方法の処理全体の流れを示すフローチャートである。
【００６８】
ステップＳ６０１では、図６のステップＳ２０１と同様にして、パラメータの初期個体や初期制約条件および依存関係の初期値の入力を行う。本実施形態では初期条件としてＭｕｔａｔｉｏｎＲａｔｅを入力することができる。
【００６９】
ステップＳ６０２では、図６のステップＳ２０２と同様にして、最適化計算処理が実行される。ステップＳ６０３〜Ｓ６０６の処理は、図６のステップＳ２０３〜Ｓ２０６とほぼ同様である。
【００７０】
図１２は、依存関係と解候補の表示例を示している。画面右側の依存関係の表示方法および編集用ＧＵＩの仕様については第１の実施形態のものと同様であるが、画面左側の解候補の表示方法が異なっている。
【００７１】
画面左側には、解候補の全部または一部が適応度の高い順にリスト表示される。また、対話的に解候補の評価（適応度）を編集可能なＧＵＩが設けられており、使用者は必要に応じて解候補の評価を行うことができる（図１１；ステップＳ６０７，Ｓ６０８）。「Ｎｏ」のエディットボックスに解候補の番号を、「Ｆｉｔｎｅｓｓ」のエディットボックスに解候補の適応度を入力し、「Ｃｈａｎｇｅ」ボタンを押下することによって、解候補の評価を変更することが可能である。この例では、３番目の解候補「Ｓ３」の適応度を６３から６１に下げている。
【００７２】
使用者によって解候補の評価が変更されると、依存関係生成部１０３は必要に応じてＰテーブルの内容を更新する。たとえば、解候補Ｘの適応度があらかじめ設定されたしきい値以上に変更された場合には、解候補Ｘをエリート個体として保存（ＰテーブルのＥｌｉｔｅＸに解候補Ｘの内容を記録）したり、２回連続して解候補Ｘの適応度が２０％以上下げられた場合には、解候補Ｘの突然変異の確率を０．０２高く設定したり、というような処理が考えられる。なお、これらの処理は一例にすぎず、解候補の評価の変更内容をパラメータ定義の内容に反映できる処理であれば種々のものを採用可能である。
【００７３】
本実施形態によれば、第１の実施形態と同様の作用効果に加え、次のような優れた作用効果を奏する。
【００７４】
すなわち、本実施形態では、ＧＡにエリート戦略および突然変異を用いるので、適応度の高いエリート個体が交叉によって破壊されることを防止することができる。また、突然変異を併用したことにより、エリート戦略による局所解への落ち込みを回避することができる。
【００７５】
また、解候補の評価を使用者に編集させ、その編集結果をパラメータ定義に反映することとしたので、最適解の適応度のさらなる向上と計算時間のさらなる短縮を図ることが可能となる。
【００７６】
（第３の実施形態）
本発明の第３の実施形態は、第１の実施形態の最適化問題計算装置に、グラフ構造の構成要素に任意のラベルを付与可能な機能を追加したものである。その他の構成部分については第１の実施形態のものと同様であるので、ここでは詳しい説明を省略する。
【００７７】
図１３は、本実施形態のＰテーブルの構成例を示す。「ＰａｒａｍＬａｂｅｌＮ」、「ＢｌｏｃｋＬａｂｅｌＮ」以外の項目については第１の実施形態のものと同じである。「ＰａｒａｍＬａｂｅｌＮ（Ｎ＝１，２，３．．）」はパラメータ「ＰａｒａｍＮ」に付与されたラベルのラベル名を表し、「ＢｌｏｃｋＬａｂｅｌＮ（Ｎ＝１，２，３．．）」はブロック「ＢｌｏｃｋＮ」に付与されたラベルのラベル名を表す。なお、「ＢｌｏｃｋＮ」のラベル名は「ＢｌｏｃｋＬａｂｅｌＮ」と「Ｐａｒａｍ１」が交わるセルに記述し、当該行のその他のセルは空白とする。
【００７８】
図１４は、本実施形態における依存関係と解候補の表示例を示している。画面左側の解候補の表示態様については第１の実施形態のものと同様であるが、画面右側の依存関係の表示方法および編集用ＧＵＩの仕様が異なっている。
【００７９】
画面右側には、「ｌａｂｅｌ」ボタンが設けられる。ノード（パラメータ）またはノードの集合（パラメータのブロック）を選択した後、「ｌａｂｅｌ」ボタンを押下すると、画面上にラベル入力ダイアログが表示される。このダイアログにて当該パラメータまたはブロックに付与するラベル名を入力することができる。
【００８０】
使用者によってラベル名の入力が行われると、依存関係生成部１０３はそのラベル名をＰテーブルに記録する。同図の例では、Ｐａｒａｍ６に「ＩＣの青」というラベル名を付与しているので、ＰテーブルのＰａｒａｍＬａｂｅｌ６に「ＩＣの青」が記録されることになる。
【００８１】
本実施形態によれば、第１の実施形態と同様の作用効果に加え、次のような優れた作用効果を奏する。すなわち、グラフ構造の構成要素に任意のラベルを付与可能なユーザーインターフェイスを提供したので、ラベルを付与することにより構成要素に意味付けをすることができ、依存関係の編集作業の作業性が向上する。
【００８２】
なお、本実施形態のラベル付与機能を第２の実施形態に組み合わせることも好ましい。また、本実施形態では、グラフ構造の構成要素のうちノードにのみラベルを付与するようにしたが、リンクにラベルを付与できるようにしてもよい。
【００８３】
【発明の効果】
本発明によれば、使用者の意図を最適化問題の計算過程に簡単かつ的確に反映することができる。また、最適解の適応度の向上および計算時間の短縮を図ることができる。
【図面の簡単な説明】
【図１】基板はんだ検査装置の構成を示すブロック図である。
【図２】最適化問題計算装置の機能構成を示すブロック図である。
【図３】Ｐテーブルの構成例を示す図である。
【図４】Ｓテーブルの構成例を示す図である。
【図５】Ｒテーブルの構成例を示す図である。
【図６】最適化問題計算方法の処理全体の流れを示すフローチャートである。
【図７】依存関係生成処理の流れを示すフローチャートである。
【図８】依存関係と解候補の表示例を示す図である。
【図９】依存関係更新処理の流れを示すフローチャートである。
【図１０】第２の実施形態におけるＰテーブルの構成例を示す図である。
【図１１】第２の実施形態における最適化問題計算方法の処理全体の流れを示すフローチャートである。
【図１２】第２の実施形態における依存関係と解候補の表示例を示す図である。
【図１３】第３の実施形態におけるＰテーブルの構成例を示す図である。
【図１４】第３の実施形態における依存関係と解候補の表示例を示す図である。
【符号の説明】
１  基板はんだ検査装置
１０  コンピュータシステム
１１  記憶装置
１２  表示装置
１３  入力装置
１４  画像入力部
１５  画像処理部
１６  検査部
１７  ティーチング部
２０  撮像部
２１  撮像装置
２２  光源
２２Ｒ  赤色光源
２２Ｇ  緑色光源
２２Ｂ  青色光源
２３  ステージ
３０  プリント基板
３１  電子部品
３２  良好なはんだ
３３  不良なはんだ
１００  最適化問題計算装置
１０１  入力部
１０２  計算部
１０３  依存関係生成部
１０４  表示・編集部
１０５  Ｐテーブル
１０６  Ｓテーブル
１０７  Ｒテーブル
【図１】
2005025445.tif 000003
【図２】
2005025445.tif 000004
【図３】
2005025445.tif 000005
【図４】
2005025445.tif 000006
【図５】
2005025445.tif 000007
【図６】
2005025445.tif 000008
【図７】
2005025445.tif 000009
【図８】
2005025445.tif 000010
【図９】
2005025445.tif 000011
【図１０】
2005025445.tif 000012
【図１１】
2005025445.tif 000013
【図１２】
2005025445.tif 000014
【図１３】
2005025445.tif 000015
【図１４】
2005025445.tif 000016