【Qiskit】追加インストールなし!標準シミュレータで量子回路を実行してみよう
前回までに、Hゲートを使った「重ね合わせ」の作り方と、結果を取り出すための「測定(Measure)」の仕組み、そして回路図の見方を学びました。
今回は、追加のパッケージ(qiskit-aerなど)をわざわざインストールしなくても使えるQiskit標準のシミュレータ(BasicSimulator)を利用して、実際に回路を動かし、確率的な計算結果を取得してみたいと思います。
1. 実行用サンプルコード
以下のコードを sample_run.py として保存して実行します。Qiskitのコア機能だけで完結するため、環境構築が非常にシンプルです。
from qiskit import QuantumCircuit
from qiskit.providers.basic_provider import BasicSimulator
# 1量子ビットと、測定結果を記録する古典ビットを1つ準備
qc = QuantumCircuit(1, 1)
# Hゲートで重ね合わせ状態を作成
qc.h(0)
# 0番目の量子ビットを測定し、0番目の古典ビットに保存
qc.measure(0, 0)
# Qiskit標準の内蔵シミュレータを準備
simulator = BasicSimulator()
# 回路を1000回実行(シミュレーション)
result = simulator.run(qc, shots=1000).result()
# 実行結果から「0」と「1」が出た回数を取得
counts = result.get_counts()
print(f"実行結果: {counts}")
2. 実際の実行結果
ターミナルでこのスクリプトを実行すると、以下のような結果が出力されます。
% python sample_run.py
実行結果: {'1': 508, '0': 492}
3. 結果の解説:なぜこの数値になるのか?
得られた結果を詳しく見てみましょう。
- 0 が 492回、1 が 508回という内訳になっています。合計するとちょうど 1,000回(
shots=1000)の試行が行われていることがわかります。 - Hゲート(アダマールゲート)を通った量子ビットは、「0である確率」と「1である確率」がちょうど半々(50%ずつ)の重ね合わせ状態になります。
- それを1,000回測定したため、理論値である 50:50(各500回前後)に非常に近い、確率的な揺らぎを持った数値が再現されました。
量子コンピュータの確率的振る舞いをコードで実証!
ただの理論だけでなく、シミュレーションを通じて「半々の確率で0と1がランダムに出現する」という量子力学の現象を手元のPCで確認できました。
ただの理論だけでなく、シミュレーションを通じて「半々の確率で0と1がランダムに出現する」という量子力学の現象を手元のPCで確認できました。
まとめ
今回は、Qiskit標準の BasicSimulator を使って、重ね合わせ回路の実行から統計データの取得までを体験しました。回路を作って測定し、結果を数字として受け取るという、量子プログラミングの基本サイクルがこれでバッチリ完了です!
PR