グローバーのアルゴリズム:Oracleに入力するもの


9

GroverのアルゴリズムでOracleに何を入力するかについて混乱しています。

重ね合わせた量子状態に加えて、探しているものと探しているものを見つける場所をOracleに入力する必要はありませんか?

たとえば、人の名前のリスト{"Alice"、 "Bob"、 "Corey"、 "Dio"}があり、 "Dio"がリストにあるかどうかを確認するとします。次に、Oracleは入力としてを入力および出力。私はそれを理解しています。1 / 2 | 00 + | 01 + | 10 - | 11 1/2(|00+|01+|10+|11)1/2(|00+|01+|10|11)

しかし、「Dio」という単語と{「Alice」、「Bob」、「Corey」、「Dio」}というリストもOracleに入力する必要はありませんか。それ以外の場合、Oracleはどのように出力を返すことができますか?Oracleはブラックボックスであり、実装方法を考える必要がないため、明示的に言及されていませんか?

オラクルについての私の理解は、

  • Oracleには、「Dio」という単語がリストに含まれているかどうかを認識する機能があります。
  • そのために、Oracleは重ね合わせた量子状態を入力として受け取り、各量子状態はリストのインデックスを表します。
  • したがって、Oracleにを入力し、単語「Dio」がリストのインデックス0にあるかどうかを確認し、はいの場合はを返し、そうでない場合はを返します。- | 00 | 00 |00|00|00
  • この場合、Oracleは返します。1/2(|00+|01+|10|11)
  • しかし、リストと単語はどうですか?

1
同じように語られていませんが、あなたの質問は多かれ少なかれこれと同じだと思います。グローバーのアルゴリズム:リストはどこですか?
DaftWullie

回答:


4

Groverのアルゴリズムの一般的な説明では、リストの検索について説明していますが、実際には、関数への可能な入力0..N-1の検索に使用します。アルゴリズムのコストはあなたがオーバー検索したい入力数で、機能を評価するコストです。その関数でリストを検索する場合は、リストを関数にハードコーディングする必要があります。O(NF)NF

項目のリストを使用するように関数をハードコーディングすることは、がと等しくなる傾向があるため、通常は非常に悪い考えです。これは、グローバーのアルゴリズムの総コストをます。ため、どの目的が全体の目的に反するか。NFO(N)N 1.5 >NO(NF)=O(NN)=O(N1.5)N1.5>N


O(Nlog(N))

@DaftWullie問題は、グローバーが重ね合わせでルックアップを実行する必要があることであり、これにはN ANDゲート(または他の非クリフォード演算)を備えたマルチプレクサ回路が必要です。量子ANDゲート(つまり、Toffoli)は、エラー訂正を実行するときに無視できないコストをかけます。このコストは、技術的には古典的なマシンにも存在します(つまり、RAMにはO(N)ANDゲートがあります)。そのコンテキストでは、ごくわずかであり、回避さえできます。
Craig Gidney、2018年

あなたの言っていることが理解できません。詳細を示すために、質問を表現し、それに答えることができますか?(
現時点

@DaftWullie質問は「量子コンピュータに古典的なデータベースへの読み取りアクセス権を与えるにはどうすればいいですか?
クレイグギドニー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.