(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023152871
(43)【公開日】2023-10-17
(54)【発明の名称】二次形式の最適化
(51)【国際特許分類】
G06N 10/60 20220101AFI20231005BHJP
G06N 99/00 20190101ALI20231005BHJP
【FI】
G06N10/60
G06N99/00 180
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023047843
(22)【出願日】2023-03-24
(31)【優先権主張番号】17/709152
(32)【優先日】2022-03-30
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】ウパデアーエ・サルバギア
(57)【要約】
【課題】 この出願の一実施形態は、二次形式の最適化に関する方法を開示する。
【解決手段】 方法は、最適化問題と該最適化問題に対応する二次形式とを取得し、該二次形式を表すベクトルを特定することを含み得る。当該方法は、各ベクトルに含まれる項の数を示す各ベクトルの次元を設定し、ベクトルの次元に基づいて、且つベクトルの各々に対応する係数に基づいて、単位ベクトルの第1セットを生成することを含み得る。当該方法は、ユニタリ演算を繰り返し実行して、第1セットに含まれるそれぞれの単位ベクトルの各々を、それぞれのインデックス付き量子状態として量子化することを含み得る。当該方法は、それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定し、それぞれのインデックス付き量子状態の各々に対応する最終量子状態に基づいて、最適化問題の1つ以上の許容解を求めることを含み得る。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数の離散変数選択を含む最適化問題を取得し、
前記最適化問題に対応する二次形式を決定し、
前記二次形式を表す複数のベクトルを特定し、
前記複数のベクトルに含まれる各ベクトルの次元を設定し、該次元は、各ベクトルに含まれる項の数を示し、
前記複数のベクトルからの1つ以上のベクトルの前記次元に基づいて、且つ該1つ以上のベクトルの各々に対応する係数に基づいて、単位ベクトルの第1セットを生成し、
1つ以上のユニタリ演算を実行して、前記第1セットに含まれるそれぞれの単位ベクトルの各々を、それぞれのインデックス付き量子状態として量子化し、
前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定し、
前記それぞれのインデックス付き量子状態の各々に対応する前記最終量子状態に基づいて、前記最適化問題の1つ以上の解を求める、
ことを有する方法。
【請求項2】
前記複数のベクトルに含まれるベクトルの前記次元を設定することは、
該ベクトルに含まれる各項の平方を計算し、
各項の前記平方を合計し、
各項の前記平方の前記合計の平方根を計算する、
ことを含む、請求項1に記載の方法。
【請求項3】
前記ベクトルに各々対応する前記係数は係数行列から決定され、特定の係数が、行列ロウと行列カラムとの間の交点を表し、
前記ユニタリ演算は、各行列ロウに対応する第1のユニタリ演算と、各行列カラムに対応する第2のユニタリ演算とを含む、
請求項1に記載の方法。
【請求項4】
前記ユニタリ演算を実行して前記それぞれの単位ベクトルの各々を量子化すること、及び前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定することは、
量子状態インデックスを表す第1の量子レジスタ及び前記単位ベクトルを表す第2の量子レジスタをゼロとして設定し、
前記第1の量子レジスタ及び前記第2の量子レジスタに関する閾値振幅の設定し、
前記閾値振幅を超えるまで、前記第1の量子レジスタに対する第1のユニタリ演算、及び前記第2の量子レジスタに対する第2のユニタリ演算を実行し、ここで、
前記第1のユニタリ演算と前記第2のユニタリ演算は、前記単位ベクトルに対応する前記係数に関係し、且つ
前記第1のユニタリ演算及び前記第2のユニタリ演算を実行することは、前記第1の量子レジスタ及び前記第2の量子レジスタの振幅を増加させ、
前記閾値振幅を超えた後の前記第1の量子レジスタの第1の値及び前記第2の量子レジスタの第2の値に基づいて、最終的な係数を決定する、
ことを有する、請求項1に記載の方法。
【請求項5】
前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定すること、及び前記最適化問題の前記1つ以上の解を求めることは、
前記それぞれのインデックス付き量子状態の各々の1つ以上のコピーを生成し、
生成した前記コピーの各々に対応するランダム量子状態を設定し、
生成した前記コピーの各々に対応する前記ランダム量子状態にアダマール変換を適用し、
前記アダマール変換が前記ランダム量子状態に適用されることに基づいて得られたキュービットを測定し、
前記測定に基づいて、前記得られたキュービットが正でありそうか負でありそうかの見込みを判定し、
前記それぞれのインデックス付き量子状態の各々に対応する前記それぞれの最終量子状態を、前記得られたキュービットが負でありそうとの見込みに応答して-1として設定する、
ことを有する、請求項4に記載の方法。
【請求項6】
前記最適化問題は、ソーシャルメディアネットワーク上のユーザに関するコミュニティ検出問題であり、該コミュニティ検出問題に対する前記解の各々が、前記ソーシャルメディアネットワーク上の1つ以上のユーザグループを含む、請求項1に記載の方法。
【請求項7】
前記最適化問題は、複数のデータポイントが関与する相関クラスタリング問題であり、該相関クラスタリング問題に対する前記解の各々が、前記複数のデータポイントのうちの1つ以上を1つ以上のグループに分けることを含む、請求項1に記載の方法。
【請求項8】
前記最適化問題は、複数のノードと、該複数のノードの各ノードを接続する複数のエッジと、を含むグラフデータセットが関与する最大カット問題であり、該最大カット問題に対する前記解の各々が、第1のノードセットに含まれるノードと第2のノードセットに含まれるノードとの間のエッジの数を最大化するような、第1のノードセット及び第2のノードセットへの前記グラフデータセットの分割を含む、請求項1に記載の方法。
【請求項9】
命令を格納するように構成された1つ以上の非一時的コンピュータ読み取り可能記憶媒体であって、前記命令は、実行されることに応答して、システムに処理を実行させ、該処理は、
複数の離散変数選択を含む最適化問題を取得し、
前記最適化問題に対応する二次形式を決定し、
前記二次形式を表す複数のベクトルを特定し、
前記複数のベクトルに含まれる各ベクトルの次元を設定し、該次元は、各ベクトルに含まれる項の数を示し、
前記複数のベクトルからの1つ以上のベクトルの前記次元に基づいて、且つ該1つ以上のベクトルの各々に対応する係数に基づいて、単位ベクトルの第1セットを生成し、
1つ以上のユニタリ演算を実行して、前記第1セットに含まれるそれぞれの単位ベクトルの各々を、それぞれのインデックス付き量子状態として量子化し、
前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定し、
前記それぞれのインデックス付き量子状態の各々に対応する前記最終量子状態に基づいて、前記最適化問題の1つ以上の解を求める、
ことを有する、1つ以上の非一時的コンピュータ読み取り可能記憶媒体。
【請求項10】
システムであって、
1つ以上のプロセッサと、
命令を格納するように構成された1つ以上の非一時的コンピュータ読み取り可能記憶媒体と、
を有し、
前記命令は、実行されることに応答して、システムに処理を実行させ、該処理は、
複数の離散変数選択を含む最適化問題を取得し、
前記最適化問題に対応する二次形式を決定し、
前記二次形式を表す複数のベクトルを特定し、
前記複数のベクトルに含まれる各ベクトルの次元を設定し、該次元は、各ベクトルに含まれる項の数を示し、
前記複数のベクトルからの1つ以上のベクトルの前記次元に基づいて、且つ該1つ以上のベクトルの各々に対応する係数に基づいて、単位ベクトルの第1セットを生成し、
1つ以上のユニタリ演算を実行して、前記第1セットに含まれるそれぞれの単位ベクトルの各々を、それぞれのインデックス付き量子状態として量子化し、
前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定し、
前記それぞれのインデックス付き量子状態の各々に対応する前記最終量子状態に基づいて、前記最適化問題の1つ以上の解を求める、
ことを有する、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、二次形式の最適化に関する。
【背景技術】
【0002】
最適化問題は、その最適化問題を表す関数について最大値又は最小値を返す入力値を見つけることによって解かれ得る。最適化問題に対する許容解を決めるのに必要な時間が、最適化問題を解くために最適化されなければならない変数の数に応じて指数関数的に増加し得るので、最適化問題を解くことは困難であり得る。
【0003】
二次形式は、多項式の各項が2に等しい次数を持った、最適化問題を表し得る数学的な多項式である。換言すれば、多項式の各項に対応する指数が2なる和を持つ。二次形式の多項式は、多項式の各項が2の次数を持つ限り、任意数の項及び任意数の変数を含むことができる。
【0004】
本開示にて特許請求される事項は、上述のような環境でのみ問題を解決したり動作したりする実施形態に限定されるものではない。むしろ、この背景技術の説明は、本開示にて記載される実施形態が実施され得る技術領域の一例を示すために提供されているに過ぎないものである。
【発明の概要】
【0005】
実施形態の一態様によれば、方法は、最適化問題と該最適化問題に対応する二次形式とを取得し、該二次形式を表すベクトルを特定することを含み得る。当該方法は、各ベクトルに含まれる項の数を示す各ベクトルの次元を設定し、ベクトルの次元に基づいて、且つベクトルの各々に対応する係数に基づいて、単位ベクトルの第1セットを生成することを含み得る。当該方法はまた、ユニタリ演算を繰り返し実行して、第1セットに含まれるそれぞれの単位ベクトルの各々を、それぞれのインデックス付き量子状態として量子化することを含み得る。当該方法は更に、それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定し、それぞれのインデックス付き量子状態の各々に対応する最終量子状態に基づいて、最適化問題の1つ以上の許容解を求めることを含み得る。
【0006】
実施形態の目的及び利点は、少なくとも請求項中に具体的に指し示される要素、機構及び組み合わせによって実現・達成されることになる。理解されるべきことには、以上の概略説明及び以下の詳細説明はどちらも、例として与えられ、説明的なものであり、特許請求される発明を限定するものではない。
【図面の簡単な説明】
【0007】
以下の図を含む添付図面を通じて実施形態例を更に具体的且つ詳細に記載・説明する。
【
図1】本開示に従った、二次形式を持つ最適化問題の解を求めるためのシステムの一実施形態の図である。
【
図2】本開示に従った、二次形式を持つ最適化問題の解を求める方法の一例のフローチャートである。
【
図3】本開示に従った、単位ベクトルを量子化して量子状態を決定する方法の一例のフローチャートである。
【
図4】本開示に従った量子丸めの方法の一例のフローチャートである。
【発明を実施するための形態】
【0008】
二次形式(quadratic form)は、グラフ理論、クラスタリング、機械学習、又は他の技術分野に関連する例えば二次制約なし二値最適化問題などの様々な異なる最適化問題を、例えば-1又は1の状態などの離散的な選択に制約された変数を用いて表すために使用され得る。しかしながら、特定の二次形式に関連する変数が離散的な選択に制約され得るため、特定の二次形式に対する最適化された解を特定することは解くのが困難な計算問題であり得る。
【0009】
n個の変数を含む一般的な二次形式は、次の関数Q:
【数1】
として表されることができ、変数x
nの各々が、対応する係数a
nnに従って関係し合う。一般的な二次形式は、係数と変数とを関係付ける総和:
【数2】
として表され得る。二次形式の各項が、2つの変数に関係する係数に従って変わるので、一般的な二次形式は更に又は代わりに行列Aによって表されてもよく、係数a
ijが行列の行と列の間の交点によって表される。
【0010】
特定の二次形式の許容解を決定するために、凸緩和アプローチを用いて特定の二次形式を近似し得る。例えば、二次形式の行列を、非凸制約を用いて、
【数3】
と記述することができ、ここで、X=xx
T制約は、Xが半正定値(すなわち、X≧0)であることを示すことによって、より解きやすい制約に緩和され得る二次形式の行列に関する非凸制約である。従って、二次形式は、
【数4】
と書き換えられ得る。
【0011】
例えばXなどの半正定値行列は、X
ij=<v
i,v
j>のようにベクトルの集合で表されることができ、制約X
ii=1はベクトルの集合に含まれるベクトルが<v
i,v
j>=||v
i||
2=1のように単位ベクトルであることを示す。二次形式は、次のベクトル形式:
【数5】
として表されてもよい。しかしながら、式(5)で記述されるベクトル形式を解いて、半定値計画問題と呼ばれるプロセスを介して二次形式の許容解を求めることは、依然として計算集約的であって大量の計算リソース及び/又は時間を必要とし得る。何故なら、ベクトルの計算は複雑な行列分解プロセスを伴い得るからである。
【0012】
本開示は、とりわけ、二次形式を量子化して、該二次形式に対応するベクトルが量子コンピューティングシステムに関連する量子状態によって表され得るようにするシステム及び方法に関係し、二次形式が関連付けられた最適化問題に対する1つ以上の許容解が、本開示に従った量子コンピューティングシステムによって求められ得る。最適化問題の解を求めることは、最適化問題の変数の値を設定することを伴い得る。しかしながら、変数が離散的な選択に制約されるので、最適化問題の解を最適化することはコンピュータシステムにとって困難で時間のかかるものであり得る。
【0013】
本開示に従った二次形式の最適化は、二次形式に対応する許容解を決定及び最適化する既存のプロセスに対する様々な改善を提供し得る。例えば、本開示に従った二次形式の最適化は、例えば半定値計画問題又は他の凸緩和アプローチなどの既存の方法よりもメモリ効率が良くなり得る。加えて、あるいは代わりに、本開示に従った二次形式の最適化は、より複雑な二次形式に対応するいっそう大きい行列に対して、よりいっそう適用可能となり、且つ/或いは、特定の二次形式の許容解を求めるのに要する時間を短縮し得る。その結果、本開示に従った二次形式を最適化するシステム及び方法は、二次形式が関与する問題を実装し及び/又は解くように構成されたコンピュータシステムの動作を向上させ得る。
【0014】
本開示の実施形態を、添付の図面を参照して説明する。
【0015】
図1は、本開示に従った、二次形式110を持つ最適化問題に対する最適化解145を決定するためのコンピュータシステム100の一実施形態例の図である。例えば、最適化問題は、ソーシャルネットワークのユーザに関するコミュニティ検出、最大カット問題、データマイニングのための相関クラスタリング問題、又は最適化問題への1つ以上の入力が最適化問題への出力に影響を及ぼすように調整される任意の他のタイプの最適化問題に関係し得る。二次形式110は、1つ以上のベクトルを含む集合(セット)によって表され得る。二次形式110及び/又は対応するベクトルのセットがベクトルモジュール120によって取得され、二次形式110に基づいて単位ベクトル125のセットが生成され得る。
【0016】
一部の実施形態において、システム100は、ベクトルモジュール120、量子モジュール130、及び/又は最適化モジュール140を含み得る。例えば、ベクトルモジュール120、量子モジュール130、及び/又は最適化モジュール140(“コンピューティングモジュール”と総称する)を含むシステム100の要素は、コンピューティングシステムが1つ以上の処理を実行することを可能にするように構成されたコード及びルーチンを含み得る。加えて、あるいは代わりに、コンピューティングモジュールは、プロセッサ、(例えば、1つ以上の処理の実行を遂行又は制御するための)マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、又は特定用途向け集積回路(ASIC)を含むハードウェアを用いて実装され得る。一部の他の例において、コンピューティングモジュールは、ハードウェアとソフトウェアとの組み合わせを用いて実装され得る。本開示において、コンピューティングモジュールによって実行されるとして説明される処理は、コンピューティングモジュールが1つ以上の対応するシステムに実行を指示してもよい処理を含み得る。コンピューティングモジュールは、更に詳細に後述するように、二次形式110、単位ベクトル125、量子状態135、及び/又は最適化解145に関する一連の処理を実行するように構成され得る。
【0017】
ベクトルモジュール120は、二次形式110に関連付けられたベクトルに基づいて単位ベクトルを生成及び更新するように構成され得る。一部の実施形態において、ベクトルモジュール120は、混合法と呼ぶ半定値計画問題緩和アプローチを用いて、ベクトルの各々の次元を指定することができ、次元はベクトルの各々に含まれる項の数を示し、それにより、セットに含まれる各ベクトルが同じ次元を持つとともに、それに対応して同じ数の項を持つようにすることができ、セットに含まれる各ベクトルが同じ次元(すなわち、単位長さ)を含むので、ベクトルのセットは単位ベクトル125のセットと見なされ得る。特定のベクトルの次元は、その特定のベクトルに含まれる個々の項各々を平方し、平方した項を合計することによって決定され得る。その合計の平方根が、その特定のベクトルの次元を示し得る。これらの及び他の実施形態において、当該混合法は、次の数学的関係:
【数6】
に従って単位ベクトルのセットを更新することを含むことができ、v
j
(t)は単位ベクトル125のセットを表し、A
ijは単位ベクトルのセットに対応する係数に対応する行列エントリを表し、v
i
(t+1)は、式(6)に従って単位ベクトルのセットを合計した後の、単位ベクトル125の第1の更新されたセットを表す。式(6)が繰り返し実行されて、単位ベクトル125の第2の、第3の、第4の、又は任意の他の番号の更新されたセットが決定され得る。一部の状況において、式(6)の実行は、単位ベクトル125のセットに含まれるベクトルとは異なる次元を持つベクトルをもたらしてもよく、式(6)で説明される合計から得られるベクトルが正規化されて、単位ベクトル125の第1の更新されたセットを生成し得る。一部の実施形態において、特定のベクトルの正規化は、該特定のベクトルを、該特定のベクトルの上述の次元によって示され得るものである該特定のベクトルの長さで割ることを含み得る。
【0018】
量子状態はヒルベルト空間における単位長さのベクトルに対応し得るので、単位ベクトル125のベクトル空間に関連する内積を保存しながらヒルベルト空間の線形変換を生じさせる1つ以上のユニタリ演算に従って量子状態135を生成するために、ベクトルモジュール120によって決定された単位ベクトル125が量子化され得る。一部の実施形態において、多数の量子レジスタがゼロ状態|0>で初期化され得る。ベクトル係数行列Aの各ロウ(行)及び/又は各カラム(列)に対応するユニタリ演算U
i及び/又はV
jが、次の関係:
【数7】
に従って量子レジスタに適用され得る。単位ベクトルの各々が他の単位ベクトルにマッピングされ得るように、これらユニタリ演算が、量子状態が対応するベクトルの各々の長さを保持するように正規化係数まで繰り返し実行され得る。従って、量子状態の各々もユニタリ演算によって他の量子状態にマッピングされ得る。一部の実施形態において、式(7)及び(8)で上述した合計に従ってユニタリ演算を正規化係数まで繰り返し実行することで、次の形式:
【数8】
の、各インデックスv
io
(0)の初期ベクトルに関連した、最初のインデックスi
oから最後のインデックスi
Tまでの範囲の各インデックスに対応する量子状態135を規定することができ、係数:
【数9】
などは、T番目の量子レジスタに対応するT回目のイテレーションまでの、初期ベクトルv
io
(0)の連続した各イテレーションに対応する振幅を示す。
【0019】
量子状態135が最適化モジュール140によって取得されて、例えば最適化解145などの、二次形式110に対する1つ以上の許容解を示す最終量子状態を決定し得る。一部の実施形態において、第1の量子レジスタが0なる結果を持つ確率を高めるために、式(9)で表される係数に対応する振幅が閾値振幅まで増幅され得る。換言すれば、第1の量子レジスタは、より大きい振幅で|0>になりやすくなる。振幅増幅プロセスに続いて、式(9)の表現で表された量子状態135が、係数:
【数10】
が特定のインデックスiについての単一の係数α
ijとして一般化される次式(10):
【数11】
として単純化され得る。
【0020】
加えて、あるいは代わりに、量子丸めプロセスを用いて最終量子状態割り当てを決定してもよい。量子丸めプロセスは、インデックス付き量子状態|v>の各々に対応する多数(例えば、10個、20個、30個、50個、100個、又は任意の他の個数)のランダム量子状態|λ
k>を作り出すことを含み得る。これらランダム量子状態の各々にアダマール変換を適用することは、結果として、次の値:
【数12】
を持つ内積を含み得るキュービット|ψ
k>を生成し得る。
【0021】
結果として得られたキュービットを測定することで、0又は1の結果を生じさせることができ、1なる結果は、ベクトルvとランダム量子状態λkとの内積が負である確率の方が、ベクトルとランダム量子状態との内積が正である確率よりも高いことを指し示す。逆に、0なる結果は、ベクトルとランダム量子状態との内積が正である確率の方が、内積が負である確率よりも高いことを指し示す。結果として得られたキュービット及びそれに関連する内積が正又は負である確率の測定に基づいて、二次形式に対応する最終量子状態が設定され得る。例えば、結果として得られたキュービットが1であるとの測定結果に応答して、特定の最終量子状態に-1なる値を割り当てることができ、結果として得られたキュービットが0であるとの測定結果に応答して、特定の最終量子状態に1なる値を割り当てることができる。
【0022】
これらの及び他の実施形態において、最終量子状態は、二次形式110の凸緩和に関連する最適化問題の許容解を表し得る。例えば、最終量子状態に割り当てられた値は、最終量子状態の値が二次形式110の元の離散形式における変数の値として設定され得る正の最適化解145を表し得る。
【0023】
例えば、特定の最適化問題は、ソーシャルメディアネットワーク上のユーザに関係するコミュニティ検出問題とすることができ、最適化解145は、ソーシャルメディアネットワーク内で特定された1つ以上のユーザグループを表し得る。ソーシャルメディアネットワークは、ソーシャルメディアネットワークの特定のユーザと複数の他ユーザとの間に様々な接続を持つ多数のユーザを含むことができ、ソーシャルメディアネットワーク内の特定のグループを特定することは、多数のユーザ及びユーザ間の接続のために複雑且つ困難であり得る。二次形式110を含む最適化問題としてソーシャルメディアネットワークをモデル化することは、ソーシャルメディアネットワークの1つ以上の検出されたユーザグループを含む1つ以上の最適化解145の決定を容易にし得る。
【0024】
他の一例として、特定の最適化問題は、多数のデータポイントが関与する相関クラスタリング問題とし得る。データポイント間の類似性に従ってそれらデータポイントのうち1つ以上をグループ化し得るが、データポイントのそのようなグループ化は、グループ化すべき多数のデータポイントによって複雑になり得る。この例では、データポイントを二次形式110として表すことができ、相関クラスタリング問題に対する最適化解145のうち1つ以上は、データポイントを1つ以上のグループに分けることを含み得る。
【0025】
他の一例として、特定の最適化問題は、複数のノードと、該複数のノードのうち1つ以上をグラフデータセット内の他ノードに接続する複数のエッジと、を含むグラフデータセットが関与する最大カット問題とし得る。最大カット問題は、第1のノードセットに含まれるノードと第2のノードセットに含まれるノードとの間のエッジの数が可能な限り多くなるような単一の“カット”を用いて、グラフデータセットを第1のノードセットと第2のノードセットとに分けることを含み得る。最適化解145は、グラフデータセットの特定のカット、すなわち、特定の第1セットと特定の第2セットとの間でノードを接続するエッジを可能な限り多く含む特定の第1のノードセットと特定の第2のノードセットとにグラフデータセットを分離する特定のカットを示す。
【0026】
本開示の範囲を逸脱することなく、システム100に対して変更、追加、又は省略が為され得る。例えば、記載された方式での異なる要素の指定は、ここに記述される概念を説明する助けとすることを意図しており、限定するものではない。例えば、一部の実施形態において、ベクトルモジュール120、量子モジュール130、及び最適化モジュール140は、ここに記載される概念を説明する助けとなるように記述される特定の方法で描写されているが、このような描写は限定することを意図していない。また、システム100は、任意の数の他の要素を含んでもよいし、記載されたもの以外のシステム又は状況で実装されてもよい。
【0027】
図2は、本開示に従った、二次形式を持つ最適化問題の解を求める方法200の一例のフローチャートである。方法200は、任意の好適なシステム、装置、又はデバイスによって実行され得る。例えば、ベクトルモジュール120、量子モジュール130、及び最適化モジュール140が、方法200に関連する1つ以上の処理を実行し得る。離散的なブロックで示されるが、方法200のブロックのうち1つ以上に関連するステップ及び処理が、特定の実装に応じて、更なるブロックへと分割されたり、より少ないブロックへと結合されたり、除去されたりしてもよい。
【0028】
方法200はブロック202で開始することができ、複数の離散変数選択を含む最適化問題が取得される。最適化問題は、変数の各々への入力が最適化問題に関する特定の出力に影響を及ぼす複数の変数を含み得る。例えば、最適化問題は、前述したような、ソーシャルメディアネットワークに関係するコミュニティ検出問題、グラフデータセットに関係する最大カット問題、若しくはデータポイントの集合に関係する相関クラスタリング問題、又は任意の他のタイプの最適化問題とし得る。
【0029】
ブロック204にて、最適化問題に対応する二次形式が取得される。最適化問題は、入力に対応する異なる値が問題の結果の変化に影響を及ぼし得る複数の入力を含む問題を含み得る。最適化問題は、1つ以上の係数に基づいて互いに関係し合う様々な変数を含み得る二次形式によって表され得る。一部の実施形態において、二次形式は、当該二次形式に含まれる変数の各々が-1又は1の値を含み得る離散的な二次形式とし得る。
【0030】
ブロック206にて、二次形式を表すベクトルが特定され得る。一部の実施形態において、二次形式は、係数の行列、及び式(1)-(3)に関連して上述した係数の行列に対応する1つ以上のベクトルによって表され得る。
【0031】
ブロック208にて、各ベクトルの次元を設定することができ、次元は各ベクトルに含まれる項の数を示す。次元は、各ベクトルが同じ次元を含むように設定され得る。
【0032】
ブロック210にて、次元とベクトルの各々に対応する係数とに基づいて単位ベクトルが生成され得る。各ベクトルが同じ次元を含むとき、各ベクトルが同じ数の項を含むので、次元が設定された後に、ベクトルは、それらの対応する係数に従った異なる振幅を持つ単位ベクトルとして扱われ得る。
【0033】
ブロック212にて、単位ベクトルが異なる量子状態を表すように単位ベクトルを量子化するために、1つ以上のユニタリ演算が実行され得る。ユニタリ演算には、式(7)及び(8)に関連して上述したように、単位ベクトルの係数を表す行列Aのロウ及び/又はカラムに基づく単位ベクトルの線形変換を含み得る。一部の実施形態において、単位ベクトルを量子化することは、
図3の方法300に関連して上述したような振幅増幅プロセスによって容易にされ得る。
【0034】
ブロック214にて、量子化された単位ベクトルに基づいて最終量子状態が設定され得る。一部の実施形態において、最終量子状態を設定することは、
図3の方法300に関連して上述したような振幅増幅プロセスによって容易にされ得る。加えて、あるいは代わりに、最終量子状態を設定することは、
図4の方法400に関連して上述したような量子丸めプロセスによって容易にされ得る。
【0035】
ブロック216にて、それぞれのインデックス付き量子状態の各々に対応する最終量子状態に基づいて最適化問題の解が決定され得る。最終量子状態は、
図1の最適化解145に関連して説明したように、最適化問題の許容解を表す二次形式の可変入力に対応し得る。
【0036】
開示の範囲を逸脱することなく、方法200に対して変更、追加、又は省略が為され得る。例えば、記載された方式での異なる要素の指定は、ここに記述される概念を説明する助けとすることを意図しており、限定するものではない。また、方法200は、任意の数の他の要素を含んでもよいし、記載されたもの以外のシステム又は状況で実装されてもよい。
【0037】
図3は、本開示に従った、単位ベクトルを量子化して量子状態を決定する方法300の一例のフローチャートである。方法300は、任意の好適なシステム、装置、又はデバイスによって実行され得る。例えば、ベクトルモジュール120、量子モジュール130、及び最適化モジュール140が、方法300に関連する1つ以上の処理を実行し得る。離散的なブロックで示されるが、方法300のブロックのうち1つ以上に関連するステップ及び処理が、特定の実装に応じて、更なるブロックへと分割されたり、より少ないブロックへと結合されたり、除去されたりしてもよい。
【0038】
方法300はブロック302で開始することができ、第1の量子レジスタ及び第2の量子レジスタが各々、ゼロなる初期値を含むように設定される。
【0039】
ブロック304にて、量子レジスタに関する閾値振幅が設定され得る。閾値振幅を設定することは、後述するように、量子レジスタに対してユニタリ演算を実行することを容易にすることができ、第1の量子レジスタ及び第2の量子レジスタの振幅が閾値振幅を超えて増加されることで、第1の量子レジスタを測定することに応答して0なる値を返す確率が高くなる。
【0040】
ブロック306にて、閾値振幅に達するまで、量子レジスタに対してユニタリ演算が繰り返し実行され得る。一部の実施形態において、第1の量子レジスタに対して第1のユニタリ演算を実行することができ、第2の量子レジスタに対して第2のユニタリ演算を実行することができ、第1のユニタリ演算及び第2のユニタリ演算は、単位ベクトルに対応する係数に関係する。例えば、第1のユニタリ演算は、係数を表す行列のロウに対応することができ、第2のユニタリ演算は、係数を表す行列のカラムに対応することができ、その逆もまた然りである。第1のユニタリ演算及び第2のユニタリ演算を実行することは、
図1に関連して式(7)-(9)に関して説明したように、それぞれ、第1の量子レジスタ(例えば、第1の振幅値まで)及び第2の量子レジスタ(例えば、第2の振幅値まで)の振幅を増加させ得る。
【0041】
ブロック308にて、閾値振幅を超えた後の第1の量子レジスタの第1の振幅値及び第2の量子レジスタの第2の振幅値に基づいて、最終的な係数が決定され得る。一部の実施形態において、最終的な係数を決定することは、
図1に関連して上述した式(10)に従って容易にされ得る。
【0042】
開示の範囲を逸脱することなく、方法300に対して変更、追加、又は省略が為され得る。例えば、記載された方式での異なる要素の指定は、ここに記述される概念を説明する助けとすることを意図しており、限定するものではない。また、方法300は、任意の数の他の要素を含んでもよいし、記載されたもの以外のシステム又は状況で実装されてもよい。
【0043】
図4は、本開示に従った量子丸めの方法400の一例のフローチャートである。方法400は、任意の好適なシステム、装置、又はデバイスによって実行され得る。例えば、ベクトルモジュール120、量子モジュール130、及び最適化モジュール140が、方法400に関連する1つ以上の処理を実行し得る。離散的なブロックで示されるが、方法400のブロックのうち1つ以上に関連するステップ及び処理が、特定の実装に応じて、更なるブロックへと分割されたり、より少ないブロックへと結合されたり、除去されたりしてもよい。
【0044】
方法400はブロック402で開始することができ、インデックス付き量子状態の各々のコピーが生成される。量子コンピュータシステムは確率的に動作するので、各インデックス付き量子状態の複数のコピーは、ブロック410に関連して後述するように、結果として得られるキュービットが正である可能性が高いのか負である可能性が高いのかの、より正確な判定を支援し得る。
【0045】
ブロック404にて、生成された各コピーに対してランダム量子状態|λk>が設定され得る。
【0046】
ブロック406にて、
図1に関連して説明した式(11)に従って、各ランダム量子状態にアダマール変換を適用して、結果のキュービット|ψ
k>を生成し得る。
【0047】
ブロック408にて、アダマール変換によって生成された、結果として得られたキュービットを測定することができ、ブロック410にて、結果として得られたキュービットが正でありそうか負でありそうかが判定され得る。一部の実施形態において、結果として得られたキュービットを測定することは、1又は0のバイナリ出力を返すことができ、1なる結果は、ベクトルvとランダム量子状態λ
kとの間の内積が負である確率の方が、内積が正である確率よりも高いことを指し示す。0なる結果は、内積が正である確率の方が、内積が負である確率よりも高そうであるという、逆のことを指し示し得る。結果として得られたキュービットが正でありそうか負でありそうかの尤度はアルゴリズム的に、次の関係:
【数13】
として表されることができ、ベクトルとランダム量子状態との間の内積<v,λ
k>が負である確率Prが、ベクトルとランダム量子状態との間の内積が正である確率より高いか低いかは、結果として得られたキュービットの測定結果に依存する。
【0048】
ブロック412にて、結果として得られたキュービットが正である可能性が高いか負である可能性が高いかに基づいて、最終量子状態が設定され得る。一部の実施形態において、結果として得られたキュービットについての1なる測定結果は、ベクトルとランダム量子状態との間の内積が正よりも負である可能性が高いことを指し示すものであり、最終量子状態を-1なる値に設定すべきであることを示すことができ、その逆もまた然りである。これらの及び他の実施形態において、結果として得られたキュービットについての0なる測定結果は、ベクトルとランダム量子状態との間の内積が負よりも正である可能性が高いことを指し示すものであり、最終量子状態を1なる値に設定すべきであることを示すことができ、その逆もまた然りである。
【0049】
開示の範囲を逸脱することなく、方法400に対して変更、追加、又は省略が為され得る。例えば、記載された方式での異なる要素の指定は、ここに記述される概念を説明する助けとすることを意図しており、限定するものではない。また、方法400は、任意の数の他の要素を含んでもよいし、記載されたもの以外のシステム又は状況で実装されてもよい。
【0050】
図5は、本開示で説明される少なくとも1つの実施形態に従ったコンピューティングシステムの一例である。コンピューティングシステム500は、プロセッサ510、メモリ520、データストレージ530、及び/又は通信ユニット540を含むことができ、これらが全て通信可能に結合され得る。
図1のシステム100のいずれか又は全てが、コンピューティングシステム500と一致するコンピューティングシステムとして実装され得る。
【0051】
一般に、プロセッサ510は、様々なコンピュータハードウェア若しくはソフトウェアモジュールを含んだ、如何なる好適な専用又は汎用のコンピュータ、コンピューティングエンティティ又は処理装置を含んでいてもよく、何らかの適用可能なコンピュータ読み取り可能媒体に格納された命令を実行するように構成され得る。例えば、プロセッサ510は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラム命令を解釈及び/又は実行し且つ/或いはデータを処理するように構成されたその他のデジタル回路若しくはアナログ回路を含み得る。
【0052】
図5では単一のプロセッサとして示されているが、理解されることには、プロセッサ510は、本開示に記載された任意数の処理を個々あるいは集合的に実行するように構成された、任意数のネットワーク又は物理的位置にわたって分散された、任意数のプロセッサを含んでいてもよい。一部の実施形態において、プロセッサ510は、メモリ520、データストレージ530、又はメモリ520とデータストレージ530に格納されたプログラム命令及び/又はデータについて、プログラム命令を解釈及び/又は実行し且つ/或いはデータを処理し得る。一部の実施形態において、プロセッサ510は、データストレージ530からプログラム命令をフェッチして該プログラム命令をメモリ520にロードし得る。
【0053】
例えばコンピュータシステム500に
図2の方法200、
図3の方法300、又は
図4の方法400の処理を実行させる命令など、プログラム命令がメモリ520にロードされた後、プロセッサ510が該プログラム命令を実行し得る。例えば、コンピューティングシステム500は、プログラム命令を実行して、最適化問題に対応する二次形式を取得し、該二次形式を表すベクトルを特定し、各ベクトルの次元を設定し、単位ベクトルを生成し、ユニタリ演算を実行して単位ベクトルを量子化し、量子化された単位ベクトルに基づいて最終量子状態を設定し、及び/又は最終量子状態に基づいて最適化問題の解を求め得る。
【0054】
メモリ520及びデータストレージ530は、コンピュータ実行可能命令又はデータ構造を格納するためのコンピュータ読み取り可能記憶媒体又は1つ以上のコンピュータ読み取り可能記憶媒体を含み得る。そのようなコンピュータ読み取り可能記憶媒体は、例えばプロセッサ510などの汎用又は専用のコンピュータによってアクセスされ得る如何なる入手可能な媒体ともし得る。例えば、メモリ520及び/又はデータストレージ530は、
図1の二次形式110、単位ベクトル125、量子状態135、又は最適化解145を含み得る。一部の実施形態において、コンピューティングシステム500は、メモリ520及びデータストレージ530のいずれかを含んだり含まなかったりし得る。
【0055】
限定ではなく例として、そのようなコンピュータ読み取り可能記憶媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去・プログラム可能型読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD-ROM)若しくはその他の光ディスクストレージ、磁気ディスクストレージ若しくはその他の磁気記憶装置、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)、又は、コンピュータ実行可能命令の形態の所望のプログラムコード若しくはデータ構造を格納するために使用されることができ且つ汎用若しくは専用のコンピュータによってアクセスされることが可能なその他の記憶媒体を含む、有形の又は非一時的なコンピュータ読み取り可能記憶媒体を含み得る。以上のものの組み合わせもコンピュータ読み取り可能記憶媒体の範囲に含まれ得る。コンピュータ実行可能命令は、例えば、特定の処理又は処理群をプロセッサ510に実行させるように構成された命令及びデータを含み得る。
【0056】
通信ユニット540は、ネットワークを介して情報を送信又は受信するように構成された任意のコンポーネント、装置、システム、又はそれらの組み合わせを含み得る。一部の実施形態において、通信ユニット540は、他の場所若しくは同じ場所にある他のデバイスと通信することができ、あるいは同じシステム内の他のコンポーネントとも通信することができる。例えば、通信ユニット540は、モデム、ネットワークカード(無線若しくは有線)、光通信デバイス、赤外線通信デバイス、無線通信デバイス(例えばアンテナなど)、及び/又はチップセット(例えばBluetooth(登録商標)デバイス、802.6デバイス(例えば、メトロポリタンエリアネットワーク(MAN))、WiFi(登録商標)デバイス、WiMax(登録商標)デバイス、セルラー通信設備、又はその他など)、及び/又はこれらに類するものを含み得る。通信ユニット540は、本開示に記載されたネットワーク及び/又は任意の他の装置若しくはシステムとデータを交換することを可能にし得る。例えば、通信ユニット540は、システム500が例えばコンピューティング装置及び/又は他のネットワークなどの他のシステムと通信することを可能にし得る。
【0057】
当業者が本開示を検討した後に認識し得ることには、本開示の範囲から逸脱することなく、システム500に対して変更、追加、又は省略が為され得る。例えば、システム500は、明示的に図示及び説明されたものよりも多数又は少数のコンポーネントを含み得る。
【0058】
上述の開示は、本開示を開示された正確な形態又は特定の使用分野に限定することを意図したものではない。従って、企図されることには、ここに明示的に説明又は暗示されているかを問わず、本開示に照らして本開示に対する様々な代替実施形態及び/又は変更が可能である。このように本開示の実施形態を説明してきたが、認識され得ることには、本開示の範囲から逸脱することなく、形態及び詳細において変形が為され得る。従って、本開示は請求項によってのみ限定される。
【0059】
一部の実施形態において、ここに記載された様々なコンポーネント、モジュール、エンジン及びサービスは、コンピュータシステム上で(例えば、別々のスレッドとして)実行される複数のオブジェクト又はプロセスとして実装され得る。ここに記載されたシステム及びプロセスの一部は概して、(汎用ハードウェアに格納され且つ/或いはそれによって実行される)ソフトウェアにて実装されるとして記述されているが、特有のハードウェア実装、又はソフトウェアと特有のハードウェアとの組み合わせ実装も可能であり且つ企図される。
【0060】
本開示及び特に添付の請求項(例えば、添付の請求項の本体)で使用される用語は概して、“オープン用語”として意図している(例えば、用語“・・・を含んでいる”は、“・・・を含んでいるが、それに限定されない”として解釈されるべきである。
【0061】
また、導入されるクレーム記載の具体数が意図される場合、そのような意図は、請求項中に明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しない。例えば、理解の助けとして、以下に添付される請求項は、クレーム記載を導入するために“少なくとも1つの”及び“1つ以上の”という前置きフレーズの使用を含むことがある。しかしながら、このようなフレーズの使用は、例え同じクレームが“少なくとも1つの”及び“1つ以上の”という前置きフレーズと“a”又は“an”などの不定冠詞とを含んでいるときであっても、不定冠詞“a”又は“an”によるクレーム記載の導入が、そのように導入されたクレーム記載を含む何れか特定の請求項を、唯一のそのような記載を含む実施形態に限定することを意味するようには、解釈されるべきでない(例えば、“a”及び/又は“an”は、“少なくとも1つの”又は“1つ以上の”を意味するように解釈されるべきである)。同じことが、クレーム記載を導入するために使用される定冠詞の使用にもあてはまる。
【0062】
さらに、導入されるクレーム記載の具体数が明示的に記載されている場合であっても、当業者が認識するように、そのような記載は、少なくとも記載の数を意味するように解釈されるべきである(例えば、他の修飾語句のない“2つのもの”なるそのままの記載は、少なくとも2つのもの、又は2つ以上のものを意味する)。また、“A、B、及びCなどのうちの少なくとも1つ”又は“A、B、及びCなどのうちの1つ以上”に似た伝統的表現が使用されるものにおいては、一般に、そのような構文は、Aのみ、Bのみ、Cのみ、AとBを共に、AとCを共に、BとCを共に、又は、AとBとCを共に、などを含むことを意図している。
【0063】
また、2つ以上の別の用語に先立つ離接的な用語又はフレーズは、実施形態の説明、特許請求の範囲、又は図面の中の何れであろうと、それらの用語のうちの1つ、それらの用語のうちの何れか、又はそれらの用語の双方を含む可能性を意図しているように理解されるべきである。例えば、フレーズ“A又はB”は、“A”若しくは“B”又は“A及びB”の可能性を含むように理解されるべきである。
【0064】
本開示にて記載された全ての例及び条件付きの言葉は、本開示と技術を前進させるために本願の発明者によって与えられる概念とを読者が理解することを支援するための教育的な目的を意図したものであり、そのように具体的に記載した例及び条件への限定ではないと解釈されるべきである。本開示の実施形態を詳細に説明したが、これらの実施形態には、本開示の精神及び範囲を逸脱することなく、様々な変形、代用及び改変が為され得る。
【0065】
以上の説明に関し、更に以下の付記を開示する。
(付記1) 複数の離散変数選択を含む最適化問題を取得し、
前記最適化問題に対応する二次形式を決定し、
前記二次形式を表す複数のベクトルを特定し、
前記複数のベクトルに含まれる各ベクトルの次元を設定し、該次元は、各ベクトルに含まれる項の数を示し、
前記複数のベクトルからの1つ以上のベクトルの前記次元に基づいて、且つ該1つ以上のベクトルの各々に対応する係数に基づいて、単位ベクトルの第1セットを生成し、
1つ以上のユニタリ演算を実行して、前記第1セットに含まれるそれぞれの単位ベクトルの各々を、それぞれのインデックス付き量子状態として量子化し、
前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定し、
前記それぞれのインデックス付き量子状態の各々に対応する前記最終量子状態に基づいて、前記最適化問題の1つ以上の解を求める、
ことを有する方法。
(付記2) 前記複数のベクトルに含まれるベクトルの前記次元を設定することは、
該ベクトルに含まれる各項の平方を計算し、
各項の前記平方を合計し、
各項の前記平方の前記合計の平方根を計算する、
ことを含む、付記1に記載の方法。
(付記3) 前記ベクトルに各々対応する前記係数は係数行列から決定され、特定の係数が、行列ロウと行列カラムとの間の交点を表し、
前記ユニタリ演算は、各行列ロウに対応する第1のユニタリ演算と、各行列カラムに対応する第2のユニタリ演算とを含む、
付記1に記載の方法。
(付記4) 前記ユニタリ演算を実行して前記それぞれの単位ベクトルの各々を量子化すること、及び前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定することは、
量子状態インデックスを表す第1の量子レジスタ及び前記単位ベクトルを表す第2の量子レジスタをゼロとして設定し、
前記第1の量子レジスタ及び前記第2の量子レジスタに関する閾値振幅の設定し、
前記閾値振幅を超えるまで、前記第1の量子レジスタに対する第1のユニタリ演算、及び前記第2の量子レジスタに対する第2のユニタリ演算を実行し、ここで、
前記第1のユニタリ演算と前記第2のユニタリ演算は、前記単位ベクトルに対応する前記係数に関係し、且つ
前記第1のユニタリ演算及び前記第2のユニタリ演算を実行することは、前記第1の量子レジスタ及び前記第2の量子レジスタの振幅を増加させ、
前記閾値振幅を超えた後の前記第1の量子レジスタの第1の値及び前記第2の量子レジスタの第2の値に基づいて、最終的な係数を決定する、
ことを有する、付記1に記載の方法。
(付記5) 前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定すること、及び前記最適化問題の前記1つ以上の解を求めることは、
前記それぞれのインデックス付き量子状態の各々の1つ以上のコピーを生成し、
生成した前記コピーの各々に対応するランダム量子状態を設定し、
生成した前記コピーの各々に対応する前記ランダム量子状態にアダマール変換を適用し、
前記アダマール変換が前記ランダム量子状態に適用されることに基づいて得られたキュービットを測定し、
前記測定に基づいて、前記得られたキュービットが正でありそうか負でありそうかの見込みを判定し、
前記それぞれのインデックス付き量子状態の各々に対応する前記それぞれの最終量子状態を、前記得られたキュービットが負でありそうとの見込みに応答して-1として設定する、
ことを有する、付記4に記載の方法。
(付記6) 前記最適化問題は、ソーシャルメディアネットワーク上のユーザに関するコミュニティ検出問題であり、該コミュニティ検出問題に対する前記解の各々が、前記ソーシャルメディアネットワーク上の1つ以上のユーザグループを含む、付記1に記載の方法。
(付記7) 前記最適化問題は、複数のデータポイントが関与する相関クラスタリング問題であり、該相関クラスタリング問題に対する前記解の各々が、前記複数のデータポイントのうちの1つ以上を1つ以上のグループに分けることを含む、付記1に記載の方法。
(付記8) 前記最適化問題は、複数のノードと、該複数のノードの各ノードを接続する複数のエッジと、を含むグラフデータセットが関与する最大カット問題であり、該最大カット問題に対する前記解の各々が、第1のノードセットに含まれるノードと第2のノードセットに含まれるノードとの間のエッジの数を最大化するような、第1のノードセット及び第2のノードセットへの前記グラフデータセットの分割を含む、付記1に記載の方法。
(付記9) 命令を格納するように構成された1つ以上の非一時的コンピュータ読み取り可能記憶媒体であって、前記命令は、実行されることに応答して、システムに処理を実行させ、該処理は、
複数の離散変数選択を含む最適化問題を取得し、
前記最適化問題に対応する二次形式を決定し、
前記二次形式を表す複数のベクトルを特定し、
前記複数のベクトルに含まれる各ベクトルの次元を設定し、該次元は、各ベクトルに含まれる項の数を示し、
前記複数のベクトルからの1つ以上のベクトルの前記次元に基づいて、且つ該1つ以上のベクトルの各々に対応する係数に基づいて、単位ベクトルの第1セットを生成し、
1つ以上のユニタリ演算を実行して、前記第1セットに含まれるそれぞれの単位ベクトルの各々を、それぞれのインデックス付き量子状態として量子化し、
前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定し、
前記それぞれのインデックス付き量子状態の各々に対応する前記最終量子状態に基づいて、前記最適化問題の1つ以上の解を求める、
ことを有する、1つ以上の非一時的コンピュータ読み取り可能記憶媒体。
(付記10) 前記複数のベクトルに含まれるベクトルの前記次元を設定することは、
該ベクトルに含まれる各項の平方を計算し、
各項の前記平方を合計し、
各項の前記平方の前記合計の平方根を計算する、
ことを含む、付記9に記載の1つ以上の非一時的コンピュータ読み取り可能記憶媒体。
(付記11) 前記ベクトルに各々対応する前記係数は係数行列から決定され、特定の係数が、行列ロウと行列カラムとの間の交点を表し、
前記ユニタリ演算は、各行列ロウに対応する第1のユニタリ演算と、各行列カラムに対応する第2のユニタリ演算とを含む、
付記9に記載の1つ以上の非一時的コンピュータ読み取り可能記憶媒体。
(付記12) 前記ユニタリ演算を実行して前記それぞれの単位ベクトルの各々を量子化すること、及び前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定することは、
量子状態インデックスを表す第1の量子レジスタ及び前記単位ベクトルを表す第2の量子レジスタをゼロとして設定し、
前記第1の量子レジスタ及び前記第2の量子レジスタに関する閾値振幅の設定し、
前記閾値振幅を超えるまで、前記第1の量子レジスタに対する第1のユニタリ演算、及び前記第2の量子レジスタに対する第2のユニタリ演算を実行し、ここで、
前記第1のユニタリ演算と前記第2のユニタリ演算は、前記単位ベクトルに対応する前記係数に関係し、且つ
前記第1のユニタリ演算及び前記第2のユニタリ演算を実行することは、前記第1の量子レジスタ及び前記第2の量子レジスタの振幅を増加させ、
前記閾値振幅を超えた後の前記第1の量子レジスタの第1の値及び前記第2の量子レジスタの第2の値に基づいて、最終的な係数を決定する、
ことを有する、付記9に記載の1つ以上の非一時的コンピュータ読み取り可能記憶媒体。
(付記13) 前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定すること、及び前記最適化問題の前記1つ以上の解を求めることは、
前記それぞれのインデックス付き量子状態の各々の1つ以上のコピーを生成し、
生成した前記コピーの各々に対応するランダム量子状態を設定し、
生成した前記コピーの各々に対応する前記ランダム量子状態にアダマール変換を適用し、
前記アダマール変換が前記ランダム量子状態に適用されることに基づいて得られたキュービットを測定し、
前記測定に基づいて、前記得られたキュービットが正でありそうか負でありそうかの見込みを判定し、
前記それぞれのインデックス付き量子状態の各々に対応する前記それぞれの最終量子状態を、前記得られたキュービットが負でありそうとの見込みに応答して-1として設定する、
ことを有する、付記12に記載の1つ以上の非一時的コンピュータ読み取り可能記憶媒体。
(付記14) 前記最適化問題は、ソーシャルメディアネットワーク上のユーザに関するコミュニティ検出問題であり、該コミュニティ検出問題に対する前記解の各々が、前記ソーシャルメディアネットワーク上の1つ以上のユーザグループを含む、付記9に記載の1つ以上の非一時的コンピュータ読み取り可能記憶媒体。
(付記15) 前記最適化問題は、複数のデータポイントが関与する相関クラスタリング問題であり、該相関クラスタリング問題に対する前記解の各々が、前記複数のデータポイントのうちの1つ以上を1つ以上のグループに分けることを含む、付記9に記載の1つ以上の非一時的コンピュータ読み取り可能記憶媒体。
(付記16) 前記最適化問題は、複数のノードと、該複数のノードの各ノードを接続する複数のエッジと、を含むグラフデータセットが関与する最大カット問題であり、該最大カット問題に対する前記解の各々が、第1のノードセットに含まれるノードと第2のノードセットに含まれるノードとの間のエッジの数を最大化するような、第1のノードセット及び第2のノードセットへの前記グラフデータセットの分割を含む、付記9に記載の1つ以上の非一時的コンピュータ読み取り可能記憶媒体。
(付記17) システムであって、
1つ以上のプロセッサと、
命令を格納するように構成された1つ以上の非一時的コンピュータ読み取り可能記憶媒体と、
を有し、
前記命令は、実行されることに応答して、システムに処理を実行させ、該処理は、
複数の離散変数選択を含む最適化問題を取得し、
前記最適化問題に対応する二次形式を決定し、
前記二次形式を表す複数のベクトルを特定し、
前記複数のベクトルに含まれる各ベクトルの次元を設定し、該次元は、各ベクトルに含まれる項の数を示し、
前記複数のベクトルからの1つ以上のベクトルの前記次元に基づいて、且つ該1つ以上のベクトルの各々に対応する係数に基づいて、単位ベクトルの第1セットを生成し、
1つ以上のユニタリ演算を実行して、前記第1セットに含まれるそれぞれの単位ベクトルの各々を、それぞれのインデックス付き量子状態として量子化し、
前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定し、
前記それぞれのインデックス付き量子状態の各々に対応する前記最終量子状態に基づいて、前記最適化問題の1つ以上の解を求める、
ことを有する、
システム。
(付記18) 前記ベクトルに各々対応する前記係数は係数行列から決定され、特定の係数が、行列ロウと行列カラムとの間の交点を表し、
前記ユニタリ演算は、各行列ロウに対応する第1のユニタリ演算と、各行列カラムに対応する第2のユニタリ演算とを含む、
付記17に記載のシステム。
(付記19) 前記ユニタリ演算を実行して前記それぞれの単位ベクトルの各々を量子化すること、及び前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定することは、
量子状態インデックスを表す第1の量子レジスタ及び前記単位ベクトルを表す第2の量子レジスタをゼロとして設定し、
前記第1の量子レジスタ及び前記第2の量子レジスタに関する閾値振幅の設定し、
前記閾値振幅を超えるまで、前記第1の量子レジスタに対する第1のユニタリ演算、及び前記第2の量子レジスタに対する第2のユニタリ演算を実行し、ここで、
前記第1のユニタリ演算と前記第2のユニタリ演算は、前記単位ベクトルに対応する前記係数に関係し、且つ
前記第1のユニタリ演算及び前記第2のユニタリ演算を実行することは、前記第1の量子レジスタ及び前記第2の量子レジスタの振幅を増加させ、
前記閾値振幅を超えた後の前記第1の量子レジスタの第1の値及び前記第2の量子レジスタの第2の値に基づいて、最終的な係数を決定する、
ことを有する、付記17に記載のシステム。
(付記20) 前記それぞれのインデックス付き量子状態の各々に対応するそれぞれの最終量子状態を設定すること、及び前記最適化問題の前記1つ以上の解を求めることは、
前記それぞれのインデックス付き量子状態の各々の1つ以上のコピーを生成し、
生成した前記コピーの各々に対応するランダム量子状態を設定し、
生成した前記コピーの各々に対応する前記ランダム量子状態にアダマール変換を適用し、
前記アダマール変換が前記ランダム量子状態に適用されることに基づいて得られたキュービットを測定し、
前記測定に基づいて、前記得られたキュービットが正でありそうか負でありそうかの見込みを判定し、
前記それぞれのインデックス付き量子状態の各々に対応する前記それぞれの最終量子状態を、前記得られたキュービットが負でありそうとの見込みに応答して-1として設定する、
ことを有する、付記19に記載のシステム。