Path: blob/main/translations/ja/ch-demos/piday-code.ipynb
3860 views
量子位相推定を使った円周率()の推定
1.量子位相推定アルゴリズムの概要
量子推定アルゴリズム(QPE)は多くの非常に複雑な量子アルゴリズムの一角を担う量子アルゴリズムの1つです。その中心にあるのは、QPEはかなり簡単な問題を解きます。)となっている演算子の量子状態が与えられているとき、の推定値を得ることができますか?
この答えは”yes"です。QPEアルゴリズムからを得られます。ここでとはを推定するために使っている量子ビット数です。
2.円周率の推定
このデモでは、演算子と状態を次のように選びます。
ここで
この行列はQiskitで利用可能な量子ゲートの1つで、そして以下を満たします。
となるようにゲートの位相を選ぶと、次の関係性を利用してを推定することができます。
QPEアルゴリズムの結果から、の推定値を測定します。そのとき、 となります。
上記のゲートの定義から、であることを知ることができます。
これらの関係性を使って、 であることがわかります。
QPEのより詳細な解説には、Qiskit Textbook中の専用の章を参照してください。 qiskit.org/textbook.
3. コードを書いてみよう!
まずは、次の必要なライブラリをインポートすることから始めていきましょう。
関数qft_daggerは、逆量子フーリエ変換を計算します。このアルゴリズムのより詳細な解説は、Qiskit Textbookの以下の章を参照してください。
次の関数qpe_preは、推定値に対する初期状態を準備します。開始時の状態は、最後の量子ビット以外の全ての量子ビットにアダマールゲートを適用し、最後の量子ビットにはをセットすることで生成されていることに注意してください。
次に、回路を実行し結果を返すための簡単な関数run_jobを書きましょう。
その次に、クラウドのシミュレーターか実デバイスを使うためにご自身のアカウントを読み込みます。
最後に、上記の関数をの推定値を得るためにn_qubitsを使うようにget_pi_estimateと呼ばれる関数にまとめます。
ここでは、異なる量子ビット数でget_pi_estimate関数を実行し、推定値を表示しています。
そして、全ての結果をプロットします。