【文献】
ISHIKAWA, Hiroshi et al.,Transformation of General Binary MRF Minimization to the First-Order Case,Proceedings of IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE,2011年 6月,VOL.33/NO.6,pp.1234-1249,URL,https://ieeexplore.ieee.org/abstract/document/5444874
(58)【調査した分野】(Int.Cl.,DB名)
請求項1〜2のいずれか1つに記載の方法において、前記2値多項的に制約された多項計画問題は、ユーザ、コンピュータ、ソフトウェアパッケージ及びインテリジェントエージェントの少なくとも1つから取得される、方法。
請求項1〜3のいずれか1つに記載の方法において、前記2値多項的に制約された多項計画問題を取得するステップは、ソフトウェアパラメータを初期化すること及びステップサイズサブルーチンを取得することをさらに含む、方法。
請求項1に記載の方法において、前記少なくとも1つの対応する解を用いて、前記2値多項的に制約された多項計画問題のラグランジュ双対についての線形再定式化のための少なくとも1つの外側近似切断を生成する、方法。
請求項1〜9のいずれか1つに記載の方法において、前記2値多項的に制約された多項計画問題のラグランジュ双対への対応する解の提供は、前記対応する解をファイルに格納することを含む、方法。
コンピュータ実行可能命令を格納するための不揮発性コンピュータ可読記憶媒体であって、該命令を実行すると、2値多項的に制約された多項計画問題のラグランジュ双対を解くための方法をデジタルコンピュータに行わせるのであり、該方法は:
2値多項的に制約された多項計画問題を取得するステップと、
収束が検出されるまでは反復的に:
ラグランジュ乗数のセットを提供し、
これらのラグランジュ乗数における前記2値多項的に制約された多項計画問題のラグランジュ緩和を表す制約無しの2値2次計画問題を提供し、
前記制約無しの2次計画問題を2値オプティマイザへと提供し、
前記2値オプティマイザから少なくとも1つの対応する解を取得し、
前記少なくとも1つの対応する解を用いて新たなラグランジュ乗数のセットを生成するステップと、
収束が検出された後に、対応する前記2値多項的に制約された多項計画問題のラグランジュ双対の知られている最良の主双対及び前記2値多項的に制約された多項計画問題の知られている最良の実行可能解の全てを提供するステップ
とを含む、媒体。
【発明を実施するための形態】
【0033】
実施形態についての以下の説明においては、添付の図面への言及は事例に関しての例示としてされているのであり、これらは本発明を実施し得る態様を示している。
【0034】
用語
「発明」等の語は、「本願にて開示される1つ以上の発明」を意味するが、明示的に別段の定めがされている場合はこの限りでない。
【0035】
「態様」、不定冠詞を伴う「実施形態」、無冠詞の「実施形態」、無冠詞複数形の「実施形態」、定冠詞を伴う「実施形態」、定冠詞を伴う複数形の「実施形態」、「1つ以上の実施形態」、「幾つかの実施形態」、「特定の実施形態」、「或る実施形態」、「別の実施形態」等の語は、「本願開示の発明の1つ以上(但し、全部ではない)」を意味するが、明示的に別段の定めがされている場合はこの限りでない。
【0036】
実施形態について説明するに際して「別の実施形態」や「別の態様」に言及しても、被言及側の実施形態が別の実施形態(例えば、被参照側実施形態の前に説明された実施形態)と相互排反的であることを暗示するわけではないが、明示的に別段の定めがされている場合はこの限りでない。
【0037】
「含む」、「備える」、及びこれらのバリエーションは「含むがこれらには限られない」とのことを意味するが、明示的に別段の定めがされている場合はこの限りでない。
【0038】
「不定冠詞たるa」、「不定冠詞たるan」、「定冠詞たるthe」及び「少なくとも1つ」との語は、「1つ以上」を意味するが、明示的に別段の定めがされている場合はこの限りでない。
【0039】
「複数」との語は「2つ以上」を意味するが、明示的に別段の定めがされている場合はこの限りでない。
【0040】
「ここで」との語は「本願において、そして参照によって取り込まれる任意のものを含む」とのことを意味するが、明示的に別段の定めがされている場合はこの限りでない。
【0041】
「exempli gratis」等の語は「例えば」を意味するのであり、説明される語又はフレーズを限定はしない。例えば、「コンピュータはインターネット上にデータ(e.g.,命令やデータ構造)を送る」とのセンテンスにおいては、「e.g.」との語は「命令」というものがコンピュータによってインターネット上に送られ得る「データ」の例であることを説明し、また、「データ構造」というものがコンピュータによってインターネット上に送られ得る「データ」の例であることをも説明する。もっとも、「命令」も「データ構造」も「データ」の例に過ぎず、「データ構造」や「データ」以外のものも「データ」たり得る。
【0042】
「id est」等の語は「即ち」を意味するのであり、説明される語又はフレーズを限定する。例えば、「コンピュータはインターネット上にデータ(i.e.,命令)を送る」とのセンテンスにおいては、「i.e.」との語は「命令」がというものがコンピュータによってインターネット上に送られる「データ」であることを説明する。
【0043】
「2値多項的に制約された多項計画問題」(BPCPPP、binary polynomially constrained polynomial programming problem)等の語は、複数の2値変数x=(x
1,...,x
n)における実多項式y=f(x)の最小値を見つけることを意味し、ここで次の制約を課されるものとする(以下、「subject to」とも表現する):(空集合かもしれない)m個の等式g
j(x)=0のファミリ(ここで、j=1,...,m)によって決定される(空集合かもしれない)等式制約のファミリ、並びに、(空集合かもしれない)l個の不等式h
j(x)≦0のファミリ(ここで、j=1,...,l)によって決定される(空集合かもしれない)不等式制約のファミリ。ここで、全ての関数g
i及びh
jは多項式である。
【数1】
【0044】
BPCPPPの「定義域」とは、2値エントリを伴うサイズがnであるベクトルについての集合{0,1}
nを意味する。BPCPPPの「実行可能領域」とは定義域の部分集合たるF⊆{0,1}
nを意味し、これは上述のm個の等式制約及びl個の不等式制約の全てを充足する全ての2値ベクトルv∈{0,1}
nで構成されている。
【0045】
上述のBPCPPPは(P)と表され、その最適値はv(P)と表される。最適解x(即ち目的関数が値v(P)を達成するベクトル)は、x
*として表される。
【0046】
BPCPPPたる(P)の「ラグランジュ関数」とは次の関数を意味する:
【数2】
【0048】
δ
p(λ,μ)として表記される上述の最適化の値は、元のBPCPPPについての最適値の下限として知られており、即ち、δ
p(λ,μ)≦v(P)である。
【0050】
BPCPPPの「ラグランジュ双対」との語は、次の最適化問題との関連で用いられる:
【数3】
【0051】
上述の最適化はδ(P)として表され、元のBPCPPPについての最適値の下限として知られており、即ち、δ(P)≦v(P)である。この値は一意的であり、元のBPCPPPについての「ラグランジュ双対限界」とも称される。
【0052】
「最適ラグランジュ乗数」等の用語は、必ずしも一意的ではないポイントの集合λ
*及びμ
*を指し示し、そこにおいてはδ(P)の値が上述の最適化問題との関係で達成される。
【0053】
元のBPCPPPについての「ラグランジュ双対問題について解」とは、ラグランジュ双対問題を解いた後に受信される次の情報の寄せ集めを指し示す:(1)ラグランジュ双対限界;(2)上述のような最適ラグランジュ乗数についての(必ずしも一意的ではない)集合;(3)所与の最適ラグランジュ乗数においてラグランジュ双対問題の最適値が得られる2値ベクトルについての(必ずしも一意的ではない)集合
【0056】
「知られている最良の主双対」(best-known primal-dual pair)とは、実行中の処理についてδ
p(λ,μ)が関数たるδ
pについての最大観測値となるような主双対たる(x,λ,μ)を指し示す。
【0058】
「量子アニーラ」等の語は、制約無しの2値多項式計画問題(unconstrained binary polynomial programming problem)についての最適又は準最適な解を見つけることができる1つ又は多数のタイプのハードウェアを含むシステムを意味する。この例としては、2値多項的に制約された多項計画(binary polynomially constrained polynomial programming)をイジングスピンモデル(Ising spin model)として埋め込むデジタルコンピュータであって、アナログコンピュータに接続されたものを挙げることができ、該アナログコンピュータは例えば次の文献に開示されているような量子アニーリングを用いてイジングスピンモデル内のスピン構成について最適化を行う:非特許文献4、pp.1-16。このようなアナログコンピュータの実施形態は被特許文献5及び特許文献2において開示されている。なお、「量子アニーラ」は古典的なコンピュータ等の「古典的なコンポーネント」を備えていることもできることに留意されたい。したがって、「量子アニーラ」は完全にアナログ型であるか或いはアナログ−典型のハイブリッド型であることができる。また、「量子アニーラ」は2値オプティマイザの実施形態であることにも留意されたい。
【0060】
2値最適化問題についての「埋め込み」等の語は、割当たるemb:{x
1,・・・,
x
n,y
1,・・・,y
t}→2
{q1,・・,qn}を指し示し、該割当は量子アニーラの全量子ビットの部分集合を2値変数x
iの各々及び補助変数y
jの各々へと渡すのであり、変数間の接続性は、それらのemb下での像の接続性によって遵守されるようになっている。例えば、項たるx
rx
sがBPCPPPの一般的ラグランジュ緩和のGDRF内に現れる場合、2つの変数x
r及びx
sに対応する量子ビットの部分集合は、量子アニーラ内においてはそれらの間での結合を有しているはずである。制約無しの2値多項式計画問題を解く場合及びそれについての効率的なアルゴリズムを提唱する場合に関しての上述のような埋め込みの役割の詳細については、次の文献を参照されたい:非特許文献6、特許文献3、及び特許文献4。
【0061】
「埋め込みソルバ」等の語は、次のような命令を含む関数、手続及びアルゴリズムを指し示す:制約無しの2値2次計画問題(UBQPP、unconstrained binary quadratic programming problem)を受信するステップと、提供された埋め込みを用いて量子アニーラに対してクエリの遂行を行うステップと、少なくとも1つの結果を返すステップであって各結果は次の事項を表す2値エントリのベクトルを含むステップ:即ち提供された制約無しの2値2次計画(UBQP、unconstrained binary quadratic programming)の定義域における2値ポイントに関する事項と、そのポイントにおけるUBQPの目的関数の値に関する事項と、読み出し回数全体における結果の発生回数に関する事項。
【0062】
「サブルーチン」等の語は、実行時において随時ソフトウェアによって反復的に呼び出されるユーザ定義型の関数、手順又はアルゴリズムを指し示す。本願開示のシステムにおいては、ステップサイズサブルーチンは、
図1に示した反復回における次回ステップサイズを決定する。本願開示のシステムでは、埋め込みソルバサブルーチンは量子アニーラへのクエリを捌くのであり、埋め込みが提供した観点もある。
【0063】
「制約無しの2値2次計画問題」(UBQPP、unconstrained binary quadratic programming problem)等の語は、目的関数たるy=x
tQx+bの最小値を探索することを意味し、ここでQはサイズがnの対称型かつ正方型の実行列であり、bは実数であり目的関数のバイアスとも呼ばれる。関数の定義域は、2値エントリを有する次の条件を満たすベクトル全てにわたる:x∈B
n={0,1}
n。
【0065】
発明の名称及び要約のいずれも、何らの観点からも、開示された発明の範囲を限定するために用いられてはならない。本願の発明の名称及び明細書中の項目名は利便性のためだけに付されているのであり、何らの観点からも開示内容を限定するものとして用いられてはならない。
【0066】
本願においては様々な実施形態が説明されており、例示的目的のみのために提示されている。説明された実施形態は何らの意味合いにおいても限定的なものではなく、またそのような意図すらないことに留意されたい。開示内容から明らかなように、開示されている発明は様々な実施形態に適用可能である。当業者であれば、開示されている発明には構造的な変更や論理的な変更等の様々な変更や改変を加えた上で実施することができることに気付くであろう。開示されている発明の特定の特徴は1つ以上の特定の実施形態及び/又は図面との関係で説明されている場合があり得るが、そのような特徴はそれらの説明に際して参照される特定の実施形態や図面における用例に限定されないことに留意されたい。もっとも、明示的に別段の定めがされている場合はこの限りでない。
【0067】
本発明は様々な態様で実施されることができ、これらには方法やシステムやコンピュータ可読媒体(例えば、コンピュータ可読記憶媒体)が含まれる。本明細書においては、これらの実施態様及び本発明が取り得る他の任意の形式を、システムや手法と称することができることに留意されたい。あるタスクを行うように構成されているものとして説明されているプロセッサやメモリ等のコンポーネントには、次の両者が含まれ得る:所定の時期においてタスクを行うように一次的に構成されている汎用コンポーネント、及び、タスクを行うように製造された具体的コンポーネント。
【0068】
上記全てを考慮に入れた上で、以下においてはBPCPPPのラグランジュ双対を解くための方法及びシステムに関する発明について説明する。
【0069】
後述の実施形態では量子アニーラが用いられるも、当業者であれば量子アニーラは2値オプティマイザの1つの実装例であることに気付くであろう。
【0070】
図2を参照するに、システム200についての実施形態が示されており、該システムにおいてBPCPPPのラグランジュ双対を解くための方法についての実施形態を実装することができる。
【0071】
システム200は、デジタルコンピュータ202と量子アニーラ204とを備える。
【0072】
デジタルコンピュータ202はBPCPPPを受信し、BPCPPPのラグランジュ双対についての少なくとも1つの解を提供する。
【0073】
様々な実施形態に従ってBPCPPPを提供することができることに留意されたい。
【0074】
1つの実施形態では、BPCPPPは、デジタルコンピュータ202と対話するユーザによって提供される。
【0075】
代替的には、BPCPPPは、図示されていない別のコンピュータによって提供されるのであり、該別のコンピュータはデジタルコンピュータ202と動作可能に接続されている。
【0076】
代替的には、BPCPPPは、独立のソフトウェアパッケージによって提供される。
【0077】
代替的には、BPCPPPは、インテリジェントエージェントによって提供される。
【0078】
同様に、様々な実施形態に従ってBPCPPPのラグランジュ双対についての少なくとも1つの解を提供することができることに留意されたい。
【0079】
ある実施形態によれば、BPCPPPのラグランジュ双対についての少なくとも1つの解は、デジタルコンピュータ202と対話しているユーザに対して提供される。
【0080】
代替的には、BPCPPPのラグランジュ双対についての少なくとも1つの解は、デジタルコンピュータ202と動作可能に接続されている別のコンピュータに対して提供される。
【0081】
実際、当業者であれば、デジタルコンピュータ202は任意のタイプのコンピュータであることができることに気付くであろう。
【0082】
1つの実施形態では、デジタルコンピュータ202は次のものからなる群から選択される:デスクトップ型コンピュータ、ラップトップ型コンピュータ、タブレット型PC、サーバ、スマートフォン等。
【0083】
図3に転じるに、デジタルコンピュータ202についての実施形態が同図に示されている。デジタルコンピュータ202は、広義な意味合いではプロセッサとも称され得る。
【0084】
この実施形態では、デジタルコンピュータ202は次のものを備える:マイクロプロセッサ又は処理装置とも呼ばれる中央処理装置(CPU)302、表示装置304、入力装置306、通信ポート308、データバス310、及びメモリ部312。
【0085】
CPU302は、コンピュータ命令を処理するために用いる。当業者にとっては、CPU302については様々な実施形態をもたらすことができることが明らかである。
【0086】
1つの実施形態では、CPU302は3.6 GHzで実行されているCore i7 3820である(インテル製(登録商標))。
【0087】
表示装置304はデータをユーザに対して表示するために用いられる。当業者にとっては、表示装置304については様々なタイプの実施形態をもたらすことができることが明らかである。
【0088】
1つの実施形態では、表示装置304は標準的な液晶表示装置(LCD)モニタである。
【0089】
通信ポート308は、データをデジタルコンピュータ202と共有するために使用される。
【0090】
通信ポート308は、例えば、キーボード及びマウスをデジタルコンピュータ202に接続するためのユニバーサルシリアルバス(USB)ポートを含み得る。
【0091】
通信ポート308は、データネットワークを介してデジタルコンピュータ202を別のコンピュータと接続することを可能とするようなIEEE 802.3ポート等のデータネットワーク通信ポートをさらに含み得る。
【0092】
当業者にとっては、通信ポート308については様々な代替的実施形態をもたらすことができることが明らかである。
【0093】
1つの実施形態では、通信ポート308はイーサネット(登録商標)ポートとマウスポート(例えば、Logitech(登録商標)のそれ)とを含み得る。
【0094】
メモリ部312はコンピュータ実行可能命令を格納するために用いられる。
【0095】
1つの実施形態では、メモリ部312はオペレーティングシステムモジュール314を備える。
【0096】
当業者にとっては、オペレーティングシステムモジュール314に関しては様々なタイプを用いることができることが明かである。
【0097】
ある実施形態では、オペレーティングシステムモジュール314はMicrosoft(登録商標)製のWindows(登録商標) 8とされる。
【0098】
メモリ部312はBPCPPPのラグランジュ双対を解くためのアプリケーション316をさらに備える。
【0099】
アプリケーション316はBPCPPPを取得するための命令を備えている。
【0100】
アプリケーション316は次の処理を行うための命令をさらに備えている:反復的に、ラグランジュ乗数のセットを提供し、これらのラグランジュ乗数におけるBPCPPPのラグランジュ緩和を表すUBQPPを提供し、UBQPPを量子アニーラに提供し;量子アニーラから少なくとも1つの対応する解を取得し、また、少なくとも1つの対応する解を用いて新たなラグランジュ乗数セットを生成する処理。
【0101】
アプリケーション316は、収束が検出されたらばBPCPPPのラグランジュ双対についての少なくとも1つの解に対応する解を提供するための命令をさらに備える。
【0102】
CPU302、表示装置304、入力装置306、通信ポート308、及びメモリ部312のそれぞれは、データバス310を介して相互接続されている。
【0103】
図2に戻るに、量子アニーラ204はデジタルコンピュータ202と動作可能に接続されていることに留意されたい。
【0104】
量子アニーラ204をデジタルコンピュータ202に接続するに際しては、様々な実施形態をもたらすことが可能であることに留意されたい。
【0105】
1つの実施形態では、データネットワークを介して量子アニーラ204とデジタルコンピュータ202とが接続される。
【0106】
量子アニーラ204は、様々なタイプのものとすることができることに留意されたい。
【0107】
1つの実施形態では、量子アニーラ204はD Wave Systems Inc.製である。量子アニーラ204についてのこの実施形態に関して妥当するさらなる情報は次のサイトで入手可能である:http://www.dwavesys.com。当業者にとっては、量子アニーラ204について様々な代替的実施形態をもたらすことが可能であることが明かである。
【0108】
より正確に述べれば、量子アニーラ204は、デジタルコンピュータ202からUBQPPを受信する。
【0109】
量子アニーラ204は、UBQPPを解くことができ、また、少なくとも1つの対応する解を提供することができる。複数の対応する解が提供される局面においては、複数の対応する解には最適解及び準最適解が含まれ得る。
【0110】
少なくとも1つの対応する解は、量子アニーラ204によってデジタルコンピュータ202に対して提供される。
【0111】
図1に転じる。処理ステップ102を参照するに、BPCPPPが取得される。
【0112】
次に
図4に転じるに、同図においてはBPCPPPを提供するための実施形態が示されている。
【0113】
上述のように、BPCPPPは次のように表すことができる:
【数4】
ここで、関数f(x)、g
i(x)及びh
j(x)は複数変数に関しての実多項式である。
【0114】
処理ステップ402によれば、多項式たる目的関数f(x)を表すデータが提供される。
【0115】
処理ステップ404によれば、等式制約及び不等式制約g
i(x)及びh
j(x)を表すデータが提供される。
【0116】
BPCPPPの取得の実行については、様々な実施形態をもたらすことが可能であることに留意されたい。
【0117】
上述したように、そして1つの実施形態では、BPCPPPは、デジタルコンピュータ202と対話するユーザによって提供される。
【0118】
代替的には、BPCPPPは、デジタルコンピュータ202と動作可能に接続されている別のコンピュータによって提供される。
【0119】
代替的には、BPCPPPは、独立のソフトウェアパッケージによって提供される。
【0120】
代替的には、BPCPPPは、インテリジェントエージェントによって提供される。
【0121】
図1を参照するに、そして処理ステップ104によれば、ソフトウェアのパラメータが初期化される。
【0122】
1つの実施形態では、ソフトウェアのパラメータは、デジタルコンピュータ202によって初期化される。
【0123】
図5に転じるに、同図にはパラメータの初期化に関する実施形態やサブルーチンやそれらのためにデフォルト値を用いる態様が示されている。
【0124】
処理ステップ502によれば、BPCPPPの一般的ラグランジュ緩和についてのGDRFが提供される。
【0125】
処理ステップ504によれば、BPCPPPの一般的ラグランジュ緩和のGDRFについての一般的埋め込みを表すデータが提供される。
【0126】
1つの実施形態では、埋め込みはORACLEとの名前空間においてユーザによって格納されるのであり、ORACLE::embeddingとされる。
【0127】
引き続き
図5を参照するに、そして処理ステップ506によれば、埋め込みソルバサブルーチン(embedding solver subroutine)が提供される。
【0128】
1つの実施形態では、関数はORACLEとの名前空間においてユーザによって実装されるのであり、ORACLE::solve_quboとされる。
【0129】
埋め込みソルバサブルーチンの入力パラメータは、ORACLE::solve_quboデータ型のインスタンスへのポインタであり、制約無しの2値2次計画問題を表すのであり、それに対応するバイアスは無視されている。
【0130】
埋め込みソルバサブルーチンの出力は、ORACLE::result型のインスタンスへのポインタであり、制約無しの2値多項計画問題に関しての最適解及び準最適解のリストを表すものである。
【0131】
以下においては、D-Wave Systemsによって開発されたAPI(Sapi 2.0)を用いたサブルーチンを提供するためのC++で書かれたコードスニペットの例が提示される。このスニペット内で用いられている関数及び型は2つの補助関数、即ちqubo_to_ising及びspin_to_binaryを除いて、全てSapi 2.0によってサポートされている。前者の関数は、ORACLE::qubo型のUBQPPを、sapi_problem型のイジングスピン問題へと転換するのであり、s=2x−1との変数変換によってこれをなす。2点目の関数は、{−1,1}内のベクトル配列を受信し、x=1/2(s+1)との逆変換を適用することによって2値ベクトルを返す。
【数5】
【0132】
1つの実施形態では、デジタルコンピュータ202を用いることによって、制約無しの2値最適化問題を量子アニーラ204へと提供する処理が達成されていることが分かる。
【0133】
より正確には、1つの実施形態では、インターネット上でのトークンシステムが用いられて、量子アニーラ204に対して遠隔的なアクセスを提供し、また、使用に際しての認証を提供する。
【0134】
1つの実施形態では、量子アニーラ204の使用に関しての命令に従って少なくとも1つの解が量子アニーラ204によってテーブル内で提供されることが分かる。
【0135】
1つの実施形態では、D Wave systemはsapi_IsingResult*のデータ型で少なくとも1つの解を提供するのであり、そしてそれはQUBO::result*のインスタンスへと自動的にタイプキャスティングされる。
【0136】
引き続き
図5を参照するに、そして処理ステップ508によれば、ラグランジュ乗数に関しての下限及び上限が提供される。
【0137】
1つの実施形態では、これらのダブル型の実数についての提供行為は、ORACLE::dual_lb及びORACLE::dual_ubの名前を上書きすることによって達成されることに留意されたい。これらの型のそれぞれは、サイズがm+lのダブルのアレイを含む必要がある。これらのアレイの最初のm個のエントリはm個の等式制約に対応するラグランジュ乗数についての下限及び上限をそれぞれ表し、これらの最後のl個はl個の不等式制約に対応するラグランジュ乗数についての下限及び上限をそれぞれ表す。
【0138】
これらの名前が上書きされない場合、それらの値はデフォルト値をもって初期化されることに留意されたい。
【0139】
1つの実施形態では、等式制約に対応するラグランジュ乗数についての既定下限は、−1e3であり、それについての既定上限は+1e3である。
【0140】
不等式制約に対応するラグランジュ乗数についての既定下限は0であり、それについての既定上限は+1e3である。
【0141】
引き続き
図5を参照するに、そして処理ステップ510によれば、ラグランジュ乗数についての初期値は提供される。
【0142】
これらの実数としての値の提供は、ORACLE::dual_init_valとの名前に対して、サイズがm+lのダブルのアレイで上書きすることによって達成されることに留意されたい。この名前が上書きされない場合、それらの値はデフォルト値をもって初期化される。
【0143】
任意の等式制約又は不等式制約に対応する任意のラグランジュ乗数についてのデフォルト初期値は、0である。
【0144】
処理ステップ512によれば、ラグランジュ双対の劣勾配のノルムについての誤差許容値が提供される。ラグランジュ緩和の任意の劣勾配のノルムがこの許容値を下回った場合、強双対性(strong duality)が成立しているとみなされる。このような場合、ラグランジュ乗数は最適である。1つの実施形態によれば、ユーザによって上書きされない限り、誤差許容値は1e−5に初期化されてORACLE::tolとして格納される。誤差許容値は、ソフトウェアの幾つかの箇所で用いられる。
【0145】
1つの実施形態によれば、ORACLE::tolは等式制約及び不等式制約を確認するために用いられる。特に、LHS−RHSの全エントリの値(value)が最大でORACLE::tolであれば、LHS≦RHSの不等式の任意の系は充足されているものとみなされる。同様に、LHS−RHSの全エントリの絶対値(absolute value)が最大でORACLE::tolであれば、LHS=RHSの等式の任意の系は充足されているものとみなされる。
【0146】
引き続き
図5を参照するに、そして処理ステップ514によれば、総反復回数についての制限値が提供される。
【0147】
1つの実施形態によれば、ユーザによって上書きされない限り、反復回数に関しての制限値は1e3に初期化されてORACLE::MaxItrとして格納される。
【0148】
アルゴリズムが処理ステップ116のORACLE::MaxItrの反復回数に達した場合、アルゴリズムが終了されて、少なくとも1つの知られている最良の主双対(best-known primal-dual pair)と少なくとも1つの知られている最良の実行可能解(best-known feasible solution)とが返される。
【0149】
ステップ514によれば、非改善反復回数についての制限値が提供される。
【0150】
1つの実施形態によれば、ユーザによって上書きされない限り、反復回数に関しての制限値は10に初期化されてORACLE::MaxNonImpItrとして格納される。ORACLE::MaxNonImpItr回の反復回数中に知られている最良のラグランジュ双対値(best-known Lagrangian dual value)が増加しない場合、アルゴリズムが終了されて、少なくとも1つの知られている最良の主双対と少なくとも1つの知られている最良の実行可能解とが返される。
【0151】
ステップ516によれば、ステップサイズを発見するためのサブルーチンが提供される。
【0152】
1つの実施形態では、サブルーチンはORACLEとの名前空間においてユーザによって実装されるのであり、ORACLE::StepSizeとされる。ORACLE::StepSizeがユーザによって上書きされない場合、デフォルト値についての固定ステップサイズが用いられる。
【0153】
1つの実施形態では、ORACLE::StepSizeのサブルーチンは、探索方向を表すダブル*(double*)型のオブジェクトを入力として受信し、また、ステップサイズを表すダブル(double)型のオブジェクトを出力として返す。
【0154】
1つの実施形態では、探索方向はラグランジュ双対関数の劣勾配であり、また、ステップサイズは固定値たる1とされる。
【0155】
図1に戻るに、そして処理ステップ106によれば、ラグランジュ乗数の現在値におけるBPCPPPたる(P)のラグランジュ緩和を表すUBQPPが、生成される。
【0156】
1つの実施形態では、ラグランジュ乗数の現在値におけるBPCPPPたる(P)のラグランジュ緩和を表すUBQPPが、デジタルコンピュータ202によって生成されるものと理解される。
【0157】
より正確には、この実施形態では、次のことをなすことによってUBQPPの生成がなされるものと理解される:即ち、BPCPPPたる(P)の一般的ラグランジュ緩和のGDRFたるq
λ,μ(x,y)内において、ラグランジュ乗数の現在値をパラメータたるλ及びμと代替させること。
【0158】
1つの実施形態では、UBQPPの情報は、ORACLE::quboとの名前の下で格納される。
【0159】
引き続き
図1を参照するに、そして処理ステップ108によれば、サブルーチンたるORACLE::solve_quboが、入力としてUBQPPたるORACLE::quboと埋め込みたるORACLE::embeddingを伴って呼び出されるのであり、それによってUBQPPについての少なくとも1つの対応する解を量子アニーラ204からもたらすようにする。
【0160】
1つの実施形態では、UBQPPについての少なくとも1つの対応する解が、ORACLE::result型のインスタンスへのポインタをもって達成されるものと理解される。
【0161】
引き続き
図1を参照するに、そして処理ステップ110によれば、UBQPPの少なくとも1つの解は、BPCPPPたる(P)の定義域内のポイントへと変換される。
【0162】
引き続き
図1を参照するに、そして処理ステップ112によれば、検査を行うのであって、これによってUBQPPについての少なくとも1つの解うちのいずれかがBPCPPPたる(P)の実行可能解に対応するかを決定する。
【0163】
同処理ステップによれば、少なくとも1つの知られている最良の主双対と少なくとも1つの知られている最良の実行可能解とが、更新される。
【0164】
そして処理ステップ114に転じるに、制約無しの2値2次計画に関しての少なくとも1つの対応する解を用いてラグランジュ緩和の劣勾配を生成する、即ちδ
p(λ,μ)。
【0165】
図6に転じるに、そして処理ステップ602によれば、BPCPPPたる(P)の定義域内の少なくとも1つの対応する2値ベクトルが提供される。
【0166】
処理ステップ604によれば、UBQPPの解たる
に対応するラグランジュ緩和の劣勾配が次のように導出される:
【数6】
【0167】
1つの実施形態では、制約無しの2次計画問題(unconstrained quadratic programming problem)についての複数の2値解(binary solution)が提供された場合、最小のノルムを有する劣勾配を選択することができる。
【0168】
1つの実施形態では、導出された劣勾配を正規化することができる。
【0169】
処理ステップ606によれば、導出された劣勾配はステップサイズサブルーチンに提供され、ステップサイズに関しての値が得られる。
【0170】
実施形態によれば、ステップサイズサブルーチンがユーザによって初期化された場合、ORACLE::StepSizeに対して呼び出しを行うことによってステップサイズたるαを見つける。
【0171】
処理ステップ608によれば、ラグランジュ乗数は次のように更新される:
【数7】
ここで、new:新であり、old:旧である。
【0172】
図1に戻るに、そして処理ステップ116によれば、検査を行うのであって、これによってこれまでのORACLE::MaxNonImpItr回のステップにおいてδ
p(λ,μ)の最良値が改善されたか否かを判別する。
【0173】
処理ステップ118によれば、これまでのORACLE::MaxNonImpItr回のステップにおいてδ
p(λ,μ)の最良値が改善されていない場合、最適化の結果が提供される。
【0174】
1つの実施形態では、結果は次の事項を含む集合を含むものと理解される:即ち、知られている最良の主双対(x
*,λ
*,μ
*)全部、及び、知られている最良の実行可能解全部。
【0175】
1つの実施形態では、結果は、デジタルコンピュータを用いてファイル内に格納される。
【0176】
本願開示の方法の利点としては、BPCPPPの解を探索するに際して効率的な方法を可能たらしめることが挙げられるのであり、量子アニーラを用いてそのラグランジュ双対の解を見つけることによってこのことを成し遂げる。
【0177】
さらに、本願開示の方法によれば、BPCPPPのラグランジュ双対を解くためのシステムの処理内容を向上させることできることが明かとなる。
【0178】
終了がなされるまで、ラグランジュ乗数が反復的に更新されていくものと理解されよう。ラグランジュ双対関数の劣勾配のノルムが最大でORACLE::tolとなった場合、又は、ORACLE::MaxNonImpItr回若しくはORACLE::MaxItr回の反復後に最良主双対に関して改善が見られない場合に、プログラムは終了する。
【0179】
以下においては本願開示の方法の使用例についての例示を示すのであり、最大2次安定化集合問題(MQSSP、maximum quadratic stable set problem)に適用した場合について述べる。
【0180】
G=(V,E)がn個の頂点についてのグラフを定義するものとし;WはエッジたるEの重み付けを表す行列であってサイズがnで対称かつ正方型の行列であり;そして、AはGの隣接行列であるものとする。MQSSPは次のように定式化される:
【数8】
【0181】
目的関数について符号を負としたものを採用することによって、最大化目的関数(maximization objective function)は最小化処理(minimization)として次のように記述され得る:
【数9】
【0183】
1つの例では、5つの頂点を有するグラフが5人の同僚(coworker)からなる群を表すものとする。同僚のペア毎に、同僚間の協調に関しての効用係数(
utility factor)が割り当てられているものとする。各個人に対して、各々の成果に関して効用係数が割り当てられているものとし、これらの値は行列Wの対角線上にあるものとする。これらの効用は次の上三角行列として表され得る:
【数10】
【0185】
各作業員(worker)には作業シフトがあるものとし、重複するシフトを有する同僚ペアについては行列Aがゼロでないエントリを有しているものとするのであり例えば次のようになるとする:
【数11】
【0186】
どの二人のチーム構成員も重複するシフトを有していないようにしてプロジェクトについての最も生産的なチーム編成を選択するという問題は、MQSSPの一例である。
【0187】
上述の行列A及びWを与えられたらば、処理ステップ102に従って以下のBPCPPPが得られる:
【数12】
【0188】
上述の例の目的関数及び不等式制約の2つの多項式は2次式であるため、この問題のラグランジュ緩和の次数低減形式は、ラグランジュ緩和それ自体と同じである。サイズが5である完全なグラフについての埋め込みが提供される。次のコードスニペットは、2つの部分からなるK
4,4−二部型キメラブロック上の、サイズが5である完全なグラフについての埋め込みを提供するのであり、それは2つの部分からなり、各々のサイズは4であり、第1の部分は0〜3の整数でインデキシングされ、第2の部分は4〜7の整数でインデキシングされている。
【数13】
【0189】
ラグランジュ乗数の下限及び上限はそれぞれ0及び100として設定される。ラグランジュ乗数の初期値として0が割り当てられている。ラグランジュ双対関数の劣勾配のノルムについての許容値は10
−3として設定される。総反復回数及び改善をもたらさない反復回数についての制限値は、それぞれ100及び5とされる。この例で用いられるステップサイズサブルーチンは、次のスクリプトに従ってサイズが0.5の固定ステップサイズをもたらすサブルーチンである:
double ORACLE::StepSize() { return 0.5; }
【0190】
メソッドが開始されると、最良実行可能解及び最良主双対についてのリストは初期化されて空集合とされる。提示される方法のラグランジュ乗数はλ
1=0で初期化され、下記の問題が量子アニーラによって解かれる:
【数14】
得られる最適解はx
1=(1,1,1,1,1)であり、最適値は−33である。x
1は実行可能ではない故に、最良実行可能解のリストは更新されない。もっとも、最良主双対は(x
1,λ
1)に更新される。
【0191】
以下のラグランジュ緩和の劣勾配はx
1=(1,1,1,1,1)についてx
tAx=8である:
【数15】
ステップサイズサブルーチンに関しては、サイズが0.5の固定ステップサイズが用いられるものとする。そして、その次のラグランジュ乗数は次のように計算される:
λ
2=0+0.5*8=4
【0192】
以下のラグランジュ緩和問題は量子アニーラによって解かれる:
【数16】
最適値が−16となる最適解x
2=(1,0,1,1,0)が得られる。最良主双対は(x
2,λ
2)に更新されるも、x
2が実行不能故に最良実行可能解は空集合のままとされる。
【0193】
この解におけるラグランジュ緩和の劣勾配は2である。そして、その次のラグランジュ乗数は次のように計算される:
λ
3=4+0.5*2=5
【0194】
以下のラグランジュ緩和問題は量子アニーラによって解かれる:
【数17】
最適値が−14となる最適解x
3=(1,0,1,1,0)が得られる。最良主双対は(x
3,λ
3)に更新されるも、x
3が実行不能故に最良実行可能解は空集合のままとされる。
【0195】
この解におけるラグランジュ緩和の劣勾配は2である。そして、その次のラグランジュ乗数は次のように計算される:
λ
4=5+0.5*2=6
【0196】
以下のラグランジュ緩和問題は量子アニーラによって解かれる:
【数18】
最適値が−13となる最適解x
4=(1,0,0,1,0)が得られる。x
4が実行可能であるが故に、最良主双対(x
4,λ
4)と共に最良実行可能解も更新される。
【0197】
この現在の解においては、ラグランジュ緩和の劣勾配のノルムは0であり、方法は終了する。最良実行可能解たるx
4=(1,0,0,1,0)及び最良主双対たる(x
4,λ
4)=((1,0,0,1,0),6)が報告される。
【0198】
本願に関していえば、得られた解では、どの二人の同僚も重複するシフトを有さないようにした場合、全てのチームの内、作業員1号及と作業員4号とからなるチームが最も生産的なチームであることになる。
【0199】
本願開示の方法の利点としては、BPCPPPのラグランジュ双対を解くためのシステムの処理が改善することが挙げられる。より正確には、本願開示の方法は、従来技術の方法に比してよりエラーをもたらしづらいのであり、これは相当な利点である。
【0200】
不揮発性コンピュータ可読記憶媒体がさらに開示されていることに留意されたい。不揮発性コンピュータ可読記憶媒体はコンピュータ実行可能命令を格納するために用いられるのであり、該命令は実行されるとデジタルコンピュータにBPCPPPのラグランジュ双対を解くための方法を行わせるのであって該方法は次のステップを含む:BPCPPPを取得するステップと;収束が検出されるまでは反復的に:ラグランジュ乗数のセットを提供し、これらのラグランジュ乗数におけるBPCPPPのラグランジュ緩和を表すUBQPPを提供し、UBQPPを量子アニーラに提供し、量子アニーラから少なくとも1つの対応する解を取得し、少なくとも1つの対応する解を用いて新たなラグランジュ乗数のセットを生成するステップと;収束が検出された後に、対応するBPCPPPのラグランジュ双対の知られている最良の主双対及びBPCPPPの知られている最良の実行可能解の全てを提供するステップ。
【0201】
上述の説明は発明者らによって現在検討されている具体的な実施形態に関連しているが、広義の意味合いにおいては、本発明は説明された要素についての機能的等価物をも含むものであると解されるべきである。
【0202】
項1
2値多項的に制約された多項計画問題 のラグランジュ双対を解くための方法であって、該方法は、
処理装置を用いて:
2値多項的に制約された多項計画問題 を取得するステップと;
収束が検出されるまでは反復的に、
ラグランジュ乗数のセットを提供し、
提供されたラグランジュ乗数の前記セットにおける 前記2値多項的に制約された多項計画問題 のラグランジュ緩和を表す 制約無しの2値2次計画問題 を提供し、
前記制約無しの2値2次計画問題 を2値オプティマイザに提供し、
前記2値オプティマイザから少なくとも1つの対応する解を取得し、
前記少なくとも1つの対応する解を用いて新たなラグランジュ乗数のセットを生成するステップと;
収束後に、対応する 前記2値多項的に制約された多項計画問題 の前記ラグランジュ双対の知られている最良の主双対及び 前記2値多項的に制約された多項計画問題 の知られている最良の実行可能解の全てを提供するステップ
とを行わせることを含む、方法。
【0203】
項2
項1に記載の方法において、前記2値多項的に制約された多項計画問題を取得するステップは、
多項式たる目的関数を表すデータを取得することと、
多項等式制約を表すデータを取得することと、
多項不等式制約を表すデータを取得すること
とを含む、方法。
【0204】
項3
項1〜2のいずれか1つに記載の方法において、前記2値多項的に制約された多項計画問題は、ユーザ、コンピュータ、ソフトウェアパッケージ及びインテリジェントエージェントの少なくとも1つから取得される、方法。
【0205】
項4
項1〜3のいずれか1つに記載の方法において、前記2値多項的に制約された多項計画問題を取得するステップは、ソフトウェアパラメータを初期化すること及びステップサイズサブルーチンを取得することをさらに含む、方法。
【0206】
項5
項4に記載の方法において、前記ソフトウェアパラメータを初期化することは、
前記2値多項的に制約された多項計画問題の一般的ラグランジュ緩和の一般的次数低減形式を、元の変数及び補助変数を用いて前記ラグランジュ乗数でパラメータ化した2値2次関数についてのパラメータ化ファミリとして提供することを含む、方法。
【0207】
項6
項4に記載の方法において、前記ソフトウェアパラメータを初期化することは、
前記2値多項的に制約された多項計画問題の前記一般的ラグランジュ緩和の前記一般的次数低減形式についての一般的埋め込みを提供することと、
解についてのリストを提供するための埋め込みソルバ関数を提供することと、
ラグランジュ乗数について初期値及びデフォルト値の内の1つを提供することと、
収束条件に関して誤差許容値を提供することと、
総反復回数についての制限値及び非改善反復回数についての制限値を表す整数を提供すること
とをも含む、方法。
【0208】
項7
項1に記載の方法において、前記2値多項的に制約された多項計画問題の初期ラグランジュ緩和は初期のラグランジュ乗数のセットを用いて生成される、方法。
【0209】
項8
項1に記載の方法において、前記少なくとも1つの対応する解を用いて前記2値多項的に制約された多項計画問題のラグランジュ双対の劣勾配を生成する、方法。
【0210】
項9
項1に記載の方法において、前記少なくとも1つの対応する解を用いて、前記2値多項的に制約された多項計画問題のラグランジュ双対についての線形再定式化のための少なくとも1つの外側近似切断を生成する、方法。
【0211】
項10
項1〜9のいずれか1つに記載の方法において、前記2値多項的に制約された多項計画問題のラグランジュ双対への対応する解の提供は、前記対応する解をファイルに格納することを含む、方法。
【0212】
項11
デジタルコンピュータであって:
中央処理装置と;
表示装置と;
前記デジタルコンピュータを2値オプティマイザに動作可能に接続するための通信ポートと;
2値多項的に制約された多項計画問題 のラグランジュ双対を解くためのアプリケーションを含むメモリ部であって、該アプリケーションは:
2値多項的に制約された多項計画問題を取得するための命令と;
反復的に、ラグランジュ乗数のセットを提供し、これらのラグランジュ乗数における 前記2値多項的に制約された多項計画問題 のラグランジュ緩和を表す 制約無しの2値2次計画問題 を提供し、前記通信ポートを用いて 前記制約無しの2次計画問題 を前記2値オプティマイザへと提供し;前記通信ポートを介して前記2値オプティマイザから少なくとも1つの対応する解を取得し、前記少なくとも1つの対応する解を用いて収束が検出されるまで新たなラグランジュ乗数のセットを生成するための命令と、
収束が検出された後に、対応する 前記2値多項的に制約された多項計画問題 のラグランジュ双対の知られている最良の主双対及び 前記2値多項的に制約された多項計画問題 の知られている最良の実行可能解の全てを提供するための命令
とを含む、メモリ部と;
前記中央処理装置と前記表示装置と前記通信ポートと前記メモリ部とを相互接続するためのデータバス
とを含む、デジタルコンピュータ。
【0213】
項12
コンピュータ実行可能命令を格納するための不揮発性コンピュータ可読記憶媒体であって、該命令を実行すると、2値多項的に制約された多項計画問題 のラグランジュ双対を解くための方法をデジタルコンピュータに行わせるのであり、該方法は:
2値多項的に制約された多項計画問題を取得するステップと、
収束が検出されるまでは反復的に:
ラグランジュ乗数のセットを提供し、
これらのラグランジュ乗数における 前記2値多項的に制約された多項計画問題 のラグランジュ緩和を表す 制約無しの2値2次計画問題 を提供し、
前記制約無しの2次計画問題 を2値オプティマイザへと提供し、
前記2値オプティマイザから少なくとも1つの対応する解を取得し、
前記少なくとも1つの対応する解を用いて新たなラグランジュ乗数のセットを生成するステップと、
収束が検出された後に、対応する 前記2値多項的に制約された多項計画問題 のラグランジュ双対の知られている最良の主双対及び 前記2値多項的に制約された多項計画問題 の知られている最良の実行可能解の全てを提供するステップ
とを含む、媒体。
【0214】
項13
2値多項的に制約された多項計画問題 のラグランジュ双対を解くための方法であって、該方法は:
2値多項的に制約された多項計画問題 を取得するステップと;
収束が検出されるまでは反復的に、
ラグランジュ乗数のセットを提供し、
提供されたラグランジュ乗数の前記セットにおける 前記2値多項的に制約された多項計画問題 のラグランジュ緩和を表す 制約無しの2値2次計画問題 を提供し、
前記制約無しの2値2次計画問題 を2値オプティマイザに提供し、
前記2値オプティマイザから少なくとも1つの対応する解を取得し、
前記少なくとも1つの対応する解を用いて新たなラグランジュ乗数のセットを生成するステップと;
収束後に、対応する 前記2値多項的に制約された多項計画問題 の前記ラグランジュ双対の知られている最良の主双対及び 前記2値多項的に制約された多項計画問題 の知られている最良の実行可能解の全てを提供するステップ
とを含む、方法。
【0215】
項14
項1〜10及び13のいずれか1つに記載の方法において、前記2値オプティマイザは量子アニーラを含む、方法。
【0216】
項15
項11に記載のデジタルコンピュータにおいて、前記2値オプティマイザは量子アニーラを含む、デジタルコンピュータ。
【0217】
項16
項12に記載の不揮発性コンピュータ可読記憶媒体において、前記2値オプティマイザは量子アニーラを含む、媒体。