Skip to main content
IBM Quantum Platform

ConsolidateBlocks

class qiskit.transpiler.passes.ConsolidateBlocks(*args, **kwargs)

GitHub

Bases: TransformationPass

Sustituye cada bloque de puertas consecutivas por un único nodo unitario.

Pasar a agrupar secuencias de puertas ininterrumpidas que actúan sobre los mismos qubits en un UnitaryGate nodo, para que posteriormente se resintetice en un subcircuito potencialmente más óptimo. El modo de funcionamiento habitual de esta fase consiste en analizar los datos DAGCircuit de entrada para localizar todos los bloques de dos qubits del circuito y, a continuación, determinar, basándose en una heurística interna, si ese bloque debe consolidarse en uno UnitaryGate solo o no. Sin embargo, si se block_list establece o run_list en el conjunto de propiedades, esta pasada no realizará su propio análisis del DAG.

Existen dos modos de funcionamiento heredados para esta pasada, dependiendo de si se block_list ha establecido o run_list en el conjunto de propiedades al ejecutar esta pasada. block_list debería contener una lista de listas de índices de nodos, en la que cada lista interna represente una colección de bloques que podrían consolidarse en un UnitaryGate. Estos bloques pueden tener cualquier número de qubits, pero en los gestores de pasadas predefinidos de versiones anteriores de Qiskit solían ser dos y se configuraban mediante la Collect2qBlocks pasada. También existe la fase del CollectMultiQBlocks transpilador, que se configurará blocks_list con bloques encontrados para un número arbitrario de qubits. La otra clave run_list de conjunto de propiedades es una lista de listas de «series», que son bloques de un solo qubit que se van a consolidar. Es posible que esto lo haya establecido la Collect1qRuns fase del transpilador. Esta funcionalidad para las «ejecuciones» ha sido sustituida en gran medida por la Optimize1qGatesDecomposition pasada del transpilador, que suele ser la opción recomendada para simplificar las ejecuciones de un solo qubit de forma más exhaustiva y eficaz.

Este pase lee la PropertySet clave ConsolidateBlocks_qubit_map que utiliza para comunicarse con instancias de trabajador recursivas de sí mismo para operaciones de flujo de control. La clave nunca debe ser observable en una canalización PassManager (sólo se establece en instancias PassManager instancias), pero el pase puede devolver resultados incorrectos o dar error si otro pase establece esta clave.

ConsolidateBlocks inicializador.

Si kak_basis_gate no es None se utilizará como puerta base para la descomposición KAK. De lo contrario, si basis_gates no es None se elegirá una puerta base de esta lista. En caso contrario, la puerta base será CXGate.

Parámetros

  • kak_basis_gate (Gate) – Puerta base para la descomposición KAK.
  • force_consolidate (bool) – Forzar la consolidación de bloques.
  • basis_gates (List(str)) – Puertas base entre las que elegir una puerta KAK.
  • approximation_degree (float) – un valor flotante entre [0.0,1.0][0.0, 1.0]. Más bajo se aproxima más.
  • target (Target) – El objeto de destino para el backend de destino de compilación.

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)

GitHub

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

name()

GitHub

Nombre del pase.

Tipo de retorno

str

run

run(dag)

GitHub

Ejecuta el pase ConsolidateBlocks en dag.

Iterar sobre cada bloque y sustituirlo por un Unitario equivalente en los mismos cables.

update_status

update_status(state, run_state)

GitHub

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

PassManagerState

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