Skip to main content
IBM Quantum Platform

RossSelingerSynthesis

class qiskit.transpiler.passes.synthesis.ross_selinger_plugin.RossSelingerSynthesis

GitHub

Bases: UnitarySynthesisPlugin

Un complemento de síntesis unitaria Qiskit de Ross-Selinger.

El algoritmo se describe en [1]. El código fuente (en Rust) está disponible en https://github.com/qiskit-community/rsgridsynth.

Este complemento se invoca cuando transpile() el unitary_synthesis_method parámetro se establece en "gridsynth".

Este complemento admite la personalización y se pueden pasar parámetros adicionales al complemento pasando un diccionario como parámetro unitary_synthesis_plugin_config de la transpile() función.

Parámetros admitidos en el diccionario:

epsilon ( f64 ):

El error de aproximación permitido.

Referencias:

[1] Neil J. Ross, Peter Selinger, Aproximación óptima sin ancilla de Clifford+T de rotaciones z,

arXiv:1403.2975


Atributos

max_qubits

El número máximo de qubits admitidos es 1.

min_qubits

El número mínimo de qubits admitidos es 1.

supported_bases

El complemento no admite bases para la síntesis.

supports_basis_gates

El complemento no admite puertas básicas. Por defecto, se sintetiza a la base ["h", "s", "t", "x"] de la puerta.

supports_coupling_map

El complemento no admite mapas de acoplamiento.

supports_gate_errors

El complemento no admite errores de puerta.

supports_gate_errors_by_qubit

Devuelve si el complemento admite la toma gate_errors_by_qubit

Esto difiere de supports_gate_errors/gate_errors al utilizar una vista diferente de los mismos datos. En lugar de estar ordenado por nombre de puerta, está ordenado por qubit y utiliza Gate instancias para representar las puertas (en lugar de nombres de puertas).

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 puede 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 informadas en gate_errors son proporcionadas por el dispositivo de destino Backend objeto y el significado exacto puede variar según el backend.

El valor predeterminado es False

supports_gate_lengths

El complemento no admite longitudes de puerta.

supports_gate_lengths_by_qubit

Devuelve si el complemento admite la toma gate_lengths_by_qubit

Esto difiere de supports_gate_lengths/gate_lengths al utilizar una vista diferente de los mismos datos. En lugar de estar codificado por el nombre de la puerta, está codificado por qubit y utiliza Gate instancias para representar puertas (en lugar de nombres de 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 length valor se expresa en segundos.

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

El valor predeterminado es False

supports_natural_direction

El complemento no admite la dirección natural, no asume puertas bidireccionales de dos qubits.

supports_pulse_optimize

El complemento no admite la optimización de pulsos.

supports_target

Si el complemento admite tomar target como una opción

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

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


Métodos

run

run(unitary, **options)

GitHub

Ejecute el complemento de síntesis Ross-Selinger en la unidad dada.

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