Skip to main content
IBM Quantum Platform

Pases del transpilador

qiskit.transpiler.passes


Selección de diseño (colocación)

SetLayout(*args, **kwargs)Establece la propiedad layout en el diseño dado.
TrivialLayout(*args, **kwargs)Elija un Layout asignando n qubits de circuito a qubits de dispositivo 0, .., n-1.
DenseLayout(*args, **kwargs)Elige una disposición encontrando el subconjunto de qubits más conectado.
SabreLayout(*args, **kwargs)Elija un trazado mediante enrutamiento bidireccional iterativo del circuito de entrada.
CSPLayout(*args, **kwargs)Si es posible, elige un Layout como CSP, utilizando backtracking.
VF2Layout(*args, **kwargs)Un pase para elegir un Layout de un circuito sobre un grafo de Acoplamiento, como problema de isomorfismo de subgrafos, resuelto por VF2++.
ApplyLayout(*args, **kwargs)Aplicar o actualizar la asignación de qubits virtuales a qubits físicos en el archivo DAGCircuit.
Layout2qDistance(*args, **kwargs)Evalúe hasta qué punto ha sido buena la selección del diseño.
EnlargeWithAncilla(*args, **kwargs)Amplía el dag con qubits virtuales que están en el diseño pero aún no en el circuito.
FullAncillaAllocation(*args, **kwargs)Asigna todos los nodos ociosos del mapa de acoplamiento o del destino como ancilla en el diseño.
SabrePreLayout(*args, **kwargs)Elija un diseño inicial para utilizarlo en otras pruebas de diseño de Sabre.

Direccionamiento

BasicSwap(*args, **kwargs)Mapear (con el mínimo esfuerzo) un DAGCircuit en un coupling_map añadiendo puertas de intercambio.
Commuting2qGateRouter(*args, **kwargs)Una clase para intercambiar la ruta de una o más puertas de desplazamiento al mapa de acoplamiento.
LayoutTransformation(*args, **kwargs)Añade al circuito un circuito Swap para una permutación (parcial) dada.
LookaheadSwap(*args, **kwargs)Mapear el circuito de entrada en una topología backend mediante la inserción de SWAPs.
SabreSwap(*args, **kwargs)Mapear el circuito de entrada en una topología backend mediante la inserción de SWAPs.
StarPreRouting()Enrutamiento previo de estrella a lineal

Cambio de base

BasisTranslator(*args, **kwargs)Traduce las puertas a una base de destino buscando un conjunto de traducciones a partir de un EquivalenceLibrary dado.
Decompose(*args, **kwargs)Expandir una puerta en un circuito utilizando sus reglas de descomposición.
TranslateParameterizedGates(*args, **kwargs)Traducir puertas parametrizadas a un conjunto de bases compatible.
Unroll3qOrMore(*args, **kwargs)Expande recursivamente las compuertas 3q+ hasta que el circuito sólo contiene compuertas 2q o 1q.
UnrollCustomDefinitions(*args, **kwargs)Desenrolla instrucciones con definiciones personalizadas.

Optimizaciones

