量子コンピューティングにおいて、グローバーのアルゴリズムは量子探索アルゴリズムとも呼ばれ、関数の評価のみを使用して、特定の出力値を生成するブラックボックス関数への一意の入力を高い確率で見つける非構造化探索の量子アルゴリズムです。ここで、は関数のドメインのサイズです。 1996年にロブ・グローバーによって考案されました。[1]
古典的計算における類似の問題は、評価回数未満では解くことができない(平均して、正しい入力を見つける確率を 50% にするには、領域の半分をチェックする必要があるため)。Charles H. Bennett、Ethan Bernstein、Gilles Brassard、およびUmesh Vazirani は、この問題に対する量子解法はいずれも関数を回評価する必要があることを証明した。そのため、Grover のアルゴリズムは漸近的に最適である。[2] NP完全問題に対する古典的アルゴリズムは指数的に多くのステップを必要とし、Grover のアルゴリズムは非構造化検索に対して古典的ソリューションに比べてせいぜい 2 乗の高速化しか提供しないため、Grover のアルゴリズムだけではNP完全問題に対する多項式時間ソリューションを提供できないことが示唆される(指数関数の平方根は依然として指数関数であり、多項式関数ではないため)。[3]
従来のアルゴリズムに比べて指数関数的な高速化を実現する可能性のある他の量子アルゴリズムとは異なり、グローバーのアルゴリズムは2乗の高速化しか実現しません。しかし、が大きい場合は2乗の高速化でも相当なものであり、グローバーのアルゴリズムは幅広いクラスのアルゴリズムの高速化に適用できます。[3]グローバーのアルゴリズムは、128ビットの対称暗号鍵を約2 64回の反復で、または256ビットの鍵を約2 128回の反復でブルートフォース攻撃できます。ただし、グローバーのアルゴリズムが既存の従来のアルゴリズムに比べて暗号化のリスクを大幅に高めるわけではない可能性があります。[4]
アプリケーションと制限
グローバーのアルゴリズムは、振幅増幅などのバリエーションとともに、幅広いアルゴリズムの高速化に使用できます。[5] [6] [7]特に、網羅的探索をサブルーチンとして含む NP 完全問題のアルゴリズムは、グローバーのアルゴリズムによって高速化できます。[6]最悪の場合の複雑さの観点から、3SATに対する現在の理論上最良なアルゴリズムはその一例です。一般的な制約充足問題でも、グローバーによる 2 次的な高速化が見られます。[8]これらのアルゴリズムでは、入力がオラクル形式で与えられる必要はありません。グローバーのアルゴリズムは、明示的な関数、たとえば、一連のビットが 3SAT インスタンスを満たすかどうかをチェックする関数とともに適用されるためです。ただし、グローバーのアルゴリズムがこれらの問題に対する最良の実際的アルゴリズムを高速化できるかどうかは不明です。
グローバーのアルゴリズムは、要素の区別[9]や衝突問題[10](ブラッサード・ホイヤー・タップアルゴリズムで解決)など、量子クエリ複雑性におけるブラックボックス問題に対しても実証可能な高速化をもたらすことができます。これらのタイプの問題では、オラクル関数fをデータベースとして扱い、この関数への量子クエリをできるだけ少ない回数だけ使用することが目標です。
暗号化
グローバーのアルゴリズムは、本質的に関数反転の問題を解決します。大まかに言えば、量子コンピュータで評価できる関数がある場合、グローバーのアルゴリズムを使用すると、が与えられたときにを計算できます。その結果、グローバーのアルゴリズムは、衝突攻撃や原像攻撃など、対称鍵暗号に対する多くの種類のブルートフォース攻撃に対して広範な漸近的高速化をもたらします。[11]ただし、たとえば、ポラードのローアルゴリズムはグローバーのアルゴリズムよりも効率的にSHA-2の衝突を見つけることができるため、これは必ずしも最も効率的なアルゴリズムとは限りません。[12]
制限事項
Grover の元の論文では、このアルゴリズムをデータベース検索アルゴリズムとして説明しており、この説明は今でも一般的です。このアナロジーのデータベースは、関数のすべての出力のテーブルであり、対応する入力によってインデックス付けされています。ただし、このデータベースは明示的に表現されていません。代わりに、オラクルが呼び出され、インデックスによって項目を評価します。データベース全体を項目ごとに読み取り、そのような表現に変換すると、Grover の検索よりもはるかに時間がかかります。このような影響を考慮すると、Grover のアルゴリズムは、方程式を解くか制約を満たすものとして見ることができます。このようなアプリケーションでは、オラクルは制約をチェックする方法であり、検索アルゴリズムとは関係ありません。この分離により、通常、アルゴリズムの最適化が防止されますが、従来の検索アルゴリズムは、多くの場合、このような最適化に依存し、網羅的な検索を回避します。[13]幸いなことに、多くの制約充足問題と最適化問題で、Grover のオラクルの高速実装が可能です。[14]
グローバーのアルゴリズムによる高速化を実現する上での大きな障壁は、達成される2次的な高速化が、近い将来の量子コンピュータの大きなオーバーヘッドを克服するには小さすぎることである。[15]しかし、より優れたハードウェア性能を備えた後世代のフォールトトレラント量子コンピュータは、実用的なデータインスタンスに対してこれらの高速化を実現できる可能性がある。
問題の説明
Grover のアルゴリズムの入力として、関数 があるとします。「非構造化データベース」のアナロジーでは、ドメインはデータベースのインデックスを表し、xが指すデータが検索基準を満たす場合にのみ、f ( x ) = 1となります。さらに、 f ( x ) = 1 を満たすインデックスは 1 つだけであると仮定し、このインデックスをωと呼びます。目標はω を特定することです。
次のように動作するユニタリ演算子U ωの形式のサブルーチン(オラクルと呼ばれることもあります)を使用してf にアクセスできます。
これは、量子ビットを持つレジスタによって供給される次元状態空間を使用する。これは、次のように記述されることが多い。
グローバーのアルゴリズムは、 U ωの適用を使用して、少なくとも1/2の確率でω を出力します。この確率は、グローバーのアルゴリズムを複数回実行することで任意に大きくすることができます。 ω が見つかるまでグローバーのアルゴリズムを実行すると、平均して 2 回しか実行されないため、予想される適用回数は のままです。
代替オラクル定義
このセクションでは、上記のオラクルとオラクルを比較します。
U ω は関数fの標準的な量子オラクルとは異なります。この標準的なオラクルは、ここではU fと表記され、補助的な量子ビットシステムを使用します。この操作は、補助的なシステムからのf ( x )の値によって条件付けられたメイン システム上の反転 ( NOT ゲート) を表します。
または簡単に言えば、
これらのオラクルは、通常、非計算を使用して実現されます。
オラクルとしてU f が与えられている場合は、補助量子ビットが状態にあるときにU ωがU fであるため、U ωも実装できます。
したがって、グローバーのアルゴリズムは、どのオラクルを与えても実行できます。[3] U fが与えられた場合、状態に追加の量子ビットを維持し、U ωの代わりにU f を適用する必要があります。
アルゴリズム

