AWSのAmazon Braketで逆量子フーリエ変換
別の記事でQiskitにより逆量子フーリエ変換を行い、元々の量子状態を判別できることについて説明しました。今回はAmazon Braket SDKのアルゴリズムライブラリを用いることで逆量子フーリエ変換を実行し、元々の量子状態を判別します。
Amazon Braket学習コース
この記事で登場する、量子ゲートや量子回路など、量子コンピュータの基本的な知識や、Amazon Braketの使い方についてはこちらのコースで効率的に学べます。
量子コンピュータやAWSの知識が無い方でも学び始められ、最終的には量子機械学習についても学べます。 こちらも利用し、量子技術のスキルを身につけましょう!
AWSのAmazon Braketで逆量子フーリエ変換
別の記事の例で、ある2量子ビットが$\psi_1 = \frac{1}{2} \left( \ket{00} + i\ket{01} - \ket{10} - i\ket{11} \right)$もしくは$\psi_2 = \frac{1}{2} \left( \ket{00} - \ket{01} + \ket{10} - \ket{11} \right)$どちらかの状態で存在していた場合、逆量子フーリエ変換を用いることで、どちらの状態か判別可能と説明しました。また、こちらの記事ではQiskit 2.0を用いその実装を行いました。
今回はAmazon Braket SDKで実際に逆量子フーリエ変換を行い、元々の量子状態が判別できることを確認します。
まずは必要となる関数をimportします。
from braket.circuits import Circuit
from braket.devices import LocalSimulator
from braket.experimental.algorithms.quantum_fourier_transform import (
quantum_fourier_transform as qft_module
)
量子回路を定義します。
n_qubits = 2
circ = Circuit()
前回と同様に今回も$\psi_2$を事前に定義し、逆量子フーリエ変換を実行しましょう。
ここで、前回Qiskitで実施した際の逆量子フーリエ変換の回路と、今回Amazon Braket SDKのアルゴリズムライブラリで用いられる逆量子フーリエ変換の回路はそれぞれ以下の通り逆になっております。
-
前回のQiskitの記事における量子フーリエ変換の回路図
-
今回のAmazon Braket SDKにおける量子フーリエ変換の回路図
T : │ 0 │ 1 │ 2 │ 3 │
┌──────────────┐ ┌───┐
q0 : ────x───────────┤ PHASE(-1.57) ├─┤ H ├─
│ └──────┬───────┘ └───┘
│ ┌───┐ │
q1 : ────x─────┤ H ├────────●───────────────
└───┘
T : │ 0 │ 1 │ 2 │ 3 │
この順序も考慮する場合、つまりAmazon Braket SDKの量子フーリエ変換に対応して$\psi_2$を準備する場合は、以下の回路が必要となります。
circ.h(0)
circ.x(1)
circ.h(1)
図で示すと以下です。
T : │ 0 │ 1 │
┌───┐
q0 : ─┤ H ├───────
└───┘
┌───┐ ┌───┐
q1 : ─┤ X ├─┤ H ├─
└───┘ └───┘
T : │ 0 │ 1 │
では逆量子フーリエ変換を実行しましょう。
circ.iqft(range(n_qubits))
device = LocalSimulator()
result = device.run(circ, shots=1000).result()
counts = result.measurement_counts
print(counts)
結果は以下の通り$\ket{10}$が観測されます。$\psi_2$の状態が生成されていたことが分かりました。 同様に、$\psi_1$の状態を生成した後に、逆量子フーリエ変換を実行すると$\ket{01}$が観測されます。是非試してみてください。
Counter({'10': 1000})
Amazon Braket学習コース
この記事で登場する、量子ゲートや量子回路など、量子コンピュータの基本的な知識や、Amazon Braketの使い方についてはこちらのコースで効率的に学べます。
量子コンピュータやAWSの知識が無い方でも学び始められ、最終的には量子機械学習についても学べます。 こちらも利用し、量子技術のスキルを身につけましょう!
Qiskit試験対策問題集
qiskitについての資格試験をIBMが提供しています。
この資格を取得することでqiskitや量子プログラミングに関する知識を証明することが可能です。 こちらの資格取得を目指される方のため、Udemyというサイト上にて日本語版、英語版で問題集を作りました!解説もなるべくわかりやすく作成いたしましたので、是非是非ご活用ください。