Skip to main content
IBM Quantum Platform

CliffordUnitarySynthesis

class qiskit.transpiler.passes.synthesis.clifford_unitary_synth_plugin.CliffordUnitarySynthesis

GitHub

Bases: UnitarySynthesisPlugin

Un plugin de síntesis unitaria Clifford.

El plugin es invocado por el UnitarySynthesis transpiler pass cuando el parámetro method se establece en "clifford".

El plugin comprueba si el unitario dado puede ser representado por un Clifford, en cuyo caso devuelve un circuito que implementa este unitario y que consiste sólo en puertas Clifford.

Además, el parámetro plugin_config de UnitarySynthesis se puede utilizar para pasar los siguientes parámetros específicos del plugin:

  • min_qubits: el número mínimo de qubits a tener en cuenta (el valor predeterminado es 1).
  • max_qubits: el número máximo de qubits a considerar (el valor por defecto es 3).

Atributos

max_qubits

min_qubits

supported_bases

supports_basis_gates

supports_coupling_map

supports_gate_errors

supports_gate_errors_by_qubit

Devuelve si el plugin permite tomar gate_errors_by_qubit

Se diferencia de supports_gate_errors/gate_errors en que utiliza una visión diferente de los mismos datos. En lugar de estar codificado por nombre de puerta, está codificado por qubit y utiliza instancias para representar puertas (en lugar de nombres de puerta) Gate para representar las puertas (en lugar de sus nombres).

gate_errors_by_qubit será un diccionario en forma de {(qubits,): [Gate, error]}. Por ejemplo:

{
(0,): [SXGate(): 0.0006149355812506126, RZGate(): 0.0],
(0, 1): [CXGate(): 0.012012477900732316]
}

Tenga en cuenta que este diccionario podría no estar completo o estar vacío, ya que depende de que el backend de destino informe de los errores de puerta en cada puerta para cada qubit. Las tasas de error de puerta indicadas en gate_errors son proporcionadas por el objeto Backend del dispositivo de destino y el significado exacto puede ser diferente dependiendo del backend.

El valor por defecto es Falso

supports_gate_lengths

supports_gate_lengths_by_qubit

Devuelve si el plugin permite tomar gate_lengths_by_qubit

Se diferencia de supports_gate_lengths/gate_lengths en que utiliza una visión diferente de los mismos datos. En lugar de estar codificado por nombre de puerta, está codificado por qubit y utiliza Gate para representar las puertas (en lugar de los nombres de las puertas)

gate_lengths_by_qubit será un diccionario en forma de {(qubits,): [Gate, length]}. Por ejemplo:

{
(0,): [SXGate(): 0.0006149355812506126, RZGate(): 0.0],
(0, 1): [CXGate(): 0.012012477900732316]
}

donde el valor length está en unidades de segundos.

Tenga en cuenta que este diccionario puede no estar completo o estar vacío, ya que depende de que el backend de destino informe de las longitudes de puerta en cada puerta para cada qubit.

El valor por defecto es Falso

supports_natural_direction

supports_pulse_optimize

supports_target

Si el plugin permite tomar target como opción

target será un Target que representa el dispositivo de destino para la salida del pase de síntesis.

Por defecto será False ya que la interfaz del plugin es anterior a la clase Target de la clase Si un plugin devuelve True para este atributo, se espera que el plugin utilice el parámetro Target en lugar de los valores pasados si se establece alguno de supports_gate_lengths, supports_gate_errors, supports_coupling_map, y supports_basis_gates (aunque lo ideal sería que todos esos parámetros contuvieran información duplicada).


Métodos

run

run(unitary, **options)

GitHub

Ejecuta el plugin CliffordUnitarySynthesis en la unidad dada.

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