Qiskit 0.34 リリースノート
0.34.2
Terra 0.19.2
前奏曲
Qiskit Terra 0.19.2 は主にバグフィクスリリースですが、すべての主要プラットフォームの Python 3.10 用に作られたホイールも付属しています。
新機能
- Python 3.10。 これには、対応プラットフォーム上の Python 3.10 用に、 PyPI にコンパイル済みバイナリを公開することも含まれる。
アップグレードの注意
- Python 3.10 以降、Qiskit Terraは32ビットプラットフォームのサポートを縮小します。 これらは Linux i686、32ビットのWindowsである。 Python 3.10 を持つこれらのプラットフォームは、Tier 2のサポートではなくTier 3になりました ( https://qiskit.org/documentation/getting_started.html #platform-supportで定義されたTierによる)これは、アップストリームの依存関係であるNumpyとScipyがサポートをやめたためです。 Qiskitはこれらのプラットフォーム向けにコンパイル済みバイナリを公開しますが、公開前にパッケージをテストすることはできません。また、
pip、依存関係をソースからビルドできるように、C/C++コンパイラが必要です。 これらのプラットフォームを使用している場合、 Python 3.7、 3.8、 3.9 を使用することをお勧めします。
バグ修正
-
を変換しようとするバグを修正した。
CVaRMeasurementを密行列に変換しようとするバグを修正した。PauliSumOpを密行列に変換しようとするバグを修正。 大きな演算子(> 16 qubits)の場合、この計算は非常に高価であり、qiskit.utils.algorithm_globals.massive = Trueを使用して明示的に有効にしないとエラーが発生した。 このチェックは、大量の量子ビットに対しても効率的である。 -
DAGCircuit.draw()と関連する関数dag_drawer()は、提供されたファイル名が有効でない場合、より有用なエラーメッセージを表示するようになりました。 -
QuantumCircuit.add_register()が与えられても、回路内でAncillaQubitビットがすでに存在するAncillaRegisterビットが既に存在する場合 -
の固定変換
QuantumCircuitへの変換を固定した。ClbitをInstructionへの変換を修正した。circuit_to_instruction()関数またはQuantumCircuit.to_instruction()メソッドを使用する際に 例えば、以下のようになります:from qiskit.circuit import QuantumCircuit, Qubit, Clbit qc = QuantumCircuit([Qubit(), Clbit()]) qc.h(0).c_if(qc.clbits[0], 0) qc.to_instruction() -
レジスタが重複ビットを正しく拒否するようになった。 7446を修正。
-
FakeOpenPulse2Qモック・バックエンドは、その量子ビットの T2 時間と読み出しエラーが保存されるようになった。 これらは任意の値であり、作成時の実際のバックエンドとほぼ一致している。 -
の2量子ビット進化の量子ビット次数を固定する。
PauliEvolutionGateもし積公式合成で使うなら 例えば、以前はIIZ + IZI + IZZfrom qiskit.circuit.library import PauliEvolutionGate from qiskit.opflow import I, Z operator = (I ^ I ^ Z) + (I ^ Z ^ I) + (I ^ Z ^ Z) print(PauliEvolutionGate(operator).definition.decompose())生成
┌───────┐ q_0: ┤ Rz(2) ├──────── ├───────┤ q_1: ┤ Rz(2) ├─■────── └───────┘ │ZZ(2) q_2: ──────────■──────であるのに対して、今は正しくこうなる
┌───────┐ q_0: ┤ Rz(2) ├─■────── ├───────┤ │ZZ(2) q_1: ┤ Rz(2) ├─■────── └───────┘ q_2: ───────────────── -
latexおよびmplの回路ドロワーで、名前に複数のアンダースコアを含むレジスタ名が正しく表示されない問題を修正。 -
ドロワーからの配列出力における負の数は、巨大な分子と分母を持つ分数ではなく、10進数として表示されるようになりました。 正の数と同様に、比率が小さい数同士であれば、分数であることに変わりはない。
-
ターゲット上で
Target.get_non_global_operation_names()メソッドをターゲット上で実行すると、理想的なグローバルオペレーションを持つターゲット上で例外が不正に発生する問題を修正しました。 以前は、このメソッドが、命令のプロパティがNoneに設定されている、理想的なグローバルに定義された操作を含むターゲット上で呼び出された場合、このメソッドは、その命令をグローバルとして扱う代わりに例外を発生させていた。 -
関数に
transpile()関数の問題を修正しました。Targetオブジェクトをtargetkwarg で直接渡された場合に失敗することがある関数の問題を修正した。 -
の問題を修正した。
transpile()関数で、backend引数がBackendV2またはTargettargetであった場合に失敗することがあった問題を修正した。 -
ブロッホ球をプロットすると、Jupyterで
AttributeErrorが発生する問題を修正。また、 Matplotlib 3.3 または 3.4 ( 3.5 は不可)で図をトリミングしようとすると、 が発生する問題を修正。 例えば、以下のコードは以前はメッセージとともにクラッシュしていた:AttributeError: 'Arrow3D' object has no attribute '_path2d'が、現在サポートされているすべてのバージョンの Matplotlib で成功する:
from qiskit.visualization import plot_bloch_vector plot_bloch_vector([0, 1, 0]).savefig("tmp.png", bbox_inches='tight') -
のバグを修正した。
PauliSumOp.permute()のバグを修正しました。 このバグは、演算子の量子ビット数を変更しない順列でのみ発生した。 -
PauliEvolutionGate.inverse()、以前は進化時間を逆算して逆数を計算していたのを修正。 これは、演算子を正確に進化させた場合にのみ正しい逆数となる。 特に、トロッター化に基づく時間発展の逆数が正しくなかった。 -
この
QuantumInstance.execute()メソッドは、回路のリストが与えられると、もはやその入力を変異させない。 -
明示的なno-op定義があったカスタム命令のQPYシリアライズを修正。 これまでは、(定義が与えられていない)不透明なゲートと同じように書き込まれ、その後読み込まれていた。 これで、空の定義を正しくラウンドトリップできるようになった。 例えば、以下のようになります:
import io from qiskit.circuit import Instruction, QuantumCircuit, qpy_serialization # This instruction is explicitly defined as a one-qubit gate with no # operations. empty = QuantumCircuit(1, name="empty").to_instruction() # This instruction will perform some operations that are only known # by the hardware backend. opaque = Instruction("opaque", 1, 0, []) circuit = QuantumCircuit(2) circuit.append(empty, [0], []) circuit.append(opaque, [1], []) qpy_file = io.BytesIO() qpy_serialization.dump(circuit, qpy_file) qpy_file.seek(0) new_circuit = qpy_serialization.load(qpy_file)[0] # Previously both instructions in `new_circuit` would now be opaque, but # there is now a correct distinction. circuit == new_circuit -
不足していた
BackendV2.provider抽象クラスの実装にBackendV2の実装に欠落していた属性を追加した。 以前はBackendV2バックエンドはプロバイダーで初期化することができたが、ユーザーからはアクセスできなかった。 -
のサポートを修正した。
QuantumInstanceクラスのサポートを修正しました。BackendV2バックエンドで 以前はQuantumInstanceをBackendV2を使おうとするとエラーになっていた。 -
のバグを修正。
VQEにおいて、ansatzのサイズが変更された場合に、ansatzのパラメータが明示的にASCIIソートされたままになっていたバグを修正した。 このため、結果オブジェクトのoptimal_point属性で最適化された値の順序が不一致になった。特に、ユーザーによってansatzが設定されず、VQEが11以上の自由パラメータを持つデフォルトを選択した場合に、このバグが発生した。
-
でパーサーを停止した。
QuantumCircuit.from_qasm_str()とfrom_qasm_file()のパーサーは、 2.0 以外の言語バージョンであることを示す OpenQASM プログラムを受け入れないようにした。 このパーサーは OpenQASM 2.0 にのみ対応している。 OpenQASM 3.0 からインポートされた回路のサポートは、今後のリリースで追加される予定である。 -
制御フロー命令を含む
QuantumCircuitオブジェクトのシリアライズを修正しました。 以前は、以下を含む回路をシリアライズしようとするとIfElseOp,WhileLoopOpまたはForLoopOpを含む回路をシリアライズしようとすると、シリアライズに失敗していました。 7583を修正。 -
のQPYシリアライズを修正。
QuantumCircuitビットのサブセットを含むQuantumRegisterまたはClassicalRegister. 以前は、このような回路をシリアライズしようとすると、これらのビットをスタンドアロンとして誤って扱っていました。QubitまたはClbitレジスタがセットされていない 例えば、このような回路を直列化しようとした場合:import io from qiskit import QuantumCircuit, QuantumRegister from qiskit.circuit.qpy_serialization import load, dump qr = QuantumRegister(2) qc = QuantumCircuit([qr[0]]) qc.x(0) with open('file.qpy', 'wb') as fd: dump(qc, fd)この回路がロードされると、回路がレジスタのビットのサブセットしか含んでいなくても、レジスタは正しくフルに入力される。
-
QFTインスタンス化されたり、精度が落ちるような設定でビルドされた場合は、OverflowErrorを上げるのではなく、警告を出すようになりました。 これは、量子ビット数が非常に大きい場合(1000をわずかに超える)、近似度が同様に大きくなくても起こりうる。 これで回路は正常に構築されるが、倍精度浮動小数点数の制限により、いくつかの角度はゼロと区別できないかもしれない。
エア 0.10.3
前奏曲
Qiskit Aer 0.10.3 は主にバグフィクスリリースで、 0.10.2 リリース以降に発見されたいくつかのバグを修正しています。 しかし、このリリースでは、すべての主要プラットフォームでプリコンパイルされたバイナリホイールを含む Python 3.10 での実行のサポートも導入されている。 このリリースには、 macOS の arm64 用のコンパイル済みバイナリ・ホイールも含まれています。
新機能
-
Python 3.10。 これには、対応プラットフォーム上の Python 3.10 用に、 PyPI にコンパイル済みバイナリを公開することも含まれる。
-
M1 macOS システムのサポートを追加。 arm64 macOS でサポートされている Python バージョン >= 3.8 用のプリコンパイル済みバイナリは、今回および今後のリリースについては PyPI で公開される予定です。
アップグレードの注意
- Qiskit Aer は Python >= 3.10 の 32 ビットプラットフォームを完全にサポートしなくなりました。 これらは Linux i686、32ビットのWindowsである。 Python 3.10 を持つこれらのプラットフォームは、Tier 2のサポートではなくTier 3になりました ( https://qiskit.org/documentation/getting_started.html #platform-supportで定義されたTierによる)これは、アップストリームの依存関係であるNumpyとScipyがサポートをやめたためです。 Qiskitはこれらのプラットフォーム向けにコンパイル済みバイナリを公開しますが、公開前にパッケージをテストすることはできません。また、
pip、依存関係をソースからビルドできるように、C/C++コンパイラが必要です。 これらのプラットフォームを使用している場合、 Python 3.7、 3.8、 3.9 を使用することをお勧めします。
バグ修正
-
RelaxationNoisePass、実際の命令の単位に関係なく、命令の持続時間が常に dt 時間単位であると仮定されていたバグが修正された。 すべての命令継続時間単位で単位変換が正しく処理されるようになりました。詳細は #1453を参照のこと。
-
を返すノイズ関数の
LocalNoisePassに関する問題を修正。QuantumCircuitを返すノイズ関数の問題を修正しました。 これらは、シミュレートするためにアンロールする必要がある不透明な回路命令としてDAGに追加された。 この修正により、回路命令が新しいDAGに追加され、すべての回路命令がシミュレータでサポートされていれば、追加のアンロールなしでシミュレーションできるようになります。詳細は #1447を参照。
-
回路のゲート数が
fusion_parallelization_thresholdを超える場合、対角ゲートを生成するためのマルチスレッド・トランスピレーションが正しく動作するようになった。 以前は、異なるスレッドが同じ要素を複数のブロックに融合させることがあり、不正確な結果が生じていた。 -
パラメータ化されたQobjにおける回路の切り捨てに関するバグを修正しました。 以前は、パラメータ化されたQObjのパラメータは、その回路の未使用の量子ビットが切り捨てられた場合に間違って解決されることがありました。
詳細は #1427を参照のこと。
イグニス 0.7.0
変更なし
IBM Q プロバイダー 0.18.3
変更なし
0.34.1
Terra 0.19.1
変更なし
エア 0.10.2
バグ修正
-
ループ・パラメーターがループ本体で使用されていない
forループのシミュレーションを修正。 例えば、以前はこのコードは失敗していたが、今は成功する:import qiskit from qiskit.providers.aer import AerSimulator qc = qiskit.QuantumCircuit(2) with qc.for_loop(range(4)) as i: qc.h(0) qc.cx(0, 1) AerSimulator(method="statevector").run(qc) -
QuantumError.to_dict()、N量子ビット回路命令において、アセンブルされた命令が命令量子ビットではなく、常に量子ビット[0, ..., N-1]に適用されるバグを修正。 このバグは、デバイスと偽のバックエンドノイズモデルにも影響した。詳細は 1415号を参照。
イグニス 0.7.0
変更なし
IBM Q プロバイダー 0.18.3
変更なし
0.34.0
Qiskit 0.34.0 にはQiskit Aerのポイントリリースが含まれています: バージョン 0.10.1、これはリリース直後に発見されたバージョン 0.10.0 のパフォーマンスの不具合を修正したものです。 Qiskit Aer 0.10.0 および 0.10.1 のリリースノートは以下をご参照ください。
Terra 0.19.1
変更なし
エア 0.10.1
前奏曲
Qiskit Aer 0.10.1 パッチは、Qiskit Aer 0.10.0 で発生したパフォーマンスの不具合を修正します。
バグ修正
- Python multiprocessing呼び出しが意図せずネストされた結果、 Python からC++にノイズ・モデルをロードする際のシリアライゼーション・オーバーヘッドが大幅に増加したことによるノイズ・シミュレーションのパフォーマンス低下を修正しました。 詳細は 1407号を参照。
エア 0.10.0
前奏曲
Qiskit Aer 0.10 リリースには、いくつかのパフォーマンスとノイズモデルの改善が含まれています。 ハイライトをいくつか挙げる:
- パラレルショットGPUおよびHPCシミュレーションの性能向上
- QASM 3.0 制御フロー命令を含む回路のシミュレーションをサポート
- バックエンドのノイズモデルでスケジュール回路の緩和ノイズをサポート
- カスタムのゲートエラーやノイズモデルを定義し、回路に挿入するためのユーザー作成のトランスパイラパスをサポート。
新機能
-
Qiskit-Terra 0.19.0 で導入された QASM 3.0 制御フロー命令のサポートを追加。 サポートされている命令は以下の通り。
ForLoopOp,WhileLoopOp,ContinueLoopOp,BreakLoopOp,IfElseOp. -
GPUシミュレーションのためのバッチショットシミュレーションの最適化が追加されました。 このオプション機能は、1つまたは複数のGPUで利用可能なメモリを使用して複数のシミュレーションショットを並列に実行し、ノイズモデルや中間測定値を含むマルチショットシミュレーションのパフォーマンスを大幅に向上させます。
このオプションは、
device="GPU"と、"statevector"または"density_matrix"のシミュレーションmethodをAerSimulatorと併用する場合に、デフォルトで有効になります。 シミュレーターのオプションでbatched_shots_gpu=False。この最適化は、複数のシミュレーションを並行して実行するのに十分なGPUメモリがある、小から中程度の数の量子ビットに最も有効です。 この最適化を有効にするための最大アクティブ回路量子ビット数は、
batch_shots_gpu_max_qubitsシミュレータ・オプションを使用して設定できます。 このオプションのデフォルト値は16である。 -
カスタムエクゼキュータに、ノイズの多い回路の複数ショットを並列に実行するための新しい
max_shot_sizeオプションを追加。例えば、カスタムエグゼキューターで
max_shot_size:backend = AerSimulator( max_shot_size=1, max_job_size=1, executor=custom_executor) job = backend.run(circuits)は、ノイズの多い回路のショットを複数の回路に分割する。 個々のショットの実行がすべて終了すると、ジョブの結果は自動的に1つのオブジェクトにまとめられ、 によって返される。
Resultオブジェクトにまとめられ、job.result()によって返される。 -
mps_swap_direction、2qubitゲートの内部スワップの方向を決定できるシミュレータオプションを追加。 可能な値は"mps_swap_right"および"mps_swap_left"です。 回路によっては、スワップの方向が性能に影響することもある。 -
AerSimulatorの"matrix_product_state"シミュレーション手法に新しい測定サンプリング最適化を実装。 現在のところ、このアルゴリズムは、すべての量子ビットが測定され、シミュレータmps_sample_measure_algorithmシミュレータ・オプションが"mps_probabilities"に設定されている場合にのみ使用されます。 -
AerSimulatorの"matrix_product_state"シミュレーショ ン法の対策命令のパフォーマンスを改善した。 -
スタビライザー・シミュレーション・メソッドの状態をオブジェクトとして保存するための
SaveClifford命令を追加。Cliffordオブジェクトとして保存する命令を追加。ただし、この命令は保存された状態を、
SaveStabilizer。StabilizerStateオブジェクトの代わりにCliffordオブジェクトとして返す。 -
命令依存の量子エラーを回路に挿入するためのトランスパイラ・パスを2つ追加:
qiskit.providers.aer.noise.LocalNoisePassqiskit.providers.aer.noise.RelaxationNoisePass
LocalNoisePassパスは、以下の形式のノイズ生成関数を定義することで、カスタムパラメータ化されたノイズモデルを実装するために使用できますdef fn( inst: Instruction, qubits: Optional[List[int]] = None, ) -> InstructionLikeこれは、命令と量子ビットの引数のプロパティやパラメータに依存するノイズ命令(例えば、
QuantumErrorまたは他の命令)を返します。この関数は、回路内のすべての命令、または指定されたサブセットに適用することができます(詳細については、
LocalNoisePassのドキュメントを参照してください)RelaxationNoisePassは、LocalNoisePassの特殊なケースであり、あらかじめ定義されたノイズ関数を使用する。このノイズ関数は、命令の各クビットに対して、thermal_relaxation_error()のテンソル積を返す。この積は、命令の持続時間と、パスの緩和時定数パラメータに依存する。 -
NoiseModel.from_backend()およびAerSimulator.from_backend()によって実装された基本的なデバイス・ノイズ・モデルは、RelaxationNoisePassを使用して、回路遅延ゲートの持続時間依存緩和誤差を追加できるようにアップグレードされました。ノイズの多いシミュレーションを実行するときにこのノイズを有効にするには、まず、次のように回路をスケジュールしてスケジュールされた遅延命令を挿入する必要があります:
backend = AerSimulator.from_backend(ibmq_backend) scheduled_circuit = qiskit.transpile( circuit, backend=backend, scheduling_method='asap') result = backend.run(scheduled_circuit).result()回路がスケジューリングされずにトランスパイルされた場合(また、遅延命令が含まれていない場合)、ノイズの多いシミュレーションは遅延緩和エラーの影響を含みません。 この場合、シミュレーションは以前のqiskit-aer 0.9 シミュレーションと同等になり、緩和ノイズはバックエンドのプロパティから得られる持続時間に基づいてゲート命令に追加されるだけです。
-
例えば、
QuantumErrorのコンストラクタは、noise_opsの引数としていくつかの新しいタイプの入力を受け付けるようになった:import numpy as np from qiskit import QuantumCircuit from qiskit.circuit.library import IGate, XGate, Reset from qiskit.quantum_info import Kraus from qiskit.providers.aer.noise import QuantumError # Quantum channels kraus = Kraus([ np.array([[1, 0], [0, np.sqrt(1 - 0.9)]], dtype=complex), np.array([[0, 0], [0, np.sqrt(0.9)]], dtype=complex) ]) print(QuantumError(kraus)) # Construction from a QuantumCircuit qc = QuantumCircuit(2) qc.h(0) qc.cx(0, 1) error = QuantumError(qc) # Construction from a tuple of (Instruction, List[int]), where the list of # integers represents the qubits. error = QuantumError((Reset(), [0])) # Construction from an iterable of objects in the same form as above, but # where each also has an associated probability. error = QuantumError([ ((IGate(), [0]), 0.9), ((XGate(), [0]), 0.1), ]) # A short-hand for the iterable form above, where the qubits are implicit, # and each instruction is over all qubits. error = QuantumError([(IGate(), 0.9), (XGate(), 0.1)])元のJSONベースの入力フォーマットは非推奨であることに注意。
-
与えられた関数をノイズモデル内のすべての
QuantumErrorsに適用してノイズモデルを構築するためのユーティリティ関数qiskit.providers.aer.utils.transform_noise_model()を追加。 -
QuantumErrorに含まれる回路とNoiseModelに含まれるすべてのエラーをトランスパイルするための2つのユーティリティ関数qiskit.providers.aer.utils.transpile_quantum_error()とqiskit.providers.aer.utils.transpile_noise_model()を追加。 -
に変換することなく、
QuantumErrorオブジェクトを直接追加する機能を追加。QuantumCircuit命令に変換することなくKraus命令に変換することなくノイズの多い回路命令を定義するための
NoiseModelを構築する代わりに、あるいはそれに加えて、量子エラーを含む回路をAerSimulatorおよびQasmSimulatorシミュレータで実行できるようになった。例:
from qiskit import QuantumCircuit from qiskit.providers.aer import AerSimulator from qiskit.providers.aer.noise import pauli_error error_h = pauli_error([('I', 0.95), ('X', 0.05)]) error_cx = pauli_error([('II', 0.9), ('XX', 0.1)]) qc = QuantumCircuit(3) qc.h(0) qc.append(error_h, [0]) qc.cx(0, 1) qc.append(error_cx, [0, 1]) qc.cx(0, 2) qc.append(error_cx, [0, 2]) qc.measure_all() backend = AerSimulator(method='stabilizer') result = backend.run(qc).result() result.get_counts(0)量子エラーを含む回路は、量子チャネルを使用して評価することもできる。
quantum_info量子チャネルとDensityMatrixクラス。
アップグレードの注意
-
いくつかの保存命令の戻り値の型が、生の NumPy 配列や辞書ではなく、対応するQiskit Terraクラスに変更されました。 変更されたタイプは以下の通り
save_statevector()として返すようになりました。Statevectorsave_density_matrix()として返すようになりました。DensityMatrixsave_stabilizer()として返すようになった。StabilizerStatesave_unitary()として返すようになった。Operatorsave_superop()として返すようになった。SuperOpsave_probabilities_dict()として返すようになりました。ProbDistribution
-
qiskit.providers.aer.noise.errors.standard_errorsに含まれるすべての関数がデフォルトで標準ゲートを使用するように更新されたため、standard_gatesのデフォルト値をNoneに変更。 -
サポートされていない引数が
approximate_quantum_error()に与えられると、RuntimeErrorの代わりにNoiseErrorが発生するようになった。
非推奨のメモ
-
save_statevector(),save_density_matrix(),save_unitary(),save_superop()の戻り値の型に NumPyndarrayのメソッドと属性を使用することは非推奨となり、将来のリリースでは機能しなくなります。 これらの命令は現在qiskit.quantum_infoクラスを返します。 これらのオブジェクトを NumPy 配列として扱う部分的な後方互換性は、非推奨期間中に内部配列にメソッドを転送することによって実装されています。 -
の引数に
BackendPropertiesbackendNoiseModel.from_backend()オブジェクトを渡すことは、継続時間に依存する遅延ノイズと互換性がないため、非推奨となりました。 代わりにQiskit TerraBackendV1オブジェクトを渡す。 -
QuantumErrorコンストラクタのnumber_of_qubitsオプションを非推奨とし、寸法を自動的に決定するようにした。 -
QuantumErrorコンストラクタのstandard_gatesオプションを非推奨とし、基底変更機能を外部化することにした。 多くの場合、approximate_quantum_error()を使えば、どんなエラーでも、特定のゲートのみで定義されたエラーに変換することができる。 -
qiskit.providers.aer.noise.errors.standard_errorsの全関数のstandard_gatesオプションを非推奨とし、デフォルトではできるだけ標準ゲートを混ぜた形でエラーを返すようにした。 -
errorutilsにあるすべての関数は、qiskit.providers.aer.noise.errors.standard_errorsの関数を実装するためだけに使われるヘルパー関数であり、プライベート関数として提供されるべきであったため、非推奨とした。 -
NoiseModel.from_backend()のstandard_gatesオプションを非推奨とし、このような基底変更機能を外部化することにした。 -
Qobj (JSON) フォーマットに依存しないノイズモデルを作るために、
NoiseModel.from_dict()は廃止されました。 -
approximate_quantum_error()とapproximate_noise_model()を除くqiskit.providers.aer.noise.utils.noise_transformationのすべてのパブリック変数、関数、クラスを非推奨とした。なぜなら、これらはapproximate_*関数の実装にのみ使用されることを意図したヘルパー関数であり、プライベート関数として提供されるべきであったからである。 -
C++コードが回路を切り捨てた場合、ノイズモデルを自動的に切り捨て、再マップするようになったため、
remap_noise_model()。
その他の注意事項
- 関数
approximate_quantum_error()の実装を変更すると、Qiskit Aer 0.9 と比較した結果の近似誤差が変わる可能性があります。
イグニス 0.7.0
変更なし
IBM Q プロバイダー 0.18.3
バグ修正
- Qiskit Terra 0.19.1 以上で
ParameterExpressions を使用した場合の JSON エンコードおよびデコードに関する問題を #1100 で修正。 以前は、JSON出力から再構築されたParameterインスタンスは、異なる一意の識別子を持ち、入力と不同に見えることがあった。 これで彼らは正しいバック・アイデンティティを持つことになる。