Skip to main content
IBM Quantum Platform

CommutationChecker

class qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000, *, gates=None)

GitHub

Bases: object

Comprobar conmutaciones de dos operaciones.

Dos unitarios AA y BB en nn qubits conmutan si

2nFprocess(AB,BA)+12n+1>1ε,\frac{2^n F_{\text{process}}(AB, BA) + 1}{2^n + 1} > 1 - \varepsilon,

donde

Fprocess(U1,U2)=Tr(U1U2)2n2,F_{\text{process}}(U_1, U_2) = \left|\frac{\mathrm{Tr}(U_1 U_2^\dagger)}{2^n} \right|^2,

y fijamos ε\varepsilon en 101210^{-12} 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).

En desuso desde la versión 2.5.0

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

  • standard_gate_commutations (dict | None)
  • cache_max_entries (int)
  • gates (set[str] | None)

check_commutation_entries

check_commutation_entries(first_op, first_qargs, second_op, second_qargs)

GitHub

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

bool

clear_cached_commutations

clear_cached_commutations()

GitHub

Borra el diccionario de conmutaciones almacenadas en caché

Este método no realiza ninguna operación, ya que ya no existe una caché interna

En desuso desde la versión 2.5

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)

GitHub

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én matrix_max_num_qubits para 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

bool

commute_nodes

commute_nodes(op1, op2, max_num_qubits=3, approximation_degree=1.0)

GitHub

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

bool

num_cached_entries

num_cached_entries()

GitHub

Devuelve el número de entradas en caché

Este método siempre devolverá 0, ya que ya no hay caché interna.

En desuso desde la versión 2.5

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.

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.