タグ付けされた質問 「grovers-algorithm」

グローバーの検索アルゴリズムは、入力サイズの平方根の順に検索できるアルゴリズムです。これは、検索を実行するために次数Nの時間を必要とする最良の古典的なアルゴリズムよりも証明可能な速度向上です。

4
データベース検索のためのグローバーアルゴリズム:量子の利点はどこにあるのか?
従来の検索の代わりに、N個の値を持つ任意の順序付けられていないデータベースD(key、value)を検索するためにGroverアルゴリズムを使用する利点が何であるかを理解しようとしています。 oracle関数は関数f(key)= yであると想定しました。ここで、yは従来のデータベースの対応する値のインデックスです。 私の問題は神託に関連しています。キーがoracleで指定されているため、データベースで実行される検索ごとにoracle回路を変更する必要があります。これは、単純化のために無視できる操作であると仮定しましょう。 オラクル回路を古典的に計算する必要があるとすると、関数f(key)= yのように動作する回路を作成する必要があります。この関数は、少なくともO(N)ステップで取得されます(一部の特別な場合を除く)。オラクル関数回路は、データベースエントリが変更/追加/削除されるたびに、O(N)のコストで再計算する必要があります。 など、多くの論文初心者のための量子アルゴリズムの実装、マッチングのための量子アルゴリズムとネットワークフローのすべての神託を考慮していないように見えます。 実際の利点を得るために量子データベースを検討する必要があるかどうかはわかりません(これと量子結果の信頼性の低さは、私に非常に良い考えではないと確信していますが、単なる推測です)。 では、オラクルを構築するための複雑さはどこにあると考えられますか?私は何かを誤解しましたか? 「オラクル関数回路は、O(N)のコストで、データベースエントリが変更/追加/削除されるたびに再計算する必要がある」という誤った仮定はありますか?

1
ハッシュ関数に対する量子攻撃
質問の行は、PDF版のペーパー「 古典的証明システムに対する量子攻撃-量子巻き戻しの難易度(Ambainis et al。、2014)」のセクション4のピックワントリックに触発されています。スライドはこちらから入手できます。私はそこでの議論を完全には守っていないので、何か重要なことを逃したかもしれませんが、ここにそれらのトリックの私の解釈があります。 古典ハッシュ関数を検討x→H(x)x→H(x)x \rightarrow H(x)それを見つけることは計算が困難である衝突耐性ある。すなわちH(x)=H(x′)∧x≠x′H(x)=H(x′)∧x≠x′H(x) = H(x') \land x\neq x'。このハッシュ関数を使用してメッセージのコミットメントをエンコードしたいと思います。つまり、私はいくつかのメッセージ取るmmm、いくつかランダムに連結私はコミットメント生成するように、端部に。私のコミットメントを証明するように求められたとき、c = H(m '\ Vert u')であるような別のペア(m '、u')を見つけることができませんuuuc=H(m∥u)c=H(m‖u)c = H(m\Vert u)(m′,u′)(m′,u′)(m',u')c=H(m′∥u′)c=H(m′‖u′)c = H(m'\Vert u')ハッシュの衝突のない性質のため。私の唯一の選択肢は、(m,u)(m,u)(m,u)へのコミットメントを開くことです。 さて、ハッシュ関数の量子回路でこのプロトコルを攻撃します。 すべての可能な入力xixix_iを重ね合わせ、この状態でハッシュ関数をクエリして、状態|ψ⟩=∑i|xi⟩|H(xi)⟩|ψ⟩=∑i|xi⟩|H(xi)⟩\vert\psi\rangle = \sum_{i}\vert x_i\rangle\vert H(x_i)\rangleを取得します。 2番目のレジスターを測定して、ランダムなコミットメントを取得します。測定では、一部のiについてランダムにc=H(xi)c=H(xi)c = H(x_i)を選択します。最初のレジスタは、\ vert \ phi \ rangle = \ sum_j \ vert x_j \ rangleを持ち、\ forall j、c = H(x_j)となります。iii|ϕ⟩=∑j|xj⟩|ϕ⟩=∑j|xj⟩\vert\phi\rangle …

2
Groverのアルゴリズムのオラクルには、データベース全体に関する情報を含める必要がありますか?
Groverのアルゴリズムは、時間でデータベースを検索する方法として説明されることがよくあります。これを使用するには、が答えにような関数を表すオラクルゲートが必要です。しかし、実際にこのような「データベースオラクル」を作成するにはどうすればよいでしょうか。ff − 1(1)O(N−−√)O(N)O(\sqrt{N})ffff−1(1)f−1(1)f^{-1}(1) 私は数字の配列があるとし含ま正確に一度だけ、私が見つける必要があるのインデックスを。従来のコンピューターでは、配列をメモリに読み込み、見つかるまで配列を繰り返し処理しました。w w waaawwwwwwwww たとえば、および場合、答えとして2(または1インデックスで3)が返されると期待しています。、W = 0a=[3,2,0,1,2,3]a=[3,2,0,1,2,3]a = [3, 2, 0, 1, 2, 3]w=0w=0w = 0 この配列を量子コンピューターでどのように表現し、いくつかのを返すゲートを作成するのですか? xaxaxa_xxxx 特に、量子メモリ内に「データベース」全体を持っている必要がありますか(量子ゲートから従来のレジスタにアクセスする方法がいくつかあると想定しています)?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.