GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

QISKit

qiskit-sdk-py – 量子コンピューティングの実験、プログラム、アプリケーションを書くための量子ソフトウェア開発キット

投稿日:

量子コンピューティングの実験、プログラム、アプリケーションを書くための量子ソフトウェア開発キット http://www.qiskit.org

量子情報ソフトウェアキット(QISKit)

Quantum Information Software Kit( 略してQISKit )は、 OpenQASMIBM Qエクスペリエンス(QX)扱うソフトウェア開発キット(SDK)です。

QISKitを使用して、量子コンピューティングプログラムを作成し、コンパイルし、いくつかのバックエンド(オンラインのリアル量子プロセッサー、オンラインシミュレーター、およびローカルシミュレーター)の1つで実行します。 オンラインバックエンドの場合、QISKitはPython APIクライアントを使用してIBM Qエクスペリエンスに接続します

リクエストとバグを追跡するためにGitHubの問題を使用します。 質問とディスカッションについて は、 IBM Qエクスペリエンス・コミュニティ 参照してください

QISKitに貢献したい場合は、 寄付のガイドライン をご覧ください

セクションへのリンク:

インストール

依存関係

QISKitを使用するは、少なくともPython 3.5以降が必要です。 さらに、チュートリアルとのやり取りには、 Jupiter 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を使って作業を始めましょう。

我々は、ローカルシミュレータを介して実行される量子回路の例を試す準備が整いました。

これは、エンタングル状態を作る簡単な例です。

from qiskit import QuantumProgram, QISKitError, RegisterSizeError

# Create a QuantumProgram object instance.
q_program = QuantumProgram()
backend = 'local_qasm_simulator'
try:
    # Create a Quantum Register called "qr" with 2 qubits.
    quantum_reg = q_program.create_quantum_register("qr", 2)
    # Create a Classical Register called "cr" with 2 bits.
    classical_reg = q_program.create_classical_register("cr", 2)
    # Create a Quantum Circuit called "qc" involving the Quantum Register "qr"
    # and the Classical Register "cr".
    quantum_circuit =
        q_program.create_circuit("bell", [quantum_reg],[classical_reg])

    # Add the H gate in the Qubit 0, putting this qubit in superposition.
    quantum_circuit.h(quantum_reg[0])
    # Add the CX gate on control qubit 0 and target qubit 1, putting
    # the qubits in a Bell state
    quantum_circuit.cx(quantum_reg[0], quantum_reg[1])

    # Add a Measure gate to see the state.
    quantum_circuit.measure(quantum_reg, classical_reg)

    # Compile and execute the Quantum Program in the local_qasm_simulator.
    result = q_program.execute(["bell"], backend=backend, shots=1024, seed=1)

    # Show the results.
    print(result)
    print(result.get_data("bell"))

except QISKitError as ex:
    print('There was an error in the circuit!. Error = {}'.format(ex))
except RegisterSizeError as ex:
    print('Error in the number of registers!. Error = {}'.format(ex))

この場合、出力は次のようになります。

COMPLETED
{'counts': {'00': 512, '11': 512}}

このスクリプトはここで使用できます

実際のQuantumチップでコードを実行する

QISKitを使用して、 実際のQuantum Chipでコードを実行することもできます。 これを行うには、Quantum Experience Accountの資格情報を使用するためにSDKを設定する必要があります。

APIトークンとQE資格情報を設定する

  1. IBM Qエクスペリエンス >アカウントをまだ作成していない場合は作成します
  2. IBM Qエクスペリエンス・ウェブサイトの「 My Account 」>「 Personal Access Token 」からAPIトークンを入手してください。 このAPIトークンを使用すると、IBM Qエクスペリエンスのバックエンドでプログラムを実行できます。
  3. 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 users.
    'hub': 'MY_HUB',
    'group': 'MY_GROUP',
    'project': 'MY_PROJECT'
}
  1. 手順2で抽出した実際のAPIトークンを'MY_API_TOKEN'ます。

  2. IBM Q機能にアクセスできる場合は、ハブ、グループ、およびプロジェクトの値も設定する必要があります。 これを行うには、IBM Qアカウント・ページにある値をconfig変数に入力します。

Qconfig.pyファイルが設定されたら、プログラム/チュートリアルが置かれているディレクトリ/フォルダの下に移動する必要があります。そのため、インポートしてQuantumProgram.set_api()関数で認証に使用できます。 例えば:

from qiskit import QuantumProgram
import Qconfig

# Creating Programs create your first QuantumProgram object instance.
Q_program = QuantumProgram()
Q_program.set_api(Qconfig.APItoken, Qconfig.config["url"], verify=False,
                  hub=Qconfig.config["hub"],
                  group=Qconfig.config["group"],
                  project=Qconfig.config["project"])

これ以上の詳細については、QISKitのドキュメントを参照してください。

次のステップ

これで、 チュートリアルリポジトリの他のいくつかの例をチェックアウトする準備が整いました。 インデックスチュートリアルから始め 、次に「Getting Started」の例に進みます。 ジュピターノートブックをすでにインストールしている場合は、ノートブックをコピーして変更して独自の実験を作成することができます。

チュートリアルをQISKit SDKの一部としてインストールするには、次のインストールの詳細を参照してください 完全なSDKドキュメントは、 docディレクトリ公式のQISKitサイトにあります。

詳しくは

QISKitの使い方、チュートリアルの例、その他の役に立つリンクについては、以下のリソースを参照してください。

QISKitはもともと、 IBM Researchの IBM-Qチームの研究者や開発者によって開発されたもので、量子コンピュータを扱うための高度な開発キットを提供することを目的としています。

QISKitと量子コンピューティングに関する質問とディスカッションについては、 IBM Qエクスペリエンス・コミュニティを参照してください。 QISKitに貢献したい場合は、 寄付のガイドラインをご覧ください。

多言語ガイド

著者(アルファベット順)

Ismail Yunus Akhalwaya、Luciano Bello、Jim Challenger、Andrew Cross、Vincent Dwyer、Mark Everitt、Ismael Faro、Jay Gambetta、Juan Gomez、Juan Gomez、Paco Martin、アントニオ・メザカポ、Diego Moreda、Jesus Perez、Russell Rundle、Todd Tilma、Johnスモーリン、エリックウィンストン、クリスウッド。

将来のリリースでは、このプロジェクトにコードを提供する人は、ここに名前を入れることを歓迎します。

ライセンス

このプロジェクトでは、 Apache License Version 2.0ソフトウェアライセンスを使用しています。







-QISKit
-, , , , ,

執筆者: