Qiskit は、量子コンピュータ 用のオープンソース のフレームワーク である。量子回路 を作成し、プロトタイプの量子 デバイスやシミュレーション上で実行するためのツールを提供する。量子チューリングマシン (英語版 ) の量子回路 に対応しており、これに従う量子ハードウェア に使用することができる。
Qiskitは、クラウド量子コンピューター (英語版 ) サービスのソフトウェア開発を実現するためにIBM Research によって作成された[ 3] [ 4] 。学術機関等の外部の支援者からもコントリビューションが行われている[ 5] 。
Qiskitの正式バージョンではPython プログラミング言語を利用する。Swift [ 6] とJavaScript [ 7] で記述することも可能。これらは、OpenQASM (英語版 ) 表記に基づいて量子プログラムを記述することになる。
量子コンピューターに使用されるサンプルとして、さまざまなJupyter notebooksが提供されている[ 8] 。
コンポーネント
Qiskitは、OpenQASM の機械語 水準と、量子コンピューターの専門知識を持たないエンドユーザーに適した抽象水準の両方で量子ソフトウェアを開発する機能を提供する。これらの機能は下記のコンポーネントによって提供されている[ 9] 。
Terra
Qiskit Terraは、量子機械語水準か、それに近い量子回路を作成するツールを提供する[ 10] 。量子ハードウェアで実行される量子ゲートを明示的に構築することができる。また、特定のデバイス用に量子回路を最適化するツール、ジョブの管理、リモートの量子デバイスにアクセスしシミュレートするツールが含まれる。
Qiskit Terraの例は次のようになる。ベル状態 を作成するために必要な量子ゲート を含む、2つの量子ビット を作成する量子回路である。量子回路は各量子ビットからビット を抽出する量子測定 を行って終了する。
from qiskit import QuantumRegister , ClassicalRegister
from qiskit import QuantumCircuit , Aer , execute
q = QuantumRegister ( 2 )
c = ClassicalRegister ( 2 )
qc = QuantumCircuit ( q , c )
qc . h ( q [ 0 ])
qc . cx ( q [ 0 ], q [ 1 ])
qc . measure ( q , c )
作成した量子回路は、バックエンド(量子ハードウェアまたはシミュレター)で実行できる。次の例ではローカルのシミュレーターを使用する。
backend = Aer . get_backend ( 'qasm_simulator' )
job_sim = execute ( qc , backend )
sim_result = job_sim . result ()
print ( sim_result . get_counts ( qc ))
最後のPrint関数がバックエンドの返した結果を表示する。結果は、量子回路の複数の実行結果から取得したビット文字列を表示するPythonの辞書型となっている。今回使用した量子回路では、ビット列'00'
と'11'
が唯一の結果であり、同じ確率で発生するはずだ。したがって、通常の結果は {'00':519, '11':505}
などの2つのサンプルがほぼ等しく分割される。
Qiskit Terraを利用する量子ハードウェアで行われた実験は、量子誤り訂正[ 11] [ 12] 、エンタングルメントの生成[ 13] 、均衡とは程遠いダイナミクスのシミュレーション[ 14] といった分野の多くの研究論文で使用される[ 15] 。
Aqua
Qiskit Aquaは、ユーザー自身が量子プログラミングを行うことなく使用できるツールを提供する[ 16] 。現在、化学 、AI 、最適化 、金融 の分野がサポートされる。ユーザーが問題を与え、その分野で標準的な(化学用ツールPySCF など)を使用して定義された結果を受け取ることができる。対応する量子アルゴリズム がQiskit Aquaには実装されている。
Aer
短期的に見て、量子ソフトウェアの開発は小さい量子デバイスのシミュレーションに使用される。Qiskitでは、これをAerコンポーネントが提供する。ユーザーのデバイスでローカルに実行されるシミュレーターと、クラウドを通じて利用可能なHPC が提供される。また、ノイズの影響を再現することもできる[ 17] 。
Ignis
Ignisは、短期的なデバイスのノイズ特性のツールを含むコンポーネントであり、ノイズ影響下での計算を可能にする。これには、デバイスのベンチマーク、エラーの軽減、エラー修正のためのツールが含まれる[ 18] 。
脚注
出典
^ Jay M. Gambetta (March 27, 2018). “Looking back on a year of Qiskit ”. Medium . September 24, 2019 閲覧。
^ “Releases – Qiskit Terra ”. November 1, 2019 閲覧。
^ Magee, Tamlim (August 24, 2018). “What is Qiskit, IBM's open source quantum computing framework ”. Computerworld UK . 11 December 2018 閲覧。
^ Hemsoth, Nicole (August 7, 2018). “QISKit Developments Key to IBM Quantum Engagement ”. The Next Platform . 11 December 2018 閲覧。
^ “Qiskit website ”. November 1, 2019 閲覧。
^ “Qiskit in swift ”. GitHub . September 24, 2019 閲覧。
^ “Qiskit (Quantum Information Science Kit) for JavaScript ”. GitHub . September 24, 2019 閲覧。
^ “A collection of Jupyter notebooks showing how to use Qiskit that is synced with the IBM Q Experience ”. GitHub . September 24, 2019 閲覧。
^ Javadi-Abhari, Ali (July 13, 2018). “Qiskit and its Fundamental Elements ”. Medium . 10 January 2019 閲覧。
^ “Qiskit Terra ”. Qiskit . September 24, 2019 閲覧。
^ Wootton, James R.; Loss, Daniel (2018). “Repetition code of 15 qubits”. Physical Review A 97 (5). arXiv :1709.00990 . doi :10.1103/PhysRevA.97.052313 . ISSN 2469-9926 .
^ Roffe, Joschka; Headley, David; Chancellor, Nicholas; Horsman, Dominic; Kendon, Viv (2018). “Protecting quantum memories using coherent parity check codes”. Quantum Science and Technology 3 (3): 035010. arXiv :1709.01866 . doi :10.1088/2058-9565/aac64e . ISSN 2058-9565 .
^ Wang, Yuanhao; Li, Ying; Yin, Zhang-qi; Zeng, Bei (2018). “16-qubit IBM universal quantum computer can be fully entangled”. npj Quantum Information 4 (1). doi :10.1038/s41534-018-0095-x . ISSN 2056-6387 .
^ Zhukov, A. A.; Remizov, S. V.; Pogosov, W. V.; Lozovik, Yu. E. (2018). “Algorithmic simulation of far-from-equilibrium dynamics using quantum computer”. Quantum Information Processing 17 (9). arXiv :1807.10149 . doi :10.1007/s11128-018-2002-y . ISSN 1570-0755 .
^ “Community papers ”. IBM Q Experience . November 1, 2019 閲覧。
^ “Qiskit Aqua website ”. November 1, 2019 閲覧。
^ Wood, Christopher J. (December 19, 2018). “Introducing Qiskit Aer: A high performance simulator framework for quantum circuits ”. Medium . September 24, 2019 閲覧。
^ “Ignis provides tools for quantum hardware verification, noise characterization, and error correction. ”. GitHub . September 24, 2019 閲覧。