CommutationChecker
class qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000, *, gates=None)
ベース: object
2つの操作のコミュテーションをチェックする。
量子ビット上の2つのユニタリー と は、以下の場合に交わる
ここで
また、少数量子ビット系の丸め誤差を考慮し、 を に設定した。 この指標は、Qiskitの他の近さチェックとの一貫性のために選ばれている。
可能な場合は、置換関係はルックアップテーブルから照会されます。 HGateこれは、パラメータを持たない標準的なゲート(やなど XGate )や、自由パラメータを持つゲート(角度 ParameterExpression として を持つ RXGate など)の場合に当てはまります。 approximation_degreeそれ以外の場合は、行列ベースのチェックが行われます。このチェックでは、交換操作を実行した際のゲートの平均忠実度が特定の閾値を上回る場合、2つの演算は可換であると言われます(参照)。
qiskit.circuit.commutation_checker.CommutationChecker.__init__()の引 cache_max_entries 数は、Qiskit 2.5.0 以降、非推奨となっています。 Qiskit 3.0 で削除される予定です。
方法
パラメーター
check_commutation_entries
check_commutation_entries(first_op, first_qargs, second_op, second_qargs)
もしあれば、保存されている転置関係を返します
パラメーター
- first_op (Operation) – 最初の手術
- first_qargs (list) – 最初の演算の量子ビット。
- second_op (Operation) – 回目の手術。
- second_qargs (list) – 2番目の演算の量子ビット。
戻り値
ゲートが通勤していれば真、そうでなければ偽。
戻りの型
clear_cached_commutations
clear_cached_commutations()
キャッシュされたコミュテーションを保持する辞書をクリアする
内部キャッシュがなくなったため、このメソッドは何も行わない(no-op)ものとなります
このメソッド qiskit.circuit.commutation_checker.CommutationChecker.clear_cached_commutations() は、Qiskit 2.5 以降、非推奨となっています。 Qiskit 3.0 で削除される予定です。
commute
commute(op1, qargs1, cargs1, op2, qargs2, cargs2, max_num_qubits=None, approximation_degree=1.0, matrix_max_num_qubits=3)
二つの演算が可換であるかどうかを判定する。 の戻り値は、演算が真に True 可換であることを意味し、の戻り値は、演算が可換でないか、 False 可換性チェックがスキップされたことを意味します(例えば、演算に条件がある場合や量子ビット数が多すぎる場合など)。
パラメーター
- op1 (Operation) – 最初の手術
- qargs1 (Sequence[Qubit |int]) – 最初の演算の量子ビット。
- cargs1 (Sequence[Qubit |int]) – 最初の演算のclbits。
- op2 (Operation) – 回目の手術。
- qargs2 (Sequence[Qubit |int]) – 2番目の演算の量子ビット。
- cargs2 (Sequence[Qubit |int]) – 2番目の演算のclbits。
- max_num_qubits (int | None) – 考慮すべき量子ビットの最大数。いずれかの演算における量子ビット数がこの数を超えた場合、チェックはスキップされる可能性がある。 デフォルトは
None、制限なしを意味します。 また、計算される行列のmatrix_max_num_qubits次元を制限する方法も参照してください。 - approximation_degree (float) – 2つの演算間の平均ゲート・フィデリティがこの数値以上であれば(
1e-12まで)、両者はコミュートすると仮定される。 - matrix_max_num_qubits (int) – 行列表現の計算が許可される量子ビットの最大数。 これは、例えばカスタムゲートなど、すぐに利用できる効率的なチェック機能がない場合に必要となります。
戻り値
二つの演算が可換であるかどうか。
戻りの型
commute_nodes
commute_nodes(op1, op2, max_num_qubits=3, approximation_degree=1.0)
2 DAGOpNode つのオブジェクトが可換であるかどうかを調べます。
これは と同等ですが、 commute() 演算、量子ビット、およびCLビットが オブジェクトに DAGOpNode まとめられています。 詳細については、こちらをご覧ください commute() 。
パラメーター
戻りの型
num_cached_entries
num_cached_entries()
キャッシュされたエントリーの数を返します
内部キャッシュがもはや存在しないため、このメソッドは常に0を返します。
このメソッド qiskit.circuit.commutation_checker.CommutationChecker.num_cached_entries() は、Qiskit 2.5 以降、非推奨となっています。 Qiskit 3.0 で削除される予定です。