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

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

3
Groverのアルゴリズムが機能する理由について、素人の説明はありますか?
Scott Aaronsonによるこのブログ投稿は、Shorのアルゴリズムの非常に便利で簡単な説明です。 :二番目に有名な量子アルゴリズムのためのそのような説明があれば、私は思ったんだけどグローバーのアルゴリズム検索する順不同サイズのデータベース中に時間が。O (√O(n)O(n)O(n)O(n−−√)O(n)O(\sqrt{n}) 特に、実行時間の最初の驚くべき結果について、わかりやすい直観を見てみたいです!

2
GroverとShor以来、量子アルゴリズムに真に画期的な進歩はありましたか?
(やや素人っぽい質問でごめんなさい) 2004年から2007年にかけて量子コンピューティングを勉強しましたが、それ以来、その分野の追跡ができなくなりました。当時、多くの誇大広告とQCの話があり、古典的なコンピューターを上回ることであらゆる種類の問題を解決する可能性がありましたが、実際には2つの理論的なブレークスルーしかありませんでした。 Shorのアルゴリズムは大幅に高速化されましたが、適用可能性が制限されており、整数分解以外ではあまり役に立ちませんでした。 Groverのアルゴリズムは(NP完全問題の解決に使用できるため)幅広いカテゴリの問題に適用可能でしたが、従来のコンピューターと比較して多項式の高速化のみを示しました。 量子アニーリングについても議論しましたが、古典的なシミュレーテッドアニーリングよりも本当に優れているかどうかは明確ではありませんでした。測定ベースのQCとQCのグラフ状態表現もホットなトピックでしたが、決定的なものは何も証明されていませんでした。 それ以来、量子アルゴリズムの分野で進歩はありましたか?特に: GroverとShorのほかに、本当に画期的なアルゴリズムがありましたか? P、BPP、NPとBQPの関係を定義する上で何か進展はありましたか? 「絡み合いによるものでなければならない」と言う以外に、量子スピードアップの性質を理解する上で進歩はありましたか?

2
断熱量子計算は、Groverのアルゴリズムよりも高速ですか?
断熱量子コンピューティングは、「標準」またはゲートモデルの量子コンピューティングと同等であることが証明されています。ただし、断熱コンピューティングは、問題に何らかの形で関連する関数を最小化(または最大化)することを目的とする最適化問題の見込みを示しています。つまり、この関数を最小化(または最大化)問題。 今、Groverのアルゴリズムは本質的に同じことを行うことができるようです:ソリューションスペースを検索することで、オラクル基準を満たすこのソリューションでは最適条件に等しい1つのソリューション(おそらく多くのソリューションの中から)を見つけます時間、ここでは解空間のサイズです。O(N−−√)O(N)O(\sqrt N)NNN このアルゴリズムは最適であることが示されています:Bennett et al。(1997)それを置いて、「クラスは、時間量子チューリングマシンで解くことができません」。私の理解では、この手段よりも速くスペースを検索して解決策を見つけた任意の量子アルゴリズム構築する方法はありません、どこ問題の大きさに比例します。NPNP\rm NPo(2n/2)o(2n/2)o(2^{n/2})O(N−−√)O(N)O(\sqrt N)NNN 私の質問は次のとおりです。断熱量子コンピューティングは、最適化問題に関してはしばしば優れていると言われていますが、実際にはよりも高速ですか?はいの場合、断熱アルゴリズムは量子回路でシミュレートできるため、これはグローバーのアルゴリズムの最適性と矛盾するようです。そうでない場合、断熱アルゴリズムを開発するポイントは何ですか、もしそれらが回路で体系的に構築できるものよりも速くならないのであれば?または、私の理解に何か問題がありますか?O(N−−√)O(N)O(\sqrt N)

4
Groverのアルゴリズム:リストはどこにありますか?
Groverのアルゴリズムは、とりわけ、アイテム順不同リスト内のアイテムyy\mathbf{y}を検索するために使用されますの長さ。このトピックに関して多くの質問がここにありますが、私はまだポイントを逃しています。[x0,x1,...,xn−1][x0,x1,...,xn−1][\mathbf{x}_0, \mathbf{x}_1, ..., \mathbf{x}_{n-1}]nnn リスト内の検索、古典的な方法 通常、この方法で検索関数を設計します したがって、リストと必要な項目を入力として与え、位置を受け取りますリスト内のアイテムの出力として。に関する情報はオラクルゲートOを介してアルゴリズムに埋め込まれているため、関数は \ mathrm {search} _ \ mathbf {y}([\ mathbf {x} _1、\ mathbf {X} _2、...、\ mathbf {X} _n)= I \で\ mathbb {N} \クワッド\テキスト{よう} \ mathbf {X} _i = \ mathbf {Y} レッツメイクA実際の例。スペードのエース1 \ spadesuitを検索することを検討してくださいsearch([x0,x1,...,xn−1],y)=i∈Nsuch that xi=ysearch([x0,x1,...,xn−1],y)=i∈Nsuch that xi=y \mathrm{search}([\mathbf{x}_0, \mathbf{x}_1, ..., \mathbf{x}_{n-1}], \mathbf{y}) = i …

2
Grover拡散演算子はどのように機能し、なぜ最適なのですか?
では、この答え、グローバーのアルゴリズムを説明します。この説明は、アルゴリズムがGrover Diffusion Operatorに大きく依存していることを示していますが、このオペレーターの内部動作に関する詳細は提供していません。 簡単に言うと、Grover Diffusion Operatorは、「平均についての反転」を作成して、初期のステップのわずかな違いを測定可能となるように十分に大きくします。 質問は次のとおりです。 Grover拡散演算子はどのようにこれを達成しますか? 結果の順不同のデータベースを最適な時間で検索しますか?O(n−−√)O(n)O(\sqrt{n})

3
Groverの検索アルゴリズムにはどのようなアプリケーションがありますか?
Groverの検索アルゴリズムは、通常、ソートされていないデータベースでマークされたエントリを見つけるという観点から語られています。これは、NP問題の解決策の検索に直接適用できる自然な形式です(適切な解決策が容易に認識される場合)。 Groverの一連の数値の最小値、平均値、および中央値を見つけるための検索の他のアプリケーションについて知りたいと思いました。それで、Groverの検索の他のあまり知られていないアプリケーション(または振幅増幅などの一般化のアプリケーション)が既に知られているかどうか疑問に思うでしょうか?これがどのように行われるかについての簡単な洞察はありがたいです。

2
Groverのアルゴリズム:実際の例ですか?
Groverのアルゴリズムが実際にどのように使用されるかについて私はかなり混乱しているので、例を通して説明の助けを求めたいです。 赤、オレンジ、黄色、緑、シアン、青、インディゴ、バイオレットの色を含むN= 8N=8N=8要素のデータベースを想定します。この順序である必要はありません。私の目標は、データベースで赤を見つけることです。 Groverのアルゴリズムの入力は、キュビットです。3キュビットは、データセットのインデックスをエンコードします。私の混乱はここにあります(前提について混乱している可能性がありますので、ここで混乱が起こると言ってください)、理解しているように、オラクルは実際にデータセットのインデックスの1つを検索しますオラクルは、どのインデックスを探す必要があるかについて「ハードコード」されています。n = ログ2(N= 8 )= 3n=ログ2⁡(N=8)=3n = \log_2(N=8) = 3 私の質問は: ここで何が間違っていますか? オラクルがデータベースのインデックスの1つを本当に探している場合、それは、どのインデックスを探しているかをすでに知っていることを意味します。 色に関する上記の条件が与えられた場合、Grover'sで非構造化データセットで赤を探すことが可能であれば、誰かがそれを指摘できますか? たとえば、111を検索するオラクルを使用したGroverのアルゴリズムの実装があります(または、以下の同じオラクルのR実装を参照してください):https : //quantumcomputing.stackexchange.com/a/2205n = 3n=3n=3 繰り返しますが、データセット内の要素の位置がわからない場合、このアルゴリズムでは、要素の位置をエンコードする文字列を検索する必要があります。データセットが構造化されていないときにどの位置を探すべきかをどのように知るのですか?NNNNNNN Rコード: #START a = TensorProd(TensorProd(Hadamard(I2),Hadamard(I2)),Hadamard(I2)) # 1st CNOT a1= CNOT3_12(a) # 2nd composite # I x I x T1Gate b = TensorProd(TensorProd(I2,I2),T1Gate(I2)) b1 = DotProduct(b,a1) c = …

3
Grover-Algorithmはデータベースにどのように適用されますか?
質問 Grover-Algorithmを使用して、未ソートのデータベースで要素バツバツxを検索します。ここで疑問が生じますが、どうすればキュービットでデータベースのインデックスと値を初期化できますか? 例 私は444量子ビットを持っているとしましょう。したがって、24= 1624=162 ^ 4 = 16古典的な値をマッピングできます。 私のソートされていないデータベースddd次の要素を有するd[ 値] = [ 3 、2 、0 、1 ]d[値]=[3、2、0、1]d [\text{Value}] = [3,2,0,1]。 x = 2d= 10b= | 10 ⟩バツ=2d=10b=|10⟩x = 2_d = 10_b = |10\rangleを検索したい 10 ⟩。 私のアプローチ:索引データベースdddとd[ (インデックス、値)] = [ (0 、3 )、(1 、2 )、(2 、0 )、(3 、1 )]d[(インデックス、値)]=[(0、3)、(1、2)、(2、0)、(3、1)]d [(\text{Index, …

4
Groverのアルゴリズムとその複雑度クラスとの関係は?
Groverのアルゴリズムと複雑度クラスへの接続について混乱しています。 グローバーのアルゴリズムの発見及び素子kkkのデータベースでN=2nN=2nN=2^n(例えばそのf(k)=1f(k)=1f(k)=1)を持つ要素の∼N−−√=2n/2∼N=2n/2\sim \sqrt{N}=2^{n/2} オラクルへの呼び出し。 そのため、次の問題があります。 問題:データベース内でf (k )= 1となるkkkを見つけるf(k)=1f(k)=1f(k)=1 現在、これは意思決定の問題ではないため、複雑度クラスPP\text{P}、NPNP\text{NP}などの通常の定義は実際には適用されないことを認識しています。しかし、このような場合に複雑度クラスをどのように定義するかを知りたいのですが、NNNまたはに関して行われnnnますか? さらに、Groverのアルゴリズムはサブルーチンとして使用できます。私はいくつかの場所で、グローバーのアルゴリズムが複雑さのクラスを変更しないことを読みました。これを発見する方法はありますか。

2
3つのキュービットを使用したIBM QでのGroverのアルゴリズムのオラクルの実装
3キュービットのGroverのアルゴリズムを実装することでIBM Qに慣れるようにしていますが、オラクルの実装が困難です。 その方法を示したり、IBM Q回路プログラミングに慣れるための優れたリソースを提案したりできますか? 私がしたいのは、オラクルが行うことになっているようにその記号を反転させることによって任意の状態をマークすることです。 たとえば、私は持っています 1/8–√(|000⟩+|001⟩+|010⟩+|011⟩+|100⟩+|101⟩+|110⟩+|111⟩)1/8(|000⟩+|001⟩+|010⟩+|011⟩+|100⟩+|101⟩+|110⟩+|111⟩)1/\sqrt8(|000\rangle+|001\rangle+|010\rangle+|011\rangle+|100\rangle+|101\rangle+|110\rangle+|111\rangle)。 記号を反転してをマークしたいと思います。CCZゲートで問題が解決することはどういうわけか理解していますが、IBM QにはCCZゲートがありません。いくつかのゲートの組み合わせはCCZと同じように機能しますが、その方法はまだわかりません。また、だけでなく、他の場合にも苦労しています。|111⟩|111⟩|111\rangle−|111⟩−|111⟩-|111\rangle|111⟩|111⟩|111\rangle 2つのキュービットのケースは私が実装するのに十分簡単ですが、3つのキュービットのケアはまだ私を混乱させます。

1
GroverのアルゴリズムでOracleキュービットが必要なのはなぜですか?
GroverのアルゴリズムでのOracleキュービットの必要性について少し混乱しています。 私の質問は、オラクルのキュービットが必要かどうかは、オラクルの実装方法に依存しますか?または、それはオラクルキュービットの何らかの理由がありますか?(例えば、オラクルキュビットなしでは解決できないいくつかの問題が存在する、またはオラクルキュビットの問題について考える方が簡単である、またはそれが慣習であるなど) 多くのリソースがオラクルキュービットを使用したGroverのアルゴリズムを紹介していますが、オラクルキュービットが不要な場合もあります。 たとえば、IBM QシミュレーターでのGroverのアルゴリズムの2つの実装を次に示します。1つはOracleキュービットを使用しており、もう1つは使用していません。どちらの場合も、| 00>、| 01>、| 10>、| 11>のスペースから| 11>を検索します。どちらの場合も、Oracleは| 11>を-| 11>に正常に切り替えます。 ・オラクルキュービット付き(IBM Qシミュレーターへリンク) ・オラクルキュービットなし(IBM Qシミュレーターへのリンク)

1
Groverのアルゴリズムは、一連の数値の平均と中央値を推定するためにどのように使用されますか?
上グローバーのアルゴリズムのためのWikipediaのページ、次のことが言及されています。 「グローバーのアルゴリズムは、一連の数値の平均と中央値の推定にも使用できます。」 これまでのところ、データベースの検索にそれを使用する方法を知っていました。しかし、その手法を実装して一連の数値の平均値と中央値を推定する方法がわかりません。さらに、そのテクニックを説明するページには、(私が気付いた限り)引用はありません。

2
並列プロセスを実行してGroverのアルゴリズムを高速化できますか?
従来のコンピューティングでは、並列計算ノードをできるだけ多く実行することで、キー検索(AESなど)を実行できます。 多くのGroverのアルゴリズムも実行できることは明らかです。 私の質問です。従来のコンピューティングのように複数のGroverのアルゴリズムを使用して速度を上げることは可能ですか?

1
グローバーのアルゴリズム:Oracleに入力するもの
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⟩)1/2(|00\rangle + |01\rangle + |10\rangle + |11\rangle)1 / …

1
Grover検索スペースの現在の制限
なぜ今までグローバー検索が3キュービット(データベースのサイズ= 8に対応)までしか実装されていないのかと思っていました。この論文を参照 私が尋ねる理由は、今日私たちははるかに大きなサイズの量子コンピュータを持っているからです。たとえば、IBMが50キュービットを持っているのに対し、Googleは72を発表しました。なぜこれらのコンピューターでより大きなサイズのGroverアルゴリズムを実行できないのですか?(理論的な問題に基づく)私の推測の一部は次のとおりです。 回路アーキテクチャの制限:おそらく、ゲートセットと、これらのコンピューターによって提供される回路の基礎となるアーキテクチャが制限を課します。 エラー修正:エラーを修正するには追加のキュービットが必要です。 現在Grover検索の使用を制限している実用的/物理的な問題があるかどうか知りたいのですが。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.