Qiskit 2.0で逆量子フーリエ変換
前回の記事では量子フーリエ変換の具体例やメリットについて確認しました。
今回の記事ではQiskit 2.0で実際に逆量子フーリエ変換を実行し、元々の量子状態が判別できることを確認します。
Amazon Braket学習コース
量子コンピュータの基本的な知識や、Amazon Braketの使い方についてはこちらのコースで効率的に学べます。
量子コンピュータやAWSの知識が無い方でも学び始められ、最終的には量子機械学習についても学べます。 こちらも利用し、量子技術のスキルを身につけましょう!
Qiskit試験対策問題集
qiskitについての資格試験をIBMが提供しています。
この資格を取得することでqiskitや量子プログラミングに関する知識を証明することが可能です。 こちらの資格取得を目指される方のため、Udemyというサイト上にて日本語版、英語版で問題集を作りました!解説もなるべくわかりやすく作成いたしましたので、是非是非ご活用ください。
英語版問題集
日本語版問題集
Qiskit 2.0で逆量子フーリエ変換
前回の記事の例で、ある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で実際に逆量子フーリエ変換を行い、元々の量子状態が判別できることを確認します。
まずは必要となる関数をimportします。
from qiskit import QuantumCircuit
from qiskit.circuit.library import StatePreparation
from qiskit.primitives import StatevectorSampler
from qiskit.circuit.library import QFT
Samplerや、量子回路定義します。
sampler = StatevectorSampler()
n_qubits = 2
qc = QuantumCircuit(n_qubits, 2)
今回対象とする量子ビットの状態は$\psi_2$とし、この状態を生成する量子回路を以下でappendします。
state = [1/2, - 1/2, 1/2, - 1/2]
prep = StatePreparation(state)
qc.append(prep, [0, 1])
ちなみにこのまま量子状態を測定するだけでは以下のような結果しか得られず、$\psi_1$であったか$\psi_2$であったかの判別はできません。
qc.measure([0,1], [0,1])
pub = (qc, None)
job = sampler.run([pub], shots=100)
result=job.result()[0]
print(result.data.c.get_counts())
# Output
{'01': 27, '10': 27, '11': 23, '00': 23}
では逆量子フーリエ変換を実装しましょう。
iqft = QFT(num_qubits=n_qubits, inverse=True, do_swaps=True)
qc.append(iqft, [0, 1])
qc.measure([0,1], [0,1])
全体的な回路は以下の通りです。前回の記事での例の通り、$\ket{01}$が観測された場合は元々の状態は$\psi_1$であったことを、$\ket{10}$が観測された場合は$\psi_2$であったこと意味します。
qc.draw('mpl')

以下で量子回路を実行します。
pub = (qc, None)
job = sampler.run([pub], shots=100)
result=job.result()[0]
print(result.data.c.get_counts())
結果は以下の通り$\ket{10}$が観測されます。$\psi_2$の状態が生成されていたことが分かりました。 同様に、$\psi_1$の状態を生成した後に、逆量子フーリエ変換を実行すると$\ket{01}$が観測されます。是非試してみてください。
# Output
{'10': 100}
Amazon Braket学習コース
量子コンピュータの基本的な知識や、Amazon Braketの使い方についてはこちらのコースで効率的に学べます。
量子コンピュータやAWSの知識が無い方でも学び始められ、最終的には量子機械学習についても学べます。 こちらも利用し、量子技術のスキルを身につけましょう!
Qiskit試験対策問題集
qiskitについての資格試験をIBMが提供しています。
この資格を取得することでqiskitや量子プログラミングに関する知識を証明することが可能です。 こちらの資格取得を目指される方のため、Udemyというサイト上にて日本語版、英語版で問題集を作りました!解説もなるべくわかりやすく作成いたしましたので、是非是非ご活用ください。