Collect1qRuns(*args, **kwargs)Recoger subcircuitos de un qubit.
Collect2qBlocks(*args, **kwargs)Recoger subcircuitos de dos qubits.
CollectAndCollapse(*args, **kwargs)Una pasada general de transpilador para recoger y consolidar bloques de nodos en un circuito.
CollectCliffords(*args, **kwargs)Recoge bloques de puertas Clifford y los sustituye por un Clifford objeto.
CollectLinearFunctions(*args, **kwargs)Recoger bloques de puertas lineales (CXGate y SwapGate ) y las sustituye por funciones lineales (LinearFunction).
CollectMultiQBlocks(*args, **kwargs)Recoger secuencias de puertas ininterrumpidas que actúan sobre grupos de qubits.
CommutationAnalysis(*args, **kwargs)Pase de análisis para encontrar relaciones de conmutación entre nodos DAG.
CommutativeCancellation(*args, **kwargs)Anular las puertas redundantes (autoadjuntas) mediante relaciones de conmutación.
CommutativeInverseCancellation(*args, **kwargs)Cancelar pares de puertas inversas explotando las relaciones de conmutación.
CommutativeOptimization(*args, **kwargs)Cancelar/fusionar puertas aprovechando las relaciones de conmutatividad.
ConsolidateBlocks(*args, **kwargs)Sustituye cada bloque de puertas consecutivas por un único nodo unitario.
ContractIdleWiresInControlFlow(*args, **kwargs)Eliminar los qubits ociosos de las operaciones de flujo de control de un DAGCircuit.
ConvertToPauliRotations(*args, **kwargs)Convierte un circuito cuántico que contenga puertas estándar de un qubit, dos qubits y tres qubits, así como barreras y mediciones, en un circuito equivalente que contenga PauliProductRotationGate puertas e PauliProductMeasurement instrucciones.
ElidePermutations(*args, **kwargs)Eliminar las operaciones de permutación de un circuito previo al trazado
HoareOptimizer(*args, **kwargs)Se trata de un pase de transpilador que utiliza la optimización de circuitos lógicos Hoare.
InverseCancellation(*args, **kwargs)Anular Puertas específicas que son inversas entre sí cuando se producen una detrás de otra.
LightCone(*args, **kwargs)Elimine las puertas que no afectan al resultado de una medición en un circuito.
LitinskiTransformation(*args, **kwargs)Aplica la transformada de Litinski a un circuito.
Optimize1qGates(*args, **kwargs)Optimizar cadenas de compuertas single-qubit u1, u2, u3 combinándolas en una única compuerta.
Optimize1qGatesDecomposition(*args, **kwargs)Optimizar cadenas de puertas de un solo qubit combinándolas en una única puerta.
Optimize1qGatesSimpleCommutation(*args, **kwargs)Optimiza las cadenas de compuertas 1Q interrumpidas por compuertas 2Q conmutando los componentes y resintetizando los resultados.
OptimizeAnnotated(*args, **kwargs)Pase de optimización en circuitos con operaciones anotadas.
OptimizeCliffordT(*args, **kwargs)Optimizar secuencias de puertas Clifford+T consecutivas.
OptimizeCliffords(*args, **kwargs)Combina Cliffords consecutivos sobre los mismos qubits.
OptimizeSwapBeforeMeasure(*args, **kwargs)Retire los intercambios seguidos de la medición (y adapte la medición).
RemoveDiagonalGatesBeforeMeasure(*args, **kwargs)Retire las compuertas diagonales (incluidas las compuertas diagonales 2Q ) antes de una medición.
RemoveFinalReset(*args, **kwargs)Elimina el reset cuando es la última instrucción en un cable qubit.
RemoveIdentityEquivalent(*args, **kwargs)Eliminar las puertas con efectos insignificantes.
RemoveResetInZeroState(*args, **kwargs)Elimina la puerta de reinicio cuando el qubit está en estado cero.
ResetAfterMeasureSimplification(*args, **kwargs)Este paso sustituye el reinicio tras la medida por una puerta X condicional.
Split2QUnitaries(*args, **kwargs)Intentar dividir las operaciones unitarias de dos qubits en a DAGCircuit en dos puertas de un solo qubit.
SubstitutePi4Rotations(*args, **kwargs)Convierte las puertas de rotación cuyos ángulos sean múltiplos enteros de π/4\pi/4 en conjuntos discretos de puertas de TdgGate Clifford, TGate y.
TemplateOptimization(*args, **kwargs)Clase para el pase de optimización de plantillas.

Planificación

ALAPScheduleAnalysis(*args, **kwargs)ALAP Scheduling pass, que programa la hora de parada de las instrucciones lo más tarde posible.
ASAPScheduleAnalysis(*args, **kwargs)ASAP Scheduling pass, que programa la hora de inicio de las instrucciones con la mayor antelación posible.
ConstrainedReschedule(*args, **kwargs)Paso del reprogramador que actualiza las horas de inicio de los nodos para ajustarse a las alineaciones del hardware.
ContextAwareDynamicalDecoupling(*args, **kwargs)Implementar un desacoplamiento dinámico de la secuencia X teniendo en cuenta el contexto de la puerta y del qubit.
InstructionDurationCheck(*args, **kwargs)Pase de validación de duración para reprogramación.
PadDelay(*args, **kwargs)Relleno del tiempo de inactividad con instrucciones de retardo.
PadDynamicalDecoupling(*args, **kwargs)Paso de inserción de desacoplamiento dinámico.
SetIOLatency(*args, **kwargs)Establece la información de IOLatency en el circuito de entrada.
TimeUnitConversion(*args, **kwargs)Elija una unidad de tiempo que se utilizará en los siguientes pases de tiempo, y haga que todas las unidades de tiempo del circuito sean coherentes con eso.

