量子複雑性理論は、量子力学に基づいた計算モデルである量子コンピュータを用いて定義される複雑性クラスを扱う、計算複雑性理論の下位分野である。この分野では、これらの複雑性クラスに関連する計算問題の難しさ、および量子複雑性クラスと古典的(すなわち非量子的)複雑性クラスとの関係を研究する。
複雑性クラスとは、特定の資源制約の下で計算モデルによって解決できる計算問題の集合のことです。例えば、複雑性クラスP は、(決定論的)チューリングマシンによって多項式時間で解決できる問題の集合として定義されます。同様に、量子複雑性クラスは、量子回路モデルやそれに相当する量子チューリングマシンなどの量子計算モデルを用いて定義できます。量子複雑性理論の主な目的の一つは、これらのクラスがP、NP、BPP、PSPACEなどの古典的な複雑性クラスとどのように関連しているかを明らかにすることです。
量子複雑性理論が研究されている理由の 1 つは、量子コンピューティングが現代のチャーチ・チューリングのテーゼに与える影響です。簡単に言うと、現代のチャーチ・チューリングのテーゼは、任意の計算モデルは確率的チューリングマシンで多項式時間でシミュレートできると述べています。[ 1 ] [ 2 ]しかし、量子コンピューティングの文脈では、チャーチ・チューリングのテーゼに関する疑問が生じます。チャーチ・チューリングのテーゼが量子計算モデルにも当てはまるかどうかは不明です。テーゼが当てはまらないという証拠は多数あります。確率的チューリングマシンが量子計算モデルを多項式時間でシミュレートすることは不可能かもしれません。[ 1 ]
量子アルゴリズムと古典アルゴリズムの両方の漸近的な計算複雑度は、しばしば漸近記法で表現されます。関数の漸近記法の一般的な形式には、次のようなものがあります。、、 そして。何かが上から制限されていることを表すどこは定数で、そしては関数である、何かが下に限られていることを表すどこは定数で、そしては関数である、 そして 両方を表現するそして[ 3 ]これらの表記法にもそれぞれ名前があります。ビッグオー記法と呼ばれ、これはビッグオメガ表記と呼ばれ、これはビッグシータ表記と呼ばれます。
重要な複雑性クラス P、BPP、BQP、PP、および PSPACE は、プロミス問題に基づいて比較できます。プロミス問題とは、入力がすべての可能な入力文字列の集合から選択されると想定される決定問題です。プロミス問題はペアです。、 どこはいインスタンスの集合であり、これはインスタンスが存在しない集合であり、これらの集合の共通部分は空集合である。これまでの複雑性クラスはすべて、プロミス問題を含んでいます。[ 4 ]

