(57)【要約】【課題】  ＳＡＴ解答装置の探索機構に関する欠点及び問題点を軽減又は解消すること。【解決手段】  一態様では、ブール充足可能性（ＳＡＴ）解答装置におけるイベントをスケジューリングする方法は、ＳＡＴ問題に対する有効な解を探索する際に、１以上の１次統計値を収集し、探索の際に前記１以上の１次統計値から１以上の２次統計値を導出し、前記１以上の２次統計値に従って、探索中のイベントをスケジューリングする。【選択図】  図１
2005293575.tif 000002
【特許請求の範囲】
【請求項１】
ブール充足可能性（ＳＡＴ）解答装置におけるイベントをスケジューリングするシステムであって：
ＳＡＴ問題に対する有効な解を探索する際に、１以上の１次統計値を収集する第１エンジン；
探索の際に前記１以上の１次統計値から１以上の２次統計値を導出する第２エンジン；
前記１以上の２次統計値に従って、探索中のイベントをスケジューリングする第３エンジン；
を有することを特徴とするシステム。
【請求項２】
前記１次統計値の第１のものが特定のイベント以来のコンフリクトに関する第１の数を示し、前記１次統計値の第２のものが前記特定のイベント以来の決定に関する第２の数を示す
ことを特徴とする請求項１記載のシステム。
【請求項３】
前記２次統計値の少なくとも１つが、コンフリクトと決定の比率（ＣＤＲ）である
ことを特徴とする請求項１記載のシステム。
【請求項４】
ブール充足可能性（ＳＡＴ）解答装置におけるイベントをスケジューリングする方法であって：
ＳＡＴ問題に対する有効な解を探索する際に、１以上の１次統計値を収集し；
探索の際に前記１以上の１次統計値から１以上の２次統計値を導出し；
前記１以上の２次統計値に従って、探索中のイベントをスケジューリングする；
ことを特徴とする方法。
【請求項５】
前記１次統計値の第１のものが特定のイベント以来のコンフリクトに関する第１の数を示し、前記１次統計値の第２のものが前記特定のイベント以来の決定に関する第２の数を示す
ことを特徴とする請求項４記載の方法。
【請求項６】
前記２次統計値の少なくとも１つが、コンフリクトと決定の比率（ＣＤＲ）である
ことを特徴とする請求項４記載の方法。
【請求項７】
記憶媒体に格納され、ブール充足可能性（ＳＡＴ）解答装置におけるイベントをスケジューリングするための論理装置であって：
ＳＡＴ問題に対する有効な解を探索する際に、１以上の１次統計値を収集し；
探索の際に前記１以上の１次統計値から１以上の２次統計値を導出し；
前記１以上の２次統計値に従って、探索中のイベントをスケジューリングする；
ことを実行させる論理装置。
【請求項８】
前記１次統計値の第１のものが特定のイベント以来のコンフリクトに関する第１の数を示し、前記１次統計値の第２のものが前記特定のイベント以来の決定に関する第２の数を示す
ことを特徴とする請求項７記載の論理装置。
【請求項９】
前記２次統計値の少なくとも１つが、コンフリクトと決定の比率（ＣＤＲ）である
ことを特徴とする請求項７記載の論理装置。
【請求項１０】
ブール充足可能性（ＳＡＴ）解答装置におけるイベントをスケジューリングするシステムであって：
ＳＡＴ問題に対する有効な解を探索する際に、１以上の１次統計値を収集する手段；
探索の際に前記１以上の１次統計値から１以上の２次統計値を導出する手段；
前記１以上の２次統計値に従って、探索中のイベントをスケジューリングする手段；
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にＳＡＴ解答装置に関し、特にＳＡＴ解答装置におけるイベントをスケジューリングすることに関連する。
【背景技術】
【０００２】
充足可能性（ＳＡＴ：ｓａｔｉｓｆｉａｂｉｌｉｔｙ）解答装置は、一般に多数の用途を有する。例えば、ＳＡＴ解答装置は、自動テストパターン生成（ＡＴＰＧ）、正式な検査、論理の最適化、物理的設計及びその他のＥＤＡ用途のような電子設計オートメーション（ＥＤＡ）の用途にしばしば使用される。ＳＡＴ解答装置は典型的には後戻り（ｂａｃｋｔｒａｃｋｉｎｇ）アルゴリズムを利用し、後戻りアルゴリズムは、非時系列的な後戻り及び競合学習と共に、デイビス・プットマン・ロウジマン・ラブランド（ＤＰＬＬ）手順に基づく。更に、ＳＡＴ解答装置は、典型的には、ブール拘束伝搬（ＢＣＰ：Ｂｏｏｌｅａｎ  Ｃｏｎｓｔｒａｉｎｔ  Ｐｒｏｐａｇａｔｉｏｎ），動的な再起動、動的な変数順序及び条項データベースの効率的な管理等に関する技術を使用する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、ＳＡＴ解答装置の探索機構に関する欠点及び問題点を軽減又は解消することを目的とする。
【課題を解決するための手段】
【０００４】
本発明の一態様では、ブール充足可能性（ＳＡＴ）解答装置におけるイベントをスケジューリングする方法は、ＳＡＴ問題に対する有効な解を探索する際に、１以上の１次統計値を収集し、探索の際に前記１以上の１次統計値から１以上の２次統計値を導出し、前記１以上の２次統計値に従って、探索中のイベントをスケジューリングする。
【発明の効果】
【０００５】
本発明の特定の態様は、１以上の技術的利点を与える。特定の態様は、ＳＡＴ問題に対する有効な解（ソリューション）を探索することに関する時間的制約を減らすかもしれない。特定の態様は、ＳＡＴ問題に対する有効な解を探索することに関する処理条件を減らすかもしれない。特定の態様は、ＳＡＴ問題の有効な解を探索する際に、ＳＡＴ問題に対する解を列挙する特定の変数順序の有効性をより正確に評価する１以上のメトリックを提供するかもしれない。特定の態様は、ＳＡＴ問題に対する有効な解を探索するための特定の探索（サーチ）ツリーの有効性をより正確に評価する１以上のメトリックを提供するかもしれない。特定の態様は、ＳＡＴ問題の有効な解を探す効率を向上させるため、ＳＡＴ解答装置におけるイベント（リスタートや、変数の並べ換え等）をより良好にスケジューリングする機能を提供するかもしれない。
【０００６】
ある態様は、これらの利点の全部又は一部を与えてもよいし、全く与えなくてもよい。ある態様は１以上の他の利点を与えるかもしれず、それらの１以上は明細書、図面及び請求の範囲から当業者に明白になるであろう。
【発明を実施するための最良の形態】
【０００７】
本発明並びにその特徴及び利点を更に完全に理解するため、添付図面に関連する以下の説明が参照される。
【０００８】
以下、本発明の実施例によるブール充足可能性解答装置におけるイベントをスケジューリングするシステム、方法及び論理装置が説明される。この場合において、論理装置なる語は、ソフトウエアで構成される論理プログラムや、ハードウエアで構成される論理回路を含む概念である。
【０００９】
図１は、ＳＡＴ解答装置のイベントをスケジューリングするシステム例を示す。システム１０は、コンピュータシステム１２、ＳＡＴ解答装置１４及びＳＡＴデータ１６を含む。コンピュータシステム１２は、ＳＡＴ解答装置１４にユーザが入力を与えることを可能にし、及びＳＡＴ解答装置１４からユーザが出力を受信可能にする。以下に説明されるように、ＳＡＴ解答装置１４は、ＳＡＴ問題に対する有効な解を探索してもよい。ＳＡＴ解答装置１４は、その有効な解を探すためにＳＡＴデータを利用する。ＳＡＴ問題は、実領域（ｒｅａｌ  ｄｏｍａｉｎ）での１以上の問題を論理的に表現してもよい。ＳＡＴ問題に対する有効な解は、ＳＡＴ問題の総ての条項（又は制約）を満たし、ＳＡＴ問題に対する有効でない解は、そのＳＡＴ問題の１以上の条項に違反する。ＳＡＴ解答装置１４は、ＳＡＴ問題に対する有効な解を探す、ハードウエア、ソフトウエア又は双方を含んでもよい。コンピュータシステム１２、ＳＡＴ解答装置１４及びＳＡＴデータ１６は、いくぶん互いに離れているように図示及び記述されているが、コンピュータシステム１２、ＳＡＴ解答装置１４及びＳＡＴデータ１６の２以上がいくぶん互いに合成されることも本発明は想定している。限定ではない例として、特定の実施例では、ＳＡＴ解答装置１４はコンピュータシステム１２のソフトウエア要素より成り、ＳＡＴデータ１６はコンピュータシステム１２に格納されてもよい。
【００１０】
ＳＡＴ解答装置１４は、１次メトリックエンジン１８、２次メトリックエンジン２０、リスタートエンジン２２及び配列エンジン２４を含む。エンジンは、ＳＡＴ問題の有効な解を探すことに関する１以上の特定のタスクを実行する、ハードウエア、ソフトウエア又は双方を含んでもよい。ＳＡＴ解答装置１４中の要素は、いくぶん互いに離れているように図示及び記述されているが、ＳＡＴ解答装置１４の適切などの要素でもそれがいくぶん互いに合成されることも本発明は想定している。ＳＡＴ問題に対する有効な解を探索するため、ＳＡＴ解答装置１４は、ＳＡＴ問題に対する可能性ある解を列挙し、それらの解が有効か否かを判定してもよい。ＳＡＴ解答装置１４は、解が有効であるか否かを判定するのに適切ないかなる技術を用いてもよい。それらの技術の１以上は当該技術分野で周知かもしれない。特定の実施例では、ＳＡＴ解答装置１４は多少なりとも発見的に（ヒューリスティックに）解を列挙する。特定の実施例では、ＳＡＴ解答装置１４が１つの解を列挙するまで或いは可能性ある総ての解を列挙するまで、ＳＡＴ解答装置１４はＳＡＴ問題に対する解を列挙する。ＳＡＴ問題に対する解を列挙するため、ＳＡＴ解答装置１４はＳＡＴ問題の１以上の変数の各々に値を割り当ててもよい。ＳＡＴ解答装置１４は、以下に説明されるような、分岐限定法に従ってＳＡＴ問題の解を列挙してもよい。更に、ＳＡＴ解答装置１４が分岐限定法を実行する場合に、以下に更に説明されるように、ＳＡＴ解答装置１４は競合判定法及び競合分析法を使用してもよい。
【００１１】
分岐限定法によれば、ＳＡＴ解答装置１４は、特定の変数順序を決定し、その特定の変数順序に従ってＳＡＴ問題の解を列挙し始める。ＳＡＴ解答装置１４が解を列挙し終える前に、ＳＡＴ解答装置１４は、１以上の特定の基準に従って、解を列挙するのを止めて破棄するか否かを判定する。ＳＡＴ解答装置１４がその解を破棄する場合に、ＳＡＴ解答装置１４は、その解の列挙された部分を含む総ての解を破棄してもよい。列挙された解を部分的に含む総ての解は、必然的に、部分的に列挙された解と少なくとも同じ条項に違反するので、そのような解の各々を列挙せずに、及びその解がＳＡＴ問題の総ての条項を満たすか否かを判別せずに、ＳＡＴ解答装置１４はそのように動作し、そのことは、ＳＡＴ問題に対する有効な解を探索することに関する１以上の時間的又は他の制約を減らす。
【００１２】
ＳＡＴ解答装置１４は、ある解を破棄するか否かを判別するのに競合判定法を使用してもよい。競合（ｃｏｎｆｌｉｎｃｔ）に関するものは、ＳＡＴ問題の１以上の条項に対する１以上の違反を包含してもよい。そのような技法により、ＳＡＴ解答装置１４は特定の解を列挙し始め、その特定の解とＳＡＴ問題の条項との間の競合を、ＳＡＴ解答装置１４がその特定の解を列挙し終える前にＳＡＴ解答装置１４が確認したならば、列挙を中止し、その特定の解と、その特定の解の列挙された部分を含む総ての解とを破棄する。限定ではない例として、変数Ａ乃至Ｊに関するＳＡＴ問題を考察する。ＳＡＴ解答装置１４は、特定の変数順序を決定し、その特定の変数順序に従って、ＳＡＴ問題の１０個の変数に値を割り当て始めてもよい。特定の変数順序は、変数Ｊ、その後に変数Ｃ、その後に変数Ａ、その後に変数Ｂ、その後に変数Ｄ、その後に変数Ｅ、その後に変数Ｉ、その後に変数Ｆ、その後に変数Ｈ、そしてその後に変数Ｇでもよい。ＳＡＴ解答装置１４はそれに従って変数Ｊに値を割り当て、変数Ｃに値を割り当て、変数Ａに値を割り当て、変数Ｂに値を割り当て、そして変数Ｄに値を割り当ててもよい。そして、ＳＡＴ解答装置１４は残りの変数に値を割り当てずに、部分的に列挙された解がＳＡＴ問題の１以上の条項に違反するか否かを判別してもよい。解に関連するものは、列挙された解、列挙されていない解又は適切ならば双方を包含してもよい。列挙された解に関連するものは、完全に列挙された解、部分的に列挙された解又は適切ならば双方を包含してもよい。
【００１３】
部分的に列挙された解がＳＡＴ問題の全条項を満足することをＳＡＴ解答装置１４が確認すると、ＳＡＴ解答装置１４は、変数Ｅに値を割り当て、変数Ｉに値を割り当て、変数Ｆに値を割り当て、変数Ｈに値を割り当て、そして変数Ｇに値を割り当てる。ＳＡＴ解答装置１４は、完全に列挙された解がＳＡＴ問題の１以上の条項に違反するか否かを判定してもよい。一方、部分的に列挙された解がＳＡＴ問題の１以上の条項に違反することをＳＡＴ解答装置１４が確認すると、ＳＡＴ解答装置１４はその部分的に列挙された解を破棄し、残りの変数に値を割り当てない。部分的に列挙された解を含む総ての解は、その部分的に列挙された解のものと少なくとも同じ条項に必然的に違反するので、ＳＡＴ解答装置１４は、その部分的に列挙された解を含む総ての解を破棄してもよい。そのような解を個々に列挙せず、解がＳＡＴ問題の条項の総てを満たすか否かを判定せずに、ＳＡＴ解答装置１４はそのように動作し、ＳＡＴ問題に対する有効な解を探すことに関連する１以上の制約を軽減してもよい。
【００１４】
ＳＡＴ解答装置１４は競合判定法を利用して、ＳＡＴ問題の１以上の条項と解との間の１以上の競合（コンフリクト）を分析する。そのような技法によれば、ＳＡＴ解答装置１４は、ＳＡＴ問題の条項と解との間のコンフリクトを分析し、その分析により、ＳＡＴ問題に対する解が有効であるか否かを判定するための１以上の付加的な条項を生成する。ＳＡＴ解答装置１４はその付加的な条項をＳＡＴデータ１６に格納し、コンフリクトを見分けるためにその付加的な条項を（ＳＡＴ問題の当初の条項と共に）使用する。付加的な条項は、ＳＡＴ問題に対する有効な解をＳＡＴ解答装置１４がより効率的に探索することを可能にする。非限定的な例として、付加的な条項は、解が有効であるか否かを判定するのに必要な計算量を減らし、その解が有効であるか否かをＳＡＴ解答装置１４が一層効率的に判定できるようにする。
【００１５】
１次メトリックエンジン１８は、ＳＡＴ問題の解の探索中における１次統計値を収集してもよい。特定の実施例では、探索中の１次統計値は、探索中に幾分直接的に観測可能な統計値である。１次統計値の具体例は、限定されないが、以下のものを含む：（１）あるイベント以来のコンフリクト数；（２）そのイベント以来の決定回数；（３）そのイベントからの経過時間。イベントに関連するものには、開始、再起動（リスタート）、変数配列、変数の並べ換え又は適切ならばそれらの２以上の組み合わせ等が包含される。特定の実施例では、「開始」は、ＳＡＴ問題の有効な解の探索を開始することを含んでもよい。特定の実施例では、「再起動」は、ＳＡＴ問題の有効な解を探索するための第１の探索ツリーを破棄すること、及びＳＡＴ問題の有効な解を探索するための第２の探索ツリーを生成することを含んでもよい。ＳＡＴ解答装置１４は、第２の探索ツリーを用いて、ＳＡＴ問題の有効な解の探索を続けてもよい。再起動させられた探索（サーチ）では、ＳＡＴ解答装置１４は、再起動前に１以上のコンフリクト分析によりＳＡＴ解答装置１４が生成してＳＡＴデータ１６に格納した１以上の条項を使用してもよい。特定の実施例では、「変数配列」は、ＳＡＴ問題に対する解を列挙する変数順序を決定することを含んでもよい。特定の実施例では、「変数の並べ換え」は、ＳＡＴ問題に対する解を列挙する第１の変数順序を破棄し、ＳＡＴ問題に対する解を列挙する第２の変数順序を決定することを含んでもよい。イベント以来のコンフリクト数は、そのイベント以来ＳＡＴ解答装置１４が確認したコンフリクト数がどの程度多いかを示してもよい。非限定的な例として、ＳＡＴ解答装置１４は、ＳＡＴ問題に対する有効な解を探索することを再起動してもよい。再起動された探索において、ＳＡＴ解答装置１４がそのＳＡＴ問題に対する解を列挙しながら、ＳＡＴ解答装置１４は、ＳＡＴ問題の条項と解との間のコンフリクトを確認してもよい。１次メトリックエンジン１８は、その再起動以来ＳＡＴ解答装置１４が確認したコンフリクトがどの程度多いかを示す統計値を収集してもよい。
【００１６】
イベント以来の決定回数は、そのイベント以来ＳＡＴ解答装置１４が行った決定がどの程度多いかを示す。「決定」は、変数への値の割当、分岐判定その他の判定を含んでもよい。非限定的な例として、ＳＡＴ解答装置１４がＳＡＴ問題に対する有効な解を探索している間に、ＳＡＴ解答装置１４は、ＳＡＴ問題の解を列挙するための第１の変数順序を破棄し、ＳＡＴ問題の解を列挙するための第２の変数順序を決定してもよい。ＳＡＴ解答装置１４は、その第２の変数順序に従って、ＳＡＴ問題に対する解を列挙してもよい。ＳＡＴ解答装置１４が第２の変数順序に従って解を列挙する場合に、１次メトリックエンジン１８は、ＳＡＴ解答装置１４がその変数順序の並べ換え以来割り当てた値がどの程度多いかを示す統計値を収集してもよい。イベント以来の経過時間は、そのイベント以来どの程度長い時間が経過したかを示す。非限定的な例として、ＳＡＴ解答装置１４は、ＳＡＴ問題に対する有効な解の探索を再起動してもよい。ＳＡＴ解答装置１４が再起動した探索を行う場合に、１次メトリックエンジン１８は、その再起動以来どの程度長い時間が経過したかを示す統計値を収集してもよい。
【００１７】
２次メトリックエンジン２０は、ＳＡＴ問題の解を探索する場合に、１以上の１次統計値から１以上の２次統計値を導出してもよい。２次統計値は、１以上の１次統計値から導出可能な統計値でもよい。非限定的な例として、２次統計値は、コンフリクトと決定の比率（ＣＤＲ：ｃｏｎｆｌｉｃｔ−ｔｏ−ｄｅｃｉｓｉｏｎ  ｒａｔｉｏ）を含んでもよい。特定の２次統計値が説明されるが、本発明は適切ないかなる２次統計値をも包含する。特定の実施例では、ＣＤＲは、あるイベント以来のコンフリクトに関する第１の数をそのイベント以来の決定に関する第２の数で除算したものに等しい。非限定的な例として、ＳＡＴ問題の有効な解を探すために再起動させられたある時点で、ＳＡＴ解答装置１４が７５回のコンフリクトを確認し、その再起動以来２５５回の決定を行ったとすると、再起動した探索におけるその時点で、再起動探索のＣＤＲは約０．２９４である。以下に説明されるように、ＳＡＴ解答装置１４は、１以上のＣＤＲに従って、ＳＡＴ問題の有効な解を探すのにリスタートするか否かを決定してもよい。付加的に又は代替的に、ＳＡＴ解答装置１４は、１以上のＣＤＲに従って、ＳＡＴ問題の解を列挙するための変数を並べ換えるか否かを決定してもよい。
【００１８】
リスタートエンジン２２は、１以上の基準に従って、ＳＡＴ問題に対する解の探索を再起動する。特定の実施例では、リスタートエンジン２２は、１以上のＣＤＲに従って、探索（サーチ）を再起動してもよい。非限定的な例として、ＳＡＴ問題に対する有効な解についての第１のサーチの間に、１次メトリックエンジン１８は、その第１サーチの開始以来のコンフリクト数及び決定数を示す、第１サーチにおける１次統計値を収集してもよい。１次メトリックエンジン１８がこれらの統計値を収集する場合に、２次メトリックエンジン２０が、上述したような、コンフリクト数及び決定数によるＣＤＲを、進行しながら（ｏｎ−ｇｏｉｎｇ  ｂａｓｅ）導出してもよい。ＣＤＲは、ＳＡＴ解答装置１４がコンフリクトを確認して決定を行うような第１サーチの間に変わってもよい。リスタートエンジン２２はＣＤＲを監視し、そのＣＤＲが所定値に達すると、ＳＡＴ解答装置１４にその第１サーチ内容を破棄させ、ＳＡＴ問題の有効な解についての第２サーチを開始させてもよい。従って、特定の実施例では、ＳＡＴ解答装置１４は、以下のアルゴリズムに従って再起動を予定（スケジューリング）してもよい。
【００１９】
【数１】
2005293575.tif 000003
配列エンジン２４は、ＳＡＴ問題に対する解を列挙するための変数順序を決定する。更に、配列エンジン２４は、１以上の基準に従って、ＳＡＴ問題に対する解を列挙するための第１の変数順序を破棄し、ＳＡＴ問題に対する解を列挙する第２の変数順序を決定してもよい。特定の実施例では、配列エンジン２４は、１以上のＣＤＲに従って、ＳＡＴ問題に対する解を列挙するための変数を並べ換えてもよい。非限定的な例として、ＳＡＴ問題に対する有効な解の探索中に、配列エンジン２４はＳＡＴ問題に対する解を列挙するための第１の変数順序を決定してもよい。ＳＡＴ解答装置１４が第１の変数順序に従ってＳＡＴ問題に対する解を列挙し、その解が有効か否かを判定する場合に、１次メトリックエンジン１８は、その変数順序以来のコンフリクト数及び決定数を示す、そのサーチに関する１次統計値を収集してもよい。１次メトリックエンジン１８がこれらの統計値を抽出する場合に、２次メトリックエンジン２０は、上述したようなコンフリクト数及び決定数によるＣＤＲを、進行しながら（オンゴーイング・ベースで）導出してもよい。ＣＤＲは、ＳＡＴ解答装置１４がコンフリクトを確認して決定を行うような第１サーチ中に変わってもよい。配列エンジン２４はＣＤＲをモニタし、ＣＤＲが所定値に達すると、その第１の変数順序を破棄し、ＳＡＴ問題似対する解を列挙するための第２の変数順序を決定してもよい。
【００２０】
従って、特定の実施例では、ＳＡＴ解答装置１４は以下のアルゴリズムによって変数の並べ換えを予定してもよい。
【００２１】
【数２】
2005293575.tif 000004
図２は、ＳＡＴ解答装置１４におけるイベントをスケジューリングする方法例を示す。ステップ１００にて、ＳＡＴ解答装置１４は、ＳＡＴ問題に対する有効な解についての第１の探索（サーチ）を開始する。ステップ１０２では、ＳＡＴ解答装置１４が第１のサーチを実行する場合に、１次メトリックエンジン１８は、ＳＡＴ解答装置１４が第１サーチを開始して以来のコンフリクト数及び決定数を示す、第１サーチにおける１次統計値を収集する。ステップ１０４では、２次メトリックエンジン２０がこれら１次統計値からＣＤＲを導出する。ステップ１０６では、リスタートエンジン２２がＣＤＲを監視する。ステップ１０８では、ＣＤＲが所定値に到達したならば、リスタートエンジン２２は、ＳＡＴ解答装置１４に第１サーチ結果を破棄させ、ＳＡＴ問題に対する有効な解についての第２サーチを開始させ、この時点で本方法は終了する。所定値は予め定められた値でもよいし、ＳＡＴ問題に対する有効な解の探索で、非能率性に関する受け入れられないレベルに対応してもよい。図２に示される方法は、ＳＡＴ解答装置１４がＳＡＴ問題に対する有効な解を探索しながら反復されてもよい。図２に示される方法では特定のステップが特定の順序でなされるように図示及び説明されたが、本発明は、図２に示される方法の適切などのステップも適切ないかなる順序で生じてもよいことを想定している。
【００２２】
図３は、ＳＡＴ解答装置１４におけるイベントをスケジューリングする別の方法を示す。ステップ２００では、ＳＡＴ問題に対する有効な解を探索する間に、配列エンジン２４は、そのＳＡＴ問題に対する解を列挙する第１の変数順序を決定する。ステップ２０２では、ＳＡＴ解答装置１４は、第１の変数順序に従って、ＳＡＴ問題に対する解を列挙し、その解が有効であるか否かを判定する。ステップ２０４では、ＳＡＴ解答装置１４がＳＡＴ問題に対する解を列挙し、その解が有効であるか否かを判定する場合に、１次メトリックエンジン１８が、その変数順序以来のコンフリクト数及び決定数を示すそのサーチにおける１次統計値を収集する。ステップ２０６では、２次メトリックエンジン２０がこれらの１次統計値からＣＤＲを導出する。ステップ２０８では、配列エンジン２４はそのＣＤＲをモニタする。ステップ２１０では、そのＣＤＲが所定値に達すると、配列エンジンは第１の変数順序を破棄し、ＳＡＴ問題に対する解を列挙する第２の変数順序を決定する。所定値は予め定められた値でもよいし、ＳＡＴ問題に対する有効な解の探索における非能率性に関する許容できないレベルに関連してもよい。ステップ２１２では、ＳＡＴ解答装置１４はその第２の変数順序に従って解を列挙し、その時点で本方法は終了する。図３に示される方法は、ＳＡＴ解答装置１４がＳＡＴ問題に対する有効な解を選択する場合に反復されてもよい。図３に示される方法では特定のステップが特定の順序で生じるように図示及び説明されているが、本発明は、図３に示される方法の適切などのステップも適切ないかなる順序で生じてもよいことを想定している。
【００２３】
以上本発明がいくつかの実施例と共に説明されてきたが、多数の変更、変形、置換、変換及び修正が当業者に示唆され、本発明はそのような変更、変形、置換、変換及び修正を特許請求の範囲内に包含することが意図される。いずれにせよ、本発明は、特許請求の範囲に反映されていない明細書中のどの記述でもそれによっては限定されない。
【００２４】
以下、本発明が教示する手段を例示的に列挙する。
【００２５】
（付記１）
ブール充足可能性（ＳＡＴ）解答装置におけるイベントをスケジューリングするシステムであって：
ＳＡＴ問題に対する有効な解を探索する際に、１以上の１次統計値を収集する第１エンジン；
探索の際に前記１以上の１次統計値から１以上の２次統計値を導出する第２エンジン；
前記１以上の２次統計値に従って、探索中のイベントをスケジューリングする第３エンジン；
を有することを特徴とするシステム。
【００２６】
（付記２）
前記イベントが、リスタートである
ことを特徴とする付記１記載のシステム。
【００２７】
（付記３）
前記イベントが、変数の並べ換えである
ことを特徴とする付記１記載のシステム。
【００２８】
（付記４）
前記１次統計値の第１のものが特定のイベント以来のコンフリクトに関する第１の数を示し、前記１次統計値の第２のものが前記特定のイベント以来の決定に関する第２の数を示す
ことを特徴とする付記１記載のシステム。
【００２９】
（付記５）
前記特定のイベントが、開始又は最後のリスタートである
ことを特徴とする付記４記載のシステム。
【００３０】
（付記６）
前記特定のイベントが、変数を配列すること又は最後の変数の並べ換えである
ことを特徴とする付記４記載のシステム。
【００３１】
（付記７）
前記２次統計値の少なくとも１つが、コンフリクトと決定の比率（ＣＤＲ）である
ことを特徴とする付記１記載のシステム。
【００３２】
（付記８）
ＳＡＴ問題に対する有効な解の探索が、電子設計オートメーション（ＥＤＡ）に関連する
ことを特徴とする付記１記載のシステム。
【００３３】
（付記９）
ブール充足可能性（ＳＡＴ）解答装置におけるイベントをスケジューリングする方法であって：
ＳＡＴ問題に対する有効な解を探索する際に、１以上の１次統計値を収集し；
探索の際に前記１以上の１次統計値から１以上の２次統計値を導出し；
前記１以上の２次統計値に従って、探索中のイベントをスケジューリングする；
ことを特徴とする方法。
【００３４】
（付記１０）
前記イベントが、リスタートである
ことを特徴とする付記９記載の方法。
【００３５】
（付記１１）
前記イベントが、変数の並べ換えである
ことを特徴とする付記９記載の方法。
【００３６】
（付記１２）
前記１次統計値の第１のものが特定のイベント以来のコンフリクトに関する第１の数を示し、前記１次統計値の第２のものが前記特定のイベント以来の決定に関する第２の数を示す
ことを特徴とする付記９記載の方法。
【００３７】
（付記１３）
前記特定のイベントが、開始又は最後のリスタートである
ことを特徴とする付記１２記載の方法。
【００３８】
（付記１４）
前記特定のイベントが、変数を配列すること又は最後の変数の並べ換えである
ことを特徴とする付記１２記載の方法。
【００３９】
（付記１５）
前記２次統計値の少なくとも１つが、コンフリクトと決定の比率（ＣＤＲ）である
ことを特徴とする付記９記載の方法。
【００４０】
（付記１６）
ＳＡＴ問題に対する有効な解の探索が、電子設計オートメーション（ＥＤＡ）に関連する
ことを特徴とする付記９記載の方法。
【００４１】
（付記１７）
記憶媒体に格納され、ブール充足可能性（ＳＡＴ）解答装置におけるイベントをスケジューリングするための論理装置であって：
ＳＡＴ問題に対する有効な解を探索する際に、１以上の１次統計値を収集し；
探索の際に前記１以上の１次統計値から１以上の２次統計値を導出し；
前記１以上の２次統計値に従って、探索中のイベントをスケジューリングする；
ことを実行させる論理装置。
【００４２】
（付記１８）
前記イベントが、リスタートである
ことを特徴とする付記１７記載の論理装置。
【００４３】
（付記１９）
前記イベントが、変数の並べ換えである
ことを特徴とする付記１７記載の論理装置。
【００４４】
（付記２０）
前記１次統計値の第１のものが特定のイベント以来のコンフリクトに関する第１の数を示し、前記１次統計値の第２のものが前記特定のイベント以来の決定に関する第２の数を示す
ことを特徴とする付記１７記載の論理装置。
【００４５】
（付記２１）
前記特定のイベントが、開始又は最後のリスタートである
ことを特徴とする付記２０記載の論理装置。
【００４６】
（付記２２）
前記特定のイベントが、変数を配列すること又は最後の変数の並べ換えである
ことを特徴とする付記２０記載の論理装置。
【００４７】
（付記２３）
前記２次統計値の少なくとも１つが、コンフリクトと決定の比率（ＣＤＲ）である
ことを特徴とする付記１７記載の論理装置。
【００４８】
（付記２４）
ＳＡＴ問題に対する有効な解の探索が、電子設計オートメーション（ＥＤＡ）に関連する
ことを特徴とする付記１７記載の論理装置。
【００４９】
（付記２５）
ブール充足可能性（ＳＡＴ）解答装置におけるイベントをスケジューリングするシステムであって：
ＳＡＴ問題に対する有効な解を探索する際に、１以上の１次統計値を収集する手段；
探索の際に前記１以上の１次統計値から１以上の２次統計値を導出する手段；
前記１以上の２次統計値に従って、探索中のイベントをスケジューリングする手段；
を有することを特徴とする方法。
【図面の簡単な説明】
【００５０】
【図１】ＳＡＴ解答装置でのイベントをスケジューリングするシステム例を示す。
【図２】ＳＡＴ解答装置でのイベントをスケジューリングする方法例を示す。
【図３】ＳＡＴ解答装置でのイベントをスケジューリングする別の方法例を示す。
【符号の説明】
【００５１】
１０  システム
１２  コンピュータシステム
１４  ＳＡＴ解答装置
１６  ＳＡＴデータ部
１８  １次メトリックエンジン
２０  ２次メトリックエンジン
２２  リスタートエンジン
２４  配列エンジン
【図１】
2005293575.tif 000005
【図２】
2005293575.tif 000006
【図３】
2005293575.tif 000007