Análisis de circuitos

CountOps(*args, **kwargs)Cuenta las operaciones en un circuito DAG.
CountOpsLongestPath(*args, **kwargs)Contar las operaciones en el camino más largo de a DAGCircuit.
DAGLongestPath(*args, **kwargs)Devuelve el camino más largo de un DAGCircuit como una lista de DAGOpNodes, DAGInNodes, y DAGOutNodes.
Depth(*args, **kwargs)Calcular la profundidad de un circuito DAG.
NumTensorFactors(*args, **kwargs)Calcular el número de factores tensoriales de un circuito DAG.
ResourceEstimation(*args, **kwargs)Exigir automáticamente pases de análisis para la estimación de recursos.
Size(*args, **kwargs)Calcula el tamaño de un circuito DAG.
Width(*args, **kwargs)Calcular la anchura de un circuito DAG.

Síntesis

La documentación del plugin de transpilador de síntesis se encuentra en la página qiskit.transpiler.passes.synthesis.plugin página

HLSConfig([use_default_on_unspecified,...] )La configuración de síntesis de alto nivel permite especificar una lista de "métodos" utilizados por HighLevelSynthesis para sintetizar diferentes tipos de objetos de alto nivel.
HighLevelSynthesis(*args, **kwargs)Sintetizar objetos de nivel superior y desenrollar definiciones personalizadas.
LinearFunctionsToPermutations(*args, **kwargs)Promueve funciones lineales a permutaciones cuando es posible.
SolovayKitaev(*args, **kwargs)Descomponga aproximadamente las puertas 1q a una base discreta utilizando el algoritmo Solovay-Kitaev.
SynthesizeRZRotations(*args, **kwargs)Sustituye las puertas RZ por descomposiciones de Clifford+T.
UnitarySynthesis(*args, **kwargs)Sintetiza las puertas en función de sus puertas base.

Diseño de publicación

Son posteriores a la selección de qubits.

VF2PostLayout(*args, **kwargs)Un pase para mejorar un Trazado existente tras la transpilación de un circuito a un grafo de Acoplamiento, como problema de isomorfismo de subgrafos, resuelto por VF2++.

Pases adicionales

BarrierBeforeFinalMeasurements(*args, **kwargs)Añadir una barrera antes de las mediciones finales.
CheckGateDirection(*args, **kwargs)Comprobar si las puertas de dos qubits siguen la dirección correcta con respecto al mapa de acoplamiento.
CheckMap(*args, **kwargs)Comprueba si un circuito DAG ya está asignado a un mapa de acoplamiento.
ContainsInstruction(*args, **kwargs)Una pasada de análisis para detectar si el DAG contiene una instrucción específica.
DAGFixedPoint(*args, **kwargs)Comprueba si el DAG ha alcanzado un punto fijo.
Error(*args, **kwargs)Pase de error que se llamará cuando se produzca un error.
FilterOpNodes(*args, **kwargs)Eliminar todas las operaciones que coincidan con una función de filtro
FixedPoint(*args, **kwargs)Comprueba si una propiedad ha alcanzado un punto fijo.
GateDirection(*args, **kwargs)Modificar las puertas asimétricas para que coincidan con la dirección de acoplamiento del hardware.
GatesInBasis(*args, **kwargs)Comprobar si todas las puertas de un DAG están en un conjunto dado de puertas
MergeAdjacentBarriers(*args, **kwargs)Devuelve un circuito con las barreras adyacentes fusionadas.
MinimumPoint(*args, **kwargs)Comprobar si el DAG ha alcanzado un punto relativamente semiestable en ejecuciones anteriores
RemoveBarriers(*args, **kwargs)Devolver un circuito con cualquier barrera eliminada.
RemoveFinalMeasurements(*args, **kwargs)Eliminar las medidas finales y las barreras al final de un circuito.
UnrollForLoops(*args, **kwargs)UnrollForLoops el paso de transpilación desenrolla los bucles for cuando es posible.
WrapAngles(*args, **kwargs)Envuelve ángulos fuera del límite especificado en el objetivo.

Datos adicionales

qiskit.transpiler.passes.utils.wrap_angles.WRAP_ANGLE_REGISTRY

Una ubicación heredada para WrapAngles.DEFAULT_REGISTRY. Esta ruta solo debe utilizarse cuando se requiera compatibilidad total con Qiskit 2.2.

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