Skip to main content
IBM Quantum Platform

Qiskit 0.9 リリースノート


0.9

Terra 0.8

ハイライト

  • パルス・コマンドの構築、パルス・チャンネルでのスケジューリング、可視化、 IBM Qデバイスでの実行のためのツールを含む、 qiskit.pulse のPulseモジュールの紹介。
  • QuantumCircuit、インストラクション・クラスが改良され、任意の部分回路をより大きな回路に合成したり、パラメータ化された回路を作成できるようになった。
  • qiskit.quantum_info の下にある強力な Quantum Info モジュールで、オペレータやチャネルを操作したり、回路内部でそれらを使用するためのツールを提供します。
  • 新しいトランスパイラ最適化パスと定義済みトランスパイルルーチンへのアクセス。

新機能

  • コアとなる StochasticSwap ルーチンは Cythonで実装されている。
  • 量子チャンネルとCPTPマップを操作するための QuantumChannel クラスを追加。
  • パラメータ化された回路のサポート
  • PassManager インターフェイスが改良され、カスタム・パス・マネージャーとのインタラクションや使い方がより簡単になるように新機能が追加されました。
  • プリセット PassManager、あらかじめ決められたトランスパイラー・パスのパイプラインを提供します。
  • ユーザー設定ファイルにより、ローカル環境で一部の関数のデフォルト値を上書きできる。
  • 新しいトランスパイラーに合格: EnlargeWithAncilla Unroll2QNoiseAdaptiveLayoutOptimizeSwapBeforeMeasureRemoveDiagonalGatesBeforeMeasureCommutativeCancellationCollect2qBlocksConsolidateBlocks

互換性に関する考慮事項

0.8 リリースの一環として、以下のものが非推奨となり、将来のリリースで削除されるか、後方互換性のない方法で変更される予定です。 厳密には必要ではないが、これらは(特に断りのない限り) 0.9、将来的な変更を避けるためにリリース前に調整すべきことである。

  • DAGCircuit_get をプレフィックスとするメソッドは、プレフィックスなしでリネームされる。
  • CouplingMapcouplinglist の要素をタプルからリストに変更。
  • アンローラーベースは明示的でなければならなくなり、違反すると QiskitError
  • qiskit.tools.qcvv パッケージは非推奨であり、将来的に削除される予定です。 このモジュールを置き換えるQiskit Ignisの使用に移行してください。
  • qiskit.compile() 関数は非推奨となり、 qiskit.compiler.transpile() 関数を使用して回路を変換し、 qiskit.compiler.assemble() 関数を使用して回路からQobjを作成します。 compile(...) の代わりに assemble(transpile(...), ...) を使う。
  • qiskit.converters.qobj_to_circuits() は非推奨となり、将来のリリースで削除される予定です。 代わりに、コンパイルされたQobjから QuantumCircuit オブジェクトを抽出するために、 qiskit.assembler.disassemble() を使用する必要があります。
  • qiskit.mapper 名前空間は廃止されました。 LayoutCouplingMap クラスは qiskit.transpiler を介してアクセスできる。
  • qiskit.tools.qi.qi にあったいくつかの関数は非推奨となり、 qiskit.quantum_info に移された。

このリリースでは、いくつかの後方互換性のない変更が加えられていることにご注意ください。 以下のノートには、これらの変更に対応するための情報が記載されている。

IBM Q プロバイダー

IBM Qプロバイダーは、以前はTerraに含まれていましたが、別のパッケージ qiskit-ibmq-provider に分割されました。 これは、 pip install qiskit-ibmq-provider とともに pypi 経由でインストールするか、 qiskit.IBMQ または qiskit.providers.ibmq にアクセスするためにソースからインストールする必要があります。 pip install qiskit でqiskitをインストールすると、Qiskitプロジェクトのすべてのサブパッケージが自動的にインストールされます。

Cython コンポーネント

0.8 リリースから、核となるストキャスティックスワップ・ルーチンが Cythonで実装された。 しかし、Terraをソースからビルドする場合や、 non-x86 やその他のプラットフォームで実行する場合、ホイールがあらかじめビルドされておらず、ソースディストリビューションからインストールする場合は、Qiskit Terraをインストール/ビルドする前に、Cythonがインストールされていることを確認する必要があります。 これはpip/pypiで簡単にできる: pip install Cython.

コンパイラワークフロー