量子コンピュータによって効率的に解ける、誤差が限定された問題のクラスは、BQP(「限定誤差、量子、多項式時間」)と呼ばれます。より厳密に言えば、BQPは、多項式時間量子チューリングマシンによって、エラー確率が最大でも1/3以下の問題クラスです。
確率的問題のクラスとして、BQPは、確率的チューリングマシンで効率的に解ける問題クラスであるBPP (「有界誤差、確率的、多項式時間」)の量子版である。[ 6 ]知られているように、そして広く疑われているが証明されていないのは、これは直感的には、量子コンピュータは時間計算量の点で古典コンピュータよりも強力であることを意味する。[ 7 ] BQPはPPのサブセットである。
BQPとP、NP、PSPACEの正確な関係は不明である。しかし、つまり、量子コンピュータで効率的に解ける問題のクラスには、決定論的な古典コンピュータで効率的に解ける問題がすべて含まれますが、多項式空間リソースを持つ古典コンピュータでは解けない問題は含まれません。さらに、BQP は P の厳密な上位集合であると推測されています。つまり、量子コンピュータで効率的に解ける問題の中には、決定論的な古典コンピュータでは効率的に解けない問題が存在するということです。例えば、整数因数分解と離散対数問題はBQP に含まれることが知られており、P には含まれないと考えられています。BQP と NP の関係については、NP の問題の一部が BQP に含まれるという事実以外にはほとんど知られていません (例えば、整数因数分解と離散対数問題はどちらも NP に含まれています)。つまり、量子コンピュータでは効率的に解けない、効率的にチェック可能な問題が存在すると考えられている。この考えの直接的な結果として、BQPはNP完全問題のクラスとは互いに素であるとも考えられている(もしNP完全問題がBQPに含まれるならば、NP困難性からNPのすべての問題がBQPに含まれることになる)。[ 8 ]
BQPと基本的な古典的複雑性クラスとの関係は、以下のように要約できます。
BQPは複雑性クラスに含まれることも知られている。(より正確には、関連する意思決定問題のクラスにおいて) ) [ 8 ]はPSPACEのサブセットである。
古典コンピュータで量子計算モデルを効率的にシミュレートする方法は知られていない。つまり、古典コンピュータでは量子計算モデルを多項式時間でシミュレートすることはできない。しかし、量子回路は量子ビット量子ゲートは、古典回路によってシミュレートできます。古典ゲート。[ 3 ]この古典ゲートの数は、量子回路をシミュレートするために必要なビット操作の数を決定することによって得られます。これを行うには、まず、量子ビットは考慮に入れなければならない。量子ビットは、2次元の複素ベクトル、すなわち状態ベクトルで記述できます。これらの状態ベクトルは、振幅と呼ばれる係数を持つ成分ベクトルの線形結合でも記述できます。これらの振幅は、1に正規化された複素数であり、振幅の絶対値の二乗の合計が1でなければなりません。[ 3 ]状態ベクトルの要素はこれらの振幅です。線形結合の記述における係数として機能する振幅は、それぞれ状態ベクトルの非ゼロ成分に対応します。これを方程式で表すと次のようになります。またはディラック記法を用いて、全体の状態は量子ビットシステムは単一の状態ベクトルで記述できます。システム全体を記述するこの状態ベクトルは、システム内の個々の量子ビットを記述する状態ベクトルのテンソル積です。キュービットは、単一の状態ベクトルであり、各基底状態または成分ベクトルに関連付けられた振幅である次元とエントリ。したがって、振幅は、次元複素ベクトル、これは状態ベクトルです量子ビットシステム。[ 9 ]量子回路をシミュレートするために必要なゲート数の上限を得るには、各量子ビットに関する情報を指定するために使用されるデータ量の十分な上限が必要です。振幅。これを行うには。各振幅をエンコードするには、ビット精度で十分です。[ 3 ]したがって、古典的なビットは、キュービットシステム。次に、量子ゲート 振幅を考慮する必要がある。量子ゲートは次のように表すことができる。疎行列。[ 3 ]したがって、それぞれの適用を考慮すると、量子ゲートでは、状態ベクトルはそれぞれの疎行列量子ゲート。状態ベクトルが乗算されるたびに疎行列、算術演算を実行する必要がある。[ 3 ]したがって、状態ベクトルに適用される各量子ゲートのビット演算。古典的なゲートをシミュレートするには量子ゲートが1つだけの量子ビット回路。したがって、量子回路をシミュレートするには、古典的なゲートが必要です。量子ビット量子ゲート。[ 3 ]量子コンピュータを古典コンピュータで効率的にシミュレートする方法は知られていないが、古典コンピュータを量子コンピュータで効率的にシミュレートすることは可能である。これは、[ 4 ]
量子計算システムを古典計算システムの代わりに使う大きな利点の 1 つは、量子コンピュータは、古典的な多項式時間アルゴリズムが存在しない問題に対して多項式時間アルゴリズムを提供できる可能性があることですが、さらに重要なのは、量子コンピュータは、古典コンピュータが既に効率的に解決できる問題の計算時間を大幅に短縮できる可能性があることです。本質的に、量子コンピュータは、古典コンピュータではできない問題を解決するために必要な時間を判断できる可能性があり、特定の問題の解決に関連する計算効率を大幅に向上させることもできます。量子クエリ複雑性とは、特定の問題の解決に関連付けられたグラフに対して、問題を解決するために必要なクエリの複雑さ、つまりクエリの数を指します。クエリ複雑性についてさらに掘り下げる前に、特定の問題のグラフ解と、これらの解に関連付けられたクエリに関する背景について考えてみましょう。
量子コンピューティングによって解決が容易になる問題の一つに、グラフ問題があります。与えられた問題を解決するために必要なグラフへのクエリ数を考慮する場合、まずこの種の計算モデリングに関連する最も一般的なグラフの種類である有向グラフについて考えてみましょう。簡単に言うと、有向グラフとは、頂点間のすべてのエッジが一方向であるグラフです。有向グラフは正式には、グラフとして定義されます。ここで、N は頂点またはノードの集合であり、E はエッジの集合である。[ 10 ]
有向グラフ問題の解を量子計算で求める場合、理解しておくべき重要なクエリモデルが2つあります。まず、隣接行列モデルがあり、解のグラフは隣接行列によって表されます。、 と、かつその場合に限る[ 11 ]
次に、隣接リストの考え方に基づいて構築された、やや複雑な隣接配列モデルがあります。各頂点、は、次のような隣接頂点の配列に関連付けられています。頂点の出次数について、 どここれはこのモデルの上限値の最小値であり、「「隣接する頂点さらに、隣接配列モデルは単純グラフ条件を満たし、つまり、任意の2つの頂点間には1つのエッジしか存在せず、エッジの数はモデル全体で最小化されている(詳細については、スパニングツリーモデルを参照)。 [ 11 ]
上記の2つのモデルは、グラフの接続性、強接続性(接続性モデルの有向グラフ版)、最小全域木、単一始点最短経路モデルなど、特定の種類のグラフ問題のクエリ複雑度を決定するために使用できます。重要な注意点として、特定の種類のグラフ問題の量子複雑度は、解を決定するために使用されるクエリモデル(つまり、行列または配列)によって変化する可能性があります。これらの種類のグラフ問題の量子クエリ複雑度を示す次の表は、この点をよく示しています。
特定の問題タイプに関連付けられた量子クエリの複雑さは、複雑さを決定するために使用されたクエリモデルによって異なることに注意してください。たとえば、行列モデルが使用される場合、ビッグオー記法でのコネクティビティモデルの量子複雑さは次のようになります。しかし、配列モデルを使用すると、複雑さはまた、簡潔にするために、略語を使用します。特定のケースでは、[ 11 ]ここでの重要な意味は、グラフ問題を解決するために使用されるアルゴリズムの効率は、グラフをモデル化するために使用されるクエリモデルの種類に依存するということです。
クエリ複雑性モデルでは、入力はオラクル(ブラックボックス)として与えられることもあります。アルゴリズムは、オラクルに問い合わせることによってのみ入力に関する情報を取得します。アルゴリズムは、ある固定された量子状態から開始し、オラクルに問い合わせるにつれて状態が変化します。
グラフ問題の場合と同様に、ブラックボックス問題の量子クエリ複雑度は、関数を計算するために必要なオラクルへのクエリの最小数です。したがって、量子クエリ複雑度は、関数の全体的な時間計算量の下限となります。
量子コンピューティングの威力を示す例として、非構造化データベースを検索するためのグローバーのアルゴリズムが挙げられます。このアルゴリズムの量子クエリ複雑度はこれは、最良の古典的なクエリ複雑度よりも2乗的に改善されている。これは線形探索です。グローバーのアルゴリズムは漸近的に最適です。実際、最大で最良のアルゴリズムよりもクエリがわずかに多くなります。[ 12 ]
ドイチュ・ジョザアルゴリズムは、古典的なアルゴリズムよりもクエリの複雑さが低いおもちゃの問題を解決するために設計された量子アルゴリズムです。おもちゃの問題は、関数が定数またはバランスが取れている、この2つしか可能性がない。[ 2 ]関数を評価する唯一の方法はブラックボックスまたはオラクルを参照することです。古典的な決定論的アルゴリズムでは、関数が定数かバランスが取れているかを確実にするために、可能な入力の半分以上をチェックする必要があります。可能な入力の数に対して、最も効率的な古典的な決定論的アルゴリズムのクエリ複雑度は[ 2 ]ドイチュ・ジョザアルゴリズムは量子並列性を利用してドメインのすべての要素を一度にチェックし、オラクルへのクエリは一度だけで済むため、クエリの複雑さは低くなります。[ 2 ]
物理学のさらなる進歩により、さらに高速なコンピュータが実現する可能性があると推測されている。例えば、非局所的だが信号伝達を行わない隠れ変数量子コンピュータは、 N個のアイテムからなるデータベースの検索を最大でも数秒で実行できることが示されている。ステップ、グローバーのアルゴリズムよりわずかに高速化、手順。ただし、どちらの探索方法も量子コンピュータがNP完全問題を多項式時間で解くことを可能にするものではないことに注意してください。 [ 13 ] M理論やループ量子重力などの量子重力理論は、さらに高速なコンピュータの構築を可能にするかもしれません。しかし、これらの理論における計算の定義は、時間の問題のために未解決の問題です。つまり、これらの物理理論では、観測者がある時点でコンピュータに入力を送信し、その後の時点で出力を受け取ることが何を意味するのかを記述する明確な方法は現在ありません。[ 14 ] [ 15 ]
{{cite book}}: CS1 maint: 複数名: 著者リスト (リンク) CS1 maint: 数値名: 著者リスト (リンク)