Qiskit 2.0をインストールして簡単な量子回路を実行する
Qiskit 2.0がリリースされました。この記事ではqiskit 2.0.1で簡単な量子回路を実行する方法を説明します。
Amazon Braket学習コース
AWSでの量子コンピューティングサービスであるAmazon braketについての学習コースを作成しました。
量子コンピュータやAWSの知識が無い方でも学び始められ、最終的には量子機械学習についても学べます。 こちらも利用し、量子技術のスキルを身につけましょう!
Qiskit試験対策問題集
qiskitについての資格試験をIBMが提供しています。
この資格を取得することでqiskitや量子プログラミングに関する知識を証明することが可能です。 こちらの資格取得を目指される方のため、Udemyというサイト上にて日本語版、英語版で問題集を作りました!解説もなるべくわかりやすく作成いたしましたので、是非是非ご活用ください。
英語版問題集
日本語版問題集
qiskit 2.0.1をインストールして簡単な量子回路を実行する
この記事を書いてる時点での最新版であるqiskitのバージョンは2.0.1であったため、これをインストールし、簡単な量子回路を実行します。 環境は以下の通り用意しました。
pip install qiskit==2.0.1 notebook numpy
今回の記事ではStatevectorSamplerを用いて量子回路を実行します。その他必要となるモジュールと合わせてimportしておきます。
from qiskit.circuit import (
Parameter, QuantumCircuit
)
from qiskit.primitives import StatevectorSampler
samplerを定義します。
sampler = StatevectorSampler()
いつも通り量子回路を定義します。今回はベルの回路を定義してます。
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0,1], [0,1])
Qiskitでは量子回路と同時に複数のパラメータを定義し、samplerで一気に実行可能です。 ただし、今回はパラメータ依存のゲートもないため、パラメータを定義しないNoneとして実行します。
pub = (qc, None)
job = sampler.run([pub], shots=100)
以下の様に結果を確認できます。
result = job.result()[0]
print(result.data.c.get_counts())
# {'11': 53, '00': 47}
では次に複数のパラメータで一気に量子回路を実行してみましょう。
以下のようにParameter x, y
に依存し回転を施すrx, ry
ゲートを使った量子回路を定義します。
qc = QuantumCircuit(2, 2)
qc.rx(Parameter("x"), 0)
qc.ry(Parameter("y"), 1)
qc.measure([0,1], [0,1])
パラメータ2つについては0から2πの間を、π/2ごとに区切る以下のように定義します。
params = np.vstack([
np.linspace(0, 2 * np.pi, 5),
np.linspace(0, 2 * np.pi, 5)
]).T
print(params)
# [[0. 0. ]
# [1.57079633 1.57079633]
# [3.14159265 3.14159265]
# [4.71238898 4.71238898]
# [6.28318531 6.28318531]]
このパラメータを用いて量子回路を以下のように実行します。
sampler = StatevectorSampler()
pub = (qc, params)
job = sampler.run([pub], shots=100)
各パラメータに紐づいた量子回路の実行結果は個別に確認することが可能です。例えば0番目のパラメータに関しての結果は以下のように取得できます。
result = job.result()[0]
print(result.data.c.get_counts(0))
# {'00': 100}
同様に他の結果も確認してましょう。各パラメータに対しての結果が想定通りであることがわかります。
print(result.data.c.get_counts(1))
# {'01': 28, '00': 24, '11': 24, '10': 24}
print(result.data.c.get_counts(2))
# {'11': 100}
print(result.data.c.get_counts(3))
# {'10': 27, '01': 22, '00': 24, '11': 27}
パラメータを複数定義し、一気に実行できるため、VQCなどの量子機械学習アルゴリズムを実行する際に便利そうですね。
Amazon Braket学習コース
AWSでの量子コンピューティングサービスであるAmazon braketについての学習コースを作成しました。
量子コンピュータやAWSの知識が無い方でも学び始められ、最終的には量子機械学習についても学べます。 こちらも利用し、量子技術のスキルを身につけましょう!
Qiskit試験対策問題集
qiskitについての資格試験をIBMが提供しています。
この資格を取得することでqiskitや量子プログラミングに関する知識を証明することが可能です。 こちらの資格取得を目指される方のため、Udemyというサイト上にて日本語版、英語版で問題集を作りました!解説もなるべくわかりやすく作成いたしましたので、是非是非ご活用ください。