Qiskitで始める量子コンピュータ(IBMQ)入門
記事の更新日:2026/09/30 評価を加筆
1.概要
IBM製の27量子ビットの量子コンピュータ(IBMQ)が新川崎に設置され、当時は大きな話題になりました。実機を直接見る機会はなかなかありませんが、ネット経由で米国のIBMQを無料で利用することができます。
数年前に量子コンピュータのセミナーを受けた時は、五線譜のような独自のプログラミング手法(量子回路図)を教わり、半分諦めかけていました。しかし、IBMが提供するPythonライブラリ「Qiskit(キスキット)」を利用すれば、使い慣れたPythonコードで量子コンピュータの動作をシミュレートしながら学習できることが分かり、さっそくUbuntu環境で検証を始めました。(当時の検証環境:Ubuntu 20.04 LTS / Jupyter Notebook)
私の評価は以下の通りです。
(1) 量子コンピュータの演算能力か強大で、RSA-2048を2030年には解読と想定されます
(2) 量子コンピュータのプログラムの初期は、五線譜のようなプログラムでした
(3) 現在はシュミレーション機能を利用して、Pythonを利用するのが一般的です
(4) 量子コンピュータに触れてみたい方には、IBMの実機をオンラインで利用できます
(2) 量子コンピュータのプログラムの初期は、五線譜のようなプログラムでした
(3) 現在はシュミレーション機能を利用して、Pythonを利用するのが一般的です
(4) 量子コンピュータに触れてみたい方には、IBMの実機をオンラインで利用できます
2.詳細
QiskitのインストールとJupyterでのトラブル対処法
Ubuntu環境のJupyter Notebook上で、手順に従ってQiskitを導入します。
(a) インストールコマンド
$ pip install qiskit qiskit--aer
(b) 【トラブル事例】Jupyterで「No module 'qiskit'」が出る場合(詳細後述)
Jupyter上で上記コマンドを実行した際、サンプルプログラムを動かそうとすると No module 'qiskit' というエラーが発生することがあります。
これは環境の不整合が原因です。その場合は、一度Conda環境を全体アップデートしてから再インストールすることで解決しました。
(c) 動作確認( test.py 作成 )
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
simulator = AerSimulator()
job = simulator.run(qc, shots=1000)
result = job.result()
counts = result.get_counts()
print("Result:", counts)
実行結果
$ python3 test.py
Result: {'11': 510, '00': 490}
3.所見
何もわからずに触れてみました。Pythonで操作できるので何を実行しているかはわかりますが、裏側にある理論はわかりません。習うより慣れろで挑戦をしました。
IBMQの実機やqiskitのシュミレーションを操作すると量子コンピュータの計算のやり方が見えてきます。今までのコンピュータでは1つの計算は1つの結果を出力します。しかし、量子コンピュータは、例えば、1000回の実行をして、510回は11、490回は00の結果を出力します。qcの値は、00, 01,10,11の範囲と思われますが、11と00の状態が1/2の確率であると推測できます。最初、私にはとても違和感がある仕組みでした。
4.追加
(1) 量子コンピュータのIBMQでqiskit-GPUを利用してみた
qiskitは量子コンピューターを利用するpythonライブラリですが、計算処理効率を上げるためにnVidiaのGPUを利用できるとの記述があります。そこで、qiskitで実際にGPUを利用するために、qiskit-aer-gpuを追加して確認をしました。その内容を記述します。なお、nvidia GPUの環境設定に関しては、tensorflow学習時の設定を使いました。
(a) 導入
qiskitの導入直後にqiskti-aer-gpuを追加しました。
(参考)当ブログのIBMQ qiskit(続編) (06/20)
$ conda update --all
$ pip install qiskit
$ pip install qiskit-aer-gpu
(b) 確認事項
参考資料のシミュレーターのGPUシミュレーション記載を実行するとエラーは発生しません。従って、GPUは認識されているようです。
そこで、参考資料を活用して実際のプログラムでGPUを利用しました。qiskit versionが、0.16.0と少し古いのですが、記載されている通りに実行できます。私のGPU環境(Geforce 1050Ti)では、量子ビットは8程度が現実的な実行環境でした。
更に、参考資料のQiskit Aer 0.7.0からは変わるとの情報を試してみましたが、古い記述のままで利用できます。私の利用環境は、qiskit-aer 0.10.4なので、バージョンは上がっていますが、qiskit-aer側の事情が少し変わっているようです。
(2) 量子コンピュータのIBMQでqiskit-textbookを使ってみた
qiskitを利用した学習を進めていると、qiskit-textbookを利用する事例があります。qiskit-textbookはgitから導入する必要があり、その記述をします。
(a) 導入方法
参考資料に従ってpipコマンドで導入します。
(参考)当ブログのIBMQ qiskit-GPU (07/01)
$ conda update --all
$ pip install qiskit
$ pip install qiskit-aer-gpu
$ pip install git+https://github.com/qiskit-community/qiskit-textbook.git#subdirectory=qiskit-textbook-src
(b) 動作確認
下記コマンドをjupyter notebookのcellに入力します。
エラーなく実行されると動作確認は完了です。
print('Set up started...')
from qiskit_textbook.games import hello_quantum
print('Set up complete!')
参考
[本ブログ内参照]
・メインフレームのMVS3.8jをLinuxMint 22.3で学習する方法
[外部サイト参照]・メインフレームのMVS3.8jをLinuxMint 22.3で学習する方法
・日本初のIBM製「ゲート型商用量子コンピュータ」が新川崎で稼働。アメリカ、ドイツに次いで世界で3番目
・Qiskitのインストール
・Qiskit/qiskit-aqua
・Expanding the IBM Quantum roadmap to anticipate the future of quantum-centric supercomputing
・シミュレーター
・QiskitのシミュレータでGPUを使ってみる
・Qiskit Aer 0.7.0からbackend_optionsの指定方法が変わったので,その対策
・Qiskitテキストブックで作業するための環境設定ガイド
コメント
コメントを投稿