Grover アルゴリズムの手順は次のとおりです。
- システムをすべての状態にわたって均一な重ね合わせに初期化する
- 次の「Grover 反復」を何回か実行します。
- 演算子を適用する
- グローバー拡散演算子を適用する
- 計算基底で結果として得られる量子状態を測定します。
の正しく選択された値については、出力はN ≫ 1に対して確率で 1 に近づきます。分析により、 のこの最終的な値は を満たすことが示されています。
このアルゴリズムのステップの実装は、量子ビットの数に比例するゲート数を使用して行うことができます。[3]したがって、このアルゴリズムのゲート複雑度は、または反復あたりです。
正しさの幾何学的証明

グローバーのアルゴリズムの量子状態は各ステップの後に 2 次元部分空間に留まるという観察から、グローバーのアルゴリズムには幾何学的な解釈があります。 と が張る平面を考えます。同様に、と垂直なケットが張る平面も考えます。
グローバーのアルゴリズムは、部分空間にある初期ケット から始まります。演算子 は、とが張る平面上のベクトルに対して に直交する超平面での反射です。つまり、 を横切る反射として機能します。これは、ハウスホルダー反射の形式で記述することで確認できます。
演算子はを介した反射です。演算子と は両方とも、 とによって張られる平面内の状態から平面内の状態になります。したがって、グローバーのアルゴリズムはアルゴリズム全体にわたってこの平面内にとどまります。
各グローバー反復ステップの演算子が状態ベクトルを の角度だけ回転させることを簡単に確認できます。したがって、十分な反復回数を繰り返すことで、初期状態から目的の出力状態 に回転できます。初期ケットは に直交する状態に近くなります。
幾何学的に言えば、と間の角度は次のように表される。
状態ベクトルが に近づいたときに停止する必要があります。その後、後続の反復では状態ベクトルがから遠ざかるため、正解を得る確率が低下します。正解を測定する正確な確率は
ここで、r はグローバー反復の(整数)回数です。したがって、最適に近い測定値が得られる最も早い時間は です。
正しさの代数的証明
代数解析を完了するには、 を繰り返し適用すると何が起こるかを調べる必要があります。これを行う自然な方法は、行列の固有値解析です。計算全体を通して、アルゴリズムの状態はとの線形結合であることに注意してください。が張る空間でのとの作用は次のように記述できます。
したがって、基底(直交でも空間全体の基底でもない)において、を適用した後にを適用する動作は、行列によって与えられる。
この行列は、非常に便利なジョルダン形式を持っています。 を定義すると、
- どこ
行列のr乗( r回の反復に相当) は
この形式を使用すると、三角関数の恒等式を使用して、前のセクションで述べた r回の反復後にωを観測する確率を計算できます。
あるいは、角度 2 rtと −2 rt が可能な限り離れているとき、つまり、またはに対応するときが、区別するのに最適に近い時間であると考えるのが妥当でしょう。その場合、システムは状態
簡単な計算により、観測結果は誤差を伴った正しい答えωを与えることが分かります。
拡張機能とバリアント
一致するエントリが複数あります
一致するエントリが1つではなくk個ある場合、同じアルゴリズムが機能しますが、反復回数は
kが未知の場合の対処法はいくつかある。[16]単純な解決法は定数倍まで最適に機能する。すなわち、k = N、N /2、N /4、…のようにkの値を徐々に小さくしてGroverのアルゴリズムを繰り返し実行し、一致するエントリが見つかるまで 反復tを実行する。
十分に高い確率で、マークされたエントリは定数cの反復によって見つかる。したがって、反復の総回数は最大で
kが不明な場合の別のアプローチは、量子カウントアルゴリズムの事前計算によってそれを導出することです。
(または で実行された場合の従来の状態グローバーアルゴリズムとマークされた状態)の場合、アルゴリズムは増幅を提供しません。 の場合、k を増やすと、解を得るために必要な反復回数が増え始めます。[17]一方、 の場合、単一のランダムな入力を選択してチェックオラクルを従来どおり実行すると、正しい解が得られる可能性が高くなります。
このアルゴリズムのバージョンは衝突問題を解決するために使用されます。[18] [19]
量子部分探索
グローバーのアルゴリズムの修正版である量子部分探索は、グローバーとラダクリシュナンによって 2004 年に説明されました。 [20]部分探索では、対象アイテムの正確なアドレスを見つけることではなく、アドレスの最初の数桁のみに関心があります。同様に、探索空間をブロックに「チャンク化」し、「対象アイテムはどのブロックにありますか?」と尋ねることも考えられます。多くのアプリケーションでは、対象アドレスに必要な情報が含まれていれば、このような探索で十分な情報が得られます。たとえば、LK グローバーの例を使用すると、クラス順位別に整理された生徒のリストがある場合、生徒が下位 25%、25~50%、50~75%、または 75~100% のパーセンタイルのいずれに属するかにのみ関心がある場合があります。
部分検索を説明するために、サイズが のブロックに分割されたデータベースを考えます。部分検索の問題は簡単です。従来のアプローチを考えてみましょう。ランダムに 1 つのブロックを選択し、残りのブロック (集合論の言語では補ブロック) に対して通常の検索を実行します。ターゲットが見つからない場合は、検索しなかったブロック内にあることがわかります。反復の平均回数は から に減少します。
Grover のアルゴリズムでは反復が必要です。部分検索は、ブロックの数に依存する数値係数によって高速化されます。部分検索では、グローバル反復とローカル反復が使用されます。グローバル Grover 演算子は で指定され、ローカル Grover 演算子は で指定されます。
グローバル グローバー演算子はブロックに作用します。基本的には、次のように表されます。
- データベース全体に対して標準の Grover 反復処理を実行します。
- ローカル グローバー反復を実行します。ローカル グローバー反復は、各ブロックでのグローバー反復の直接合計です。
- 標準的な Grover 反復を 1 回実行します。
およびの最適値は、Grover と Radhakrishnan の論文で説明されています。また、異なるレベルの「解像度」で連続した部分検索を適用すると何が起こるのか疑問に思う人もいるかもしれません。このアイデアは、Vladimir Korepinと Xu によって詳細に研究され、2 値量子検索と呼ばれました。彼らは、実際には 1 度の部分検索を実行する場合よりも高速ではないことを証明しました。
最適性
グローバーのアルゴリズムは定数以下の係数まで最適である。つまり、演算子Uωのみを使用してデータベースにアクセスするアルゴリズムは、グローバーのアルゴリズムの少なくとも数分の1回はUωを適用する必要がある。 [21]グローバーのアルゴリズムをk個の一致するエントリに拡張すると、 π ( N / k ) 1/2/4も最適になる。[18]この結果は量子計算の限界を理解する上で重要である。
グローバーの探索問題がU ωのlog c N回の適用で解ける場合、 NP の問題をグローバー型の探索問題に変換することで、NPがBQPに含まれることになります。グローバーのアルゴリズムの最適性は、量子コンピュータがNP 完全問題を多項式時間で解くことができないことを示唆しており、したがって NP は BQP に含まれません。
非局所的隠れ変数量子コンピュータのクラスは、最大ステップでアイテムデータベースの検索を実行できることが示されています。これは、グローバーのアルゴリズムが実行するステップよりも高速です。 [22]
参照
- 振幅増幅
- Brassard-Høyer-Tapp アルゴリズム(衝突問題を解決するため)
- ショアのアルゴリズム(因数分解用)
- 量子ウォーク探索
注記
- ^ Grover, Lov K. (1996-07-01). 「データベース検索のための高速量子力学アルゴリズム」。第 28 回 ACM コンピューティング理論シンポジウムの議事録 - STOC '96 。米国ペンシルベニア州フィラデルフィア: Association for Computing Machinery。pp. 212– 219。arXiv : quant -ph/9605043。Bibcode : 1996quant.ph..5043G。doi : 10.1145 / 237814.237866。ISBN 978-0-89791-785-8. S2CID 207198067。
- ^ Bennett CH; Bernstein E.; Brassard G.; Vazirani U. (1997). 「量子計算の長所と短所」. SIAM Journal on Computing . 26 (5): 1510– 1523. arXiv : quant-ph/9701001 . doi :10.1137/s0097539796300933. S2CID 13403194.
- ^ abcdニールセン、マイケル A. (2010)。量子計算と量子情報 。アイザック L. チュアン。ケンブリッジ:ケンブリッジ大学出版局。pp. 276– 305。ISBN 978-1-107-00217-3. OCLC 665137861.
- ^ Bernstein, Daniel J. (2010). 「Grover vs. McEliece」(PDF)。Sendrier, Nicolas (編) 著。ポスト量子暗号、第 3 回国際ワークショップ、PQCrypto 2010、ドイツ、ダルムシュタット、2010 年 5 月 25 ~ 28 日。議事録。Lecture Notes in Computer Science。第 6061 巻。Springer。pp. 73 ~ 80。doi :10.1007 / 978-3-642-12929-2_6。
- ^ Grover, Lov K. (1998). 「高速量子力学アルゴリズムのフレームワーク」。Vitter, Jeffrey Scott (編) 著。米国テキサス州ダラスで開催された第 30 回 ACM コンピューティング理論シンポジウムの議事録、1998 年 5 月 23 ~ 26 日。Association for Computing Machinery。pp. 53 ~ 62。arXiv : quant-ph/9711043。doi : 10.1145 /276698.276712。
- ^ ab Ambainis, A. (2004-06-01). 「量子探索アルゴリズム」. ACM SIGACT News . 35 (2): 22– 35. arXiv : quant-ph/0504012 . doi :10.1145/992287.992296. ISSN 0163-5700. S2CID 11326499.
- ^ ジョーダン、スティーブン。「量子アルゴリズム動物園」。quantumalgorithmzoo.org 。2021年4月21日閲覧。
- ^ Cerf, Nicolas J.; Grover, Lov K.; Williams, Colin P. (2000-05-01). 「ネストされた量子探索とNP困難問題」.工学、コミュニケーション、コンピューティングにおける応用代数. 10 (4): 311– 338. doi :10.1007/s002000050134. ISSN 1432-0622. S2CID 311132.
- ^ Ambainis, Andris (2007-01-01). 「要素の区別のための量子ウォークアルゴリズム」. SIAM Journal on Computing . 37 (1): 210– 239. arXiv : quant-ph/0311001 . doi :10.1137/S0097539705447311. ISSN 0097-5397. S2CID 6581885.
- ^ Brassard, Gilles; Høyer, Peter; Tapp, Alain (1998). 「ハッシュ関数とクローフリー関数の量子暗号解析」。Lucchesi, Claudio L.、Moura, Arnaldo V. (編)。LATIN '98: 理論情報学、第 3 回ラテンアメリカシンポジウム、ブラジル、カンピナス、1998 年 4 月 20 ~ 24 日、議事録。Lecture Notes in Computer Science。第 1380 巻。Springer。pp. 163 ~ 169。arXiv : quant-ph/9705002。doi : 10.1007/ BFb0054319。
- ^ ポスト量子暗号。ダニエル・J・バーンスタイン、ヨハネス・ブッフマン、エリック、数学者ダーメン。ベルリン:シュプリンガー。 2009.ISBN 978-3-540-88702-7. OCLC 318545517.
{{cite book}}: CS1 maint: others (link) - ^ Bernstein, Daniel J. (2021-04-21). 「ハッシュ衝突のコスト分析:量子コンピューターはSHARCSを時代遅れにするのか?」(PDF)。暗号化システム攻撃用特殊用途ハードウェア会議議事録 (SHARCS '09)。09 : 105–117。
- ^ Viamontes GF; Markov IL; Hayes JP (2005)、「量子探索は実用的か?」(PDF)、Computing in Science and Engineering、7 (3): 62– 70、arXiv : quant-ph/0405001、Bibcode :2005CSE.....7c..62V、doi :10.1109/mcse.2005.53、S2CID 8929938
- ^ Sinitsyn NA; Yan B. (2023). 「分割問題に対するトポロジカルに保護されたグローバーのオラクル」. Physical Review A . 108 (2): 022412. arXiv : 2304.10488 . doi :10.1103/PhysRevA.108.022412. S2CID 258236417.
- ^ Babbush, Ryan; McClean, Jarrod R.; Newman, Michael; Gidney, Craig; Boixo, Sergio; Neven, Hartmut (2021-03-29). 「エラー訂正量子優位性のための二次速度向上を超えた焦点」PRX Quantum . 2 (1): 010103. arXiv : 2011.04149 . doi : 10.1103/PRXQuantum.2.010103 .
- ^ アーロンソン、スコット(2021年4月19日)。「量子情報科学入門講義ノート」(PDF)。
- ^ ニールセン・チュアン
- ^ ab Michel Boyer; Gilles Brassard; Peter Høyer; Alain Tapp (1998)、「量子探索の厳密な境界」、Fortschr. Phys.、46 ( 4– 5): 493– 506、arXiv : quant-ph/9605034、Bibcode :1998ForPh..46..493B、doi :10.1002/3527603093.ch10、ISBN 9783527603091
- ^ Andris Ambainis (2004)、「量子探索アルゴリズム」、SIGACT News、35 (2): 22– 35、arXiv : quant-ph/0504012、Bibcode :2005quant.ph..4012A、doi :10.1145/992287.992296、S2CID 11326499
- ^ LK Grover; J. Radhakrishnan (2005-02-07). 「データベースの部分量子検索はもっと簡単か?」arXiv : quant-ph/0407122v4 .
- ^ Zalka, Christof (1999-10-01). 「Grover の量子探索アルゴリズムは最適である」. Physical Review A. 60 ( 4): 2746– 2751. arXiv : quant-ph/9711070 . Bibcode :1999PhRvA..60.2746Z. doi :10.1103/PhysRevA.60.2746. S2CID 1542077.
- ^ アーロンソン、スコット。「量子コンピューティングと隠れた変数」(PDF)。
参考文献
- Grover LK:データベース検索のための高速量子力学アルゴリズム、議事録、第 28 回 ACM コンピューティング理論シンポジウム、(1996 年 5 月) p. 212
- Grover LK:シュレーディンガー方程式から量子探索アルゴリズムへ、American Journal of Physics、69(7): 769–777、2001年。アルゴリズムとその歴史の教育的レビュー。
- Grover LK: 量子コンピューティング: 原子核の世界の奇妙な論理により、マシンは現在よりも何百万倍も高速に計算できるようになる方法The Sciences、1999 年 7 月/8 月、pp. 24 ~ 30。
- Nielsen, MA および Chuang, IL 「量子計算と量子情報」ケンブリッジ大学出版局、2000 年。第 6 章。
- 量子電話帳とは何か?、Lov Grover、ルーセント テクノロジーズ
外部リンク
- Davy Wybiral. 「量子回路シミュレータ」。2017年1月16日にオリジナルからアーカイブ。2017年1月13日に閲覧。
- Craig Gidney (2013-03-05). 「Grover の量子探索アルゴリズム」。2020-11-17 にオリジナルからアーカイブ。2013-03-08に閲覧。
- François Schwarzentruber (2013-05-18). 「Grover のアルゴリズム」。
- Alexander Prokopenya. 「グローバーの探索アルゴリズムを実装する量子回路」。Wolfram Alpha。
- 「量子計算の理論」、数学百科事典、EMS Press、2001 [1994]
- Roberto Maestre (2018-05-11). 「R と C で実装された Grover のアルゴリズム」。GitHub。
- Bernhard Ömer. 「QCL - 量子コンピューター向けプログラミング言語」。2022-04-30取得。
/qcl-0.6.4/lib/grover.qcl に実装
