Qiskit 0.36 リリースノート
0.36.2
Terra 0.20.2
前奏曲
Qiskit Terra 0.20.2 はバグフィックスリリースで、前回のパッチリリース以降に確認されたいくつかのマイナーな問題に対処しています。
バグ修正
-
に関する問題を修正しました。
BackendV2-FakeMontrealV2のようなqiskit.providers.fake_providerモジュールの偽のバックエンドクラスに基づくdtm属性とdt属性と関連する属性Target.dtの値が正しく秒に変換されない問題を修正しました。 これは、これらの偽のバックエンドをスケジューリングで使用する際に問題を引き起こすだろう。 8018を参照。 -
marginal_counts()は、indicesパラメータに非ゼロ要素を含むメモリをマージナライズするように要求された場合に成功するようになった。 以前は、16進数の結果表現が十分に小さいショットは、ValueError。 8044を参照。 -
OpenQASM 3 エクスポーター(
qiskit.qasm3)は、ゲート宣言の前にinputまたはoutput宣言を出力するようになった。 この方が、 OpenQASM 3 チームが現在参照している ANTLR 文法と一致する。 7964を参照。 -
トランスパイラー・パスのバグを修正。
RZXCalibrationBuilderトランスパイラのパスで、スケーリングされたクロス共振パルスの振幅が、代入後もパラメトライズされているように見えることがあるバグを修正。 このため、パルス可視化ツールは、期待される数値形式ではなく、パラメトリックな形式を使用する可能性がある。 8031を参照。 -
の問題を修正しました。
transpile()関数の問題を修正しました。BackendV2-ベースのバックエンドで実行し、scheduling_methodキーワード引数を設定した場合の関数の問題を修正しました。 以前は、この関数はバックエンドがサポートする命令のデフォルトの持続時間を正しく処理できず、エラーになることがありました。 -
トランスパイラー・パスのバグを修正。
RZXCalibrationBuilderトランスパイラー・パスのバグを修正。 7994を参照。 -
トランスパイラー・パスは
SabreSwapトランスパイラ・パスはtranspile()で使用されるトランスパイラ・パスは、routing_method="sabre"が設定されている場合、トランスパイラの配線段階で、古典的な条件付きゲートとその後継が回路から散発的に削除されることがなくなりました。 8040を参照。 -
Statevectorは、その値(for coefficient in statevectorなど)を直接反復処理できるようになり、lenの下でその長さを正しく報告するようになった。 以前は、境界外のデータにアクセスしようとしてQiskitError. 8039を参照。
エア 0.10.4
変更なし
イグニス 0.7.1
前奏曲
これは主に、qiskit-ignis ドキュメンテーションのビルドに使用されるソースファイルを含む docs/ ディレクトリが Python パッケージに含まれてしまうというパッケージングの問題を修正したバグフィックスリリースです。
IBM Q プロバイダー 0.19.1
変更なし
0.36.1
Terra 0.20.1
前奏曲
Qiskit Terra 0.20.1 は、リリース 0.20.0 で確認された問題を解決するバグフィックスリリースです。
既知の問題
-
QPYのデシリアライズは
qpy.load()関数でのデシリアライズは失敗します。UCPauliRotGateオブジェクトの関数を使ったデシリアライズは、クラスへの回転軸引数が標準的な場所に格納されていないため、失敗します。 これを回避するには、代わりにサブクラスを使うことができる:UCRXGate,UCRYGateまたはUCRZGate(それぞれ"X","Y","Z"の回転軸を使用しているかどうかに基づく)を使用することができます。このサブクラスはクラスのコンストラクタに回転軸を埋め込み、QPYで正しく動作します。 -
Qiskit Terra 0.20 で紹介されて以来、、
XXPlusYYGateは、他のすべての回転ゲートと比較して負の角度規約を使用しています。 Qiskit Terra 0.21 では、他の回転ゲートと整合するように修正されます。 これは他の回転ゲートには影響しない。XXMinusYYGate.
バグ修正
-
固定
Clifford,PauliそしてCNOTDihedral命令を含む互換回路からの演算子初期化Delay命令が含まれています。 これらの命令は、演算子に変換される際、同一性として扱われる。 -
を修正しました。
eval_observables()関数のquantum_state引数の型がStateFnであった場合にエラーが発生する問題を修正した。eval_observablesタイプヒントで示されるすべての入力タイプを正しくサポートするようになった。 -
可視化関数の問題を修正
dag_drawer()およびメソッドDAGCircuit.draw()オブジェクトの視覚化を生成しようとすると、ドロワーが失敗する問題を修正しました。DAGCircuitオブジェクトに対して可視化を生成しようとすると、ドロワーが失敗していた問題を修正しました。QubitまたはClbitQuantumRegisterClassicalRegisterを含むオブジェクトに対して視覚化を生成しようとすると、ドロワーが失敗していた問題を修正しました。 7915を修正。 -
Dragクラスのパラメータ検証を修正した。 以前は、負の符号を持つ大きなベータ値には感度がなく、最大値が振幅限界 1.0 を超える波形サンプルになっていた可能性がある。 -
多くのアルゴリズム(例えば
QuantumInstance多くのアルゴリズム(VQEなど)で使われるクラスは、ジョブのステータスが更新されるのを待つループの間、スリープの値をハードコーディングしていた。 のイニシャライザーでwait属性に従って設定されたスリープ値を尊重するようになりました。QuantumInstance. -
関数の問題を修正しました。
schedulelist関数の問題を修正しました。QuantumCircuitオブジェクトが返される問題を修正しました。Schedulelistオブジェクトが返される問題を修正しました。 -
plot_error_mapの可視化関数で、提供されたバックエンドのBackendPropertiesまたはBackendV2バックエンドで実行した場合に動作しない問題を修正した。 修正 #7879。 -
のインスタンスがメソッド に与えられたとき、指数関数的な実行時間と非終了になるバグを修正した。
Pauliインスタンスがinit_observables()メソッドに与えられたときに、指数関数的な実行時間と非終了になるバグを修正した。 -
固定
SabreSwapを修正した。transpile()optimization_level=3で、測定値の並び替えが不正になることがありました。 以前は、2つの測定が同じクラシカル・ビットに書き込まれていた、SabreSwapは、(カップリング・マップに依存して)それらを並べ替えて、非等価回路を生成することができた。 この挙動は確率的なものであり、確実に現れるとは限らない。 7950を修正 -
トランスパイラー・パスは
SabreSwapトランスパイラー・パス、ひいてはSabreLayoutとtranspile()optimization_level=3に、無限ループにはまらないことを保証するエスケープメカニズムが追加された。 以前は、ある種の入力が、運が悪ければ、探索空間の安定した局所最小値にはまり込み、パスがそれ以上進まなくなることがあった。 最近、ルーティングが進んでいないことを検知すると、ルーティングを継続させるために一連のスワップを強制するようになった。 修正 #7707。 -
の関数を介したQPYのデシリアライズに関する問題を修正しました。
qpy.load()関数を介したUCRXGate,UCRYGateおよびUCRZGateクラスの関数によるQPYデシリアライズの問題を修正しました。 以前は、これらのゲートのいずれかを含むQPYファイルは、ファイルをロードしようとするとエラーになった。 修正 #7847。
エア 0.10.4
変更なし
イグニス 0.7.0
変更なし
IBM Q プロバイダー 0.19.1
0.19.1
バグ修正
- PR #1129
least_busy()メソッドを更新し、 BaseBackend を有効な入出力型としてサポートしないようにした。 は qiskit-terra では長い間非推奨であり、最近削除されたからである。
0.36.0
Terra 0.20.0
変更なし
エア 0.10.4
アップグレードの注意
- Qiskit Aerは、安全でない浮動小数点最適化でコンパイルされなくなりました。 ほとんどの影響はQiskit Aerに局所化されているはずだが、以前は、ライブラリが「ゼロにフラッシュ」モードを誤って設定したために、正常でない処理の一部がユーザーコードに漏れていた可能性がある。 これはもう起こらないだろう。
バグ修正
-
スーパーオペがキャッシュ・ブロックされることを認識するよう、キャッシュ・ブロック・トランスパイラを修正。 This is fix for issue 1479 <https://github.com/Qiskit/qiskit-aer/issues/1479> density_matrixをノイズモデルで並列化できるようになった。 この問題を検証するために、新しいテスト test_noise.TestNoise.test_kraus を追加した。 また、この修正には、新しいテストケースの追加によって発見された問題1483 <https://github.com/Qiskit/qiskit-aer/issues/1483> の修正が含まれています。 これにより、statevectorのチャンクに対する測定が修正された。
-
バックエンドから T2 の値が 2 ㎤以上 T1 が供給された場合に
NoiseModel.from_backend()でエラーが発生するバグを修正。 この修正後は、 T2 の値を 2 ˶* T1 まで切り捨て、切り捨てた場合は警告を出すようになりました。 このバグは#1391で導入されたもので、それ以前のNoiseModel.from_backend()では、 T2 の値を 2 ㏄* T1 まで無言で切り捨てていた。詳細は 1464号を参照。
-
device=Thrustは、 OpenMP スレッディングが常に適用されていたため、少ない量子ビット数では非常に遅かった。 この修正は、statevector_parallel_thresholdを使用することで、device=CPUと同じように OpenMP。
-
Qiskit Aerは、ロード時に浮動小数点モードを "flush to zero "に設定しなくなった。 ダウンストリームユーザーは以前、次のようなNumpyからの警告を目にしたことがあるかもしれない:
<class ‘numpy.float64’> タイプの最小サブノーマルの値はゼロ。
浮動小数点の扱いも正しくなります。
-
属性が設定された回路でシミュレーションを実行する際の潜在的な問題を修正しました。
QuantumCircuit.metadata属性が設定されている回路でシミュレーションを実行すると発生する可能性のある問題を修正しました。 アトリビュートはmetadata属性には任意のpython辞書を指定することができ、以前のqiskit-aerではその内容がJSONシリアライズ可能でなくても、回路の残りの入力と一緒に処理するためにJSONシリアライズを試みていました。 属性はシミュレーションの実行には使用されないため、このようなことは起こりません。QuantumCircuit.metadata属性はシミュレーションの実行に使用されないため、この現象は発生しなくなりました。qiskit.result.Resultオブジェクトに直接アタッチされます。 1435を修正
イグニス 0.7.0
変更なし
IBM Q プロバイダー 0.19.0
新機能
- qiskit-ibmq-provider パッケージが IBM Quantum LiveData 機能をサポートするようになった。 これらの機能により、ユーザーはジョブの実行中に IBM Quantum バックエンドのリアルタイムの動作を観察することができる。 具体的には、プロバイダはバックエンドのJupyter関連ウィジェットに新しいタブを含み、許可された IBM Quantumバックエンドでlive_data_enabled=Trueパラメータを持つジョブの実行(
qiskit.providers.ibmq.IBMQBackend.run()メソッド経由)をサポートするようになった。 qiskit.providers.ibmq.runtime.IBMRuntimeService.run()メソッドで Qiskit Runtime ジョブをサブミットする際に、optionsキーワードで異なるロギング・レベルを指定できるようになりました。
アップグレードの注意
- Python 3.6 2021年12月に耐用年数を迎えるため、サポートは終了した。
- qiskit.providers.ibmq.random CQC乱数抽出器へのアクセスに使用されていた乱数サービスはサポートされなくなり、削除されました。
非推奨のメモ
qiskit.providers.ibmq.runtime.IBMRuntimeService.run()メソッドのimageキーワードは非推奨。 代わりに、optionsキーワードで使用する画像を指定する必要があります。
バグ修正
- 問題 #190を修正しました。 現在、
qiskit.providers.ibmq.runtime.RuntimeEncoderとqiskit.providers.ibmq.runtime.RuntimeDecoderが更新され、Instructionクラスのインスタンスを扱えるようになった。 - オブジェクト型を持つnumpyのndarraysがシリアライズできない問題 #74を修正しました。
qiskit.providers.ibmq.runtime.RuntimeEncoderおよびqiskit.providers.ibmq.runtime.RuntimeDecoderが更新され、これらのndarraysを扱えるようになった。