(57)【特許請求の範囲】
【請求項１】
ＮＰの問題を解決するために少なくとも１つのコンピュータプロセッサによって実行される方法であって、
矛盾を、反表明された値述語に応答する、含意の優勢な経路から成る根茎状ネットワークによって定義された近接空間を通って移動させる段階であって、前記反表明は他の表明を否定する値述語の表明であり、否定された表明の前記優勢な経路を残っている表明の前記優勢な経路から除去されるようにし、前記残っている表明は前記反表明を含んで、前記反表明の前記優勢な経路内に残るいずれの制約内にも矛盾を作成しない反表明された値述語を生成する、矛盾を移動させる段階と、
含意の前記優勢な経路および矛盾の移動の前記優勢な経路を表す第１のデータを収集する段階と、
矛盾が、有効に妥当な不一致が記録されていない前記近接空間内の位置に向かって移動するように、方向の選択を通知するために前記第１のデータを使用する段階と、
解決すべき矛盾および反表明される項を、ディザリングを排除する方法で選択する段階と、
を含むことを特徴とする方法。
【請求項２】
前記選択する段階は、仮定ごとに前記問題内の制約の１つのトラバーサルを上回るディザリングを排除する方法で選択することを特徴とする請求項１に記載の方法。
【請求項３】
前記矛盾を、前記近接空間を通って移動させる段階は、前記矛盾を前記近接空間内の隣接する位置を通って移動させることを特徴とする請求項１に記載の方法。
【請求項４】
前記第１のデータは、前記優勢な経路内の目的地のリスト、並びに遠さカウントおよび近さカウントのうちの少なくとも１つを含み、
前記反表明される項を選択する段階は、最近目的地法に従って反表明される項を選択することを特徴とする請求項１に記載の方法。
【請求項５】
前記第１のデータは、前記優勢な経路内の目的地のリスト、前記優勢な経路内の条件付き優勢な表明のリスト、および遠さカウントを含み、
前記反表明される項を選択する段階は、最遠逆転法に従って反表明される項を選択することを特徴とする請求項１に記載の方法。
【請求項６】
前記解決すべき矛盾を選択する段階は、最後に解決された前記矛盾の前記制約内の項を制限した優勢な表明を提供した制約を占める矛盾を選択すること特徴とする請求項１または請求項３に記載の方法。
【請求項７】
非一時的メモリと、
プロセッサと
を備えたコンピューティング装置であって、
前記非一時的メモリが、複数のコンピュータ読み取り可能命令を表す信号を含み、
前記プロセッサは、ＮＰの問題を解決するための方法を実行するために前記複数のコンピュータ読み取り可能命令を実行するように適合されて、
矛盾を、反表明された値述語に応答する、含意の優勢な経路から成る根茎状ネットワークによって定義された近接空間を通って移動させる手段であって、前記反表明は他の表明を否定する値述語の表明であり、否定された表明の前記優勢な経路を残っている表明の前記優勢な経路から除去されるようにし、前記残っている表明は前記反表明を含んで、前記反表明の前記優勢な経路内に残るいずれの制約内にも矛盾を作成しない反表明された値述語を生成する、矛盾を移動させる手段と、
含意の前記優勢な経路および矛盾の移動の前記優勢な経路を表す第１のデータを収集する手段と、
矛盾が、有効に妥当な不一致が記録されていない前記近接空間内の位置に向かって移動するように、方向の選択を通知するために前記第１のデータを使用する手段と、
解決すべき矛盾および反表明される項を、ディザリングを排除する方法で選択する手段と、
を備えることを特徴とするコンピューティング装置。
【請求項８】
前記選択する手段は、仮定ごとに前記問題内の制約の１つのトラバーサルを上回るディザリングを排除する方法で選択することを特徴とする請求項７に記載のコンピューティング装置。
【請求項９】
前記矛盾を、前記近接空間を通って移動させる手段は、前記矛盾を前記近接空間内の隣接する位置を通って移動させることを特徴とする請求項７に記載のコンピューティング装置。
【請求項１０】
前記第１のデータは、前記優勢な経路内の目的地のリスト、並びに遠さカウントおよび近さカウントのうちの少なくとも１つを含み、
前記反表明される項を選択する手段は、最近目的地法に従って反表明される項を選択することを特徴とする請求項７に記載のコンピューティング装置。
【請求項１１】
前記第１のデータは、前記優勢な経路内の目的地のリスト、前記優勢な経路内の条件付き優勢な表明のリスト、および遠さカウントを含み、
前記反表明される項を選択する手段は、最遠逆転法に従って反表明される項を選択することを特徴とする請求項７に記載のコンピューティング装置。
【請求項１２】
前記解決すべき矛盾を選択する手段は、最後に解決された前記矛盾の前記制約内の項を制限した優勢な表明を提供した制約を占める矛盾を選択することを特徴とする請求項７または請求項１０に記載のコンピューティング装置。
【請求項１３】
優勢な表明の根茎状ネットワークを表すように適合された構成要素と、
仮定を生成するように適合された構成要素と、
含意のプロセスを実行するように適合された構成要素と、
表明、前記表明の制約、および矛盾した制約を見つけるプロセスを実行するように適合された構成要素と、
スタック、およびポップされた要素の履歴を実行するように適合された構成要素と、
ポップされた要素の前記履歴を初期化するように適合された構成要素と、
第１の制限された項をプッシュすることによって開始する前記根茎状ネットワーク内を深さ優先の方法でバックトラッキングし、前記スタック内の最上位項が優勢な表明によって制限されていない場合または前記スタック内の前記最上位項のすぐ下にあった前記項を制限する優勢な制約内に探索するさらなる項がない場合はいつでもポップすることによって前記根茎状ネットワークを検索し、表明された場合は、前記スタック内の前記最上位項を制限するか又は制限し得る、少なくとも１つの指定された値を前記検索から除外するために前記スタックを使用するように適合された構成要素と、
既に正常に探索されている前記検索の分岐を識別するために、遭遇した表明をポップされた要素の前記履歴内の表明と比較するように適合された構成要素と、
違法な目的地およびループ表明を識別するために、前記検索内で遭遇した表明を前記スタック内のさらに下位の表明と比較するように適合された構成要素と、
近さカウントを追跡して、前記スタック上の要素に追加するように適合された構成要素と、
最小の近さカウントをゼロに初期化するように適合された構成要素と、
正当な目的地の間で最小の近さカウントを維持し、前記最小の近さカウントが置換される場合は、前記第１の制限された項を、前記最小の近さカウントに関連付けられているとして記録するように適合された構成要素と、
正当な目的地が識別される前記第１の制限された項のカウントを維持するように適合された構成要素と、
最新の反表明によって否定された表明の記録を維持するように適合された構成要素と、
反表明される項の値述語を識別するように適合された構成要素と、
所与の反表明された値述語を否定するために、表明の集合を識別するように適合された構成要素と、
前記記録された否定された表明の制約がある場合は、前記制約に対して、前記制約がない場合は、任意の矛盾した制約に対して、前記最小の近さカウントを初期化させ、ポップされた要素の前記履歴を初期化させ、矛盾した制約内の制限をサポートする各第１の優勢な表明の前記優勢な経路を検索させて第２の表明を除外する手段であって、前記第２の表明は、前記第１の制限された項以外である前記矛盾した制約内の条件付きで制限された項を反表明することにより否定される表明であり、前記第２の表明がある場合は、前記第２の表明を除外して制限が完全にサポートされていない前記矛盾した制約内の項に対して値述語を反表明し、前記第２の表明がない場合は、前記記録された最小の近さカウントと関連付けられている前記表明によって制限されている前記矛盾した制約内の前記項に対して値述語を反表明し、前記反表明された項以外に前記矛盾した制約内の任意の項に対して正当な目的地がない場合に、前記反表明が無条件であることを記録するように適合された構成要素と、
前記反表明が既にループ表明として識別されているか、または同じ変数に対する現存の表明の連言的な収束が前記反表明された値述語の部分集合を表す場合、前記反表明が非優勢であることを記録し、そうでない場合は、前記反表明が優勢であることを記録し、かつ前記反表明が優勢である場合は、前記反表明された値述語と一致せず、表明していない制約内の前記同じ変数の項を制限し得る任意の表明を否定して、これらの動作を、矛盾が存在しないか、または制限されていない前記矛盾した制約内に項がなく、その制約が無条件表明によって完全にサポートされるまで繰り返すように適合された構成要素と、
を備えることを特徴とするコンピューティング装置。
【請求項１４】
ＮＰの問題を解決するために少なくとも１つのコンピュータプロセッサによって実行される方法であって、
優勢な表明の根茎状ネットワークを表す段階と、
仮定を生成する段階と、
含意のプロセスを実行する段階と、
表明、前記表明の制約、および矛盾した制約を見つけるプロセスを実行する段階と、
スタック、およびポップされた要素の履歴を実装する段階と、
ポップされた要素の前記履歴を初期化する段階と、
第１の制限された項をプッシュすることによって開始する前記根茎状ネットワーク内を深さ優先の方法でバックトラッキングし、前記スタック内の最上位項が優勢な表明によって制限されていない場合または前記スタック内の前記最上位項のすぐ下にあった前記項を制限する優勢な制約内に探索するさらなる項がない場合はいつでもポップすることによって前記根茎状ネットワークを検索し、表明された場合は、前記スタック内の前記最上位項を制限するか又は制限し得る、少なくとも１つの指定された値を前記検索から除外するために前記スタックを使用する段階と、
既に正常に探索されている前記検索の分岐を識別するために、遭遇した表明をポップされた要素の前記履歴内の表明と比較する段階と、
違法な目的地およびループ表明を識別するために、前記検索内で遭遇した表明を前記スタック内のさらに下位の表明と比較する段階と、
近さカウントを追跡して、前記スタック上の要素に追加する段階と、
最小の近さカウントをゼロに初期化する段階と、
正当な目的地の間で最小の近さカウントを維持し、前記最小の近さカウントが置換される場合は、前記第１の制限された項を、前記最小の近さカウントと関連付けられているとして記録する段階と、
正当な目的地が識別される前記第１の制限された項のカウントを維持する段階と、
最新の反表明によって否定された表明のレコードを維持する段階と、
反表明され得る項の値述語を識別する段階と、
所与の反表明された値述語を否定する表明の集合を識別する段階と、
前記記録された否定された表明の制約がある場合は、前記制約に対して、前記制約がない場合は、任意の矛盾した制約に対して、前記最小の近さカウントを初期化させ、ポップされた要素の前記履歴を初期化させ、矛盾した制約内の制限をサポートする各第１の優勢な表明の前記優勢な経路を検索させて第２の表明を除外する段階であって、前記第２の表明は、前記第１の制限された項以外である前記矛盾した制約内の条件付きで制限された項を反表明することにより否定される表明であり、前記第２の表明がある場合は、前記第２の表明を除外して制限が完全にサポートされていない前記矛盾した制約内の項に対して値述語を反表明し、前記第２の表明がない場合は、前記記録された最小の近さカウントと関連付けられている前記表明によって制限されている前記矛盾した制約内の前記項に対して値述語を反表明し、前記反表明された項以外に前記矛盾した制約内の任意の項に対して正当な目的地がない場合に、前記反表明が無条件であることを記録する段階と、
前記反表明が既にループ表明として識別されているか、または同じ変数に対する現存の表明の連言的な収束が前記反表明された値述語の部分集合を表す場合、前記反表明が非優勢であることを記録し、そうでない場合、前記反表明が優勢であることを記録し、かつ前記反表明が優勢である場合は、前記反表明された値述語と一致せず、表明していない制約内の前記同じ変数の項を制限する任意の表明を否定して、これらの動作を、矛盾が存在しないか、または制限されていない前記矛盾した制約内に項がなく、その制約が無条件表明によって完全にサポートされるまで繰り返す段階と、
を含むことを特徴とする方法。
【請求項１５】
優勢な表明の根茎状ネットワークを表すように適合された構成要素と、
仮定を生成するように適合された構成要素と、
含意のプロセスを実行するように適合された構成要素と、
表明、前記表明の制約、および矛盾した制約を見つけるプロセスを実行するように適合された構成要素と、
優勢な表明に対する遠さカウントを含む完全な根拠を格納するように適合された構成要素と、
加算された分岐の１つに対する遠さカウントのオフセットを有する２つの前記優勢な表明の分岐−加算を実行して、完全な根拠を生成するように適合された構成要素と、
第２の完全な根拠からの表明の分岐−減算を実行して、基礎、副基礎、および完全な根拠のうちの１つを生成するように適合された構成要素と、
副基礎の短縮されたものおよび圧縮された副基礎を生成するために、基礎と副基礎との間で一致する値述語に対する副基礎からの分岐−減算のカスケードを実行し、前記カスケードが前記副基礎内の遠さカウントの昇順に従って順序けされている、分岐−減算のカスケードを実行するように適合された構成要素と、
違法な目的地または表明がループ表明であることを識別するために、前記表明の前記値述語を前記表明の前記完全な根拠内の前記値述語と比較するように適合された構成要素と、
正当な目的地を、連言的に収束して矛盾した制約内の第１の項を制限する決定因子を提供する、優勢な表明の前記完全な根拠の和集合内の正当な目的地から選択するように適合された構成要素と、
選択された正当な目的地が識別される前記第１の項のカウントを維持するように適合された構成要素と、
最新の反表明によって否定された表明の記録を維持するように適合された構成要素と、
反表明される項の値述語を識別するように適合された構成要素と、
所与の反表明された値述語を否定する表明の集合を識別するように適合された構成要素と、
前記記録された否定された表明の制約がある場合は、前記制約に対して、前記制約がない場合は、任意の矛盾した制約に対して、制限が完全にはサポートされていない前記矛盾した制約内の項に対する値述語を反表明し、それ以外の場合は、目的地を選択させて、前記選択された目的地を含む完全な根拠を有する優勢な表明によって制限されている前記矛盾した制約内の項に対する値述語を反表明し、完全な根拠を前記反表明に対して記録させて、前記反表明が、前記反表明の前記完全な根拠内に正当な目的地がない場合は無条件であることを記録するように適合された構成要素と、
前記反表明がループ表明として識別されているか、または同じ変数に対する現存の表明の連言的な収束が前記反表明された値述語の部分集合を表す場合、前記反表明が非優勢であることを記録し、そうでない場合は、前記反表明が優勢であることを記録し、かつ前記反表明が優勢である場合は、前記反表明された値述語と一致していない任意の表明を否定し、表明していない制約内の前記同じ変数の項を制限し、前記反表明の前記完全な根拠を、前記反表明された値述語を擬似仮定として表す他の全ての完全な根拠に分岐−加算し、そうでない場合は、前記反表明の前記完全な根拠を廃棄して、これらの動作を、矛盾が存在しないか、または制限されていない前記矛盾した制約内に項がなく、その制約が無条件表明によって完全にサポートされるまで繰り返すように適合された構成要素と、
を備え、
前記反表明の前記完全な根拠は、前記反表明によって否定される前記優勢な表明が分岐−減算される暗黙の表明の前記完全な根拠として生成され、
前記反表明される項のうちの特定の項は、
前記反表明される項が一つだけの場合、前記選択された目的地をその完全な根拠内に有する優勢な表明によって制限されている前記矛盾した制約内の唯一の項であり、
そうでない場合、前記特定の項は、前記選択された目的地をそれらの完全な根拠内に有する優勢な表明によって制限されている前記矛盾した制約の項の間で最後に制限された前記項以外の項であり、
前記選択された目的地をそれらの完全な根拠内に有する優勢な表明によって制限されている前記矛盾した制約の３つ以上の項がある場合、前記特定の項は、その短縮された副基礎内に最大の遠さカウントを有する項であることを特徴とするコンピューティング装置。
【請求項１６】
前記第２の完全な根拠からの前記表明の分岐−減算を実行するように適合された前記構成要素が、第１の完全な根拠からの前記表明の分岐−減算をさらに実行するように適合されていることを特徴とする請求項１５に記載のコンピューティング装置。
【請求項１７】
少なくとも１つのコンピュータプロセッサによって実行される方法であって、
優勢な表明の根茎状ネットワークを表す段階と、
仮定を生成する段階と、
含意のプロセスを実行する段階と、
表明、前記表明の制約、および矛盾した制約を見つけるプロセスを実行する段階と、
優勢な表明に対する遠さカウントを含む完全な根拠を格納する段階と、
加算された分岐の１つに対する遠さカウントのオフセットを有する２つの前記優勢な表明の分岐−加算を実行して、完全な根拠を生成する段階と、
第２の完全な根拠からの表明の分岐−減算を実行して、基礎、副基礎、および完全な根拠のうちの１つを生成する段階と、
副基礎の短縮されたものおよび圧縮された副基礎を生成するために、基礎と副基礎との間で一致する値述語に対する副基礎からの分岐−減算のカスケードを実行する段階であって、前記カスケードが前記副基礎内の遠さカウントの昇順に従って順序づけされている、分岐−減算のカスケードを実行する段階と、
違法な目的地または表明がループ表明であることを識別するために、前記表明の前記値述語を前記表明の前記完全な根拠内の前記値述語と比較する段階と、
正当な目的地を、連言的に収束して矛盾した制約内の第１の項を制限する決定因子を提供する、優勢な表明の前記完全な根拠の和集合内の正当な目的地から選択する段階と、
選択された正当な目的地が識別される前記第１の項のカウントを維持する段階と、
最新の反表明によって否定された表明の記録を維持する段階と、
反表明される項の値述語を識別する段階と、
所与の反表明された値述語を否定する表明の集合を識別する段階と、
前記記録された否定された表明の制約がある場合は、前記制約に対して、前記制約がない場合は、任意の矛盾した制約に対して、制限が完全にはサポートされていない前記矛盾した制約内の項に対する値述語を反表明し、それ以外の場合は、目的地を選択させて、前記選択された目的地を含む完全な根拠を有する優勢な表明によって制限されている前記矛盾した制約内の項に対する値述語を反表明し、完全な根拠を前記反表明に対して記録させて、前記反表明が、前記反表明の前記完全な根拠内に正当な目的地がない場合は無条件であることを記録する段階と、
前記反表明がループ表明として識別されているか、または同じ変数に対する現存の表明の連言的な収束が前記反表明された値述語の部分集合を表す場合、前記反表明が非優勢であることを記録し、そうでない場合は、前記反表明が優勢であることを記録し、かつ前記反表明が優勢である場合は、前記反表明された値述語と一致していない任意の表明を否定し、表明していない制約内の前記同じ変数の項を制限し、前記反表明の前記完全な根拠を、前記反表明された値述語を擬似仮定として表す他の全ての完全な根拠に分岐−加算し、そうでない場合は、前記反表明の前記完全な根拠を廃棄して、これらの動作を、矛盾が存在しないか、または制限されていない前記矛盾した制約内に項がなく、その制約が無条件表明によって完全にサポートされるまで繰り返す段階と、
を含み、
前記反表明の前記完全な根拠は、前記反表明によって否定される前記優勢な表明が分岐−減算される暗黙の表明の前記完全な根拠として生成され、
前記反表明される項のうちの特定の項は、
前記反表明される項が一つだけの場合、前記選択された目的地をその完全な根拠内に有する優勢な表明によって制限されている前記矛盾した制約内の唯一の項であり、
そうでない場合、前記特定の項は、前記選択された目的地をそれらの完全な根拠内に有する優勢な表明によって制限されている前記矛盾した制約の項の間で最後に制限された前記項以外の項であり、
前記選択された目的地をそれらの完全な根拠内に有する優勢な表明によって制限されている前記矛盾した制約の３つ以上の項がある場合、前記特定の項は、その短縮された副基礎内に最大の遠さカウントを有する項であることを特徴とする方法。
【請求項１８】
前記第２の完全な根拠からの前記表明の分岐−減算を実行する段階は、第１の完全な根拠からの前記表明の分岐−減算を実行することを特徴とする請求項１７に記載の方法。
【請求項１９】
論理式または数式の解決の時間要件を、式の前記解決中に生じる条件付き矛盾を解決することによって改善するための、少なくとも１つのコンピュータプロセッサによって実行される方法であって、
前記式が制約から形成され、各制約が、各々が変数および任意選択でその変数に対する明示的な値述語を表す１つ以上の項を含み、前記式の前記解決が、前記式が変数値の集合によって満たされるか、または前記式を満たす変数値の集合がない場合は満たされないかを判断する段階を含み、
前記コンピュータプロセッサに入力される前記式の一部として、ゼロ個以上の前記変数の値述語に関する無条件表明を受信する段階と、
前記変数のうちの少なくとも１つの値述語に関して仮定的表明を行う段階と、
前記変数の他のものに対する値述語に関して項の表明を行う段階であって、前記表明が、前記無条件表明または前記仮定的表明によって課された制限に応答して、前記制約によって行われて、項を表明している制約が暗黙の表明である、項の表明を行う段階と、
前記変数の他のものに対する値述語に関して他の項の表明を行う段階であって、前記表明が、前記無条件表明、前記仮定的表明、および前記暗黙の表明のうちの１つによって課された制限に応答して、他の制約によって行われて、項を表明している制約が暗黙の表明である、他の項の表明を行う段階と、
第１の表明が仮定的表明でないか、またはループ表明を構成しない限り、前記第１の表明を優勢な表明として設定する段階であって、ループ表明が、前記第１の表明の前記優勢な経路内の第２の表明を何度も繰り返す表明であり、第１の制約の前記暗黙の表明の前記優勢な経路は、前記第１の制約の前記項に関する制限の条件部分に至って生成される他の表明から成り、優勢な表明または仮定的表明またはループ表明である、第１の表明を優勢な表明として設定する段階と、
前記無条件表明、前記仮定的表明、および前記暗黙の表明のうちの１つに応答して、前記変数に対する値述語を決定因子として設定する段階であって、単一の変数値を表す決定因子を有していない前記変数が自由変数である、前記変数に対する値述語を決定因子として設定する段階と、
含意のプロセスを、さらなる表明が行われないか、または前記矛盾のカウントがゼロでなくなるまで繰り返す段階であって、含意の前記プロセスが、前記仮定的表明を行う段階、前記表明を行う段階、前記表明を優勢な表明として設定する段階、および前記変数に対する値述語を決定因子として設定する段階の反復である、含意のプロセスを繰り返す段階と、
反表明を行う段階であって、反表明は、他の無条件表明の連言と不一致ではないが、他の無条件表明および以前に、または現在のところ現存の条件付き表明の連言と不一致であり得る値述語に関する矛盾した制約内の項の表明であり、決定因子が制約内の全ての項を制限する場合に矛盾が生じる、反表明を行う段階と、
現在の反表明に応答して一致していない条件付き表明を否定し、否定されている前記表明である項を制限して、同じ変数の他の項を制限し、前記否定された暗黙の表明または否定された前の反表明の前記制約内に矛盾を生じ、前記現在の反表明の前記制約内の前記矛盾を解決する段階と、
各条件付き優勢な表明に対する第１のデータを：
（１）仮定および擬似仮定、ならびに各条件付き優勢な表明に至って生成される各優勢な経路内の制限している表明に関連付けられた遠さカウント、近さカウント、実行済みカウント、および未実行カウントのうちの少なくとも１つを追跡する段階と、
（２）正当な目的地、および各条件付き優勢な表明に至って生成される各優勢な経路内の正当な目的地と関連付けられた遠さカウントまたは近さカウントの表現と機能的に同等な第１のデータを累算するためにバックトラッキングにより第１のデータを抽出する段階であって、正当な目的地が、任意の仮定的表明または、前記第１の表明よりも離れていない優勢な表明と不一致ではないような擬似仮定であり、擬似仮定が、制限された前記第１の表明の前記優勢な経路内の項であるが、前記制限が現在、別の優勢な表明または他の優勢な表明の連言的な収束によって完全にはサポートされていない、第１のデータを抽出する段階と、
のうちの１つによって維持する段階と、
前記第１のデータに応答して、反表明する矛盾した制約内の項を選択して、前記矛盾を、最近目的地法または最遠逆転法を使用して、正当な目的地に向かって移動させる段階であって、正当な目的地が、他の優勢な表明による擬似仮定の制限に対する完全なサポートがないことは、前記矛盾した制約内の項を制限する第４の優勢な表明に至って生成される同じ優勢な経路内の同じ変数に対する第３の優勢な表明によって引き起こされた否定の全ての結果ではなく、前記第３の優勢な表明と同じである、仮定および擬似仮定のうちの１つである矛盾した制約内の項を選択して正当な目的地に向かって移動させる段階と、
反表明を、前記第１のデータに応答して、条件付きおよび無条件の一方とする段階であって、条件付き矛盾が、正当な目的地である前記仮定および擬似仮定に関して条件付けされている、反表明を条件付きおよび無条件の一方とする段階と、
前記自由変数の前記カウントがゼロであり、現存の矛盾の前記カウントがゼロである場合、前記式が満たされると報告する段階と、
前記式の前記制約の１つに関して、無条件矛盾に遭遇する場合、前記式が満たされないと報告する段階であって、無条件矛盾が、前記無条件表明に起因する矛盾である、前記式が満たされないと報告する段階と、
矛盾解決のプロセスを、前記式が満たされるか、または満たされないことを報告するまで繰り返す段階であって、矛盾解決の前記プロセスが、反表明する項を選択する段階、項を反表明する段階、一致していない条件付き表明を否定する段階、反表明が条件付きであるか、または無条件であるかを発見する段階、含意のプロセスを繰り返す段階、および第１のデータを維持する段階の反復である、矛盾解決のプロセスを繰り返す段階と、
を含むことを特徴とする方法。
【請求項２０】
持続性メモリと、
プロセッサと
を備えたコンピューティング装置であって、
前記持続性メモリは、複数のコンピュータ読み取り可能命令を表す信号を含み、
前記プロセッサは、前記複数のコンピュータ読み取り可能命令を実行して、論理式または数式の解決の時間要件を、式の前記解決中に生じる条件付き矛盾を解決することによって改善するための方法を実行するように適合されて、前記式が制約から形成され、各制約が、各々が変数および任意選択でその変数に対する明示的な値述語を表す１つ以上の項を含み、前記式の前記解決が、前記式が変数値の集合によって満たされるか、または前記式を満たす変数値の集合がない場合は満たされないかを判断する手段を含み、
前記プロセッサに入力される前記式の一部として、ゼロ個以上の前記変数の値述語に関する無条件表明を受信する手段と、
前記変数のうちの少なくとも１つの値述語に関して仮定的表明を行う手段と、
前記変数の他のものに対する値述語に関して項の表明を行う手段であって、前記表明が、前記無条件表明または前記仮定的表明によって課された制限に応答して、前記制約によって行われて、項を表明している制約が暗黙の表明である、項の表明を行う手段と、
前記変数の他のものに対する値述語に関して他の項の表明を行う手段であって、前記表明が、前記無条件表明、前記仮定的表明、および前記暗黙の表明のうちの１つによって課された制限に応答して、他の制約によって行われて、項を表明している制約が暗黙の表明である、他の項の表明を行う手段と、
第１の表明が仮定的表明でないか、またはループ表明を構成していない限り、前記第１の表明を優勢な表明として設定する手段であって、ループ表明が、前記第１の表明の前記優勢な経路内の第２の表明を何度も繰り返す表明であり、第１の制約の前記暗黙の表明の前記優勢な経路は、前記第１の制約の前記項に関する制限の条件部分に至って生成される
他の表明から成り、優勢な表明または仮定的表明またはループ表明である、第１の表明を優勢な表明として設定する手段と、
前記無条件表明、前記仮定的表明、および前記暗黙の表明のうちの１つに応答して、前記変数に対する値述語を決定因子として設定する手段であって、単一の変数値を表す決定因子を有していない前記変数が自由変数である、前記変数に対する値述語を決定因子として設定する手段と、
含意のプロセスを、さらなる表明が行われないか、または前記矛盾のカウントがゼロでなくなるまで繰り返す手段であって、含意の前記プロセスが、前記仮定的表明を行う手段、前記表明を行う手段、前記表明を優勢な表明として設定する手段、および前記変数に対する値述語を決定因子として設定する手段の反復である、含意のプロセスを繰り返す手段と、
反表明を行う手段であって、反表明が、他の無条件表明の連言と不一致ではないが、他の無条件表明および以前に、または現在のところ現存の条件付き表明の連言と不一致であり得る値述語に関する矛盾した制約内の項の表明であり、決定因子が制約内の全ての項を制限する場合に矛盾が生じる、反表明を行う手段と、
現在の反表明に応答して一致していない条件付き表明を否定し、否定されている前記表明である項を制限して、同じ変数の他の項を制限し、前記否定された暗黙の表明または否定された前の反表明の前記制約内に矛盾を生じ、前記現在の反表明の前記制約内の前記矛盾を解決する手段と、
各条件付き優勢な表明に対する第１のデータを：
（１）仮定および擬似仮定、ならびに各条件付き優勢な表明に至って生成される各優勢な経路内の制限している表明と関連付けられた遠さカウント、近さカウント、実行済みカウント、および未実行カウントのうちの少なくとも１つを追跡する手段と、
（２）正当な目的地、および各条件付き優勢な表明に至ってそ生成される各優勢な経路内の正当な目的地と関連付けられた遠さカウントまたは近さカウントの表現と機能的に同等な第１のデータを累算するためにバックトラッキングにより第１のデータを抽出する手段であって、正当な目的地が、任意の仮定的表明または、前記第１の表明よりも離れていない優勢な表明と不一致ではないような擬似仮定であり、擬似仮定が、制限された前記第１の表明の前記優勢な経路内の項であるが、前記制限が現在、別の優勢な表明または他の優勢な表明の連言的収束によって完全にはサポートされていない、第１のデータを抽出する手段と、
のうちの１つによって維持する手段と、
前記第１のデータに応答して、反表明する矛盾した制約内の項を選択して、前記矛盾を、最近目的地法または最遠逆転法を使用して、正当な目的地に向かって移動させる手段であって、正当な目的地が、他の優勢な表明による擬似仮定の制限に対する完全なサポートがないことが、前記矛盾した制約内の項を制限する第４の優勢な表明に至って生成される同じ優勢な経路内の同じ変数に対する第３の優勢な表明によって引き起こされた否定の全ての結果ではなく、前記第３の優勢な表明と同じである、仮定および擬似仮定のうちの１つである、矛盾した制約内の項を選択して正当な目的地に向かって移動させる手段と、
反表明を、前記第１のデータに応答して、条件付きおよび無条件の一方とする手段であって、条件付き矛盾が、正当な目的地である前記仮定および擬似仮定に関して条件付けされている、反表明を条件付きおよび無条件の一方とする手段と、
前記自由変数の前記カウントがゼロであり、現存の矛盾の前記カウントがゼロである場合、前記式が満たされると報告する手段と、
前記式の前記制約の１つに関して、無条件矛盾に遭遇する場合、前記式が満たされないと報告する手段であって、無条件矛盾が、前記無条件表明に起因する矛盾である、前記式が満たされないと報告する手段と、
矛盾解決のプロセスを、前記式が満たされるか、または満たされないことを報告するまで繰り返す手段であって、矛盾解決の前記プロセスが、反表明する項を選択する手段、項を反表明する手段、一致していない条件付き表明を否定する手段、反表明が条件付きであるか、または無条件であるかを発見する手段、含意のプロセスを繰り返す手段、および第１のデータを維持することの反復である、矛盾解決のプロセスを繰り返す手段と、
を備えることを特徴とするコンピューティング装置。
【請求項２１】
少なくとも１つの持続性コンピュータ読み取り可能な記憶媒体上に格納されたコンピュータプログラム命令を実行する少なくとも１つのコンピュータプロセッサによって実行される方法であって、
（Ａ）問題定義を式に変換する段階であって、前記式が複数の変数および少なくとも１つの制約を含む、問題定義を式に変換する段階と、
（Ｂ）前記式の前記複数の変数に対して複数の仮定値述語を選択する段階と、
（Ｃ）前記仮定値述語の含意を伝搬する段階と、
（Ｄ）前記仮定値述語の前記含意の任意の明白な矛盾を識別する段階と、
（Ｅ）各識別された矛盾に対して、前記矛盾が、含意として解決される対応位置に向かって移動できるか否かを判断する段階と、
（Ｆ）前記移動できる各明白な矛盾について、前記明白な矛盾を前記対応位置に向かって移動させる段階と、
（Ｇ）前記移動できない任意の明白な矛盾について、前記式が満たされないことを報告する段階と、
を含むことを特徴とする方法。
【請求項２２】
持続性メモリと、
プロセッサと、
を備えたコンピューティング装置であって、
前記持続性メモリが、複数のコンピュータ読み取り可能命令を表す信号を含み、
前記プロセッサは、ＮＰにおける問題を解決するための方法を実行するために前記複数のコンピュータ読み取り可能命令を実行するように適合されて、
問題定義を式に変換する手段であって、前記式が複数の変数および少なくとも１つの制約を含む、問題定義を式に変換する手段と、
（Ｂ）前記式の前記複数の変数に対して複数の仮定値述語を選択する手段と、
（Ｃ）前記仮定値述語の含意を伝搬する手段と、
（Ｄ）前記仮定値述語の前記含意の任意の明白な矛盾を識別する手段と、
（Ｅ）各識別された矛盾に対して、前記矛盾が、含意として解決される対応位置に向かって移動できるか否かを判断する手段と、
（Ｆ）前記移動できる各明白な矛盾について、前記明白な矛盾を前記対応位置に向かって移動させる手段と、
（Ｇ）前記移動できない任意の明白な矛盾について、前記式が満たされないことを報告する手段と、
を備えることを特徴とするコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、２０１０年６月２５日に出願された、「Ｓｙｓｔｅｍ，ｍｅｔｈｏｄ  ａｎｄ  ｄｅｖｉｃｅ  ｆｏｒ  ｓｏｌｖｉｎｇ  ｐｒｏｂｌｅｍｓ  ｉｎ  ＮＰ  ｗｉｔｈｏｕｔ  ｈｙｐｅｒ−ｐｏｌｙｎｏｍｉａｌ  ｃｏｓｔ」という名称の米国特許出願第１２／８２３，６５２号、現在は米国特許第８，５７７，８２５号明細書に関連し、参照により本明細書に援用される。
【背景技術】
【０００２】
計算複雑性理論は、計算問題を固有の困難さによって分類することに焦点を合わせたコンピュータサイエンスの一部門である。かかる分類の１つが「ＮＰ」であり、それは、非決定性チューリング機械上で実行するアルゴリズムにより多項式時間内に解決できる問題のクラスである。アルゴリズムは、その実行時間が、そのアルゴリズムに対する入力のサイズの多項式関数によって上界される、すなわち、ある定数ｋに対してＴ（ｎ）∈Ｏ（ｎｋ）の場合、多項式時間で実行すると言われる。本発明は、ニュートン法、Ｄａｖｉｓ−Ｐｕｔｎａｍ−Ｌｏｇｅｍａｎｎ−Ｌｏｖｅｌａｎｄ（ＤＰＬＬ）アルゴリズム、および矛盾からの節学習（Ｃｏｎｆｌｉｃｔ−Ｄｒｉｖｅｎ  Ｃｌａｕｓｅ  Ｌｅａｒｎｉｎｇ）（ＣＤＣＬ）アルゴリズムと比較される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、「ＮＰ」、「ＮＰ完全」、および「ＮＰ困難」と呼ばれる複雑性クラスにおける問題を解決する機械の性能を改善するための方法およびコンピューティング装置を提供することにある。
【課題を解決するための手段】
【０００４】
上記目的を達成するためになされた本発明の一態様による方法および／またはシステムは、チューニングを必要とすることなく、ＮＰ、ＮＰ完全、およびＮＰ困難問題の多項式時間内での自動解決に関連した問題に対処する。
本発明の実施形態は、コンピュータ実装された方法および／またはシステムなどの、様々な技術のいずれかを使用して実装される。本明細書において、「方法」または「複数の方法」を使用して実装される本発明の実施形態に係るいずれの記載も、方法および／またはシステムを使用して実装される実施形態を包含する。同様に、本明細書において、「システム」または「複数のシステム」を使用して実装される本発明の実施形態に係るいずれの記載も、方法および／またはシステムを使用して実装される実施形態を包含する。
【０００５】
本発明の一態様による方法は、ＮＰ、ＮＰ完全、またはＮＰ困難問題を、チューニングを必要とすることなく、多項式時間内で解決するための方法を提供する。
本発明のある実施形態は、所与の問題定義を１つ以上の制約から成る式に変換する段階と、式の変数に対して仮定の値述語を選択する段階と、仮定の含意を伝搬する段階と、仮定の含意によって生じた任意の矛盾を識別する段階と、各識別された矛盾に対して、前記矛盾が、含意として解決する対応位置に向かって移動できるか否かを判断する段階と、前記対応位置に向かって移動できる各矛盾に対して、前記矛盾を前記対応位置に向かって移動させる段階と、前記対応位置に向かって移動できない任意の矛盾に対して、式が満たされないことを報告する段階と、を含むことを特徴とする方法を含む。
【０００６】
本発明の実施形態は、チューニングを必要とすることなく、問題の解決中に生じる条件付き矛盾を解決することにより、論理的問題または数値問題の解決の時間要件を改善するための方法を提供する。問題は、各々が１つ以上の変数を含む制約から構成される。問題を解決する段階は、その問題が、変数値の集合によって満足されるか、または式を満足する変数値の集合がない場合には満足されないかを判断する段階を含む。問題は、それが制約の集合の連言になるような連言標準形（ＣＮＦ：ｃｏｎｊｕｎｃｔ  ｎｏｒｍａｌ  ｆｏｒｍ）の論理式であり、ここで、制約の各々はいくつかの変数の選言である。本方法は、コンピュータに入力される問題の一部として、ゼロ個以上の変数の値に関する無条件表明を受信する段階と、無条件表明の対象ではない１つ以上の変数の値に関して仮定を行う段階と、問題の他の変数に対する値に関する項の表明を行うために仮定または無条件表明を使用する段階と、を含む。制約は、既存の仮定または表明の結果として、項の１つを除いて全ての値が制限される場合に、項を表明することを強制する。次いで、満たされる制約に対して、残りの１つの項が表明されて、矛盾を生成することなく否定できない。表明された項の値がまだ決定されていない場合、前記の値が決定される。この時点で、制約が表明していて、それが表明された項の値を決定させる場合、表明およびそれを表明する制約が優勢（ｐｒｅｖａｉｌｉｎｇ）になる。本方法は、無条件表明、仮定、または生成された条件付き表明に応答して決定された値として、変数に対して値を設定することで継続される。決定値を有していない変数は自由変数と呼ばれる。仮定を行う段階、表明を行う段階、および変数に対する値を決定として設定する段階の反復は、含意のプロセスを形成する。矛盾は、仮定に関して条件付けされ、いくつかの制約の全ての項が制限される場合に生じる。本方法は、一致していない表明値または同じ変数の仮定が既に制限されていないか、または否定されていない他の制約内の同じ変数の項を同様に制限する、第１の矛盾した制約（ｃｏｎｔｒａｄｉｃｔｅｄ  ｃｏｎｓｔｒａｉｎｔ）の項の値の表明を強制することにより、矛盾を移動させ、おそらく連続した第２の制約内に矛盾を生成して、常に第１の制約内の矛盾を解決する。本方法は、問題から矛盾を取り除くために、この矛盾の移動を指示する。本方法が、無条件に否定される任意の項の値の表明を強制しないことは好都合である。矛盾の移動方向が、その矛盾を取り除くことができない場合に全ての可能な回避経路が探索されるような方法で選択されることも好都合である。本方法は、反表明されている項が、移動方向の後の経路内に仮定を有していない場合を検出し、その表明を無条件として印を付ける。本方法は、自由変数のカウントがゼロであり、全ての矛盾が取り除かれている場合に問題が満たされると報告するか、または全ての項が無条件で否定される場合に矛盾に遭遇するときに問題が満足されないと報告することによって継続する。
【０００７】
かかる実施形態の技術的重要性は、ランダムアクセスメモリ（ＲＡＭ）の発明に相当し、なぜなら、ＲＡＭは、以前の線形時間要件と比較して対数的なデータアクセス時間の改善を提供し、かかる対比は、多項式時間とハイパー多項式時間との間の比に類似しているからである。ＲＡＭなしには、現在の多くの製品は具現できない可能性があり、同様に、多くの新製品が本発明の実施形態の導入によって可能になる。
【発明の効果】
【０００８】
本発明によれば、従来型または専用に拘らず、コンピュータが、ＮＰ完全問題またはＮＰにおける他の問題を、ハイパー多項式の数ではなく、問題内の変数の数の５乗に比例する数未満の基本ステップ数で解決することを可能にする。これにより、線形から対数コストへの減少に相当する計算コストの削減を可能にする。
【図面の簡単な説明】
【０００９】
【図１】ＤＰＬＬおよびＣＤＣＬが行うように、ティアドロップを集合制約としてパラメータ化するプロセスは、何らかの形式のチューニングなしに、ハイパー多項式計算コストを回避するには不十分であることを例示する、変数および制約の図である。
【図２】本発明の一実施形態により実装されたコンピュータシステムで実行される方法を示すフローチャートである。
【００１０】
図１を参照すると、変数および制約の図において、白い円が変数を表し、線が制約を表す。項は、変数の円をトラバース（ｔｒａｖｅｒｓｅ）する制約の線によって表される。変数の円を垂直にトラバースする線は、その変数に対して「０」値述語を有する項を表す。変数の円を水平にトラバースする線は、その変数に対して「Ｘ」値述語を有する項を表す。変数の円は、アルファベットの文字でラベルが付けられている。図１に表された式（ｅｘｐｒｅｓｓｉｏｎ）は、以下の表１に表された式と同一である。
【００１１】
【表１】
0006550384.tif 000002
【００１２】
表１の左側は、図１でラベルが付けられていない制約に、数値でラベルを付け、表の上部には、図に表された変数のラベルを繰り返している。
【００１３】
ｘＢが仮定される場合、次の表明（ａｓｓｅｒｔｉｏｎ）が強制される：ｏＴ、ｏＵ。
【００１４】
次いで、ｘＣ、ｘＤ、ｘＥ、およびｘＦが仮定される場合、後続する表明はない。
【００１５】
次いで、ｘＧが仮定される場合、次の表明が強制される：ｘＲ、ｘＳ、ｏＰ、ｏＱ、ｘＭ、ｘＮ、およびｏＺまたはｘＺのいずれか。この時点で、論理式に矛盾が存在する。矛盾が制約２３に存在することが推定される。
【００１６】
ここで、重層化根拠（ｓｔｒａｔｉｆｉｅｄ  ｒｅａｓｏｎ）を使用して、ティアドロップを集合制約（ｓｕｍｍａｒｉｚｉｎｇ  ｃｏｎｓｔｒａｉｎｔ）としてパラメータ化するアルゴリズムの挙動（ｂｅｈａｖｉｏｒ）を説明する：
【００１７】
制約２３における矛盾は、その根拠における３つの仮定、ｘＢ、ｘＣ、およびｘＧを有する。重層化根拠が使用されているので、このティアドロップの沈殿剤（ｐｒｅｃｉｐｉｔａｎｔ）は、ｘＧを含む経路内になければならない。この事例における識別された沈殿剤は、ｘＧ自体である。生成された集合制約は、次の項：ｏＢ、ｏＣ、ｏＧを含む選言肢句（ｄｉｓｊｕｎｃｔ  ｐｈｒａｓｅ）である。
【００１８】
最新の仮定を除去する結果およびそれに伴う表明は、ｏＧが表明されて、後続の表明はないということである。
【００１９】
次いで、ｘＨが仮定される場合、次の表明：ｘＲ、ｘＳ、ｏＰ、ｏＱ、ｘＭ、ｘＮ、およびｏＺまたはｘＺのいずれか、が強制される。この時点で、その根拠における３つの仮定、ｘＢ、ｘＣ、およびｘＨを有する矛盾が、制約２３または２４のいずれかに存在する。重層化根拠が使用されているので、このティアドロップの沈殿剤は、ｘＨを含む経路内になければならない。この事例における識別された沈殿剤は、ｘＨ自体である。生成された集合制約は、次の項：ｏＢ、ｏＣ、ｏＨを含む選言肢句である。
【００２０】
最新の仮定を除去する結果およびそれに伴う表明は、ｏＨが表明されて、後続の表明はないということである。
【００２１】
次いで、ｘＪが仮定される場合、次の表明：ｘＲ、ｘＳ、ｏＰ、ｏＱ、ｘＭ、ｘＮ、およびｏＺまたはｘＺのいずれか、が強制される。この時点で、その根拠における３つの仮定、ｘＢ、ｘＣ、およびｘＪを有する矛盾が、制約２３または２４のいずれかに存在する。重層化根拠が使用されているので、このティアドロップの沈殿剤は、ｘＪを含む経路内になければならない。この事例における識別された沈殿剤は、ｘＪ自体である。生成された集合制約は、次の項：ｏＢ、ｏＣ、ｏＪを含む選言肢句である。
【００２２】
最新の仮定を除去する結果およびそれに伴う表明は、ｏＪが表明されて、これが次の表明：ｘＫ、ｘＲ、ｘＳ、ｏＰ、ｏＱ、ｘＭ、ｘＮ、およびｏＺまたはｘＺのいずれか、を強制することである。この時点で、その根拠における２つの仮定、ｘＢおよびｘＣを有する矛盾が、制約２３または２４のいずれかに存在する。重層化根拠が使用されているので、このティアドロップの沈殿剤は、ｘＣを含む経路内になければならない。この事例における識別された沈殿剤は、ｘＣ自体である。生成された集合制約は、次の項：ｏＢ、ｏＣを含んでいる選言肢句である。
【００２３】
最新の仮定を除去する結果およびそれに伴う表明は、ｏＣが表明されて、後続の表明はないということである。
【００２４】
現在確立されているパターンに続いて、次の集合制約が生成される：（ｏＢ，ｏＤ，ｏＧ）、（ｏＢ，ｏＤ，ｏＨ）、（ｏＢ，ｏＤ，ｏＪ）、（ｏＢ，ｏＤ）、（ｏＢ，ｏＥ，ｏＧ）、（ｏＢ，ｏＥ，ｏＨ）、（ｏＢ，ｏＥ，ｏＪ）、（ｏＢ，ｏＥ）、（ｏＢ，ｏＧ）、（ｏＢ，ｏＨ）、（ｏＢ，ｏＪ）、（ｏＢ）。さらに、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｊ、およびＫの仮定はいかなる矛盾も生じない。
【００２５】
変数Ｃ、Ｄ、Ｅ、およびＦは、他の変数と同一の関係を有し、同じことが変数Ｇ、Ｈ、Ｊ、およびＫについても言える。変数Ｃ、Ｄ、Ｅ、Ｆ、Ｍ、Ｎ、Ｐ、およびＱは、変数および制約のブロックとして解釈することができ、それは、Ｇ、Ｈ、Ｊ、Ｋ、Ｒ、Ｓ、Ｔ、Ｕ、および他の同様のブロックの内部結合と合同の内部結合を有し、また、集合｛Ｃ，Ｄ，Ｅ，Ｆ｝および｛Ｇ，Ｈ，Ｊ，Ｋ｝の濃度（ｃａｒｄｉｎａｌｉｔｙ）をこれらのブロックの「サイズ」として解釈する。これらのブロックは、Ｂの項を含む制約から成る始片（ｉｎｉｔｉａｌ  ｓｅｇｍｅｎｔ）、およびＺの項を含む制約から成る終片（ｔｅｒｍｉｎａｌ  ｓｅｇｍｅｎｔ）と直列に結合される。
【００２６】
この例で生成される集合制約の数は、ブロックのサイズの積に等しい。同様に結合された集合内の変数の数が変化する場合、生成される集合制約の数は、始片に隣接したブロックが、そのサイズを１に減らされていない限り、そのサイズの積のままである。追加のブロックが直列に挿入されると、Ｂが第１の仮定の変数のままである限り、かつ始片に隣接したブロックが常に、仮定が行われる最後のブロックである限り、生成される集合制約の数は、全てのブロックのサイズの積である。ブロックサイズの積は、ハイパー多項式数であり、従って、上述の説明で使用された方法は、ハイパー多項式コストなしで解決を提供しない。
【００２７】
同じ仮定を前提として、順序に関係なく、ティアドロップを集合制約としてパラメータ化しない本発明の実施形態は、ｏＢが、ブロックのサイズの積であるＺを通るトラバーサルの数ではなく、むしろＺを通る単一の反逆転（ｃｏｕｎｔｅｒ−ｒｅｖｅｒｓａｌ）で無条件に表明されるとの結論に至る。何らかの困難を伴って、集合制約を生成するアルゴリズム例が、近接空間を通って矛盾を移動させると解釈することは可能であるが、遷移が矛盾を１つのティアドロップから直接別のティアドロップに移動させ、各ティアドロップが、表明を最新の仮定が除去された場合に反表明となると解釈する場合、かかる反表明はその根拠においてもはや最新の仮定を有していないことは常に事実である。他方、本発明の実施形態は、矛盾を、同じ近接空間を通して隣接して移動させるので、それらは、アルゴリズム例が、見落とすか、またはかなりの努力によってのみ検出する関係を検出することが可能であり、この検出は、特に、矛盾が最新の仮定が反表明の根拠から除去されるような沈殿剤ではない以前の分岐点を通って逆戻りする場合、または矛盾が仮定を否定させて反表明または含意が単一の層の外側で継続する場合に生じる。
【００２８】
ハイパー多項式コストを回避する集合制約を生成する上述のアルゴリズムに対する修飾（ｅｍｂｅｌｌｉｓｈｍｅｎｔ）がある。かかる修飾の１つは、仮定を始片に適用し、次いで、始片に近い順に、ブロックに適用する。かかる修飾は、例えば、どの値述語が仮定になるべきかを決定するために、式の全体構造の事前分析を必要とし、事前分析を必要とする修飾は、アルゴリズムを式の特定の構造に効果的にチューニングしている。他方、修飾は、多くの場合、式の構造の事前分析のない全ての事例で役に立たず、それ故、この問題に対するクレイ数学ミレニアム懸賞はこれまで授与されていない。本発明の実施形態は、式の構造の事前分析なしに全ての事例で役に立つ改善を含む。
【発明を実施するための形態】
【００２９】
本発明の実施形態は、「ＮＰ」、「ＮＰ完全」、および「ＮＰ困難」と呼ばれる複雑性クラスにおける問題を解決する機械の性能を改善するためのシステム、方法、および／または装置を提供する。
【００３０】
「Ｐ」は、決定性チューリング機械によって、多項式時間内に解決できる問題のクラスである。決定性チューリング機械は、直列処理または制限された並列処理に関与する。「ＮＰ」は、非決定性チューリング機械によって、多項式時間内に解決できる問題のクラスである。非決定性チューリング機械は、制限のない並列処理が可能である。「ＮＰ完全」は、Ｐにおけるメンバーシップが疑われるＮＰにおける難問の部分集合である。ＮＰ完全問題の例は、巡回セールスマン問題および充足可能性（ＳＡＴ）問題である。ＮＰ完全問題は、いくつかの技術分野に関連する。「ＮＰ困難」問題は、ＮＰ完全であると分かっている構成要素を有するが、他の構成要素を有し、それら他の構成要素は扱いやすいが、そうでなければ分類されていない問題である。
【００３１】
連言標準形は、式を、各制約が１つ以上の選言（「ＯＲされた」）論理項から成る連言（「ＡＮＤされた」）制約のリストとして表す。「項」は、特定の制約のコンテキストで特定の値割当てが起こる場合に、特定の変数に対する値割当て（通常、「真」または「偽」）の特定のインスタンスである。従って、項は、特定の制約のコンテキストにおける変数の値である。異なる制約内の同じ変数の同じ値は、異なる項を表す。ＮＰ内である任意の問題の表現は、ハイパー多項式コストを被らない連言標準形での論理式への変換を有することが知られている。
【００３２】
計算的に、空間および時間は多項式的に交換可能であり、そのため、具体的に多項式時間についてではなく、一般的に多項式コストについて説明する。任意の連言標準形の式の充足可能性を多項式時間に決定性機械で決定できるということは、すなわち、任意のＮＰ完全またはより単純な問題をハイパー多項式コストなしで解くことができることに等しい。
【００３３】
本発明の前は、ＮＰ完全問題と同様に、整数の素因数分解などのＮＰにおける他の多くの問題の解法は、問題に示された変数に対して可能な値割当ての全数探索を必要とするか、そうでなければ、Ｎ３などの多項式コストではなく、Ｎ！または３Ｎなどの、ハイパー多項式コスト（ここで、Ｎは問題への入力のサイズ）を必要とするかのいずれかであった。これに対して、本発明の実施形態は、問題に示された変数に対して可能な値割当ての全数探索を必要とせず、且つ、ハイパー多項式コストを必要とせずに、ＮＰ完全問題、およびＮＰにおける他の問題に対する解法を見つける。従来型のコンピュータにおける乗算回路は、２５５と３７の積を、第２の引数の値に比例する数（繰返し加算）ではなく、そのレジスタ内のビット数に比例する基本ステップ数で計算する（各「ゼロ」ビットに対する結果をシフトして、第２の引数内の各「１」ビットに対する第１の引数を加算する）ことを可能にするが、それは、計算コストにおける対数減少であり、それと全く同じように、本発明の実施形態は、従来型または専用に拘らず、コンピュータが、ＮＰ完全問題またはＮＰにおける他の問題を、ハイパー多項式の数ではなく、問題内の変数の数の５乗に比例する数より少ない基本ステップ数で解決することを可能にする。本発明の実施形態は、それにより、線形から対数コストへの減少に相当する計算コストの削減を可能にする。
【００３４】
コンピュータが発明された１つの理由は、難問を確実かつ迅速に解決するためである。コンピュータプロセッサおよび／またはコンピュータとして実装される本発明の実施形態は、自動計算装置およびそれらの挙動を制御するためにコンピュータを使用する他のマシンに対して非常に重要な改善を提供する。この改善は、判断が計算されている間にコンピュータを設置して運用するために必要な電力、冷却、使用料、およびその他のコストを大幅に削減するだけでなく、コンピュータのオペレータが結果を待つ時間も削減する。本発明の実施形態で補強される自動計算装置はもはや、従来方法でプログラムされる必要はなく、代わりに、かかる装置またはシステムは、制約の集合を、それらが構造または挙動の要件であるか否かに拘らず、満たすべき要件として受け取り、当該機械は、それらの制約を満たす方法で、結果を出力するか、または動作する。
【００３５】
本発明の実施形態が、自動化プロセスを実行するコンピュータまたは他の装置の性能に対して、それらの改善をもたらす１つの手段は、コンピュータ内のスイッチに特定の配置を課すことにより、これらのスイッチは「除外」の物理的特性に依存する。フェルミオン間の除外は、同じ型の２つのフェルミオン、すなわちフェルミ粒子が、同時に同じ空間を占有できないということに内在し、そのため、１つの粒子を所定位置に強制すると、１つのギアの歯が、このギアとかみ合っている別のギアの歯を押す場合のように、別の粒子が所定位置から強制的に出され、このようにして、外力を１つに加えているだけで、両方のギアの位置を切り換える。ボソン間の除外は、搬送波全体に亘って設計できる電位に内在し、トランジスタ内におけるように、電位を常に高または低のいずれかにできる。様々な基板上で動作する多くの種類のスイッチが周知であり、本発明の実施形態によってもたらされる改善が、スイッチまたは基板のタイプによらず、スイッチの配置に内在するので、特定の種類のスイッチに特有の言語は、本発明の記述に使用されず、言語は、本発明の実施形態であるスイッチの配置のための所望の挙動を詳細に記述するので、集合、順序付け、またはネットワークの説明などの、抽象的に見える言語が使用される。言語のこの使用は、ギアの構造をどのように記述するかと同様であり、記述された物を製造する方法は当業者によって周知であるので、ギアが木または金属で作られているか否かを指定するのではなく、また、ギアを製造するために使用される彫刻または鋳造を説明することなく、ギアができている原料の相対的な剛性を指定する。言語のこの使用は、既成のギアおよびばねの集合から組み立てられている時計仕掛け機構を、かかる既成部品が市販されていることが知られており、記述された効果を発揮するためにそれらの部品を取り付ける方法は当業者に周知であるので、既成部品の各々の構成について詳細を記述することなく、回転比率およびシンコペーションの用語で記述する方法にも似ている。しかし、本発明の実施形態が、機械として、かつ機械を制御する方法として実装されるという事実は、かかる機械および方法を記述するために使用される言語がいかに抽象的であろうとも、言語のこの使用はいずれも、その事実を取り除かない。
【００３６】
本発明の一実施形態は、所与のＮＰ、ＮＰ完全、またはＮＰ困難問題を、決定性機械を使用して多項式時間に解決するデータ処理システムである。所与の問題定義は、論理的にまたは他の方法で決定論的制約から成る式に変換される。次に、制約変数に対する値を必要に応じて仮定する段階、値仮定に起因する含意の経路を辿る段階、含意された各値に対して１つの経路を選択する段階、判断を通知するために辿る経路を使用することによって否定される「矛盾を引き起こす値」を選択することにより制約の任意の矛盾を解決する段階、仮定または擬似仮定を含む経路によって表明される値を常に否定する段階、および、矛盾した制約を表明している制約に変換する段階のプロセスが、矛盾した制約が残っておらず且つ全ての変数が値を得ているか、または仮定もしくは擬似仮定を含む経路によって表明される否定されるべき値がない矛盾した制約が存在するかのいずれかまで、繰り返して式に適用される。このプロセスの各部分の繰返し数は、式のサイズの多項式によって境界される。
【００３７】
本発明の実施形態は、判断を効率的に行うために情報を処理する１つ以上の装置および／または自動化プロセスとして実装される。かかる実施形態の挙動は、オブジェクトのシステム、それらのオブジェクトが何であるかの定義に寄与する必要な関係、およびそれらのオブジェクトの状態を必要な関係と一致する方法で変更する変換を使用して説明される。本発明の実施形態を記述するために使用される特定の用語を以下に説明する。
【００３８】
＜集合＞
【００３９】
本明細書では、数学的言語の「集合」を使用する。集合を結合する周知の演算は、「和集合」および「交わり」である。集合間の周知の比較演算は、「部分集合」および「上位集合」である。明確化のため、「部分集合」および「上位集合」は、比較される２つの集合が同一である可能性を含み、他方、「真の部分集合」および「真の上位集合」はその可能性を排除する。集合間での「写像」の周知の概念も、「集合関係」のクラスとして、簡単に記載する。
【００４０】
＜変数＞
【００４１】
それぞれの「変数」は、値の集合として特性化できる可変性のロケール（ｌｏｃａｌｅ）である。例えば、各変数は、所与の式に出現する論理述語の名前である。適用時、変数は、コンピュータチップ上のピン、数値レジスタ、何らかのプログラミング言語における英数字列、または一度に１つの値（または値無し）を表現する特性を有し且つ経時的に２つ以上の値を表すことができる任意のデータ構造に供給される有効な電圧の集合である。この点で、本明細書における変数は、ソフトウェア工学の領域における変数に似ている。
【００４２】
＜値＞
【００４３】
変数の「値」は、本明細書では、実質的に可算であるか、または実質的に区分可能（ｄｅｌｉｍｉｔａｂｌｅ）である。実質的に可算でも区分可能でもない変数値を含む問題は、ＮＰでない可能性がある。定義により、ブール変数の値は実質的に可算である。
【００４４】
「アトミック値」は、変数の、割り切れない相互排他的な基本値である。数値変数Ｘにおいて、「３」はアトミック値であり、「｛２，３｝」および「Ｘ＜３」はアトミック値でない。
【００４５】
変数は、別の方法では式中に出現しない数値変数に関する論理述語として定義される。この場合、式変数は数値でなくブールであり、式変数のアトミック値は、数ではなく、「真」および「偽」である。
【００４６】
＜値述語＞
【００４７】
「値述語」は、変数のアトミック値の特定の部分集合を定義する文である。変数の全てのアトミック値を含む集合は、有効な値述語ではない。アトミック値を含んでいない集合は、有効な値述語ではない。言い換えれば、「空（ｎｕｌｌ）」および「内在する矛盾」は、本明細書で使用する用法では、有効な値ではない。例えば、「Ｘ＝３」、「Ｘ＞３」、「２＜Ｘ＜３」、「２を法とするＸ＝１」、「Ｘ∈｛２，３｝」、および「Ｘ＝補集合（２＜Ｎ＜３）」（Ｎが、本明細書で定義されるように、式の変数を参照しないが、値述語を独立して定義するために厳密に使用されるパラ変数を参照する場合）は全て、数値変数に対する有効な値述語であり、他方、「Ｘ＝Ｙ」、「１＜Ｘ＜０」、および「Ｘ＝補集合（１＜Ｎ＜０）」は有効な値述語ではない。
【００４８】
述語の連言について記述する場合、これは、述語によって表されるアトミック値の集合の交わりと同一である。
【００４９】
本明細書で挙動を変数値の用語で記述する全ての場合、スイッチの挙動を記述している。スイッチ状態、またはスイッチの順序付けられているか若しくは順序付けられていない集合の状態を「数」、「ブール値」、または「述語」として解釈し、また、これは、多くの場合、エンジニアリング目的であるが、記述的な便宜に過ぎず−記述される挙動はスイッチの挙動であって、数、集合、または論理状態自体の挙動ではない。
【００５０】
＜項＞
【００５１】
「項」は、制約のコンテキスト内で、主として、変数の参照、または変数の再生（ｒｅｐｒｏｄｕｃｔｉｏｎ）から成る。「制約」の説明は、後述する。
【００５２】
本発明のある実施形態は、二値論理を使用していると解釈されるシステムに組み込まれる。二値論理では、項は、通常、変数のブール値を表していると解釈される。これは、項が、論理モデルに対して「真」もしくは「偽」のいずれかであるか、またはデジタル数値モデルに対して「１」もしくは「０」のいずれか、またはトランジスタ回路に対して「高電圧」もしくは「低電圧」、または完全に抽象的なモデルに対して（例えば）「ハグ」もしくは「キス」のいずれかとして解釈される、項の変数の値を効果的に表すクレームに対する省略表現である。二値論理に不可欠なことは、第３の値がないこと、従って、解決すべき問題があるために、２値は、その値にどんな名前が付けられているかに拘らず、一致していないことである。かかる項は、ブール値述語と呼ばれる。
【００５３】
本発明の一実施形態は、多値論理を使用していると解釈されるシステムに組み込まれる。多値論理の例は、一階論理であり、それは、数の表現を含む。多値論理では、項は、二値論理と同様に、ブール値を表すが、それは、代わりに、明示的な述語の主語ではない何らかの変数の値を表す。かかる変数の値を表している場合、かかる項は、非ブール値と呼ばれる。
【００５４】
値の任意の特定の集合を表す代わりに、多値論理における項は、他の変数との等式または不等式関係の一部である。項が、他の変数との等式または不等式関係の一部であるために、関係は特定の要件を満たす必要がある。これらの特定の要件の説明は、以下のＳＯＭＭＥの説明で提供される。
【００５５】
二値論理または多値論理を使用しているか否かに拘らず、各々が同じかまたは異なる変数を参照している多くの項が式中にある。
【００５６】
＜句＞
【００５７】
「句」は、値述語を表している項のアドレス可能な集合を含む。句は、任意の数の項を含むが、句内の各項に対して、同じ変数の値述語を表す他の項はない。各句はまた、それが含む値述語の連言または選言のいずれかを表す。数値的に表されたベクトルが連言句の例であり、ＣＮＦ制約が選言句の例である。
【００５８】
＜制約＞
【００５９】
二値論理では、「制約」は、ブール項の非空の選言句によって表される。多値論理では、制約は、選言句、または、充足可能もしくは相互写像式（ＳＯＭＭＥ：ｓａｔｉｓｆｉａｂｌｅ−ｏｒ−ｍｕｔｕａｌｌｙ−ｍａｐｐｅｄ  ｅｘｐｒｅｓｓｉｏｎ）のいずれかによって表される。
【００６０】
＜ＳＯＭＭＥ＞
【００６１】
「ＳＯＭＭＥ」は、部分式内の変数のうちの１つを除いて全ての値を決定することが、部分式を満たすか、または、どの変数が以前に決定されていないものかに拘らず、かつ、特定の決定された値に拘らず、以前に決定されなかった１つの変数に対する値述語が真であることを暗示するかのいずれかであるように、変数間の関係を表す部分式である。例えば、Ｒが実数の集合であり、ｘ、ｙ、ｚ∈Ｒの場合、例えば、ｘ＝０およびｚ＝０のときｙの値は任意の数であり、不明のままであるので、「ｘ＋ｙ＝ｚ」はＳＯＭＭＥであるが、「ｘ＊ｙ＝ｚ」はＳＯＭＭＥではない。しかし、「ｘ＝０  ＯＲ  ｙ＝０  ＯＲ  ｘ＊ｙ＝ｚ」は、文全体が満たされない限り、因子の１つが０である可能性を排除するので、ＳＯＭＭＥである。同様に、「ｘ３＝ｙ」はＳＯＭＭＥであり、「ｘ＜０  ＯＲ  ｙ＜０  ＯＲ  ｘ２＝ｙ」もＳＯＭＭＥであるが、「ｘ２＝ｙ」は議論の余地がある。
【００６２】
「ｘ２＝ｙ」の事例では、ｙが実数の単一のアトミック値であると決定される場合、ｘは、ｙの正の平方根またはｙの負の平方根のいずれかである。暗黙値としてアトミック値のみを受け入れる場合、「ｘ２＝ｙ」はＳＯＭＭＥではないが、集合が暗黙値であるのを許容する場合、「ｘ２＝ｙ」はＳＯＭＭＥである。どの値が暗黙であると許容されるかは、解決される問題の定義に内在する判断であり、そのため、以後、使用される用語は、「値述語」が暗黙されることであり、この用語は、何がＳＯＭＭＥを構成するかのいずれの解釈も許容する。
【００６３】
「ｘ＝０  ＯＲ  ｙ＝０  ＯＲ  ｘ＊ｙ＝ｚ」の事例では、ｙ＝１であるようにｙに対する決定因子が存在し、次いでｘ＝０であるようにｘに対する決定因子が導入される場合、「ｘ＝０  ＯＲ  ｙ＝０  ＯＲ  ｘ＊ｙ＝ｚ」の第１の部分、すなわち、「ｘ＝０」が制限されないので、ｚに対する表明はない。これが、「部分式を満たす」によって意味されるものである。
【００６４】
＜不一致＞
【００６５】
それらの交わり内にアトミック値の空集合を有する同じ変数の値述語が「不一致」と言われる。
【００６６】
＜補完性＞
【００６７】
いずれの集合内の述語も、同じ集合内の他の述語と不一致ではなく、第１の集合の交わりが第２の集合の交わりと一致せず、かつ、変数の全てのアトミック値が、排他的に、１つの集合または他の集合のいずれかにある場合、値述語の１つの集合は、同じ変数に対する値述語の別の集合に対して「補完的」である。二値論理では、各変数値は、その変数に対する他の可能な値だけを補完し、それと一致しない。
【００６８】
＜議論を引き起こさないこと（Ｕｎｃｏｎｔｒｏｖｅｒｓｉａｌｉｔｙ）＞
【００６９】
１つの変数に対して、すべての制約内で表されている全ての値述語の連言が不一致ではなく、かつ、その変数の項を有するＳＯＭＭＥがない場合、それらの項の変数は「議論を引き起こさない」と言われる。
【００７０】
＜決定因子＞
【００７１】
値述語の連言が、一時的に（「条件付きで」としても知られている）または必ず（「無条件に」としても知られている）であろうと、真であると考えられる場合、その連言に起因するアトミック値の集合を「決定因子」と呼ぶ。
【００７２】
＜制限＞
【００７３】
決定因子が項と一致しない場合、決定因子が選言句内の項の値を制限するという。
【００７４】
ＳＯＭＭＥが同じ変数の項を有し、以下の３つの事例のいずれかに該当する場合、決定因子がＳＯＭＭＥ内の項の値を制限するという。具体的に：
ＳＯＭＭＥ内の全てではない項が、決定因子を有する変数を表しており、この決定因子はＳＯＭＭＥを満たさない、または
この決定因子の結果として、ＳＯＭＭＥは、この項によって表される変数以外の変数に対して同語反復ではない値述語を暗示する、または
ＳＯＭＭＥ内の全ての項が決定因子を有する変数を表しており、所与の決定因子が存在していなかった場合、ＳＯＭＭＥは、同じ変数の項によって表された変数に対する値述語を所与の決定因子として暗示するが、その値述語は所与の決定因子と一致しない、という事例である。
【００７５】
＜表明＞
【００７６】
決定因子が、制約内の項のうちの１つを除いて全てを制限する場合、値述語が、１つの制限されていない項の変数に対して「表明」される。制約の制限された項の全てが無条件に制限される場合、それらの制限によって課される制約の表明は自明に無条件である。また、制約が１つの項のみを含む場合、その項に対して表された値述語は、自明に無条件に表明される。そうでない場合、制約の項のいずれかが無条件に制限されていないが、制約が値述語を表明する場合、その表明は条件付きである。いくつかの制約が、２つ以上の要素をもつアトミック値の集合を表す値述語を表す項を含む場合、制約が、第１の値述語を無条件に表明し、かつその無条件表明の真の部分集合である第２の値述語を条件付きで表明することが可能である。
【００７７】
制約は、その条件付き制限の１つ以上が取り除かれた後でさえ、継続して条件付き表明を有する。無条件制限は取り除くことができない。
【００７８】
＜制限サポート＞
【００７９】
同じ変数を表す現存の表明は、「連言的に収束する（ｃｏｎｊｕｎｃｔｉｖｅｌｙ  ｃｏｎｖｅｒｇｅ）」と言われ、現存の表明によって表される値述語の交わりは、その変数に対する現存の決定因子である。現存の表明の所与のクラスが連言的に収束して、項に関する制限の部分集合であるアトミック値の集合を表す決定因子を生じる場合、表明の所与のクラスは、その制限を「完全にサポートする」と言われる。
【００８０】
＜優勢（Ｐｒｅｖａｌｅｎｃｅ）＞
【００８１】
表明の連言（表明されている値述語によって表されるアトミック値の集合の交わりとしても知られる）は、それらの共通の変数に対する決定因子となる。
【００８２】
多数の制約が、単一のアトミック値または、同じ変数に対する複数のアトミック値の集合を表す別の値述語を表明する。二値論理を適用する場合など、式の制約が、同じ変数に対して２つ以上の要素をもつアトミック値の集合を表す値述語を含まない場合、その同じ変数の表明のせいぜい１つが「優勢である」。そうでない場合、同じ変数に対して複数の優勢な表明を有することが可能である。
【００８３】
通常、決定因子を構成する連言内の表明は、優勢な表明である。無条件表明の事例では、表明は通常、優勢である。同じ変数に対する優勢な無条件表明の間で、それらの表明の値述語によって表されるアトミック値の集合の交わりが無条件決定因子となる。同じ変数に対する連言条件付き表明の間で、それらの表明および優勢な無条件表明の値述語によって表されるアトミック値の集合の交わりが条件付き決定因子となる。決定因子は、表明が連言に追加されるたびに更新される。表明は通常、それらが優勢になると、連言に追加される。
【００８４】
１つの優勢な表明だけが各変数に対して許可される場合、その変数に対する任意の無条件表明が優勢なものである。１つの優勢な表明だけが１つの変数に対して許可され、その変数に対して無条件表明がなく、かつ優勢である複数の条件付き表明がある場合、どの表明を優勢として指定するかの選択は任意であり、現れる最初のかかる表明をとることにより最も容易に行われる（何か他の表明が存在するかに拘らず、優勢になることができない条件付き表明の説明については下記を参照）。
【００８５】
２つ以上の優勢な表明が各変数に対して許可される場合、表明は、以下で説明するように、それらの条件付けに応じて分けられる。
【００８６】
優勢としての指定に対する候補である無条件表明の間で、現れる最初のかかる表明が優勢にされる。同じ変数に対して続いて現れる無条件表明が、前に現れた優勢な無条件表明によって表された任意の値述語に含まれるアトミック値の真の部分集合を表す場合、それらの前に現れた表明は通常、非優勢となり、その後に現れた表明が常に、優勢になる。その後に現れた無条件表明が、以前に現れた優勢な無条件表明のいずれかの部分集合を表しておらず、その後に現れた無条件表明の、以前に現れた優勢な無条件表明の交わりとの交わりが、以前に現れた優勢な無条件表明の交わりの真の部分集合である場合、その後に現れた表明が優勢になる。他の全ての事例において、その後に現れた無条件表明は通常、優勢にならない。多くの事例ではあまり効果的ではなく、いくつかの事例ではもっと効果的であるが、これらの規則を無視して全ての無条件表明を優勢にすることは許容可能である。
【００８７】
その後に現れた無条件表明が、同じ変数に対して以前に現れた優勢な条件付き表明に対する値述語の部分集合を表す場合、以前に現れた条件付き表明は、非優勢になる（但し、その必要はない）。同様に、無条件表明が通常、非優勢となるが、実際には優勢のままである、上述の事例では、本発明の効率性が低下するが、それがハイパー多項式になるポイントまでではない。以下の説明は、かかる表明が非優勢になると推定する。
【００８８】
同じ変数に対して無条件表明が存在しない場合に優勢として指定するための有効な候補である条件付き表明の間で、現れる最初のかかる表明が優勢にされる。その次に現れる有効な候補の条件付き表明によって表される値述語の集合の交わりおよび同じ変数に対して前に現れた優勢な無条件および条件付き表明の交わりが、前に現れた優勢な無条件および条件付き表明の交わりの真の部分集合である場合、その次に現れる表明が優勢になる。他の全ての事例では、その次に現れる条件付き表明は優勢にならない（優勢としての指定に対する無効な候補については、後述する）。
【００８９】
各表明が優勢になると、それは、連続内で次の番号と関連付けられる。この番号は、表明の「優勢」数と呼ばれる。
【００９０】
＜仮定＞
【００９１】
処理中、制約によって生成されておらず、以前に決定因子を有していなかったか、または決定因子を有しているが、その決定因子が２つ以上のアトミック値を含む集合を表している、変数に対するものである、１つ以上の表明を作成する。かかる表明は「仮定」または「仮定的表明」と呼ばれ、その値述語は「仮定的」である。それに対して、制約から強制される表明は、「暗黙の表明」と呼ばれる。仮定は常に条件付きであり、各値述語は、仮定的値述語が表す変数に対する決定因子の一因となるはずである。
【００９２】
本発明のいくつかの実施形態では、仮定を、明示的にではなく、暗黙的に行うことが可能である。例えば、制約が、グループの各メンバーがそのグループを識別する値述語のある集合内にある値述語を表すいくつかの項を有する、グループに編成され、この編成が、このある集合内にない変数の値述語あるいは変数を表す同じ制約内の他の項の生産的な相互作用（ｐｒｏｄｕｃｔｉｖｅ  ｉｎｔｅｒａｃｔｉｏｎ）を比較するために存在する場合、制約の編成は、共通の値述語の各集合内の項に関して共通の制限を効率的に仮定する。
【００９３】
＜矛盾＞
【００９４】
制約の全ての項が制限される場合、制約内に「矛盾」がある。式は、その項の全てが無条件に制限されている任意の制約を含む場合、満たされない。
【００９５】
＜満たす＞
【００９６】
任意の制約は、その項の１つ以上が制限されておらず、その項の変数が決定因子を有する場合に「満たされる」。式は、その制約のいずれも矛盾せず、全ての変数が、単一のアトミック値を含む集合を表す決定因子を有する場合に満たされる。
【００９７】
アトミック値の集合が値述語として容認可能な事例では、全ての制約が満たされて、全ての変数が決定因子を有する場合に、式が満たされることが可能であり、各決定因子が単一のアトミック値を含む集合を表すことは必要としないが、これが当てはまるかどうかは、式の特定の本質に依存する。一般に、式が、同じ２つの集合の別の直接または間接写像の並べ替えである２つの集合の任意の写像を含む場合、式は、式を満たすために単一値述語を必要とするとして処理される。
【００９８】
＜プール＞
【００９９】
「プール」は、要素の追加および除去ができるアドレス可能な集合である。プールそれ自体として、要素は、任意の順序で、プールに追加し、またはプールから除去する。プールは、追加された要素が除去される順序に対して特定の規則も組み込む。例えば、非優勢キューは、「先入れ先出し」（ＦＩＦＯ）規則を組み込み、また、スタックは「先入れ後出し」（ＦＩＬＯ）規則を組み込む。
【０１００】
スタックおよびキューの両方は、プールの特定の種類である。スタックは、それらに「プッシュ」されて、それらから「ポップ」される要素を有する。キューの事例では、要素は「エンキューされ」て、「デキューされる」。当初は、全てのプールが空であり、最後の要素がスタックからポップされているか、またはデキューされていると、そのプールは再度空になる。
【０１０１】
＜含意＞
【０１０２】
「含意」は、新しい決定因子が導入される際にトリガーされるプロセスである。このプロセスでは、新しい決定因子によって制限される項が識別されて、それらの項の制約が、各制約内の項の全てまたは１つを除いて全てが制限されるかどうかを確認される。
【０１０３】
制約が満たされず、制約内の１つを除いて全ての項が制限される場合、制約は値述語を表明する。新しい表明は、上述のように、優勢になることもあれば、ならないこともある。新しい表明が優勢になる場合、新しい決定因子が導入されて、これらのステップが繰り返される。多くの表明は単一の決定因子の導入から生成されるので、含意プロセスは、表明および結果として生じる決定因子を管理するためのプールを有するか、または演算の並列経路を提供する機構を有するかのいずれかを必要とする。
【０１０４】
含意は、制約が矛盾するようになるとすぐに停止され、含意プロセスの最新の反復内で新しい優勢な表明が生成されなかった場合には必ず停止する。
【０１０５】
効率のために、第１の無条件決定因子が式に導入されるときはいつでも、その第１の無条件決定因子によって強制される任意の他の無条件表明が、任意のさらなる条件付き含意または別の条件付き決定因子を導入する他の動作が生じる前に、式を通じて伝搬される。
【０１０６】
＜根茎状ネットワークにおける近接性＞
【０１０７】
含意の伝搬は、制限の概念において見られ、それは、各制約が、他の制約内の項によって表されている通り、同じ変数に対する値述語を表す項を含む、任意の２つの制約間で生産的に伝えることだけができ、これらの項の間で、厳密に１つの項が、他の制約内の同じ変数を表す項を制限する。二値論理では、これは、厳密に１つの項が、他の制約内の一致する項の値述語と一致しない値述語を表し、他の全ての述語は、同じ変数を表す一致する項を有していないか、または他の述語が、その一致する項によって表される通りに同じ値述語を表すことを意味する。
【０１０８】
ＳＯＭＭＥの相互写像部分の事例では、生産的である（すなわち、１つの制約内の単一の項が、別の制約内の単一の項を制限する）ために同じ関係が必要であるが、このことは、通常、式内のどのＳＯＭＭＥも、式内の別のＳＯＭＭＥによって表される写像の部分集合を表していないという推定によって覆い隠される。この推定が正しい場合、共通の変数を共有する項を有する、満たされていない全てのＳＯＭＭＥは、生産的な関係を有するが、関係を生産的にするのは、制限の唯一の性質であり、変数の共通性の唯一または複数の性質ではない。
【０１０９】
これらの対での生産的な関係の集合的の含意実施によって明白にされる構造は、収束の２つの形式を提供する。２つの表明は、同じ変数に対して不一致でない値述語を表すことにより連言的に収束する。２つの表明は、その後何らかの他の値述語を表明する任意の単一の制約内の異なる項を制限することにより選言的に収束する。連言的に収束する表明間では、他の表明の部分集合ではない表明が通常、優勢にされる。選言的に収束する表明間では、それらが収束する前に全てが優勢である。
【０１１０】
含意構造は、連言の２つの異なる形式によって生成されるので、その半順序の構造を、束の集合、または従来型のネットワークと呼ぶことは、間違いではないが、不正確である。代わりに、含意構造は「根茎状ネットワーク」と呼ばれ、これは、従来型のネットワークについて作用するように定義されている動作が、根茎状ネットワークについて作用するように定義されている動作に類似するが、根茎状ネットワークについて作用する本発明のいくつかの動作によって処理される必要のある機械的詳細および機能的な事例数の増加に伴い、これらの動作を、半順序集合または従来型のネットワークについて作用するように定義されている類似した動作と大いに区別することを強調する。
【０１１１】
上述のように、生産的な関係を有する２つの制約であって、それに対する１つ制約の表明が、含意的に明白な根茎状ネットワーク内で「隣接している」と言われる他の制約内の項を実際に制限する。近接性は、本明細書で使用される用語では、含意的に明白な根茎状ネットワーク内の隣接する制約にわたる距離において見られ、拡張された近接性によって定義された空間が近接空間である。
【０１１２】
＜矛盾および仮定の処理＞
【０１１３】
項と、変数と、制約との間で直接参照する方法が実装される。ソフトウェアでは、これは通常、索引を作成することによって達成される。電子機器では、例えば、配線で達成される。
【０１１４】
議論を引き起こさない変数を表す項を含む制約は、安全に除去できる。
【０１１５】
１つだけの項を含む任意の制約は、その項によって表される値述語の無条件表明を構成する。新しい無条件表明が認識されるときはいつでも、含意が生じる。
【０１１６】
含意が停止していて、矛盾した制約がない場合、決定因子のない変数に対して仮定が作成されるか、または全ての変数が決定因子を有している場合には、その決定因子によって表される集合の濃度を低下させる２つ以上のアトミック値を含む集合を表す決定因子を有する変数に対して、仮定が作成され、次いで、含意が生じる。
【０１１７】
含意が停止していて、１つ以上の矛盾した制約がある場合、１つの矛盾が何らかの方法で解決され、次いで含意が生じる。このステップは、矛盾した制約がもうないか、または無条件矛盾が存在するかのいずれかまで、繰り返される。
【０１１８】
上述の全てのステップは、式が満たされない必然的な矛盾が存在するまで、または式が満たされるまで、繰り返される。
【０１１９】
＜矛盾の解決＞
【０１２０】
制約内の全ての項が制限される場合、その制約内に矛盾が存在する。矛盾した制約の全ての項が無条件に制限される場合、必然的な矛盾が存在して、式が満たされず、処理が停止する。矛盾した制約のいくつかの項が無条件に制限されない場合、矛盾は解決され、処理が継続する。
【０１２１】
＜本発明の実施形態の挙動（ビヘイビア）＞
【０１２２】
以下で、本発明の実施形態の挙動、特に、矛盾が本発明の実施形態によってどのように解決されるかを説明する。
【０１２３】
ＮＰ、ＮＰ完全、またはＮＰ困難な問題は、仮定が、明示的または暗示的のいずれかで行われない限り、決定性機械によって解決できない。一般的アルゴリズムが、ハイパー多項式コストを被ることなく、かつそのアルゴリズムが、問題の各特定のインスタンスに適合するように調整される必要なく、かかる問題を解決するために、アルゴリズムはある挙動を示す。
【０１２４】
＜挙動＃１＞
【０１２５】
ハイパー多項式コストを被ることなく、かつ、アルゴリズムが調整される必要なく、ＮＰ、ＮＰ完全、またはＮＰ困難な問題を解決するためのアルゴリズムによって示される１つの挙動（「挙動＃１」）は、矛盾が仮定の含意によって明白にされる根茎状ネットワーク内に見られる場合に、その矛盾に至る優勢な経路内の全ての制約を満たすために、これらの矛盾が、表明される一致していない値述語がない項に対して、値述語を表明しようとして、ネットワーク内を移動されるようにする。
【０１２６】
遺伝的アルゴリズムなどの、推定解法のランダム変動に依存するアルゴリズムは、解集合が全くない場合を識別せず、解集合が小さい場合に蛇行変動を無期限に受けやすい。不確定数の項から成る新しい集合制約を作成するために矛盾をパラメータ化するアルゴリズムは、仮定が選択された順序がたまたま異常であるか、またはどの表明が同一の値述語の表明の間で優勢になるかを決定する順序付けがたまたま異常である場合に、ハイパー多項式数の制約を生じるリスクがある。集合制約を作成するアルゴリズムにおいて異常な順序付けを回避することは、調整が提供すべきことであり、そのため、調整することなく非ハイパー多項式コスト解を提供するために、挙動＃１は、不確定数の項をもつ新しい集合制約の作成を回避しながら、かつランダム変動に依存することなく、矛盾を解決する。
【０１２７】
根茎状ネットワーク内の矛盾の動きを説明するために、以下の追加の定義が提供される。
【０１２８】
＜目的地＞
【０１２９】
本発明のある実施形態では、仮定は非優勢であるが、仮定が表す変数に対する決定因子の一因となる。制限されたが、その制限を表す決定因子を生成するために連言的に収束する現存の優勢な表明がない項は、仮定によって制限されているかもしくは優勢な表明によって制限されたがその表明がその後で除去されているか、または優勢でない暗黙の表明によって一部制限されているかのいずれかである。各矛盾は、仮定によって制限されている項に向かって、または記録された制限が矛盾に至ってそれを生成する優勢な経路の一部である優勢な表明によって完全にはサポートされていない他の項に向かって、移動される必要がある。記録された制限が優勢な表明によって完全にはサポートされていない項は、「目的地」と呼ばれ、現存の優勢な表明および仮定の連言的収束によって完全にはサポートされていない目的地は「擬似仮定」と呼ばれる。
【０１３０】
＜反表明＞
【０１３１】
各矛盾の移動は、矛盾した制約内にある条件付きで制限された項に対する値述語を「反表明する」ことによって生じる。
【０１３２】
＜否定＞
【０１３３】
反表明は、１つの制約における矛盾を解決して、反表明によって表された変数に対する決定因子の一因となるいくつかの表明を「否定」する。仮定的表明の否定は、仮定を除外する。暗黙の表明または反表明された表明の否定は、表明自体を除去して、その制約内に矛盾を生じる。
【０１３４】
反表明はまた、表明していなかった制約内に制限を提供して、その制約から暗黙の表明を生成する。
【０１３５】
＜制約の移動＞
【０１３６】
別の値述語が反表明されている変数を表していて、その反表明された値述語と一致しないか、または反表明された値述語とその変数に対する決定因子の一因となる他の表明の交わりと一致しない値述語の表明を提供した任意の制約が否定され、従って、矛盾を、反表明している制約から一致していない表明を提供した隣接する制約に移動させる。目的地の仮定が否定される場合、または値述語が制限されていると認識されたが、制限している決定因子が優勢な表明によって完全にはサポートされていない項に対して反表明されている場合、前の矛盾の優勢な経路を具現化する制約内に矛盾が存在せず、挙動＃３が提供される限り、その矛盾は、矛盾の記録された優勢な経路から除去されて、含意または反表明の新しい経路が、仮定の否定によって作成されていないか、または見つけられておらず、他の矛盾が既に除去されている場合、式が全体として満たされる。
【０１３７】
＜挙動＃２＞
【０１３８】
ＮＰ、ＮＰ完全、またはＮＰ困難な問題を解決するためのアルゴリズムによって、ハイパー多項式コストを被ることなく、かつ、調整する必要なく示される１つの別の挙動（「挙動＃２」）は：（１）反表明された値述語が無条件であるはずの場合を認識するためのアルゴリズム、および（２）反表明が無条件であるはずの場合を認識するためにハイパー多項式コストを被らないためのアルゴリズム用である。自明に、矛盾した制約内の１つを除いて全ての項が無条件に制限されて、従来の数理解析が、目的地の存在に拘らず、ＳＯＭＭＥが無条件に値述語を反表明することを必要とする状況がある場合、反表明は無条件でなければならないが、制約内の項に対する値述語の反表明も、反表明によって推定的に否定される優勢な表明を提供する副経路を除いて、推定反表明の経路がいかなる目的地も含んでいない場合、無条件である。
【０１３９】
式が、無条件であると認識されるべき反表明を否定することによって満たされないことを認識できないアルゴリズムは、問題式が非自明に満たされない場合、その経路の一部を無限回、辿りなおす。
【０１４０】
＜挙動＃３＞
【０１４１】
ＮＰ、ＮＰ完全、またはＮＰ困難な問題を解決するためのアルゴリズムによって、ハイパー多項式コストを被ることなく、かつ、調整する必要なく示される別の挙動（「挙動＃３」）は、反表明された値述語が、反表明している制約内の矛盾を解決するだけでなく、反表明によって明確に否定される表明を提供した制約を除いて、反表明に至ってそれを生成する優勢な経路内の制約のいずれにも矛盾を生じることがないものである。この挙動は、どの値述語が反表明すべきかの判断が、反表明に至ってそれを生成する優勢な経路に関する情報を有することを必要とする。
【０１４２】
反表明された値述語が、反表明の優勢な経路内にある制約の１つ以上に矛盾を生じる可能性がある場合、区間ニュートン法などの近似アルゴリズムにおける場合のように、不確定、それ故、ハイパー多項式である、ループの繰返し数をもつ反表明された値述語を修正する修正ループが生じる可能性がある。
【０１４３】
多値論理が式によって使用されない場合、矛盾した制約内の任意の条件付きで制限された項は、含意の規則に従って反表明され、その反表明は、反表明に至ってそれを生じる優勢な経路内の制約内に矛盾を生じないと保証される。
【０１４４】
＜挙動＃４＞
【０１４５】
ＮＰ、ＮＰ完全、またはＮＰ困難な問題を解決するためのアルゴリズムによって、ハイパー多項式コストを被ることなく、かつ、調整する必要なく示される別の挙動（「挙動＃４」）は、複数の経路が矛盾を除去することにより式を満足する同等な可能性を有する場合に、値述語が反表明される矛盾した制約内にある項が選択される方法は、矛盾の移動が、同じ経路のハイパー多項式数の繰返しをもつ経路も、経路のハイパー多項式数の変形も辿り直さないようなものでなければならない。
【０１４６】
＜利点＞
【０１４７】
本発明の実施形態は、挙動＃１、挙動＃２、挙動＃３、および挙動＃４の任意の１つ以上を示し、その各々は、装置、ソフトウェア、または自動化プロセスを任意の組合せで使用して実装される。本発明の実施形態は、上述の利益を提供することにより、コンピュータ自体の機能を改善するために実装される。かかる実施形態は、本明細書に開示する新規で非自明的な技術を使用して、それらの有益な結果を達成し、従って、単に、抽象的な概念を応用するため、または抽象的概念をコンピュータ上に実装するための指示を構成しているだけではない。改善されたコンピュータ（または、改善されたプロセッサなど、その１つ以上の構成要素）の形をとる本発明の実施形態は、本明細書に開示する新規で非自明的な機能を実行するための新規で非自明的な回路など、新規で非自明的な構成要素を含む。かかる新規で非自明的な回路は、新規で非自明的であることに基づき、一般的なコンピュータ構成要素ではなく、代わりに、たとえそれらが、当業者に既知のある副構成要素（ある論理ゲートなど）を含んでいても、全体としては、本発明の実施形態に特有の構成要素である。
【０１４８】
全体として、上述した４つの挙動は、ＮＰ、ＮＰ完全、またはＮＰ困難な問題を、ハイパー多項式コストを被ることなく、かつ調整（チューニング）なしで、解決するのに十分である。４つ全ての挙動を示すアルゴリズムを提供することは、たとえ二値論理だけに対しても、Ｐ＝ＮＰであることを証明することになる。Ｐ＝ＮＰであるか否かの問題は、１９７０年に正式に提起されて、クレイ数学研究所によって２０００年から提供されている非常に重要な懸賞、および参加者がかかる難問を最小時間で解決しようとする多数の定例の国際的および地域のコンテストの存在にもかかわらず、現在まで解決されないままであることを考えると、これら４つの挙動を提供するあらゆる装置、コンピュータプログラム、または自動化プロセスは、どのような断片的な技術的要素が従来技術に存在するかに拘らず、明らかに非自明的である。
【０１４９】
＜挙動＃１の提示＞
【０１５０】
反表明は挙動＃１を示す。矛盾が、ある順序で解決されることは効率的である。１つの元の矛盾の解決は、元の矛盾した制約などから生じた反表明によって否定された優勢な表明の１つを提供した制約内で生じた矛盾の解決の結果として最も良く生じる。矛盾は他の順序で解決されるが、それらをこの順序で解決すると、優勢な表明の経路を辿る可能な手段の改訂数が減少し、そうでなければこれらのトラッキング要素に厳格な精度を提供する必要がある。
【０１５１】
表明および反表明に至ってそれらを生じる優勢な経路の厳密に維持されたレコードのために、表明された値述語につき、１つだけのかかるレコードが必要とされる。厳密に維持されたレコード（記録）がなければ、特定の値述語の全ての過去および現在の表明の履歴を保管するか、または以下でさらに説明するように、ディザリングが関連レコードを改訂するのを許容する方法に依存する必要がある（レコードの厳密な維持およびレイジーな維持の説明については、それらのレコードの特質が説明された後、後述する）。
【０１５２】
＜表明の存続＞
【０１５３】
第１の条件付き優勢な表明が、その制約の項に関する制限によって強制され、それらの制限がサポートのために他の優勢な表明に依存していて、それらの他の優勢な表明の１つ以上が否定されているようなものである場合、第１の優勢な表明は、存続し続ける。一般に、表明は、それらが明示的に否定されていない限り存続する方が良いが（これは、表明の除去および再伝搬の作業を排除するため）、存続は必要とされない。
【０１５４】
＜挙動＃２の提示＞
【０１５５】
反表明が非自明な状況で無条件であるべき場合を認識する挙動を示すために、否定された優勢な表明の副経路を反表明の経路から除外することが必要であり、この除外は、優勢な表明に至る経路を辿ることによって満足できる。優勢な表明の経路を辿ることは、従来技術の一部であるが、本発明のいくつかの実施形態は、従来技術におけるトラッキングは、ある要素をトラッキングデータ構造に追加することによって増強されている。
【０１５６】
＜暗黙の表明の完全な根拠＞
【０１５７】
本発明のある実施形態では、各優勢な表明は、現在の優勢な表明に至ってそれを生じる優勢な経路の制約内の項を制限した以前の表明の値述語を含む「完全な根拠（ｆｕｌｌ  ｒｅａｓｏｎ）」を記録し、完全な根拠内の各値はカウントで増強される。１つのかかるカウントは「実行済み（ｆｕｌｆｉｌｌｅｄ）」カウントである。
【０１５８】
他のカウントがない場合に、実行済みカウントが含意の間に、どのように増加するかを説明するため：仮定が空の完全な根拠を有し、かつ、
暗黙の優勢な表明の候補が、無条件ではなく、連言的に収束して候補表明が導出される制約内の項を制限する決定因子を生じる全ての現存の優勢な表明に対する完全な根拠内の値述語の集合の、無条件ではなく、候補表明が導出される制約内の項を制限する表明の値述語の集合と結合された和集合を含む、完全な根拠を有し、かつ、
候補表明の完全な根拠内の特定の値述語が、結合された以前に生成された完全な根拠のまさに１つに由来している場合、その値述語に対する実行済みカウントは、それが由来する以前に生成された完全な根拠から継承され、かつ
候補表明の完全な根拠内の特定の値述語が、以前に生成された完全な根拠に由来していて、これらの結合された以前に生成された完全な根拠の２つ以上の間で共有されている場合、実行済みカウントは、以前に生成された完全な根拠から導出された対応する実行済みカウントの合計であり、かつ
候補表明の完全な根拠内の特定の値述語が、結合された以前に生成された完全な根拠のいずれからも由来していない場合、この値述語に対する実行済みカウントは、ゼロに等しいとして初期化され、かつ
候補表明の完全な根拠内の任意の値述語に対する実行済みカウントが、無条件ではなく、候補表明が導出される制約内の項を制限する表明の値述語の集合内の各値述語に対して１ずつ増やされる。
【０１５９】
実行済みカウントは、単一の結果として生じる第１の優勢な表明に至ってそれを生じた優勢な経路内の先行の優勢な表明を符号化する一方法である。この符号化におけるカウントは、第２の優勢な表明の優勢な経路が、第１の優勢な表明に至ってそれを生じた他の優勢な表明の優勢な経路に共通である任意の副経路を除去することなく、第１の優勢な表明の完全な根拠から差し引かれるのを可能にする。この機能は、どの制限された項が反表明され、どの反表明が無条件でなければならないかを判断するために、制限している優勢な表明の優勢な経路の適正な分析のために有用である。
【０１６０】
＜遠さカウント（Ｆａｒｎｅｓｓ  Ｃｏｕｎｔ）＞
【０１６１】
挙動＃２は、反表明に至ってそれを生じる経路内にある制限された項の順序を提供し、そのため、昇順または降順のいずれかでアクセスされる場合、その候補表明に至ってそれを生じた表明のいずれかに遭遇する前に、その経路内の候補表明に（項の順序付けのために）常に遭遇するいくつかの手段によって示される。「遠さカウント」はかかる順序付けを提供する。遠さカウントまたはこの順序付けを提供する何らかの他の手段は、挙動＃２を示すために採用される。「最大距離カウント」および注意深く維持された優勢数が遠さカウントと考えられる。優勢数が遠さカウントとして使用される限りにおいて、遠さカウントの順序付けを参照する際に使用される言語は、たとえ降順が通常、優勢数に対するかかる順序付けを提供しても、遠さカウントの昇順が増加する遠さを示すと仮定される。
【０１６２】
各最大距離カウントは、結果の条件付き優勢な表明と、結果の表明の完全な根拠内の各値述語との間の最大距離を記録し、このコンテキストにおける「距離」は、値述語と結果の条件付き優勢な表明との間の含意的または反表明ステップの数を反映する。本発明のある実施形態では、非仮定的な結果の条件付き優勢な表明に対する完全な根拠内の最大距離カウントは、以下のように構成される。
【０１６３】
結果の表明の完全な根拠が増やされているとき、以前の表明の完全な根拠から生じる全ての最大距離カウントが１ずつ増やされて、完全な根拠から生じていない値述語は１に等しい最大距離カウントを与えられ、次いで結果の完全な根拠内の値述語の集合を生じる和集合内の同じ値述語に対する全ての最大距離カウントの間で最も大きい単一の最大距離カウントが識別され、結果の表明の完全な根拠内の対応する値述語に対する最大距離カウントとして指定される（仮定は、完全な根拠を有しておらず、従って、それらの推定の完全な根拠内に距離カウントを持つことができない）。
【０１６４】
＜未実行カウント（Ｕｎｆｕｌｆｉｌｌｅｄ  Ｃｏｕｎｔ）＞
【０１６５】
本発明の実施形態によって使用される不必要なカウントが「未実行」カウントである。未実行カウントが使用される場合、実行済みカウントが増加する方法は、上述したものと異なるが、最大距離カウントが増加する方法は上述したものと同じである。
【０１６６】
未実行カウントがどのように増加するか、および未実行カウントが所与の暗黙の条件付き優勢な表明の完全な根拠内で使用される場合に実行済みカウントがどのように増加するかを説明するために：
【０１６７】
（このプロセス記述は、後述する他の例と同様に、「［Ｕ１］」などの角括弧で囲まれた文ラベルを含む。これらのラベルは、文を一意に識別し、文の入れ子を、擬似コード内のテキストを字下げすることによって通常示される文の修飾に対して、明示的に繰り返す。入れ子の表示がなければ、記述は曖昧に解釈される。）
【０１６８】
［Ｕ１］結果の完全な根拠の「基礎（ｂａｓｉｓ）」が空として初期化される。
【０１６９】
［Ｕ２］所与の表明の制約内の１つの項を制限する、まさに１つの暗黙の条件付き優勢な表明がある場合：
【０１７０】
［Ｕ２ａ］この１つの暗黙の条件付き優勢な表明の完全な根拠の内容が、基礎としてコピーされて、表明自体の値が基礎に加算され、その値が、１の実行済みカウントおよびゼロの未実行カウントと関連づけられる。
【０１７１】
［Ｕ３］所与の表明の制約内の１つ以上の項を制限する、２つ以上の暗黙の条件付き優勢な表明がある場合：
【０１７２】
［Ｕ３ａ］１つの暗黙の条件付き優勢な表明の完全な根拠の内容が、基礎としてコピーされ、この優勢な表明はその後、さらなる処理によって無視される。
【０１７３】
［Ｕ３ｂ］所与の制約内の１つの項を制限し、さらなる処理によってまだ無視されていない、各候補の暗黙の条件付き優勢な表明について：
【０１７４】
［Ｕ３ｂ１］候補表明の値述語が基礎内に出現する場合：
【０１７５】
［Ｕ３ｂ１ａ］基礎内の候補表明の値に対する未実行カウントを１だけ増加して、候補表明がさらなる処理によって無視される。
【０１７６】
［Ｕ３ｂ２］そうでない場合：
【０１７７】
［Ｕ３ｂ２ａ］候補表明の完全な根拠を「副基礎（ｃｏ−ｂａｓｉｓ）」としてコピーする。
【０１７８】
［Ｕ３ｂ２ｂ］非ゼロの実行済みカウントを有する副基礎内の各候補の値述語について、昇順の最大距離カウント順で：
【０１７９】
［Ｕ３ｂ２ｂ１］候補の値述語が基礎内に出現する場合、候補の値述語の優勢な表明の完全な根拠内の全ての値述語と関連付けられた実行済みカウントおよび未実行カウントを副基礎から差し引いて、副基礎内の候補の値述語の実行済みカウントから１を差し引き、副基礎内の候補の値述語の未実行カウントに１を加える。
【０１８０】
［Ｕ３ｂ２ｂ２］実行済みカウントおよび未実行カウントが共にゼロである全ての値述語を副基礎から除去する。
【０１８１】
［Ｕ３ｂ２ｃ］副基礎内の値述語を、それらが既に存在していない場合、基礎に加え、副基礎からの実行済みカウントおよび未実行カウントを、基礎内の対応する実行済みカウントおよび未実行カウントに加えて、候補表明の値述語を、１の実行済みカウントおよびゼロの未実行カウントをもつ基礎に加え、候補表明がさらなる処理によって無視される。
【０１８２】
［Ｕ３ｃ］所与の制約内の１つ以上の項を制限する決定因子の一因となる仮定または条件付きの非優勢な表明の各値述語について：
【０１８３】
［Ｕ３ｃ１］候補表明の値述語が基礎内に出現する場合：
【０１８４】
［Ｕ３ｃ１ａ］候補表明の値述語と関連付けられている基礎内の未実行カウントを１だけ増加する。
【０１８５】
［Ｕ３ｃ２］そうでない場合：
【０１８６】
［Ｕ３ｃ２ａ］候補表明の値述語を、１に等しい未実行カウントと関連付けられた、基礎に加える。
【０１８７】
［Ｕ４］所与の制約の表明の完全な根拠を基礎として使用する。
【０１８８】
上述した実行済みカウントおよび未実行カウントが増加する方法は、実行済みカウントが使用されて、未実行カウントが使用されない時に存在していて、優勢な表明の後ろの経路の一部の差引きを（この優勢な表明が反表明と一致しない場合は）結果として生じる反表明を生じる他の優勢な表明の経路と共通の副経路も差し引くことなく、可能にするために必要な情報を圧縮する手段である。
【０１８９】
未実行カウントが使用されない場合、各実行済みカウントを表すために必要なビットの最大数が、式内の変数の数に等しい。未実行カウントが上述した方法で使用される場合、各実行済みカウントを表すために必要なビット数は１で、各未実行カウントを表すために必要なビット数は、２を底とする式内の制約数の対数であり、それは、通常、カウントを表すために必要なスイッチ数およびそれらのスイッチを作動するコストにおける著しい削減である。
【０１９０】
＜基礎からの差引き順序の維持＞
【０１９１】
優勢な表明の基礎からの差引きを順序付けするために最大距離カウントの代わりに優勢数を使用することが可能であるが、これは、優勢数が一貫して遠さカウントとして機能を果たし、従って、それらの完全な根拠を基礎から差し引く必要のある他の優勢表明と、それらの完全な根拠を基礎から差し引く必要のない表明の優勢な経路間で共有されている副経路に出現する優勢な表明の除去を防ぐ、表明の順序付けを提供することを必要とする。優勢数の当初の順序付けは、昇順ではなく降順でアクセスされる場合には、それらが遠さカウントとして実行するのに十分であるが、項が反表明される場合、優勢数が再割り当てされて、元の順序付けを阻害する。それ故、優勢数を遠さカウントとして使用することは、通常、優勢数の大幅な改訂を必要とし、それは、必要な計算作業量を、最大距離カウントが遠さカウントとして使用される場合に必要とされるものと同等にする。
【０１９２】
＜分岐−減算＞
【０１９３】
完全な根拠の圧縮および未圧縮のいずれのバージョンも、式が二値論理または多値論理を使用するかに拘らず、その値によって制限された項数のカウントと関連付けられた、経路内の制限された項のリストまたは経路内の制限値のリストのいずれとも等しいことは、注目すべきことである。かかるカウントまたは暗黙のカウントは、根茎状ネットワークにおける「分岐−減算」をサポートしない。この文の真は、以下で説明する、分岐−減算の方法によって操作されるように、異なる種類のカウントの挙動を比較することによって明らかになる。
【０１９４】
分岐−減算では、被減数の完全な根拠が、減数の表明の値述語を含んでいない場合、分岐−減算の差は被減数と同一である。そうでない場合、分岐−減算の差は、以下の計算の結果である。
【０１９５】
［Ｂ１］未実行カウントが使用されている場合：
【０１９６】
［Ｂ１ａ］被減数内の各値述語について、対応する被減数のカウントの各々から、減数の表明の完全な根拠内にある同一の値述語と関連付けられた、実行済みカウントおよび未実行カウントを減算する。
【０１９７】
［Ｂ１ｂ］減数の表明の値述語が被減数内にある、関連付けられた実行済みカウントから１を減算し、関連付けられた未実行カウントに１を加算する。
【０１９８】
［Ｂ２］そうでない場合：
【０１９９】
［Ｂ２ａ］減数の表明の値述語と関連付けられている減数内の実行済みカウントを識別して、これを「スカラー」値と呼ぶ。
【０２００】
［Ｂ２ｂ］被減数内の各値述語について、関連付けられた被減数の実行済みカウントから、スカラーと、減数の表明の完全な根拠内にある同一の値述語と関連付けられた実行済みカウントとの積を減算する。
【０２０１】
［Ｂ３］上の減算の後、任意の値述語を、全ての既存のカウント内でゼロを有する被減数から除去して、結果を分岐−減算の差として提示する。
【０２０２】
本発明の実施形態は、挙動＃２を示すために、経路の一部が目的地を含むかどうかを区別する機能を含む。目的地を区別し、従って、経路の一部内の別個の目的地をカウントする機能も非常に有用である。分岐−減算は、これら両方の機能を提供する。
【０２０３】
未実行カウントを使用しない分岐−減算は、分岐−減算が生じる各完全な根拠内のあらゆる減算された値述語について、乗算を必要とする。乗算は、掛けられているビット数の２乗である計算コストを有し、これは、未実行カウントが使用されない場合に被る別の著しい計算コストを表す。
【０２０４】
＜反表明の存在下での完全な根拠＞
【０２０５】
表明の否定はそれらの表明に対する根拠を除去し、反表明は、以前に否定された表明に対する新しい根拠を作成するので、反表明の存在は、いくつかの表明に対する根拠の発生を複雑にする。矛盾時点の移動の方向に関して判断するために使用されている優勢な表明の根拠は、その判断が正確に、または一貫して行われるために一貫していなければならない。従って、かかる判断が行われる前に、それらの根拠を一貫したものにするために否定された表明に依存する表明の根拠が再計算される。近さカウント（挙動＃４の提示の一部として下記を参照）が使用されない場合、否定された表明に依存する根拠は、否定された優勢な表明に対して分岐−減算を実行することにより、かつ、以前に否定された表明が反表明される場合は、新しい根拠の分岐−加算を実行することにより、再計算される。この目的地のために分岐−加算を実行する場合、再表明された値述語の遠さカウントが、加えられた分岐内の遠さカウントに加算される。さらに、直近に無条件になった任意の以前は条件付きの優勢な表明が分岐−減算され、無条件表明自体が全ての完全な根拠から除去される。
【０２０６】
＜バックトラッキング＞
【０２０７】
距離カウントが使用されている場合、根拠を改訂するために、分岐−減算を使用するのではなく、その根拠が再計算される必要がある表明の経路内の制約を通じて「バックトラック」する必要がある。バックトラッキングのこの方法は、以下で説明するものと似ているが、項を制限して、既に再計算されている表明の根拠が分岐−加算されて、それらのカウントが増加されているが、これらの表明は深さ優先機構によって探索されない。
【０２０８】
バックトラッキングなしで距離カウントを再計算することは可能であるが、これは、各寄与する副経路に対する別個の距離カウント、または各距離カウント値のインスタンスのカウントを必要とし、それは、圧縮されていない完全な根拠が消費するよりも著しく多くの空間を消費する。
【０２０９】
反表明に至ってそれを生じる優勢な経路を構成する制約内の制限された項を通じた深さ優先でスタックベースのバックトラッキングを使用することにより、完全な根拠を使用することなく、挙動＃２を示すことが可能である。深さ優先のバックトラッキングは、優勢な表明の属性が、遠さの降順に相当する順序で改訂されることを確実にする。この方法は、無条件表明によってのみ制限される全ての項を無視し、かつ既に検討されている表明によって制限される全ての項を無視し、そして、ループ表明によって否定される項を含み、違法な擬似仮定（下記を参照）を除いて、目的地であるそれらの項を書き留め、かつ各他の項について、所与の項を深さ優先のトラバーサルを確実にする方法で制限する優勢な表明の制約内の条件付きで制限された項を検討のためにスタックする。
【０２１０】
バックトラッキングは永続的に格納された根拠を使用する必要がない。かかる場合、根拠を厳密に、または他の方法で改訂する機会がない。永続的に格納された根拠が使用されていない場合、目的地および場合によってはそれらの距離の一時的なリストが、その項がスタックされる各制約のために維持される必要があり、これら目的地の一時的なリストは、表明によって制限される項がスタックからポップされるとき、従属表明の制約に対する一時的な目的地リストに要約され、違法な擬似仮定が識別されて、一致していない項がスタックからポップされる時に除外される。目的地の一時的なリストは、各矛盾が解決された後に削除する。目的地リストが削除されない場合、有用にするためには目的地リストは改訂される必要があり、目的地リストを完全に置き換えることなく改訂するのを可能にするために、目的地リストは、目的地でない項または表明を含む必要があり、目的地リストをある種の根拠とする。バックトラッキングの目的で、項ではなく制限している表明をスタックすることが可能である。
【０２１１】
表明は反表明によって否定されるので、完全な根拠が使用されていない場合、制限している決定因子および表明がもはや存在しないので、ＳＯＭＭＥ内の項に対する制限を記録する必要がある。失われた制限は、項がかかる制約内で表す値述語の補集合となるように推定できるので、制限は、厳密に選言句内の項に対して記録される必要がなく、実際には、選言句に対してこの方法で制限を常に記録することはより効果的である。
【０２１２】
＜優勢な経路の厳密な維持＞
【０２１３】
完全な根拠が使用されていて、優勢な表明の経路が意思決定のために使用される場合、候補の優勢な表明の完全な根拠を再計算する必要がある。完全な根拠を「厳密に」維持するために、否定された優勢な表明に依存するすべての優勢な表明の完全な根拠は、否定および反表明時に再計算する必要がある。
【０２１４】
完全な根拠が意思決定のために使用される時、優勢な経路内での擬似仮定の存在は、もしあれば、認識される必要がある。未実行カウントが使用されていない場合、分岐−減算は、説明のとおり、擬似仮定の任意のレコードを間違って除外し、そのため、この場合、擬似仮定に何か他の方法で印を付ける代替方法またはバックトラッキングのいずれかが使用される。未実行カウントが使用されて、否定された優勢な表明の完全な根拠が全ての完全な根拠から分岐−減算されない場合、以下で説明するように、矛盾の移動のディザリングを使用する意思決定方法が、完全な根拠および他の経路トラッキング要素を、厳密な現在の状態の有用な近似値である状態に改訂するために使用される。
【０２１５】
同様に、優勢な経路内の制約によって表明された値述語は、新しい反表明の値述語に関する判断が行われる時に一貫している必要がある。選言句に対して、かかる制約は、特定の変数に対して事前定義された値述語を表明するか、またはその変数の表明を全く行わないかのいずれかであるので、特別な動作は必要ない。しかし、ＳＯＭＭＥの場合、制限している値述語における変化が、改訂された制限を含む優勢な経路を有する表明されたか、または反表明された値述語における変化をもたらし、これらの改訂は、任意の新しい反表明の優勢な経路を通って伝搬される必要がある。従来の数理解析が本発明を補完しない場合、ＳＯＭＭＥの表明が厳密に、すなわち、否定時に、維持されていれば挙動＃３が違反され、そのため、従来の数理解析がない場合、ＳＯＭＭＥの値述語の改訂が、すぐ下で説明されるように、最も良くレイジーに伝搬されるか、または、ディザリングによる場合を除いて、伝搬されず、これについては、挙動＃４の提示の説明の一部としてずっと下で説明される。
【０２１６】
＜完全な根拠のレイジーな維持＞
【０２１７】
完全な根拠が厳密に維持されない場合、完全な根拠は、たとえ、その述語の優勢な表明がある間であっても、ゼロの実行済みカウントを有する値述語を含む。任意のかかる値述語が完全な根拠内に存在する場合、候補の完全な根拠は、それらがその結果、非ゼロの実行済みカウントを有するように、失われた根拠を分岐−加算することによって改訂される。近さカウント（下記を参照）または遠さカウントが使用される場合、それらは、それらが使用される時に（例えば、基礎および副基礎内で）正確でなければならず、それらのカウントは、優勢な表明が存在するが、反表明の完全な根拠内に記録されていない場合、再計算される。
【０２１８】
カウントの再計算は、影響を受ける制約を通った深さ優先のバックトラッキングによって最も効果的に達成され、その結果、影響を受ける制約の各々の表明に対する遠さカウントまたは近さカウント（挙動＃４の提示の一部として下記を参照）を逆バックトラック順で再計算する。バックトラッキングがカウントの再計算のためにのみ使用される場合、それは、必要に応じて生じる。しかし、完全な根拠が挙動＃２を提供するために使用されていない場合、遠さカウントまたは近さカウントが再計算されるのと同時に、完全なバックトラックを実行して、仮定および擬似仮定を識別することが最も効率的である。
【０２１９】
＜擬似仮定、ループ、およびティアドロップ＞
【０２２０】
候補の優勢な表明の完全な根拠が、候補の優勢な表明自体によって表されている同じ変数に対する値述語を含む場合、いくつかの考えられる事例がある：表明が、その完全な根拠内の値述語と一致していない可能性がある事例、表明が、その完全な根拠内の値述語の部分集合である値述語を表す（すなわち、反表明がその完全な根拠内の値述語と「一致する」）事例、または何か他の関係が当てはまる。これらの関係は「ループ」および「ティアドロップ」経路を定義して、正当な目的地の定義に影響を及ぼす。
【０２２１】
＜擬似仮定＞
【０２２２】
反表明が生じる場合、表明が否定され、その結果として、他の優勢な表明の経路内の項に制限を提供する優勢な表明が行方不明になる。厳密に維持された完全な根拠が、それに対する現存の優勢な表明がない値述語を含む場合、その値述語を「擬似仮定」と呼ぶ。仮定および擬似仮定は、矛盾がその１つに向かって移動すべき目的地である。目的地は、矛盾がその制約に移動して、目的地の項が反表明される場合に、矛盾が、記録された優勢な経路の制約から除去されるような、表明の優勢な経路の制約内の項である。
【０２２３】
＜目的地なし規則＞
【０２２４】
本発明の実施形態が、挙動＃２を正確に示すためには、完全な根拠を有し、その完全な根拠内に目的地を有していない任意の表明が、無条件に表明されるべきことが望まれる。これが「目的地なし」規則である。表明の完全な根拠が、表明自体と同じ変数に対する値述語を含む場合、区別は、以下のように、無条件表明を正しく生じるための目的地なし規則を実装するために、本発明によって提供される。
【０２２５】
＜ループ＞
【０２２６】
表明が、その完全な根拠内の値述語と一致する場合、この表明の優勢な経路内に「ループ」が存在すると言う。ループの構造は、ループになった優勢な経路内の表明が否定される場合、生成される矛盾は、否定している反表明と一致する値述語を表明するためにループを一回りして、ループ内の矛盾を解決させて、新しい矛盾を何か他の経路内に生じる必要なく、ループの優勢な経路から矛盾を効率的に除去する。それ故、ループの開始は、目的地である。ループを完了する表明が優勢だった場合、それは、そのループを完了する表明に対して完全な根拠を提供し、完全な根拠が目的地を含んでいない可能性がある、ループを開始する制約をサポートすると考えられ、それが無条件表明と解釈されると示唆する。その解釈は正しくない、そこで、ループ表明が無条件表明と解釈されないことを確実にするために、何かの追加の規則または指示が必要である。
【０２２７】
本発明のある実施形態では、ループを完了する表明は、同じ変数に対する優勢な表明が現存するか現存しないかに拘らず、非優勢として作成されるが、既存の決定因子が、ループ表明によって表されるアトミック値の部分集合を表さない場合、その値述語は、それが表す変数に対する決定因子の一因となる。この結果として、ループは、それ自身の表明に対する目的地のない根拠を提供することができず、従って、ループに依存する優勢な経路は、常に、一見したところ、その経路内に目的地を表す（この規則は、ループ表明が根拠を有するのを防ぎ、それ故、ｃｉｒｃｕｌｕｓ  ｉｎ  ｐｒｏｂａｎｄｏ（循環論証）を明示的に回避する方法として見なされ、このようにして、ループ表明の補集合との妥当な不一致の任意の出現を回避する）。本発明の他の実施形態では、ループ表明は、他の方法で明示的に印を付けられて、それら印付けの他の方法によって目的地として扱われる。
【０２２８】
＜ティアドロップ＞
【０２２９】
表明自体と同じ変数を表す反表明の完全な根拠内の全ての値述語も、その表明によって表される値述語と一致しない場合、「ティアドロップ」が存在すると言い、反表明の優勢な経路内で識別される。ティアドロップの「沈殿剤」は、アトミック値の集合を表すことが知られている値述語であり、任意のかかるアトミック値が表明されて、ティアドロップが構成される優勢な経路内にある制約の集合がまだ矛盾を含んでいない場合、表明が伝搬される順序に拘らず、表明は、これらのティアドロップの制約の１つ内に必ず矛盾を生成する。沈殿剤の精度は、反表明の優勢な経路内で利用可能な情報に依存する。
【０２３０】
＜沈殿剤＞
【０２３１】
ティアドロップを構成し、又そのティアドロップの沈殿剤と同じ変数の項を有する全ての制約が、選言句である場合、沈殿剤はこれらの項の各々と一致しない必要があり、従って、これらの項によって表される値述語の和集合の補集合である。ティアドロップを識別するのを可能にする反表明は、そのティアドロップの沈殿剤の補集合内にあるアトミック値の部分集合を表す必要がある。
【０２３２】
ティアドロップを構成し、そのティアドロップの沈殿剤と同じ変数の項を有する制約の集合が、ＳＯＭＭＥを含む場合、沈殿剤は、これらの項に関する制限と交わる、反表明された値述語の補集合でなければならない。
【０２３３】
推定沈殿剤が上述のように計算され、推定沈殿剤の補集合がアトミック値の空集合である場合、推定ティアドロップは、実際にはティアドロップではなく、いわゆる沈殿剤の変数に対するいくつかの正当な目的地が存在していなければならない。
【０２３４】
＜反表明された値述語＞
【０２３５】
完全な根拠が使用されている場合、反表明によって否定される優勢な表明に対する分岐が、反表明の完全な根拠から差し引かれる。これらの分岐減算の後、沈殿剤の変数以外の変数に対する反表明の優勢な経路内に目的地がない場合、沈殿剤の補集合が無条件に表明されるはずである。この無条件表明の値述語が、含意の規則によって生成されたように、反表明の値述語と同じ集合である場合、無条件表明は、反表明される唯一の値述語であり、そうでない場合には、無条件および条件付き表明の両方が反表明によって生成される。ティアドロップが識別されず、かつ反表明が自明に無条件でない場合、反表明は条件付き表明のみを生成する。
【０２３６】
＜ティアドロップ内の見かけの擬似仮定＞
【０２３７】
沈殿剤が、それを定義する反表明によって否定されている場合、沈殿剤である制限をサポートする表明は、反表明によって否定されて、それらの分岐のための根拠が反表明の完全な根拠から差し引かれ、このようにして、これらの表明によって制限される項を擬似仮定にし、目的地に見えるようにする。沈殿剤を否定する反表明の完全な根拠が他の目的地を含んでいない場合、沈殿剤を無条件に表明するとティアドロップ内に無条件矛盾を生じるので、その反表明は無条件である。その結果として、反表明自体と同じ変数を表し、反表明と一致しない、反表明の完全な根拠内に記録された制約は、擬似仮定であるにもかかわらず、目的地として扱われず、「違法な」目的地である。
【０２３８】
反表明が、その反表明が識別するティアドロップの沈殿剤を否定し、その反表明の完全な根拠内に正当な目的地がない場合、反表明は無条件であり、無条件表明は根拠を有していない。反表明がその沈殿剤を否定し、その反表明の完全な根拠内に正当な目的地がある場合、反表明は条件付きであり、同じ変数の項に対する制約が完全な根拠内に擬似仮定として出現するという事実に拘らず、他の目的地も優勢な経路内に存在する。矛盾が、違法な目的地を含め、これらの目的地のいずれかに向かって移動する場合、沈殿剤内にあるいくつかのアトミック値を含む値述語が表明される必要があり、この表明は、事実上、その沈殿剤の部分再表明である。その沈殿剤を部分的に再表明するこの値述語を組み込むことによって生成された決定因子が、反表明を否定している沈殿剤の完全な根拠内の制限している値述語によって表された反表明を否定している述語と同じ変数の項に関する制限のいずれも完全にサポートする場合、それらの制限をサポートする表明は、それらの根拠を、これらの制限に至ってそれらによって生成される表明の完全な根拠に提供して、これらの制限はもはや擬似仮定に見えない。その沈殿剤を部分的に再表明するこの値述語を組み込むことによって生成された決定因子が、反表明を否定している沈殿剤の完全な根拠内の制限している値述語によって表されている反表明を否定している述語と同じ変数の項に関する制限を完全にサポートしていない場合、それらの項に関する制限をサポートするための現存の優勢な表明がないことが、それらの制限を、沈殿剤の部分再表明を生成する反表明によって生成された矛盾に対する正当な目的地にする。そのため、いくつかの擬似仮定を違法な目的地であるとして除外する特別規則は、最近目的地法（Ｎｅａｒｅｓｔ  Ｄｅｓｔｉｎａｔｉｏｎ  ｍｅｔｈｏｄ）が使用されていない限り、非自明に無条件の反表明を生成する時にのみ、そして正しく生成するために、必要とされる（最近目的地法は、挙動＃４の提示の一部として下記で説明され、最近目的地法が使用されている場合にティアドロップ擬似仮定に対する複雑化について、後述のディザリングで説明される）。
【０２３９】
第２の優勢な表明の優勢な経路内にある第１の表明が、常に、第１の表明が作成した可能性がある任意の違法な目的地よりも第２の優勢な表明に近いことは注目すべきことである。
【０２４０】
＜矛盾の移動の特性化＞
【０２４１】
矛盾は、共通のネットワークセグメントを有する複数の根茎状ネットワーク間での表明の不一致として特性化できる。一致していない表明の１つを反表明することにより、そのネットワークが成長し、一致していない表明が否定されるとき、それらのネットワークが縮む。反表明が、否定された優勢な表明の完全な根拠の分岐減算を組み込むか、または新しいネットワークを介してバックトラックするかに拘らず、組み込まれた動作は、厳密に反表明の前にある目的地が反表明のネットワーク内であるとして表されておらず、従って、挙動＃２および挙動＃４を示す本発明の実施形態の方法を誤伝しないことを確実にする。
【０２４２】
＜挙動＃２の方法の効率＞
【０２４３】
挙動＃２を示す方法の効率は、まだ完全に説明されていない２つの要因、矛盾解決プロセスの並列化、および表明の優勢（ｐｒｅｖａｌｅｎｃｅ  ｏｆ  ａｓｓｅｒｔｉｏｎ）、によって影響される。
【０２４４】
ティアドロップの特質は、矛盾を同時に解決しようとする複数プロセスの形での制約解決プロセスの水平並列化が、挙動＃２を中等度から重度の程度まで干渉するものである。第２の矛盾と並行に移動する第１の矛盾が、擬似仮定になる第２の矛盾に起因する反表明の完全な根拠内の項を生じる第１の矛盾に起因する反表明を生成し、そうでない場合、その項に関する制限の優勢な経路が第２の矛盾に起因する反表明が無条件になるのを可能にする。この干渉を弱めるために様々な努力がなされる。
【０２４５】
並列矛盾解決プロセス間の干渉を弱める１つの方法は、１つの反表明が別の反表明の履歴を消去する場合に、各プロセスに、持続できる完全な根拠の別個の集合を記録させることであるが、既存の完全な根拠を消去して、新しい完全な根拠がこれらのプロセスのいずれかによって生成されるときはいつでも、置換の完全な根拠を並列矛盾解決プロセスの別個のストアに交差投入（ｃｒｏｓｓ−ｐｏｐｕｌａｔｅ）する。明らかに、この方法は格納されているデータ量の大幅な増加を必要とする。
【０２４６】
並列矛盾解決プロセス間の干渉を弱める別の方法は、第１の矛盾に起因するどの反表明も、より高いランクの第２の矛盾によって使用されている経路の履歴を消去する場合に、許容されないように、矛盾にランクを付けることであり、このようにして、第１の矛盾の移動を効率的に一時停止させる。この方法は、一時停止された矛盾がそれらのランクが低下するように、矛盾のランクを変更することにより改善でき、そうでない場合には、一時停止のカスケードが生じて、効率的にアルゴリズムを非並列化状態に戻す。ハイパー多項式ディザリングを防ぐように保証された再ランク付けを公式化するために高度の注意が必要である（ディザリングの説明については下記を参照）。
【０２４７】
表明の優勢は、挙動＃２を示す方法の効率に良い影響を及ぼす。同じ値述語を表す決定因子を生成するために連言的にも収束する追加の経路とは異なる優勢な経路を有することにより、本発明は、それらの経路のいずれがティアドロップを定義して、無条件の反表明を容認したかを発見するためにチェックされる必要がある考えられる経路のハイパー多項式の急増を回避する。代わりに、それらの経路に依存している現存の矛盾が未解決のままである限り、経路は増分的に検索され、その場合、未解決の矛盾は新しい優勢な表明に、以前は擬似仮定であった項を再制限する新しい経路を提供する。これは、挙動＃４が示されている場合に多項式時間に終了する経路検索の１つの形式である。
【０２４８】
＜挙動＃３の提示＞
【０２４９】
ＳＯＭＭＥを含んでいない優勢な経路を有する反表明について、アルゴリズムが挙動＃２を示すのが既に可能にされている場合、アルゴリズムが挙動＃３を示すのを可能にすることは自明であり、反表明時の直後に、新しい矛盾を含む制約だけが、反表明によって否定された表明を有していたものであり、否定された表明の優勢な経路が反表明の優勢な経路から差し引かれるか、または反表明の優勢な経路のバックトラック中に無視されて、そのため、それらの矛盾が反表明の優勢な経路内に出現しない。
【０２５０】
ＳＯＭＭＥを含む優勢な経路を有する反表明について、挙動＃３を示すことはさらに複雑である。一般に、ＳＯＭＭＥが式内に存在し、値述語が推定的に反表明されるべき項の変数が、推定反表明の優勢な経路内の項の１つ以上の変数と同じである場合、挙動＃３を効率的に示すために特別な方法が採用される。
【０２５１】
変数の値が、整数または固定の最大分子および最大分母をもつ他の有理数を示す場合、その有理数に近いＳＯＭＭＥが、その数をデジタルで表すいくつかの中間変数および選言句と置き換えられて、有理数に対するＳＯＭＭＥの挙動を再現する。かかる場合における中間変数または制約のカウントの桁は再現されている特定の関数に依存する。加算器は、要素の線形カウントを有し、乗算は、乗算におけるビット数に対する要素の２乗のカウントを有する、およびその他いろいろである。
【０２５２】
同様に、変数の値が、整数または固定の最大分子および最大分母をもつ他の有理数を示し、その有理数に近くないＳＯＭＭＥが推定結果を生成するのを許可されることが容認可能である場合、これらのＳＯＭＭＥの各々も、中間変数および選言句の集合と置き換えられる。
【０２５３】
ＳＯＭＭＥを中間変数および選言句に置き換えることは、ＳＯＭＭＥの挙動が直接、本発明の成果として生成されるのを可能にして、挙動＃３が二値論理に関して提供される。ＳＯＭＭＥが置き換えられない場合は、単一値の決定因子の導入が、他に依存するものがなく、またいかなる他の中間表明なしで、置き換えられていないＳＯＭＭＥの集合から２つ以上の他の表明を強制すべきことが可能になる。かかる構造を分析するために本発明の挙動が使用される場合は、変数値の改訂のハイパー多項式数が生じ、そのため、かかる構造に対して満足のいく結果を効率的に生成するために、本発明を従来の数理解析で補完する必要がある。かかる補完は、複数の値述語が同時に改訂され、従って、表明されることを必要とし、ＳＯＭＭＥ間の関係の特質は、たとえ仮定が優勢な経路内に存在しても、いくつかの値述語が無条件に表明されることを必要とするが、その優勢な経路がまだ記録されているか、またはまだ再構成可能である限り、本発明は、従来の数理解析をブラックボックス関数としてうまく使用できる。
【０２５４】
＜挙動＃４の提示＞
【０２５５】
挙動＃４は、矛盾が移動する特定の優勢な経路が選択できるいくつかの手段を有することによって示され、その選択は、それが選択された手段の特質により、改訂のハイパー多項式数に依存しない。
【０２５６】
矛盾した制約内の１つの項だけが条件付き表明によって制限される場合、矛盾した制約は、その１つの項の変数の値述語を無条件に反表明するようにされる必要がある。矛盾した制約内の２つ以上の項が条件付き表明によって制限される場合、矛盾した制約は、これらの項の１つの変数の値述語を反表明するようにされる必要があり、上述したように、この反表明に至る優勢な経路内に正当な目的地がないことが明らかでない限り、この反表明は条件付きである。
【０２５７】
１つのプロセッサだけが式に関して動作する本発明の一実施形態では、値述語が反表明されるべき項を選択する場合に、正式な仮定と、正当な目的地である擬似仮定を区別する理由はない。しかし、複数のプロセッサがある場合、言い換えれば、処理が並列化されている場合には、矛盾を正式な仮定の方向に移動させ、かつ、自身の完全な根拠内に擬似仮定だけを有し、それらの擬似仮定が無条件の反表明によって作成されていないか、または議論を引き起こさない変数内である矛盾に対する処理を一時停止することが好ましい。そうでなければ、その擬似仮定を作成していた別の矛盾の並列移動がうまく除去できない場合は、移動方向を逆にするだけのために１つの矛盾を擬似仮定の方に移動させ、次いで、擬似仮定を形成するために否定されていた値述語を再表明することが可能であるが、この場合、所与の矛盾の移動は無駄な計算作業である。
【０２５８】
矛盾が根茎状ネットワークを通って順に移動されない場合は、並列化処理によって引き起こされるものと同様の問題が明らかになる。そのため、矛盾が、干渉を制限する順番で解決されることを確実にするために、スタックまたは矛盾を解決するための他の順序付けられたプールを維持することが望ましい。便利な順序は、最新の反表明が、反表明している制約内の矛盾を解決した直後に候補制約の表明を否定した、候補制約内の矛盾を解決し、そして、まだ解決されていない矛盾を作成した次第に履歴となる反表明の最新のものに対するそれらの近接度に従って、矛盾の解決を継続することである。
【０２５９】
＜最近目的地＞
【０２６０】
挙動＃１および＃３が示されるのを既に可能にされている場合、アルゴリズムが挙動＃４を示すのを可能にする最も単純な方法の１つは、「最近目的地」法を使用することによる。最近目的地法は、矛盾に「最も近い」目的地を識別する。
【０２６１】
＜近さカウント＞
【０２６２】
本発明の一実施形態では、最近目的地は、「最小距離カウント」を比較することによって識別される。最小距離カウントは、最大距離カウントの間での最大カウントではなく、結合されている同一の値述語と関連付けられた最小距離カウントの間での最小カウントを表すことを除いて、最大距離カウントと良く似ている。
【０２６３】
本発明の他の実施形態では、最近目的地は、「制限カウント」を比較することによって識別される。最小距離カウントに対する制限カウントの優位性は、矛盾をその目的地に移動させることによって被る計算作業のより詳細な推定値を提供することである。結果の条件付き優勢な表明に対する完全な根拠内の制限カウントは、以下のように構成される。
【０２６４】
結果の表明の完全な根拠が増やされているとき、以前の表明の完全な根拠に由来する全ての制限カウントが識別されて、これらの完全な根拠内にない結合された表明は、その表明によって制限されている結果の表明の制約内の項に対する値述語の反表明によって制限される制約数に等しい制限カウントが与えられ、次いで、結果の完全な根拠内の値述語の集合を生成する和集合内の同じ値述語に対する全ての制限カウントの間で、単一の最小制限カウントが識別されて、結果の表明の否定によって制限される制約数が、識別されたカウントの各々に加算された後、各々が、結果の表明の完全な根拠内の対応する値述語に対する制限カウントとして割り当てられる。
【０２６５】
本発明の他の実施形態では、最近目的地は「作業カウント」を比較することによって識別される。制限カウントに対する作業カウントの優位性は、矛盾をその目的地に移動させることによって被る計算作業のより良い推定値を提供することである。非仮定的な結果の条件付き優勢な表明に対する完全な根拠内の作業カウントは、以下のように構成される。
【０２６６】
結果の表明の完全な根拠が増やされているとき、以前の表明の完全な根拠に由来する全ての作業カウントが識別されて、これらの完全な根拠内にない結合された表明は、その表明によって制限されている項に対する値述語の反表明の結果として矛盾または表明するようになる制約数に等しい作業カウントが与えられ、次いで、結果の完全な根拠内の値述語の集合を生成する和集合内の同じ値述語に対する全ての制限カウントの間で、単一の最小作業カウントが識別されて、結果の表明の否定の結果として矛盾または表明するようになる制約数が、識別されたカウントの各々に加算された後、各々が、結果の表明の完全な根拠内の対応する値述語に対する作業カウントとして割り当てられる。
【０２６７】
矛盾または表明するようになる制約数は、並列の制約解決プロセスによって影響を及ぼされるので、作業カウントは、その場合にディザリングを回避するために、再計算される必要がある。この余分の計算コストは恐らく、作業カウントが、そうでなければ提供する優位性の大部分を除去する。また、式が多値論理を使用する場合、反表明の値が全く予想可能ではないことがあるので、反表明の結果として矛盾または表明するようになる制約数を正確に決定することは可能でないことがある。
【０２６８】
「近さカウント」は、最小距離カウント、制限カウント、または作業カウントとして上記で例示されたカウントの集合を一般化する名称である。他の種類の近さカウントが可能であるが、任意の有効な近さカウントは、上述の近さカウント例が行うように、カウントが厳密に維持される場合、矛盾が移動された後に存続するか、またはさらに目立つようになる矛盾を移動すべき方向の順序を提供することにより、最近目的地法をサポートする。
【０２６９】
有効な目的地に対する最小の近さカウントを提供する制限された項に対する値述語を反表明すること、および、近さカウントが厳密に維持されている場合に反表明の項を制限する優勢な表明を否定することは、反表明によって否定されている優勢な表明の完全な根拠内の選択された目的地と関連付けられた近さカウントが、矛盾が制約から制約へ移動するにつれて、次の反表明に対して以前よりも少なくされ、選択された目的地への他の全ての経路に対する近さカウントは、多くの場合、増加するが、最大で、現在選択されている目的地への経路の近さカウントにおける減少と同一の増分だけ、減少し、選択された目的地への様々な経路の近さ順序付けをそのままにしておくか、または選択された経路をさらに強く選好する。そのため、かかる場合、矛盾は、絶対に経路を辿り直すことなく、選択された目的地に向かって移動する。
【０２７０】
＜ディザリング＞
【０２７１】
近さカウントが厳密に維持されていない場合、矛盾の移動は、最近目的地法が使用されている場合、ディザリングする。矛盾が、選択された目的地に向かって移動し、その選択された目的地がもはやその方向の経路内にないか、またはこの経路に沿った選択された目的地までの距離が実際には思ったよりも遠いことが明らかになり、同じ目的地への異なる経路が、現在の経路に沿った明らかになった距離に比べて近いか、または異なる値述語が目的地として選択される場合、矛盾の移動の方向が変わる。方向の変化は、最近トラバースされた方向とは逆であり、「ディザリング」という結果となって、矛盾が、同じ制約のいくつかを再トラバースし、場合によっては、新しく選ばれた目的地に向かって移動する前に、その元の位置に戻ることを意味する。しかし、この場合、好ましい目的地が元の経路に沿って最も迅速に到達されないことが明らかになった地点から、矛盾が離れるにつれて、元の目的地および同じ経路内の他の目的地に対する近さカウントが更新される。これは、矛盾の移動方向が再度逆転されると、最近目的地における変化の新事実が最初に見つかった時点、またはそれより前に、移動方向が逆転されたという新事実はないことを意味する。その結果として、矛盾は、場合によっては、制約の中心チェーンを、最近目的地に関する新事実が記録される式内の制約数によって制限される回数、行ったり来たり辿って、最終的には目的地の１つに到着する。近さカウントが厳密に維持されていない場合、最小の近さカウントを提供する経路に沿って選択された目的地をそのように追跡することは、たとえその方法が、近さカウントが厳密に維持されている同様の方法ほど著しく効率的でなくても、やはりハイパー多項式コストを有していない挙動を生じる。
【０２７２】
ティアドロップ内の違法な目的地がどの正当な目的地よりも矛盾に近い可能性があるので、最近目的地法が使用されている場合、無限ディザリングが生じることがある。２つ以上の方向において違法な目的地が矛盾に近い場合、その矛盾は、そのティアドロップの沈殿剤が再表明されるまで、１つの違法な目的地に向かって移動し、その地点で、潜在的な目的地として消失し、逆方向の異なる違法な目的地が最も近い見かけの目的地である。この場合、沈殿剤を再否定することは、元の違法な目的地を再度、最も近く見えるようにして、無限に移動の方向を再度逆にする。
【０２７３】
最近目的地法が使用されている場合に、無限ディザリングが起こるのを防ぐために、次の方式のいずれかが使用される。（１）違法な目的地である擬似仮定を明示的に示し、この指示を、最高効率のために、沈殿剤を否定する反表明を行う時に生成して、この指示が、コンテキスト内でティアドロップを識別する反表明に至って、それにより生成される表明によって劣性で継承されるのを可能すること、または（２）見かけの擬似仮定が正当な目的地でない場合に再識別するために、完全な根拠内にある同じ変数に対する値述語を定期的に比較すること、または（３）バックトラッキング中に同様の再識別を行うこと、または（４）全ての他の可能な移動方向が制限されていて、それらの制限が無条件表明によって完全にサポートされていない限り、矛盾は方向を逆転すべきではないという規則を追加すること、により方法を修正して、最近前方目的地と呼ばれる方法を生成する。
【０２７４】
違法な目的地の明示的な指示は、実際上、現在記録されている優勢な経路内のその値述語によって制限される項を反表明することが可能であるときはいつでも、擬似仮定が妥当な根拠を有するという宣言であり、従って、たとえ妥当な根拠が現在記録されていなくても、妥当な根拠を有していないとして扱われるべきではない。上述のように、違法な目的地の明示的な指示の継承性は劣性であり、これは、第１の優勢な経路がかかる指示を有し、その第１の優勢な経路に選言的に収束しているか、または連言的に収束している第２の優勢な経路がかかる指示を有していない場合、結果はかかる指示を有しないことを意味する。違法な目的地に対する近さカウントは、同様に、劣性で伝搬される。同じ項が、１つの副経路内の違法な目的地のように見え、同時に、別の副経路内の正当な目的地のように見えるので、目的地を識別するためにバックトラッキングを使用する場合には、探索中に遭遇した全ての値を記録する必要があり、それは、スタックからポップされている要素の履歴によって最も良く具現化される。
【０２７５】
ディザリングの可能性は、特に、完全な根拠が使用されておらず、挙動＃２が依存する情報を取得するためにバックトラックする必要がある場合に、優勢な表明が持続するために最も良いという主要な根拠である。
【０２７６】
最近目的地が、最新の反表明の前方にあるか後方にあるかに拘らず、矛盾を最も近い目的地に向かって移動させる方法は、厳密最近目的地法と呼ばれる。矛盾を、好ましい目的地が最も近くに出現する方向に移動させる方法は、最近好適目的地法と呼ばれ、最近好適前方目的地法もある。リストした方法の各々は、最近目的地法のクラスのメンバーである。
【０２７７】
＜最遠逆転（Ｆａｔｈｅｓｔ  Ｒｅｖｅｒｓａｌ）＞
【０２７８】
挙動＃１および＃３が示されるのを既に可能にされている場合に、挙動＃４が示されるのを可能にする方法の別のクラスは、「最遠逆転」法と呼ばれる。最遠逆転は、矛盾した制約内の項を制限する優勢な条件付き表明に至る経路を区別することに依存する。
【０２７９】
圧縮された完全な根拠の構成は、実際上、カスケード分岐−減算を採用する。このカスケード分岐−減算の同じ方法は、完全な根拠を区別するために使用できる。具体的には、最終的な副基礎は、基礎に加算される前は、その基礎に対する「区別された根拠」である。
【０２８０】
最遠逆転法では、最後に条件付きで制限された制約内の項を識別することが必要である。この識別は、制約の全ての項が制限される順序を記録することによって容易にされる。かかる順序付けは、各制約について個別に記録されるか、または優勢数がこの目的で使用される。
【０２８１】
完全な最遠逆転法は、以下の動作を含む。
【０２８２】
［Ｆ１］所与の矛盾の移動のために目的地が選択される。選択する方法は、その選択が正当で持続的である限り、重要でない。選択された目的地が、所与の矛盾に至る経路内にないことが明らかになると、別の目的地が選択されるが、そうでない場合、選択は、矛盾が制約を通って移動している時、持続する。
【０２８３】
［Ｆ２］所与の矛盾した制約内の１つまたは２つの項だけが、それに連言的に収束する優勢な表明の完全な根拠内に目的地を有する決定因子によって制限される場合：
【０２８４】
［Ｆ２ａ］かかる同様に修飾された項の間で最も前に制限された項が、値述語がそれに対して反表明される項である。
【０２８５】
［Ｆ３］そうでない場合：
【０２８６】
［Ｆ３ａ］それに連言的に収束する優勢な表明の完全な根拠内に目的地を有する決定因子によって制限される所与の矛盾した制約内の項の間で、最後に制限された項が「主要な」項として指定され、その主要な項の優勢な経路が「主経路」である。
【０２８７】
［Ｆ３ｂ］決定因子に連言的に収束する優勢な表明の完全な根拠内に目的地を有する決定因子によって制限される所与の矛盾した制約内の各項について：
【０２８８】
［Ｆ３ｂ１］「短縮（ｐｒｕｎｅｄ）副基礎」を所与の項に対して空として初期化する。
【０２８９】
［Ｆ３ｂ２］所与の項を制限し、その完全な根拠内に目的地を有する、決定因子を生成するために連言的に収束する各優勢な表明について：
【０２９０】
［Ｆ３ｂ２ａ］所与の優勢な表明の完全な根拠を「一時的副基礎」としてコピーする。
【０２９１】
［Ｆ３ｂ２ｂ］目的地またはその目的地を含む完全な根拠を有する優勢な表明の値述語を表していない一時的副基礎内の各値述語について、遠さカウントの昇順に：
【０２９２】
［Ｆ３ｂ２ｂ１］所与の値述語を表す優勢な表明を一時的副基礎から分岐−減算して、その所与の値述語を一時的副基礎から除去する。
【０２９３】
［Ｆ３ｂ２ｃ］一時的副基礎を短縮副基礎に分岐−加算して、所与の優勢な表明の値述語を、所与の項に対する短縮副基礎に加算する。
【０２９４】
［Ｆ３ｃ］主要な項に対する短縮副基礎を「主基礎（ｍａｉｎ  ｂａｓｉｓ）」としてコピーして、主要な項に対する短縮副基礎を除去する。
【０２９５】
［Ｆ３ｄ］残っている短縮副基礎を有する所与の矛盾した制約内の各項について：
【０２９６】
［Ｆ３ｄ１］所与の項の短縮副基礎内の各値述語について、遠さカウントの昇順に：
【０２９７】
［Ｆ３ｄ２ａ］所与の値述語が所与の項の主基礎内にある場合、所与の値述語の優勢な表明をその所与の項の短縮副基礎から分岐−減算する。
【０２９８】
［Ｆ３ｅ］最大の遠さカウントをもつ値述語を含む、残っている短縮副基礎を有する所与の矛盾した制約内の項が、反表明される項である。
【０２９９】
最遠逆転法では、最近目的地法におけるように、カウントが厳密に維持されていない場合、矛盾の移動はディザリングする。両方の方法で、ディザリング数は、矛盾するか、または既存の矛盾の移動方向の変化に対して推進力を提供する制約数によって限定され、単一の制約が、ディザリングに応答して、矛盾によってトラバースされる最大の回数は、その制約内の項数に等しく、仮定が導入されるときにはいつでも、ディザリングの新しい集合が可能である。ディザリング当たりの制約のトラバーサル数をその制約内の項数に限定し、かつ仮定当たりのディザリング数を式内の制約数に限定する矛盾を移動させる方向を選択する任意の方法が許容できる方法である。
【０３００】
最遠逆転法は、主経路に合流しないか、または主経路自体内で測定されるような距離に対して、矛盾から最も遠い位置で主経路に合流する経路を一貫して選択することにより機能し、これは、矛盾の移動が、主経路上で逆戻りし、その後、経路に関する情報が失われているか、または以前に利用可能でなかった状況を除いて、再逆戻りするのを防ぐ。
【０３０１】
いくつかの様々な最近目的地法があり、同様に、いくつかの様々な最遠逆転法がある。しかし、最近目的地法は、近さが測定される方法に応じて異なるが、遠さを測定する異なる方法を最遠逆転法に適用すると、相互に類似した優勢な経路内の表明の順序付けが生成される。最遠逆転法の変形のより実質的な例は、重層化根拠を使用するものである。
【０３０２】
＜重層化根拠＞
【０３０３】
「重層化根拠」は、その優勢な経路内に特定の仮定を有する優勢な表明を提供する制約に限定される優勢な経路のレコードの一種である。これらの制約は、第１の仮定の導入の結果として表明を生成するどの制約も、その同じ集合内の別の制約の重層化根拠の一部であり、第２の仮定と組み合わせて第１の仮定の導入の結果として表明を生成するどの制約も、この後者の集合内の別の制約の重層化根拠の一部であり、このようにして、制約が、各層がその層内の表明に対する「源」と呼ばれる特定の最新の仮定に割り当てられている「層」に分けられている、という意味で重層化されている。重層化根拠は、上述のように、短縮副基礎に類似しているが、短縮副基礎は、他の層からの制約を表す値述語を含んでおらず、同じ制約を通って指定された仮定に至ることもなく、擬似仮定に至る経路を含まないことを除き、かつ重層化根拠は、実行済みカウント、未実行カウント、又は近さカウントを有していないが優勢数を含み、しかし優勢数は、厳密に維持されている遠さカウントとして機能するように改訂されないことを除く。そのため、重層化根拠は、それらが単に「根拠」と呼ばれる従来技術の一部である。
【０３０４】
短縮副基礎と類似していることは、実際の短縮副基礎を生成するコストを減らすので、最遠逆転法を使用する実施形態の一部として重層化根拠を使用する最も大きな利点である。しかし、第１の根茎状ネットワークが、その一部が、異なる層の第２の根茎状ネットワークによって消費されているために、縮小する場合、第２の根茎状ネットワークの優勢な経路内の制約に至ってそれを生じる、第１の根茎状ネットワークの経路が利用できず、その結果として、第２の根茎状ネットワーク内の矛盾の移動は、第１の根茎状ネットワークのそれら他の経路を下ってディザリングを発生することなく、反表明が無条件のはずであることを認識しない。加えて、遠さカウントのように厳密に維持されていない優勢数は、追加のディザリングを引き起こし、厳密な維持はそれ自体、追加の計算作業である。そのため、要するに、重層化根拠を使用する最遠逆転法の変形はとりわけ効率的ではない。
【０３０５】
最遠逆転法の変形は、主経路に再合流する地点へのより近い経路を見つけることによるか、または主経路に再合流する地点への近い経路が存在する目的地を選択することを好むことにより、計算コストをわずかに減少させる。
【０３０６】
最近目的地法は、最小距離の移動または矛盾を除去するために最小計算コストを負うと予測される経路の移動を必要とし、また、最遠逆転法は、移動した距離またはその距離を移動する計算コストに拘らず、主経路内の最も早期の地点まで移動することを必要とするので、最近目的地法は、矛盾を除去するためにより少ない計算コストを負う傾向があり、最近目的地法に、ある代替手段に対する優位性をもたらす。
【０３０７】
＜アルゴリズムが挙動＃４を示すのを可能にする方法の調整＞
【０３０８】
いくつかの場合には、矛盾が、最近目的地または最遠逆転に従って選択される方向とは異なる方向に移動しなければならないことがある。これは、反表明の補集合がずっと空であるか、またはＳＯＭＭＥのシステムが、ある変数だけが反表明された値述語を有することを必要とする状況である。この場合には、その方法が最近目的地であろうと最遠逆転であろうと、方向の選択方法を調整することが必要である。この調整を提供するための１つの方法は、その項を制限する完全な根拠内で見つかった値述語によって識別された反表明される所望の項を、変数、制約、項、または表明と関連付けられているのではなく、矛盾解決プロセスと関連付けられたデータ構造として効率的に具現化された、移動中の矛盾と関連付けることである。２つ以上のかかるプロセス表記法がプロセス毎に必要であるが、かかる表記法の数は式内の変数の数を上回ることはできない。
【０３０９】
矛盾が移動する方向を選択するために使用される方法の上述のいくつかの説明は、目的地が事前に選択されているかのように書かれている。他の仮定ではなくある仮定を否定するための規定された好みがない場合、矛盾した制約内の他の項を制限する条件付き優勢な表明を、反表明に対する候補である各項の優勢な経路から差し引くことにより方向を選択するための方法を修正することは多くの場合有用である。これを行うことは、各候補項に対する決定的な情報を、他の候補項を通る経路だけから導出されていない要因に限定する効果がある。
【０３１０】
＜本発明の他の実施形態＞
【０３１１】
ある変数が特定の値を得るユーザー選好があり、アルゴリズムがこれらの選好を尊重するように変更されている場合、その変更は、アルゴリズムの「保守的な」変形を具現化する。変更が実装されていない場合には、アルゴリズムの「動的な」変形が具現化される。
【０３１２】
複数の選好が同一のランクである場合、その差を、矛盾を解決する時のある目的地に対する選好として具現化することが可能である。しかし、厳密な最適化が要求される場合、本発明を、変数に対する十分な値の割当てを見つけるプロセスとして具現化することが必要であり、その後に、根拠を含む、結果として生じるネットワークを取得して、選好のランク付けされた順序で１つずつ、好まれる値を無条件表明として課す別のプロセスが続き、それが必要な矛盾を生じる場合には、任意のかかる無条件表明を拒絶する。
【０３１３】
複雑な選好構造は、最適化採点法の和、積、または他の結果を表すと解釈される制約などの、追加の制約として具現化される。この場合、選好は、この結果を表す変数に課される。
【０３１４】
本発明の実施形態は、様々な方法で実装される。特定の基板に対する実装の選択は、その基板に対して利用可能な実装上の経済に依存する。具体的には、装置の製造は、通常、機構に対する空間コストの２乗を節約するために、計算時間における線形増加をトレードし、ソフトウェアの製造は、多くの場合、逆のトレードをし、追加のメモリ使用を犠牲にして計算時間を節約する。低い最大計算コストを提供する、本発明の特に有用な一実施形態は、矛盾が移動する方向を選択する最近目的地法を実行して、未実行カウントおよび最大距離カウントおよび制限カウントを含む圧縮された完全な根拠を格納する、シングルスレッドの動的変形を具現化する。完全な根拠の大多数は、最も良く厳密に維持されるが、最大距離カウントおよび制限カウントは最も良くレイジーに維持され、ＳＯＭＭＥ値述語の改訂は、本発明が、従来の数理解析を提供するプロセスによって補完されない限り、最も良くレイジーに維持される。
【０３１５】
＜一般性＞
【０３１６】
本発明の実施形態は、矛盾が通る近接空間を定義するために、制約自体の間の関係を使用する。その結果として、矛盾の移動は、値がうまく順序付けされているか、一部順序付けされているか、または独立しているかに拘らず、かつ値が相互排他的か、またはファジーであろうと、値の特質によって影響されない。また、この移動は、値述語が区間、集合、または離散値であろうと、値述語の特性によっても影響されず、また、この移動は、制約の外延が、連続、分岐、または離散であろうと、かつ制約の外延が、凸状、連続であるが非凸状、もしくは非連続であろうと、または適した外延が全くなかろうと、制約の外延の特性または形状によっても影響されない。本発明の実施形態の正確さも、最大計算経費の大きさ順のどちらも、仮定が行われる順序または競合する表明の間でどの表明が優勢になるかを決定する順序に悪影響を受けない。しかし、本発明の実施形態の最大計算経費は、変数の数、それら変数の区別された値の数、および制約の数によって影響を受け、かつ、ＳＯＭＭＥは無限数の値をもつ変数について動作するので、本発明の実施形態の動作および最大計算経費は、制約が選言句または他の明示的な論理式またはＳＯＭＭＥであるかによって影響される。
【０３１７】
式がＳＯＭＭＥを含む場合に矛盾の解決から生じる反表明の数、方向、および条件付けは、上述したように、式が選言句のみを含む場合と異なるが、制約の近接性の定義および制約が定義して、矛盾が通る、近接空間は影響を受けないままである。その結果として、本発明の実施形態は、一次式、ユークリッド距離、従来のトポロジ的近さ、または凸状外延（ｃｏｎｖｅｘ  ｅｘｔｅｎｓｉｏｎ）に依存する方法よりもはるかに多用途な式を処理する手段を提供する。
【０３１８】
＜実施形態例＞
【０３１９】
＜実施形態＃１（一般計算）＞
【０３２０】
本発明の一実施形態は、コンピュータ化計算に対する全般的な改善であり、ＮＰ、ＮＰ完全、ＮＰ困難な問題を解決する間に計算装置を実行するコスト、およびＮＰ、ＮＰ完全、又はＮＰ困難な問題を解決する間に、計算装置のオペレータが結果を待つ必要がある時間を削減する。本実施形態は、計算機における新しい演算回路またはかかる回路をエミュレートするソフトウェアモジュールに匹敵する。
【０３２１】
＜実施形態＃２（テンプレート作成）＞
【０３２２】
本発明の一実施形態は、別の機械によって原料から部品を切り取るために使用されるか、あるいはそうでなければ、処理が、木材からの製材の製造、布、皮革、もしくはプラスチックからの覆いパネル（ｃｌｏｔｈｉｎｇ  ｐａｎｅｌ）、または金属板、棒、もしくはワイヤーからの車もしくは他の機械部品、または精製品からの何か他の製造部品の製造であろうと、機械によって、材料を製品の部品へ何らかの加工を行うのを導くために使用される、テンプレートを提供する装置または自動化プロセスである。
【０３２３】
本実施形態の技術的効果は、過度の計算コストなしに、材料の最適利用を可能にするテンプレートが提供されることであり、材料と計算コストの両方の無駄を削減する。この最適化は通常、提供される部品の幾何的要件を表す変数および制約を使用し、特定の原料から提供される部品の異なる経済的価値を反映する制約を含むだけでなく、本実施形態の保守的な変形が、原料の利用または生み出される価値を最大限にするテンプレートの作製を強制する目的で、材料の利用および製品の価値を要約する制約も含む。制約が部品の異なる価値を反映する場合、追加の技術的効果は製品の価値の最大化である。
【０３２４】
（Ｊａｖａｎｓｈｉｒ，Ｈ．およびＳｈａｄａｌｏｏｅｅ，Ｍ．「Ｔｈｅ  Ｔｒｉｍ  Ｌｏｓｓ  Ｃｏｎｃｅｎｔｒａｔｉｏｎ  ｉｎ  Ｏｎｅ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｃｕｔｔｉｎｇ  Ｓｔｏｃｋ  Ｐｒｏｂｌｅｍ（１Ｄ−ＣＳＰ）ｂｙ  Ｄｅｆｉｎｉｎｇ  ａ  Ｖｉｒｔｕａｌ  Ｃｏｓｔ」Ｊｏｕｒｎａｌ  ｏｆ  Ｉｎｄｕｓｔｒｉａｌ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  ２００７；
Ｋｅｎｙｏｎ，ＣｌａｉｒｅおよびＲｅｍｉｌａ，Ｅｒｉｃ「Ａ  Ｎｅａｒ−Ｏｐｔｉｍａｌ  Ｓｏｌｕｔｉｏｎ  ｔｏ  ａ  Ｔｗｏ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｃｕｔｔｉｎｇ  Ｓｔｏｃｋ  ｐｒｏｂｌｅｍ」Ｍａｔｈｅｍａｔｉｃｓ  ｏｆ  Ｏｐｅｒａｔｉｏｎａｌ  Ｒｅｓｅａｒｃｈ  ２０００を参照。）
【０３２５】
＜実施形態＃３（切断機制御）＞
【０３２６】
本発明の一実施形態は、原材料から部品を提供する切断機、ボール盤、研削盤、または、他の機械の制御機構の一部であり、機械によって提供されている処理が木材から製材の切断、製材から家具の、布、皮革、もしくはプラスチックから覆いパネルの、または金属板、棒、もしくはワイヤーから車もしくは他の機械部品の、または精製品から何か他の製造部品の切断であるかを問わない。
【０３２７】
本実施形態の技術的効果は、過度の計算コストなしに、材料の最適利用を提供するドリルまたは切断面の制御であり、それは、材料、計算コスト、および総切断時間の無駄を削減する。この最適化は通常、提供されている部品の幾何的要件を表す変数および制約を使用し、特定の原料から提供される部品の異なる経済的価値を表す制約を含むだけでなく、本実施形態の保守的な変形が、原料の利用または生み出される価値を最大限にする部品の提供を強制する目的で、材料の利用および製品の価値を要約する制約も含む。制約が部品の異なる価値を反映する場合、追加の技術的効果は製品の価値の最大化である。
【０３２８】
（ＪａｖａｎｓｈｉｒおよびＳｈａｄａｌｏｏｅｅ前掲書；ＫｅｎｙｏｎおよびＲｅｍｉｌａ前掲書を参照。）
【０３２９】
＜実施形態＃４（ロボット車両制御）＞
【０３３０】
本発明の一実施形態は、ロボット車両の制御機構の一部であり、車両がその目的地への都合の良い経路を選択するのを可能にする。
【０３３１】
本実施形態の技術的効果は、車両を駆動する意思決定と関連した待機時間および計算コストの削減と同時に、移動時間またはコストの最小化である。この最小化は通常、本実施形態の保守的な変形が、最小限の移動時間またはコストをもつ経路の選択を強制する目的で、物理的および経済的な障害を要約する制約に加えて、目的地の地理的位置、様々な地点間の地理的経路、および様々な経路区分と関連した物理的および経済的な障害を表す変数および制約を使用する。
【０３３２】
（Ｐｅｎｇ，ＪｕｆｅｎｇおよびＡｋｅｌｌａ，Ｓｒｉｎｉｖａｓ「Ｃｏｏｒｄｉｎａｔｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｒｏｂｏｔｓ  ｗｉｔｈ  Ｋｉｎｏｄｙｎａｍｉｃ  Ｃｏｎｓｔｒａｉｎｔｓ  ａｌｏｎｇ  Ｓｐｅｃｉｆｉｅｄ  Ｐａｔｈｓ」Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｒｏｂｏｔｉｃｓ  Ｒｅｓｅａｒｃｈ  ２００５を参照。）
【０３３３】
＜実施形態＃５（データ圧縮）＞
【０３３４】
本発明の一実施形態は、データがテキスト、画像、音声メッセージ、ビデオ録画、実行可能バイナリ、もしくは何か他の暗号化されているか、暗号化されていない情報の集合であるか、データがデジタルであるか、またはアナログデータのフーリエ分解もしくは他の代数的分解として表されるかに拘らず、データを圧縮する装置または自動化プロセスである。
【０３３５】
本実施形態の技術的効果は、圧縮を生じる計算の費用に関連した情報の集合に関する圧縮効果の最適化である。この最適化は通常、本発明のこの実施形態の保守的な変形が、最適な圧縮結果を強制する目的で、圧縮の要約を表す制約に加えて、情報を分解するために必要な経過時間に関する選好を表す変数および制約、ならびに圧縮のための様々な方式の計算コストおよび圧縮利益を反映する制約を使用する。
【０３３６】
（Ｒｕｈｌ，ＭａｔｔｈｉａｓおよびＨａｒｔｅｎｓｔｅｉｎ，Ｈａｎｎｅｓ「Ｏｐｔｉｍａｌ  Ｆｒａｃｔａｌ  Ｃｏｄｉｎｇ  ｉｓ  ＮＰ−Ｈａｒｄ」Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  １９９７を参照。）
【０３３７】
＜実施形態＃６（プロテインデザイン）＞
【０３３８】
本発明の一実施形態は、所与の幾何構造に従うアミノ酸のシーケンスを提供する装置または自動化プロセスである。
【０３３９】
本実施形態の技術的効果は、カスタムタンパク質またはカスタムタンパク質モデルの製造に関連した時間および計算経費の削減、ならびに設計者の待ち時間における削減である。かかる装置または自動化プロセスは通常、本発明のこの実施形態の動的な変形が、適合するアミノ酸のシーケンスを製造する目的で、タンパク質の好ましい３次元形状を反映する制約に加えて、ペプチド内のアミノ酸位置に関する化学的制限を表す変数および制約を使用するが、それらの制限が、水素結合、イオン相互作用、ファンデルワールス力、または疎水性パッキング、または他の既知もしくは疑わしい化学的性質もしくは環境条件に基づいているかを問わない。
【０３４０】
（Ｐｉｅｒｃｅ，Ｎｉｌｅｓ  Ａ．およびＷｉｎｆｒｅｅ，Ｅｒｉｋ「Ｐｒｏｔｅｉｎ  Ｄｅｓｉｇｎ  ｉｓ  ＮＰ−Ｈａｒｄ」Ｐｒｏｔｅｉｎ  Ｅｎｇｉｎｅｅｒｉｎｇ  ２００２を参照。）
【０３４１】
＜実施形態＃７（通信トラフィックのルーティング）＞
【０３４２】
本発明の一実施形態は、メッセージをネットワーク混雑から離れてルーティングすることにより、通信ネットワークのコストに対する有用性を最適化する装置または自動化プロセスである。
【０３４３】
本実施形態の技術的効果は、待機時間の削減およびその有用性の提供に関連した計算コストの節約と同時に、既存の通信ネットワークのメッセージルーティング機能の有用性の最適化である。この最適化は通常、本実施形態の保守的な変形が、メッセージ負荷に対して最適なルーティングを強制する目的で、コストおよび有用性を要約する制約の使用に加えて、通信ネットワークのトポロジ、ネットワーク上の混雑の測定、伝送されるメッセージの実用的価値、ならびにネットワークの様々なセグメントにわたる様々な使用コストおよび伝送速度を表す変数および制約を使用する。
【０３４４】
（Ｇｉｂｂｅｎｓ，Ｒ．ｊ．およびその他「Ｄｙｎａｍｉｃ  Ａｌｔｅｒｎａｔｉｖｅ  Ｒｏｕｔｉｎｇ−Ｍｏｄｅｌｉｎｇ  ａｎｄ  Ｂｅｈａｖｉｏｕｒ」Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １２ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｔｒａｆｆｉｃ  Ｃｏｎｇｒｅｓｓ  １９８８を参照。）
【０３４５】
＜実施形態＃８（波長分割マルチキャスティングトラフィックグルーミング）＞
【０３４６】
本発明の一実施形態は、ハードウェアコストまたはブロッキング確率に関して最適なファイバー毎の波長リストおよびいくつかのアドドロップマルチプレクサ（ＡＤＭ）から成るＡＤＭインストレーション計画を生成する、装置または自動化プロセスである。
【０３４７】
本実施形態の技術的効果は、波長リストおよびＡＤＭ数の生成という結果となる最適化の実行に関連した計算コストの節約と同時に、ネットワークの構築および維持コストまたはトラフィックブロッキング状態に至る確率を最小限にするためのＷＤＭネットワークの最適化である。この最適化は通常、本実施形態の保守的な変形が、コストまたはブロッキング確率を最小限にするＡＤＭインストレーション計画を強制するように、コストまたはブロッキング確率を要約する制約に加えて、伝送チャネルの利用可能帯域幅、光学系、ＡＤＭ、およびネットワークの他の構成要素のコスト、ならびに場合によっては予期されるトラフィック需要を表す変数および制約を使用する。
【０３４８】
（Ｃａｐｏｎｅ，Ａｎｔｏｎｉｏおよびその他「Ｍｕｌｔｉ−ｌａｙｅｒ  Ｎｅｔｗｏｒｋ  Ｄｅｓｉｇｎ  ｗｉｔｈ  Ｍｕｌｔｉｃａｓｔ  Ｔｒａｆｆｉｃ  ａｎｄ  Ｓｔａｔｉｓｔｉｃａｌ  Ｍｕｌｔｉｐｌｅｘｉｎｇ」Ｇｌｏｂａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｃｏｎｆｅｒｅｎｃｅ  ２００７を参照。）
【０３４９】
＜実施形態＃９（人工衛星配置）＞
【０３５０】
本発明の一実施形態は、通信の干渉および衝突の可能性を最小限にすると同時に、サービスアーク（ｓｅｒｖｉｃｅ  ａｒｃ）要件を満たす軌道衛星の集合に対して配置仕様を作成する装置または自動化プロセスである。
【０３５１】
本実施形態の技術的効果は、最適化の実行に関連した計算コストの節約と同時に、破壊のリスクと、通信干渉によって引き起こされるサービスの劣化の組合せから成る最小限のコストを提供する人工衛星の配置の最適化である。この最適化は通常、本実施形態の保守的な変形が、最適な配置仕様の生成を強制するように、配置仕様の値およびコストを要約する制約に加えて、軌道力学、人工衛星の集合が配置されるシェル、既存の人工衛星の軌道およびデブリ、基地局および人工衛星の各々のサービスアークの値を定義する他の表面物体の位置、ならびにシェル内の様々な位置に対する位置決めコストを表す変数および制約を使用する。
【０３５２】
（Ｓｐａｌｔｉ，Ｓｕｓａｎ  Ｂ．およびＬｉｅｂｌｉｎｇ，Ｔｈｏｍａｓ  Ｍ．「Ｍｏｄｅｌｉｎｇ  ｔｈｅ  ｓａｔｅｌｌｉｔｅ  ｐｌａｃｅｍｅｎｔ  ｐｒｏｂｌｅｍ  ａｓ  ａ  ｎｅｔｗｏｒｋ  ｆｌｏｗ  ｐｒｏｂｌｅｍ  ｗｉｔｈ  ｏｎｅ  ｓｉｄｅ  ｃｏｎｓｔｒａｉｎｔ」Ｏｐｅｒａｔｉｏｎｓ  Ｒｅｓｅａｒｃｈ  Ｓｐｅｋｔｒｕｍ  １９９１を参照。）
【０３５３】
＜実施形態＃１０（部品設計）＞
【０３５４】
本発明の一実施形態は、要求される物理的仕様を満たす部品を、それらの部品が、構造トラス、潜水艦のプロペラ、電池、または任意の他の種類の部品であろうと、製造するために必要な労働力および材料のコストを最小限にする部品設計を作成する装置または自動化プロセスである。
【０３５５】
本実施形態の技術的効果は、かかる最小化の生成に関連した計算コストの節約および部品設計者の待機時間の節約と同時に、物理的構成要素の製造コストの最小化である。この最小化は通常、本実施形態の保守的な変形が、製造コストを最小限にする設計を強制する目的で、コストを要約する制約に加えて、部品の物理的要件の仕様、部品を構築するために使用される利用可能な材料およびそれらの原料仕様、材料のタイプおよびそれらの構成が部品の物理的特性にどのように影響するかを決定する関係、ならびに原材料を部品に変えて、それらを組み立てるコストを表す変数および制約を使用する。
【０３５６】
（Ｐｏｗｎｕｋ，Ａｎｄｒｚｅｊ「Ｏｐｔｉｍｉｚａｔｉｏｎ  ｏｆ  ｍｅｃｈａｎｉｃａｌ  ｓｔｒｕｃｔｕｒｅｓ  ｕｓｉｎｇ  ｉｎｔｅｒｖａｌ  ａｎａｌｙｓｉｓ」Ｃｏｍｐｕｔｅｒ  Ａｓｓｉｓｔｅｄ  Ｍｅｃｈａｎｉｃｓ  ａｎｄ  Ｅｎｇｉｎｎｅｒｉｎｇ  Ｓｃｉｅｎｃｅｓ  ２０００を参照。）
【０３５７】
＜実施形態＃１１（暗号解析）＞
【０３５８】
本発明の一実施形態は、乗法的因子を見つけるか、またはデータを暗号化するために使用されているハッシュを逆にする装置または自動化プロセスである。
【０３５９】
本実施形態の技術的効果は、分解の生成に関連した計算コストの節約と同時に、暗号化テキストのプレーンテキストへの分解である。かかる装置または自動化プロセスは通常、本実施形態の動的な変形が、クリアテキストを生成する目的で、暗号化テキストを生成するためにプレーンテキストに適用されているか、または適用されている可能性がある既知もしくは疑わしい暗号化アルゴリズムを表すだけでなく、暗号化テキストを表す変数および制約を使用する。
【０３６０】
（Ｖａｌｅｅ，Ｂｒｉｇｉｔｔｅ「Ｇｅｎｅｒａｔｉｏｎ  ｏｆ  Ｅｌｅｍｅｎｔｓ  ｗｉｔｈ  Ｓｍａｌｌ  Ｍｏｄｕｌａｒ  Ｓｑｕａｒｅｓ  ａｎｄ  Ｐｒｏｖａｂｌｙ  Ｆａｓｔ  Ｉｎｔｅｇｅｒ  Ｆａｃｔｏｒｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ」Ｍａｔｈｅｍａｔｉｃｓ  ｏｆ  Ｃｏｍｐｕｔａｔｉｏｎ  １９９１を参照。）
【０３６１】
＜実施形態＃１２（ＣＰＵジョブスケジューリング）＞
【０３６２】
本発明の一実施形態は、コンピュータの中央処理装置（ＣＰＵ）のスループットまたは応答性を所与の作業負荷下で最大限にする、またはエネルギー使用量を最小限にするＣＰＵによって処理されるジョブのスケジュールを生成する装置または自動化プロセスである。
【０３６３】
本実施形態の技術的効果は、スケジュールの生成に関連した計算コストの節約と同時に、ＣＰＵのスループットもしくは応答性の最大化またはエネルギー使用の最小化であり、次いで、ＣＰＵのスループットまたは応答性に追加の改善を提供する。かかる装置または自動化プロセスは通常、本実施形態の保守的な変形が、スループットもしくは応答性の最大化またはエネルギー使用量の最小化を強制するように、ジョブのスケジュールを実行する場合に、エネルギー使用量またはＣＰＵの応答性もしくはスループットを反映する測定値を要約する制約に加えて、実行されるジョブおよびそれらの緊急度、ジョブのサブステップおよびそれらの順序、各サブステップに対して必要な資源、ならびにＣＰＵが利用可能な資源を表す変数および制約を使用する。
【０３６４】
（Ｂａｒｕａｈ，Ｓａｎｊｏｙ  Ｋ「Ｐｒｅｅｍｐｔｉｖｅｌｙ  Ｓｃｈｅｄｕｌｉｎｇ  Ｈａｒｄ−Ｒｅａｌ−Ｔｉｍｅ  Ｓｐｏｒａｄｉｃ  Ｔａｓｋｓ  ｏｎ  Ｏｎｅ  Ｐｒｏｃｅｓｓｏｒ」Ｒｅａｌ−Ｔｉｍｅ  Ｓｙｓｔｅｍｓ  Ｓｙｍｐｏｓｉｕｍ  １９９０を参照。）
【０３６５】
＜実施形態＃１３（ＩＣテストバス開発）＞
【０３６６】
本発明の一実施形態は、テストバスを含む、システムオンチップ（ＳＯＣ）または他の複合集積回路チップ（ＩＣ）のためのオンチップテストアクセスアーキテクチャまたはテストアクセス機構（ＴＡＭ）に対する設計を生成する装置または自動化プロセスであり、この設計は、コアのテストバスへの割当て、テストバスおよびそれらの下位区分の幅、ならびにテストのスケジュールを含む。
【０３６７】
本実施形態の技術的効果は、最適化の実行に関連した計算コストの節約と同時に、テストバスの構築コストに対するテスト利用価値の最大化を提供するテストバスの最適化である。この最適化は通常、本実施形態の保守的な変形が、テストバスの構築コストに対するテスト利用価値の最適化を強制する目的で、テストのスケジュールおよびバスの構築コストによって必要とされるテスト時間の値を要約する制約に加えて、コアおよびそれらの入力ピン、必要とされる様々なテストおよびそれらのコアピンアクセス要件、様々なテストを完了するための時間、削減されたテスト時間の値、ならびにテストバス幅を拡大するコストを表す変数および制約を使用する。
【０３６８】
（Ｃｈａｋｒａｂａｒｔｙ，Ｋｒｉｓｈｎｅｎｄｕ「Ｏｐｔｉｍａｌ  Ｔｅｓｔ  Ａｃｃｅｓｓ  Ａｒｃｈｉｔｅｃｔｕｒｅｓ  ｆｏｒ  Ｓｙｓｔｅｍ−ｏｎ−ａ−Ｃｈｉｐ」ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  ｏｆ  Ｅｌｅｃｔｒｏｎｉｃ  Ｓｙｓｔｅｍｓ  ２００１を参照。）
【０３６９】
＜実施形態＃１４（ＩＣ回路のパーティショニング、フロアプラン＆配置）＞
【０３７０】
本発明の一実施形態は、論理的に定義された複雑な挙動を複数のモジュール、回路コア、セル、またはＩＣの一部として配置するのに適したブロックに分割する回路レイアウトを作成する装置または自動化プロセスであり、そのレイアウトは、サイズ制限、または回路コア、セル、もしくはブロック間の相互接続の数もしくはサイズに関する制限を満たし、次いで、所望の制限内の回路遅延を提供する。
【０３７１】
本実施形態の技術的効果は、回路レイアウトの作成に関連した計算コストの節約と同時に、サイズおよび回路遅延制限を満たす回路のパーティショニングである。かかる装置または自動化プロセスは通常、本実施形態の動的な変形が、チップの幾何学的配置および様々な電気的効果によって生じる様々な分岐回路部品の並置に関する制限、パーティションサイズおよび回路遅延に関する制限、ならびに十分なレイアウトを作成するための回路レイアウトのサイズおよび遅延の要約を含め、回路の論理的動作、個々の論理的挙動の分岐回路への可能な変換、様々な分岐回路のサイズおよび回路遅延を表す変数および制約を使用する。また、かかる装置または自動化プロセスによって使用される制約は、本実施形態の保守的な変形が、トレードオフの最適化を提供する回路レイアウトを強制する目的で、構築コストおよびコストと性能との間のトレードオフを提供する計算式を表す。
【０３７２】
（Ｋａｈｎｇ，Ａｎｄｒｅｗ  Ｂ．およびその他ＶＬＳＩ  Ｐｈｙｓｉｃａｌ  Ｄｅｓｉｇｎ：ｆｒｏｍ  Ｇｒａｐｈ  Ｐａｒｔｉｔｉｏｎｉｎｇ  ｔｏ  Ｔｉｍｉｎｇ  Ｃｌｏｓｕｒｅ  ２０１１を参照。）
【０３７３】
＜実施形態＃１５（ＩＣの電源、接地、クロック、＆ネットリストルーティング）＞
【０３７４】
本発明の一実施形態は、ＩＣのための配線プランを作成する装置または自動化プロセスであり、配線プランが、電源ピン、接地ピン、クロック信号ピンに対するルーティング、またはＩＣの様々なコア、セル、ブロックに対する入力および出力ピンの接続を含むか否かを問わず、配線プランは、相互接続がＩＣ上の利用可能な空間を上回らず、ＩＣの回路遅延制限に違反しないように、コア、セル、またはブロック間の相互接続の長さおよび幅に関する制限を満たす。
【０３７５】
本実施形態の技術的効果は、配線プランの作成に関連した計算コストの節約と同時に、サイズおよび回路遅延制限を満足する配線プランの作成である。かかる装置または自動化プロセスは通常、本発明の動的な変形が、空間および信号遅延要件を満たす配線プランを強制する目的で、コア、セル、またはブロックによって使用される空間、および場合によってはクロック回路の信号遅延を要約する制約に加えて、様々なコア、セル、またはブロックおよびそれらの形状とピン、各コア、セル、またはブロックの出力ピンと、他のコア、セル、またはブロック上の要求された入力ピンとの間の接続リスト、チップの入力ピンのコア、セル、またはブロック入力ピンへの接続リスト、チップサイズの幾何学的配置および製造工程に起因する相互接続のサイズに関する制限、容量的結合または誘導クロストークなどの電気的効果に起因する相互接続の並置に関する制限、ならびに特別に広い相互接続およびクローン作成モジュールなどのクロッククロージャ技術の実装の可能性を表す変数および制約を使用する。また、かかる装置または自動化プロセスによって通常使用される制約は、本実施形態の保守的な変形が、コストと性能との間の最適なバランスを提供する配線プランを強制するため、構築コストおよびコストと性能との間のトレードオフを提供する計算式を表す。
【０３７６】
（Ｋａｈｎｇ，Ａｎｄｒｅｗ  Ｂ．およびその他、前掲書を参照。）
【０３７７】
＜実施形態＃１６（先端ＩＣ製造）＞
【０３７８】
本発明の一実施形態は、サイズおよび要求性能を満たすＩＣ製造のためのマスク、および動作仕様を満たすＩＣを直接製造するためにマスクと併用して適用されるべき製造工程票を生成する装置または自動化プロセスである。
【０３７９】
本実施形態の技術的効果は、理論上は、本発明なしに可能であるが、本発明によってのみ提供される計算コスト削減によって実用的になる、非常に合理化されたＩＣ設計プロセスである。かかる装置または自動化プロセスは通常、本発明の動的な変形が、動作、サイズ、および性能要件を満たすマスクおよびプロセスアプリケーションの作製を強制する目的で、ＩＣのサイズおよび性能特性を要約する制約に加えて、ＩＣ製造の全ての技術的制限一般、提案された製造施設の特定の制限、ＩＣが作製される様々なウェハーサイズの幾何学的制限、マスクが、成長、除去、パターニング、または電気特性の修正のためのものであるか否かを問わず、マスク自体を製造するためのコーディング要件、ＩＣの所望の機能的挙動、ＩＣ挙動に対して必要なテスト、同一の機能的挙動を提供するが、それらの電気的、磁気的、または信号伝搬特性が異なる構成要素の様々な実装、を表す変数および制約を使用する。また、かかる装置または自動化プロセスによって使用される変数および制約は、本実施形態の保守的な変形が、予想される市場価格および需要に対してＩＣのコストを最適化する、マスクおよびプロセスアプリケーションの作製を強制する目的で、ＩＣ設計のコストおよび市場価格を要約する制約に加えて、様々な構成要素実装のコスト、様々なサイズおよび性能範囲に対するＩＣの予想価格および市場需要、新しいＩＣ製造の立ち上げコスト表す。
【０３８０】
＜実施形態＃１７（制御システム設計）＞
【０３８１】
本発明の一実施形態は、原子炉制御システム、もしくは火床のための制御システムなどの制御システム、または複雑な工程を制御する任意の他のシステムの設計を生成する装置または自動化プロセスである。
【０３８２】
本実施形態の技術的効果は、最適化の生成に関連した計算コストの節約、および設計者の待機時間の節約と同時に、最適設計の生成である。この最適化は通常、本実施形態の保守的な変形が、コストまたは精度に対して最適化される設計を強制する目的で、コストまたは精度を要約する制約に加えて、それらのコストおよび効果を含む、利用可能な制御要素、および制御の精度に対する公差を含む、制御問題の特性化を表す変数および制約を使用する。
【０３８３】
（Ｂｌｏｎｄｅｌ，Ｖｉｎｃｅｎｔ  Ｄ．およびＭｅｇｒｅｔｓｋｉ，Ａｌｅｘａｎｄｒｅ編、Ｕｎｓｏｌｖｅｄ  Ｐｒｏｂｌｅｍｓ  ｉｎ  Ｍａｔｈｅｍａｔｉｃａｌ  Ｓｙｓｔｅｍｓ  ａｎｄ  Ｃｏｎｔｒｏｌ  Ｔｈｅｏｒｙ  ２００９を参照。）
【０３８４】
＜実施形態＃１８（ロボット逆運動学）＞
【０３８５】
本発明の一実施形態は、障害物のフィールドを通過している間に、指定された位置に到達するようにロボットの移動を導く命令の集合を生成する装置または自動化プロセスである。
【０３８６】
本実施形態の技術的効果は、命令の集合の生成に関連した計算コストの節約、および命令を生成させるまでの時間の削減と同時に、ロボット命令の集合の生成である。かかる装置または自動化プロセスは通常、本実施形態の保守的な変形が、所望の目的位置に最小のコストで到達する移動となる命令の集合を強制する目的で、移動のコストを要約する制約に加えて、所望の目的位置、回避すべき障害物の寸法および位置、ロボットの寸法および開始位置、結果として生じるロボットの位置または寸法における変化および各動きのコストを含め、ロボットの可能な動きを表す変数および制約を使用する。
【０３８７】
（Ｐａｒｓｏｎｓ，ＤａｖｉｄおよびＣａｎｎｙ，Ｊｏｈｎ「Ｇｅｏｍｅｔｒｉｃ  Ｐｒｏｂｌｅｍｓ  ｉｎ  Ｍｏｌｅｃｕｌａｒ  Ｂｉｏｌｏｇｙ  ａｎｄ  Ｒｏｂｏｔｉｃｓ」ＩＳＭＢ  １９９４を参照。）
【０３８８】
＜実施形態＃１９（最適化コンパイラ）＞
【０３８９】
本発明の一実施形態は、ソフトウェアソースコードを機械コードにコンパイルする装置または自動化プロセスであり、サポートが、レジスタ割当て、命令選択、マクロ圧縮、ループ最適化、データレイアウト最適化、コード並列化、または任意の他の複雑なコンパイルプロセスに対するものであるかを問わない。
【０３９０】
本実施形態の技術的効果は、最適化に関連した計算コストの節約、およびコード開発者の待機時間の節約と同時に、積極的に最適化された機械コードの生成である。この最適化は通常、本実施形態の保守的な変形が、ソースコードを満たし、最小限の計算コストを有する機械コードの生成を強制する目的で、計算コストを要約する制約に加えて、ソースコード、利用可能なレジスタ（それらのサイズを含む）、利用可能な演算（それらの計算コストおよび任意の特定のレジスタ割当てを含む）、利用可能なスピル（ｓｐｉｌｌ）資源（それらのサイズおよびアクセスの計算コストを含む）、およびソースコード命令を機械命令の集合にマッピングするタイリング（ｔｉｌｉｎｇ）を表す変数および制約を使用する。
【０３９１】
（Ｋｒｅｍｅｒ，Ｕｌｒｉｃｈ「Ｏｐｔｉｍａｌ  ａｎｄ  Ｎｅａｒ−Ｏｐｔｉｍａｌ  Ｓｏｌｕｔｉｏｎｓ  ｆｏｒ  Ｈａｒｄ  Ｃｏｍｐｉｌａｔｉｏｎ  Ｐｒｏｂｌｅｍｓ」Ｐａｒａｌｌｅｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｌｅｔｔｅｒｓ  １９９７；
Ｍｅｇｉｄｄｏ，ＮｉｍｒｏｄおよびＳａｒｋａｒ，Ｖｉｖｅｋ「Ｏｐｔｉｍａｌ  Ｗｅｉｇｈｔｅｄ  Ｌｏｏｐ  Ｆｕｓｉｏｎ  ｆｏｒ  Ｐａｒａｌｌｅｌ  Ｐｒｏｇｒａｍｓ」Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ｎｉｎｔｈ  ａｎｎｕａｌ  ＡＣＭ  ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｐａｒａｌｌｅｌ  ａｌｇｏｒｉｔｈｍｓ  ａｎｄ  ａｒｃｈｉｔｅｃｔｕｒｅｓ  １９９７を参照。）
【０３９２】
図２は、本発明の一実施形態により実装されたコンピュータシステムで実行される方法のフローチャートである。本実施形態の方法２００は、矛盾を、反表明値述語に応答する含意の優勢な経路から成る根茎状ネットワークによって定義された近接空間内を移動させる（図２、段階２０２）。反表明は、他の表明を否定する値述語の表明であり、否定された表明の優勢な経路を、残っている表明の優勢な経路から移動させる。残っている表明は反表明を含む。
【０３９３】
方法２００は、反表明の優勢な経路内に残っている任意の制約内に矛盾を生じない反表明された値述語を生成する（図２、段階２０４）。そして、方法２００は、含意の優勢な経路および矛盾の移動の優勢な経路を表している第１のデータを収集する（図２、段階２０６）。また、方法２００は、矛盾が、有効に妥当な不一致が記録されていない近接空間内の位置に向かって移動するように、方向の選択を通知するために第１のデータを使用する（図２、段階２０８）。方法２００は、解決すべき矛盾および、ディザリングを排除する方法で反表明される項を選択する（図２、段階２１０）。
【０３９４】
本発明は、特定の実施形態に関して説明しているが、上述した実施形態は例として提示しているだけであって、本発明の技術範囲を制限も定義もしない。以下に示す様々な他の実施形態も、特許請求の範囲内である。例えば、本明細書に記載される要素および構成要素は、同じ機能を実行するために、追加の構成要素にさらに分けられるか、またはもっと少ない構成要素を形成するために結合される。
【０３９５】
本明細書で開示する機能は、いずれも、それらの機能を実行するための手段を使用して実装される。かかる手段は、以下で説明するコンピュータ関連の構成要素などの、本明細書に開示する構成要素のいずれかを含むが、それらに限定されない。
【０３９６】
上述した技術は、例えば、ハードウェア、１つ以上のコンピュータ読み取り可能な記憶媒体上に格納された１つ以上のコンピュータプログラム、ファームウェア、またはそれらの任意の組合せで実装される。上述の技術は、以下の、プロセッサ、プロセッサによって読み取りおよび／または書込み可能な記憶媒体（例えば、揮発性および不揮発性メモリならびに／または記憶素子を含む）、入力装置、ならびに出力装置、の任意の数の任意の組合せを含むプログラム可能なコンピュータ上で実行する（またはそれによって実行可能な）１つ以上のコンピュータプログラムに実装される。プログラムコードは、上述の機能を実行するために入力装置を使用して入力された入力に適用され、出力装置を使用して出力を生成する。
【０３９７】
以下の特許請求の範囲内の各コンピュータプログラムは、アセンブリ言語、機械語、高水準手続き型プログラミング言語、またはオブジェクト指向プログラミング言語などの、任意のプログラミング言語で実装される。プログラミング言語は、例えば、コンパイラ型またはインタープリタ型プログラミング言語である。
【０３９８】
各コンピュータプログラムは、コンピュータプロセッサによる実行のために、機械読み取り可能な記憶装置内に有形的に具現化されたコンピュータプログラム製品に実装される。本発明の方法のステップは、入力に作用して出力を生成することにより本発明の機能を実行するために、コンピュータ読み取り可能な記憶媒体上に具現化されたプログラムを実行する１つ以上のコンピュータプロセッサによって実行される。適切なプロセッサは、例えば、汎用および専用マイクロプロセッサの両方を含む。一般に、プロセッサは、命令およびデータをメモリ（読み取り専用メモリおよび／またはランダムアクセスメモリなど）から受信して（読み取って）、命令およびデータをメモリに書き込む（格納する）。コンピュータプログラム命令およびデータを具現化するのに適した記憶装置は、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ装置を含む半導体メモリ装置のような全ての形式の不揮発性メモリ、内蔵ハードディスクおよび取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭを含む。上述のいずれもは、特別に設計されたＡＳＩＣ（特定用途向け集積回路）またはＦＰＧＡ（フィールドプログラマブルゲートアレイ）によって補完されるか、またはそれに組み込まれる。コンピュータは、一般に、プログラムおよびデータを、内蔵ディスク（図示せず）または取り外し可能ディスクなどの非一時的コンピュータ読み取り可能な記憶媒体から受信して（読み取って）、プログラムおよびデータを同記憶媒体に書き込む（格納する）。これらの要素は、従来型のデスクトップコンピュータまたはワークステーション、ならびに本明細書に記載された方法を実装するコンピュータプログラムの実行に適した他のコンピュータでも見出され、任意のデジタル印刷エンジンもしくはマーキングエンジン、ディスプレイモニター、またはカラーもしくはグレイスケールの画素を、紙、フィルム、ディスプレイ画面、もしくは他の出力媒体上に生成可能な他のラスター出力装置と共に使用される。
【０３９９】
本明細書に開示する任意のデータは、例えば、非一時的コンピュータ読み取り可能な記憶媒体上に格納された１つ以上のデータ構造で実装される。本発明の実施形態は、かかるデータをかかるデータ構造（複数可）に格納して、かかるデータをかかるデータ構造（複数可）から読み取りる。
【０４００】
本明細書で、ある実施形態が、「決定する」、「分析する」、および「推論する」などの精神的な行為を記述するために使用される言語に類似する言語を使用して記述されるが、かかる言語は、単に便宜のために、トランジスタ、論理ゲート、およびプロセッサなどの物理的構成要素を使用する本発明の実施形態によって実行される物理的行為を記述するための簡便な表現として使用される。従って、かかる言語は、人または任意の他の生物の精神によって実行される任意の精神的な行為ではなく、物理的構成要素によって実行されるそのような物理的行為を指す。
【０４０１】
同様に、本明細書で、ある実施形態が、「矛盾」、「変数」、および「制約」などの、数学的および哲学的な言語を使用して記述されるが、かかる言語は、単に便宜のために、数学的、哲学的、またはそれ以外かに拘らず、任意の抽象的概念ではなく、物理的構成要素の具体的な物理的特性および、かかる構成要素によって実行される物理的行為を記述するための簡便な表現として使用される。従って、かかる言語は、数学的、哲学的、またはそれ以外かに拘らず、任意の抽象的概念ではなく、物理的構成要素の物理的特性および構成要素によって実行される物理的行為だけを指す。
【図１】
0006550384.tif 000003
【図２】
0006550384.tif 000004