qiskit.compile() 関数は非推奨となり、まず qiskit.compiler.transpile() を呼び出して回路の最適化とマッピングを実行し、次に qiskit.compiler.assemble() を呼び出して最適化された回路から Qobj を構築してバックエンドに送信するように変更されました。 これは非推奨に過ぎないが、もし古い qiskit.compile()

transpile()、assemble()、execute() パラメータ

これらの関数は負荷が高く、さまざまな入力を受け付ける。 回路入力とパルス入力を扱うことができる。 これらの関数の backend を除くすべてのkwargsは、これまで受け入れられていた型のリストも受け付けるようになった。 initial_layout kwargは、リストとしても辞書としても指定できるようになった。たとえば、量子ビット13と14のベル実験をマップするには、 initial_layout=[13, 14] または initial_layout={qr[0]: 13, qr[1]: 14}

Qobj

Qobjクラスはユースケースに応じて2つのサブクラスに分割され、それぞれパルスジョブ用の PulseQobj 、サーキットジョブ用の QasmQobj 。 Qobjと直接やりとりする場合は、それに応じて使い方を調整する必要があるかもしれない。

qiskit.qobj.qobj_to_dict() は削除されています。 代わりにQobjオブジェクトの to_dict()

視覚化

視覚化モジュールの最大の変更点は、 qiskit.tools.visualization から qiskit.visualization に移動したことだ。 これは、可視化モジュールが単なるツールではないことを示すために行われた。 しかし、このインターフェイスは 0.7 リリースで安定が宣言されたので、 qiskit.tools.visualization のパブリック・インターフェイスは引き続き動作する。 将来のリリースでは変更されるかもしれないが、その場合は削除される前に非推奨となる。

これまで非推奨とされていた関数、 plot_circuit()latex_circuit_drawer()generate_latex_source()matplotlib_circuit_drawer()qiskit.tools.visualization が削除された。 これらの関数の代わりに、適切な引数で qiskit.visualization.circuit_drawer()

style kwarg辞書の plot_barriersreverse_bits キーは非推奨であり、代わりに qiskit.visualization.circuit_drawer() kwarg plot_barriersreverse_bits が使用されるべきである。

これまで qiskit.tools.visualization._state_visualization モジュールに含まれていたウィグナー・プロット関数 plot_wigner_function, plot_wigner_curve, plot_wigner_plaquette, plot_wigner_data が削除された。 それらは、一般の安定したインターフェイスを通じて公開されることはなく、文書化もされていなかった。 この機能を使用するコードはqiskit-tutorialsリポジトリからアクセスできます。

マッパー

qiskit.mapper にあったパブリック API は qiskit.transpiler に移された。 今回のリリースでは非推奨となったが、 0.9 リリースでは削除される予定である。 qiskit.mapper がリリースされる前に、 LayoutCouplingMap の使い方を更新し、 ではなく qiskit.transpiler からインポートするようにすれば、将来驚くような事態を避けることができる。

エア 0.2

新機能

バグ修正

  • Terra アドオン qiskit-aer #46 の macOS で OpenMP がクラッシュする問題を修正

互換性に関する考慮事項

  • QasmSimulator および StatevectorSimulator qiskit-aer #185 のバックエンドオプション "initial_statevector" を非推奨とした
  • "chop_threshold" バックエンドオプションの名前を "zero_threshold" に変更し、デフォルト値を 1e-10 に変更した

イグニス 0.1

新機能

  • 量子体積
  • テンサード検量線を用いた測定緩和
  • 同時RBには、サブセット間でクリフォード・ゲートを整列させるオプションがある
  • 測定補正は、量子ビットのサブセットに対して新しいキャリブレーションを生成することができる

互換性に関する考慮事項

  • RB は、従来のレジスタの最小セットに書き込みます (以前は Q [i] ->C [i] でした)。 この変更により、RBによる測定補正が可能になった。 ユーザーが外部解析コードを持たない限り、このことで結果が変わることはない。 0.1 のRB回路は、 0.1.1 のフィッターとは互換性がありません。

アクア 0.5

