Github: https://github.com/QISKit/qiskit-core
量子情報科学キット(QISKit)
量子情報科学キット( 略してQISKit )は、 OpenQASMとIBM Q Experience(QX)を扱うソフトウェア開発キット(SDK)です。
QISKitを使用して、量子コンピューティングプログラムを作成し、コンパイルし、いくつかのバックエンド(オンラインのリアル量子プロセッサー、オンラインシミュレーター、およびローカルシミュレーター)の1つで実行します。 オンラインバックエンドの場合、QISKitはPython APIクライアントを使用してIBM Q Experienceに接続します 。
リクエストとバグを追跡するためにGitHubの問題を使用します。 質問とディスカッションについて は、 IBM Q Experienceコミュニティ を 参照してください 。
QISKitに貢献したい場合は、 寄付のガイドライン をご覧ください 。
セクションへのリンク:
インストール
依存関係
QISKitを使用するには、少なくともPython 3.5以降が必要です。 さらに、チュートリアルとのやり取りにはJupyter Notebookが推奨されます。 このため、 Anaconda 3の Pythonディストリビューションをインストールすることをお勧めします。これは、これらの依存関係がすべて事前にインストールされているためです。
さらに、量子情報の基本的な理解は、QISKitと対話するときに非常に役立ちます。 初めての方は、 ユーザガイドから始めてください!
インストール
PISツール(Pythonパッケージマネージャー)を使用してQISKitをインストールすることをお勧めします。
pip install qiskit
PIPは自動的にすべての依存関係を処理し、常に最新の(よくテストされた)バージョンをインストールします。
PIPパッケージには、次のプラットフォーム用に事前ビルドされたバイナリが付属しています。
- Linux x86_64
- ダーウィン
- Win64
プラットフォームがリストにない場合、PIPはインストール時にソースからビルドを試みます。 CMake 3.5以上がプリインストールされ、少なくとも1つのビルド環境がCMakeによってサポートされている必要があります。
インストール中にPIPがビルドに成功しない場合は、心配しないで、最後にQISKitをインストールしますが、高性能コンポーネントの一部を利用できない可能性があります。 とにかく、私たちはいつも、代替手段としてPython、それほど高速ではない代替手段を提供しています。
環境の設定
経験を向上させるために、python仮想環境を使用することをお勧めします。 詳細については、 環境設定文書を参照してください。
最初の量子プログラムを作成する
SDKがインストールされたので、QISKitを使って作業を始めましょう。
我々は、ローカルシミュレータを介して実行される量子回路の例を試す準備が整いました。
これは、エンタングル状態を作る簡単な例です。
# Import the QISKit SDK
from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister
from qiskit import available_backends, execute
# Create a Quantum Register with 2 qubits.
q = QuantumRegister(2)
# Create a Classical Register with 2 bits.
c = ClassicalRegister(2)
# Create a Quantum Circuit
qc = QuantumCircuit(q, c)
# Add a H gate on qubit 0, putting this qubit in superposition.
qc.h(q[0])
# Add a CX (CNOT) gate on control qubit 0 and target qubit 1, putting
# the qubits in a Bell state.
qc.cx(q[0], q[1])
# Add a Measure gate to see the state.
qc.measure(q, c)
# See a list of available local simulators
print("Local backends: ", available_backends({'local': True}))
# Compile and run the Quantum circuit on a simulator backend
job_sim = execute(qc, "local_qasm_simulator")
sim_result = job_sim.result()
# Show the results
print("simulation: ", sim_result)
print(sim_result.get_counts(qc))
この場合、出力は次のようになります。
COMPLETED
{'counts': {'00': 512, '11': 512}}
このスクリプトは、実際の量子コンピュータで同じプログラムを実行する方法を示しています。
実際のQuantumチップでコードを実行する
QISKitを使用して、 実際の量子チップ上でコードを実行することもできます。 これを行うには、IBM Q Experienceアカウントの資格情報を使用するようにSDKを構成する必要があります。
APIトークンとQX資格情報を設定する
- IBM Q Experience >アカウントをまだ作成していない場合は作成します。
- IBM QエクスペリエンスのWebサイトから、 [マイアカウント]> [詳細]> [APIトークン]の下にあるAPIトークンを取得します。 このAPIトークンを使用すると、IBM Q Experienceバックエンドでプログラムを実行できます。 参照: 例 。
-
Qconfig.py
というQconfig.py
新しいファイルを作成し、Qconfig.py
にAPIトークンを挿入します。 このファイルの内容は次のとおりです。
APItoken = 'MY_API_TOKEN'
config = {
'url': 'https://quantumexperience.ng.bluemix.net/api',
# The following should only be needed for IBM Q Network users.
'hub': 'MY_HUB',
'group': 'MY_GROUP',
'project': 'MY_PROJECT'
}
-
手順2で抽出した実際のAPIトークンで
MY_API_TOKEN
をMY_API_TOKEN
ます。 -
IBM Qネットワーク機能にアクセスできる場合は、ハブ、グループ、およびプロジェクトの値も設定する必要があります。 これを行うには、IBM Qアカウント・ページにある値を
config
変数に入力します。
Qconfig.py
ファイルが設定されたら、プログラム/チュートリアルが置かれているディレクトリ/フォルダの下に移動する必要があります。そのため、インポートしてregister()
関数で認証に使用できます。 例えば:
from qiskit import register
import Qconfig
register(Qconfig.APItoken, Qconfig.config["url"],
hub=Qconfig.config["hub"],
group=Qconfig.config["group"],
project=Qconfig.config["project"])
これ以上の詳細については、QISKitのドキュメントを参照してください。
次のステップ
これで、 チュートリアルリポジトリの他のいくつかの例をチェックアウトする準備が整いました。 インデックスチュートリアルから始め 、次に「Getting Started」の例に進みます。 ジュピターノートブックをすでにインストールしている場合は、ノートブックをコピーして変更して独自の実験を作成することができます。
チュートリアルをQISKit SDKの一部としてインストールするには、次のインストールの詳細を参照してください 。 完全なSDKドキュメントは、 docディレクトリと公式のQISKitサイトにあります。
詳しくは
QISKitの使い方、チュートリアルの例、その他の役に立つリンクについては、以下のリソースを参照してください。
- ユーザーガイド 、量子情報とコンピューティングの学習の出発点
- チュートリアル (ノートブックなど)は、 インデックスと「Getting Started」Jupyterノートブックから始まります
- QASMコードの追加情報および例については、OpenQASMを参照してください。
- IBM Quantum Experience Composer 、リアル・シミュレートされた量子コンピュータと対話するためのGUI
- QISkit Python API 、 Pythonで IBM Quantum Experienceを使用するAPI
QISKitはもともと、 IBM Researchの IBM-Qチームの研究者や開発者によって開発されたもので、量子コンピュータを扱うための高度な開発キットを提供することを目的としています。
QISKitと量子コンピューティングに関する質問とディスカッションについては、 IBM Q Experienceコミュニティをご覧ください。 QISKitに貢献したい場合は、 寄付のガイドラインをご覧ください。
多言語ガイド
著者(アルファベット順)
QISKitはLuciano Bello、Jim Challenger、Andrew Cross、Ismael Faro、Jay Gambetta、Juan Gomez、Ali Javadi-Abhari、Paco Martin、Diego Moreda、Jesus Perez、Erick Winston、Chris Woodが元々制作しました。
そして、さまざまなレベルでプロジェクトに貢献している多くの人々の助けと仕事で成長し続けています。
ライセンス
このプロジェクトでは、 Apache License Version 2.0ソフトウェアライセンスを使用しています。