CommutationChecker
class qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000, *, gates=None)
Bases: object
Comprobar conmutaciones de dos operaciones.
Dos unitarios y en qubits conmutan si
donde
y fijamos en para tener en cuenta los errores de redondeo en sistemas de pocos qubits. Esta métrica se elige por coherencia con otras comprobaciones de proximidad de Qiskit.
Siempre que sea posible, las relaciones de conmutación se consultan en una tabla de referencia. Este es el caso de las puertas estándar sin parámetros (como XGate o HGate) o de las puertas con parámetros libres (como RXGate con un ParameterExpression como ángulo). De lo contrario, se lleva a cabo una comprobación basada en matrices, en la que se dice que dos operaciones conmutan si la fidelidad media de las puertas al realizar la conmutación está por encima de un umbral determinado (véase approximation_degree).
qiskit.circuit.commutation_checker.CommutationChecker.__init__()El argumento cache_max_entries ha quedado obsoleto a partir de la versión 2.5.0 de Qiskit. Se eliminará en Qiskit 3.0.
Métodos
Parámetros
check_commutation_entries
check_commutation_entries(first_op, first_qargs, second_op, second_qargs)
Devuelve la relación de conmutación almacenada, si existe
Parámetros
- first_op (Operation) – primera operación.
- first_qargs (list) – los qubits de la primera operación.
- second_op (Operation) – segunda operación.
- second_qargs (list) – los qubits de la segunda operación.
Devuelve
Verdadero si las puertas conmutan y falso si no es el caso.
Tipo de retorno
clear_cached_commutations
clear_cached_commutations()
Borra el diccionario de conmutaciones almacenadas en caché
Este método no realiza ninguna operación, ya que ya no existe una caché interna
El método qiskit.circuit.commutation_checker.CommutationChecker.clear_cached_commutations() ha quedado obsoleto a partir de Qiskit 2.5. Se eliminará en Qiskit 3.0.
commute
commute(op1, qargs1, cargs1, op2, qargs2, cargs2, max_num_qubits=None, approximation_degree=1.0, matrix_max_num_qubits=3)
Comprueba si dos operaciones son conmutativas. El valor de retorno de True significa que las operaciones realmente conmutan, y el valor de retorno de False significa que las operaciones no conmutan o que se omitió la comprobación de conmutación (por ejemplo, cuando las operaciones tienen condiciones o tienen demasiados qubits).
Parámetros
- op1 (Operation) – primera operación.
- qargs1 (Sequence[Qubit |int]) – los qubits de la primera operación.
- cargs1 (Sequence[Qubit |int]) – los clbits de la primera operación.
- op2 (Operation) – segunda operación.
- qargs2 (Sequence[Qubit |int]) – los qubits de la segunda operación.
- cargs2 (Sequence[Qubit |int]) – los clbits de la segunda operación.
- max_num_qubits (int | None) – el número máximo de qubits a tener en cuenta; la comprobación puede omitirse si el número de qubits para cualquiera de las operaciones supera esta cantidad. El valor predeterminado es
None, lo que significa que no hay límite. Véase tambiénmatrix_max_num_qubitspara limitar la dimensión de las matrices calculadas. - approximation_degree (float) – Si la fidelidad media de la puerta entre las dos operaciones es superior a este número (hasta
1e-12), se supone que conmutan. - matrix_max_num_qubits (int) – el número máximo de qubits para los que se permite calcular la representación matricial. Esto es necesario si no se dispone de una comprobación eficaz, por ejemplo, en el caso de puertas personalizadas.
Devuelve
Si dos operaciones son conmutativas.
Tipo de retorno
commute_nodes
commute_nodes(op1, op2, max_num_qubits=3, approximation_degree=1.0)
Comprueba si dos DAGOpNode objetos conmutan.
Esto equivale a commute() pero con la operación, los qubits y los clbits agrupados en el DAGOpNode objeto. Consulta commute() aquí para obtener más detalles.
Parámetros
Tipo de retorno
num_cached_entries
num_cached_entries()
Devuelve el número de entradas en caché
Este método siempre devolverá 0, ya que ya no hay caché interna.
El método qiskit.circuit.commutation_checker.CommutationChecker.num_cached_entries() ha quedado obsoleto a partir de Qiskit 2.5. Se eliminará en Qiskit 3.0.