新機能

  • HHLアルゴリズムの実装 LinearSystemInput
  • バリアント付きプラグ可能コンポーネント Eigenvalues EigQPE
  • プラガブル・コンポーネント Reciprocal LookupRotation および LongDivision
  • 多重制御 U1 および U3 操作 mcu1 および mcu3
  • コンポーネントから派生したプラグ可能コンポーネント QFT IQFT
  • DEBUGロギングレベルでトランスパイルサーキットをまとめた
  • QuantumInstance basis_gates 、。 coupling_map
  • RY および RYRZ 変分形式でのエンタングルメントに cx ゲートを使用することをサポート (cz はデフォルトの選択)
  • QAOAで任意のミキサー・ハミルトニアンの使用をサポートし、制約付き最適化問題でのQAOAの使用を可能にする。 [arXiv:1709.03489]
  • VQE 変分アルゴリズムの基本クラス VQAlgorithm を追加。 QSVMVariational
  • DOcplexの最適化モデルからイジング・ハミルトニアンを自動生成するための ising/docplex.py を追加した
  • 'basic-dirty-ancilla' モードを追加 mct
  • マルチ・コントロール、マルチ・ターゲット・ゲート用に mcmt が追加された
  • AND、OR、DNF(分離正規形)、CNF(接続正規形)の論理式から回路を生成する機能を公開
  • ESOP(排他的論理和)式から回路を生成する機能が追加され、 Quine-McCluskey、オプションで最適化できるようになった。 ExactCover
  • 任意のブール論理式(DIMACSサポートを含む)からオラクル回路を生成するための LogicalExpressionOracle (オプションの最適化機能付き)が追加されました
  • 真理値表からオラクル回路を生成するための TruthTableOracle が追加され、オプションで最適化機能が追加された
  • ユーザー指定の回路からオラクルを生成するための CustomCircuitOracle を追加
  • Deutsch-Jozsaアルゴリズムの実装を追加
  • Bernstein-Vaziraniアルゴリズムの実装を追加
  • サイモン・アルゴリズムの実装を追加
  • ショールのアルゴリズムの実装を追加
  • グローバーのアルゴリズムに、(デフォルトの一様な重ね合わせではなく)カスタム初期状態を取るオプション機能を追加
  • 既存の回路を使用して Custom の初期状態を作成する機能を追加
  • ADAM(およびAMSGRAD)最適化アルゴリズムの追加
  • 多変量分布が追加され、不確実性モデルが一変量分布と多変量分布のコンポーネントを持つようになった
  • qft および iqft 回路構成にスワップ操作を含めるかスキップするかのオプションを追加
  • 古典的線形システムソルバーを追加 ExactLSsolver
  • HHL アルゴリズムにパラメータ auto_hermitian および auto_resize を追加し、デフォルトで非エルミートおよび非 2n2^n サイズの行列をサポートする
  • 分類のために、特徴ベクトルを量子ビットの状態に直接マッピングする別の特徴マップ、 RawFeatureVector を追加した
  • SVM_Classical で学習させたモデルをロードできるようになった。 QSVM

バグ修正

  • ising/docplex.py を修正し、制約の定数値を正しく乗算するようにした
  • を使用して名前空間パッケージを正しく識別するようにパッケージのセットアップを修正しました。 setuptools.find_namespace_packages

互換性に関する考慮事項

  • QuantumInstance memory
  • コマンドラインとGUIを別のレポに移動 (qiskit_aqua_uis)
  • SAT 特有のオラクルを削除(現在は LogicalExpressionOracle でサポート)
  • mctadvanced モードの実装を変更。 ch の代わりにシンプルな h ゲートを使用。 _multicx
  • コンポーネント random_distributions に名称変更 uncertainty_models
  • 様々な共通ゲート (ch, cry, mcry, mct, mcu1, mcu3, mcmt, logic_and, and logic_or) と回路 (PhaseEstimationCircuit, BooleanLogicCircuits, FourierTransformCircuits, and StateVectorCircuits) の構造を circuits ディレクトリの下に再編成
  • アルゴリズムを QSVMVariational から VQC に改名。これは Variational Quantum Classifier の略
  • アルゴリズム名を変更 QSVMKernel QSVM
  • クラス名を SVMInput に変更。 ClassificationInput
  • 問題タイプ 'svm_classification' を次のように変更した。 'classification'
  • FeatureMapVariationalForm で使用されている entangler_map のタイプをリストのリストに変更

IBM Q プロバイダー 0.1

新機能

  • スタンドアロン・パッケージとしては初のリリースとなる。 Terraをスタンドアロンでインストールする場合、 IBM Qバックエンドを使いたいなら、 pip install qiskit-ibmq-provider とともに qiskit-ibmq-provider パッケージもインストールする必要がある。
  • 非Qobj形式のジョブのサポートがプロバイダから削除されました。 投稿する前に、古いフォーマットの投稿をQobjに変換する必要があります。
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。