UnitarySynthesis
class qiskit.transpiler.passes.UnitarySynthesis(*args, **kwargs)
Bases: TransformationPass
Sintetiza las puertas en función de sus puertas base.
Sintetizar unitarios sobre algunas puertas base.
Este paso puede aproximar unitaries dadas algunas fidelidades de puerta (a través de target). Se puede forzar una mayor aproximación ajustando un dial heurístico approximation_degree.
Parámetros
- basis_gates (list[str]) – Lista de nombres de puertas a las que apuntar. Si no se especifica, debe utilizarse el argumento
target. Si se especifican tanto éste comotarget, se utilizará el valor detargety se ignorará éste. - approximation_degree (float) – dial heurístico utilizado para la aproximación de circuitos ( 1.0=no approximation, 0.0=maximal approximation). La aproximación puede abaratar el circuito sintetizado a costa de alejarse del unitario original. Si es Ninguno, la aproximación se realiza basándose en las fidelidades de puerta.
- coupling_map (CouplingMap) – el mapa de acoplamiento del objetivo en caso de que la síntesis se realice en un circuito físico. La direccionalidad del mapa de acoplamiento se tendrá en cuenta si
pulse_optimizeesTrue/Noneynatural_directionesTrue/None. - pulse_optimize (bool) – Si se optimizan los pulsos durante la síntesis. Un valor de
Nonelo intentará pero retrocederá si no lo consigue. Un valor deTrueprovocará un error si la síntesis optimizada por pulsos no tiene éxito. - natural_direction (bool) – Si se aplica la síntesis considerando la direccionalidad de las puertas de 2 qubits. Sólo se aplica cuando
pulse_optimizeesTrueoNone. La dirección natural se determina comprobando primero si el mapa de acoplamiento es unidireccional. Si no hay mapa de acoplamiento o el mapa de acoplamiento es bidireccional, se utilizará la dirección de puerta con la duración más corta desde las propiedades de destino. Si se establece en True, y no se puede determinar una dirección natural, planteaTranspilerError. Si se establece como Ninguno, no se lanzará ninguna excepción si no se puede determinar una dirección natural. - synth_gates (list[str]) – Lista de puertas a sintetizar. Si None y
pulse_optimizees False o None, por defecto['unitary']. SiNoneypulse_optimize == True, por defecto['unitary', 'swap'] - method (str) – El método de síntesis unitaria plugin de usar.
- min_qubits - El número mínimo de qubits en el unitario a sintetizar. Si se establece y el unitario es menor que el número especificado de qubits, no se sintetizará.
- plugin_config - Argumentos de configuración adicionales opcionales (como
dict) que se pasan directamente al plugin de síntesis unitaria especificado. Por defecto, esto no tendrá ningún efecto ya que el plugin por defecto no tiene argumentos adicionales. Consulte la documentación de su plugin de síntesis unitaria para saber cómo utilizarlo. - target - El valor opcional
Targetpara el dispositivo de destino para el que se está compilando el pase. Si se especifica, esto sustituirá a los valores establecidos parabasis_gatesycoupling_map. - fallback_on_default : especifica si se debe utilizar el método de síntesis predeterminado en caso de que se especifique
methoduna síntesis no predeterminada, pero no sea posible sintetizar la operación o el circuito sintetizado no se ajuste al objetivo.
Eleva
TranspilerError - si se especificó method pero no se encuentra en la lista de plugins instalados. La lista de plugins instalados puede consultarse con unitary_synthesis_plugin_names()
Atributos
is_analysis_pass
Comprueba si el pase es un pase de análisis.
Si el pase es un AnalysisPass, significa que el pase puede analizar el DAG y escribir los resultados de ese análisis en el conjunto de propiedades. Este tipo de paso no permite realizar modificaciones en el DAG.
is_transformation_pass
Comprueba si el pase es un pase de transformación.
Si el pase es un TransformationPass, significa que el pase puede manipular el DAG, pero no puede modificar el conjunto de propiedades (pero se puede leer).
Métodos
execute
execute(passmanager_ir, state, callback=None)
Ejecutar la tarea de optimización para la entrada Qiskit IR.
Parámetros
- passmanager_ir (Any) – Qiskit IR para optimizar.
- state (PassManagerState) – Estado asociado a la ejecución del flujo de trabajo por el propio gestor de pases.
- callback (Callable | None) – Una función de devolución de llamada que se invoca cada vez que se ejecuta una tarea de optimización.
Devuelve
Qiskit IR optimizado y estado del flujo de trabajo.
Tipo de retorno
tupla [ Any, PassManagerState ]
name
run
run(dag)
Ejecute el pase UnitarySynthesis en dag.
Parámetros
dag (DAGCircuit) – input dag.
Devuelve
Dag de salida con UnitaryGates sintetizado a la base objetivo.
Tipo de retorno
update_status
update_status(state, run_state)
Actualizar el estado del flujo de trabajo.
Parámetros
- state (PassManagerState) – Pasar estado de gestor a actualizar.
- run_state (RunState) – Estado de finalización de la tarea actual.
Devuelve
Estado del gestor de pases actualizado.
Tipo de retorno