量子スピードアップを直感的に実証するための最も単純なアルゴリズム?


8

量子スピードアップを直感的に実証するための最も簡単なアルゴリズムは何ですか(DeutschのアルゴリズムGroverのアルゴリズムなど)。そして、このアルゴリズムは直感的に説明できますか?

理想的には、これは量子干渉がどのように利用されているのか、また古典波の干渉だけではそれが不可能または有用でない理由を明確に示すことにもなります。


どのようなスピードアップ(多項式vs指数)、およびどのような利点(無条件vs oracular)?
glS 2018

明確である限り問題ではありません。とはいえ、指数関数的な高速化は見やすいかもしれません。
Steven Sagona

最も単純な例は、古典的な波でも機能します。実際、古典的な波が含まれるキュービットの数の指数関数的に多くのパスをとることができる(そしてしなければならない)以外のすべての例。
Norbert Schuch、2013

回答:


6

期間検出(有名なShorアルゴリズムのサブルーチン)が非常に直感的で指数関数的な高速化を示すことをお勧めします:(不確実性の平方根)Δp期間の)p関数評価のは、未知の期間見つけるために古典的に必要とされるpその整数入力値が周期的であることが保証されている機能のを。私は意図的にその内容が深くsuperpolynomial高速化を実証するために、まだ誕生日のパラドックスを染み付いている人々に直感的になるようparanthesisを配置した、直感的に、それがどこか近くにあることを理解するのに十分であるΔp、正解Δp、または桁数のようないくつかの多項式およびそれらのではない何かpOログp

Shorのアルゴリズムで採用されている、周期を見つけるための量子アルゴリズムは、すべての状態の等しい重ね合わせに適用される周期関数の量子フーリエ変換を単純に採用します。当然、周期の整数倍のみが非ゼロの確率振幅を持つことができるため、これを(通常)2回実行すると、共通因子を最大共通分母としてすばやく抽出できます。しかし、量子フーリエ変換は、Oログp制御回転(入力ビットごとに1つによって簡単に実装できます

最大の直感的なスピードアップは、関数の評価を非常にコストのかかるものにした場合に明らかに発生します。量子アルゴリズムは一定の(単一の)評価のみを必要とします!あなたは、アルゴリズムを持っているとしても、しかし、そうでなければ、実行、と仮定すると関数の評価は中に、一定の時間であることを、利得を得るOログpというよりも、OΔpあなたは正しい周期のは考えていない場合は、p本質的であるOp


4

質問の難しさは直感的な言葉です。直観は基本的に私たちの周りの世界の私たちの理解を反映しており、それは古典物理学によって説明されています。量子力学は、私たちの日常の経験の世界とは非常に異なって機能するため、私たちの直感が壊れる体制です。テリー・プラチェットが言ったように:

もともと他のサルに熟した果実の場所を教えるために設計された言語を使用して、量子を話すのは非常に困難です。

計算速度を上げるために使用しているのは、まさにその違いです。

ほとんどの量子コンピューティングテキストが進行する一連の標準アルゴリズムがあります。Deutschのアルゴリズム、Deutsch-JozsaSimonの / Bernstein-Vaziraniです。これらは理解するのが最も簡単なので選択されました。それらはすべてほぼ同じ構造ですが、複雑さが増し、それに対応して計算速度が向上します(Simonは指数関数的に高速化しています)。それらを直感的に理解することはできません。あなたは数学をしなければなりません。あなたが来るのに最も近いのは、Deutschのアルゴリズムに関する次の説明です。

1ビットの関数fバツ想像してください。いずれかのf0=f1、又はそれがありません。あなたの仕事はどれを決定することです。明らかに、古典的な世界では、f0f1を評価する必要があります。2つの関数呼び出し。量子の世界では、大まかに言えば、両方の値を同時に見て、1キュービット測定を実行できます(1ビットの情報が得られます)が、その測定を選択して、1ビットが関数、この場合はf0f1。同じことは、私が述べた他のアルゴリズムにも広く当てはまります。問題の構造により、関数評価の集合的特性に隠された情報があり、それは、それらを決定しようとしている集合的特性です。


2
「問題の難しさは直感的な言葉です。直感は基本的に私たちの周りの世界の理解を反映しており、古典物理学によって記述されています。 」直感によって私が意味する(そしてしばしば意味される)のは、フレームワーク内のメカニズムの/理解/を持っていることです。答えを取得するために数式をプラグインするように教えるのは簡単ですが、フレームワークとロジックを根本的に/理解/理解させることは、この直感の標準的な定義についてのものです。
Steven Sagona

1
@StevenSagona「フレームワーク内のメカニズムを理解している」。はい私は同意する。フレームワーク内のいくつかのメカニズムを知っている場合、既存の知識によって提供されるコンテキストがあるため、詳細をすべて解決しなくても新しいメカニズムを理解できます。そして、あなたが何かを理解していれば、いくつかの作業で、数学的詳細を再構築できるはずです。しかし、完全に新しいフレームワークの最初のメカニズムを直感的に理解することはできません。興味はあるが経験の浅い多くの人がこれをやろうとします。たとえば、古典的なアナログを使って、失敗しますが、成功していると信じているかもしれません。
DaftWullie 2018

2

マイクロソフトの講義には良い例があります。入力が1つ、出力が1つの古典的なブラックボックスがあるとします。出力が定数か変数かを判断するために必要なクエリの数は?明らかに2つのクエリが必要です。最初に0を入力し、2番目に1を入力します。両方の出力が同一の場合は定数、それ以外の場合は可変です。古典的なブラックボックスを量子ブラックボックスに変換した後、単一のクエリのみを必要とする回路を構築できることがわかります(講義ではその方法を説明しています)。


3
それ以外はドイツのアルゴリズムとして知られています。
DaftWullie

1
Deutsch–Jozsaの問題について詳しく知りたい場合は、Quantum Katasをご覧になることをお勧めします。ドイツ-Jozsaカタは、自分のペースで練習のシリーズとして必要な概念を通過し、学ぶためのきちんとした方法にすることができます。
Chris Granade、

あなたが確実に答えを求めている場合、これは量子スピードアップを与えるだけであることに注意してください。問題のサイズが大きくなっても(Deutsch-Jozsaのように)、一定の数のクエリが必要な場合は、一定数のクエリが必要です
nippon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.