RemoveIdentityEquivalent
class qiskit.transpiler.passes.RemoveIdentityEquivalent(*args, **kwargs)
Bases: TransformationPass
Eliminar las puertas con efectos insignificantes.
Elimina las compuertas cuyo efecto se aproxima a una operación de identidad hasta una fase global y hasta la tolerancia especificada. Las puertas parametrizadas no se tienen en cuenta en este paso.
Para una fidelidad de corte , este paso elimina las puertas cuya fidelidad media con respecto a la identidad es inferior a . Concretamente, una puerta se elimina si donde
donde es la dimensión de la puerta para qubits.
Esta función es multihilo y, por defecto, puede iniciar un grupo de subprocesos con un número de subprocesos igual al número de CPU. Puedes ajustar el número de subprocesos mediante la variable RAYON_NUM_THREADS de entorno. Por ejemplo, si se establece este valor, el RAYON_NUM_THREADS=4 grupo de subprocesos se limitaría a 4 subprocesos.
Inicializar el pase del transpilador.
Parámetros
- grado_de_aproximación - El grado a aproximar para la comprobación de equivalencia. Puede ser un valor de coma flotante entre 0 y 1, o
None. Si el valor es 1 no se aproxima por encima de la precisión en coma flotante. Para un valor < 1 se utiliza como factor de escala para la fidelidad de corte. Si el valor esNonese aproxima hasta la fidelidad para la puerta especificada entarget. En caso de que no se establezcatarget, aproximamos hasta16 * machine_epspor defecto para tener en cuenta las acumulaciones en sistemas de pocos qubits. - target - Si
approximation_degreese establece enNoney se proporciona unTargetpara este campo, la tolerancia para determinar si una operación es equivalente a la identidad se establecerá en la tasa de error notificada en el objetivo. Siapproximation_degree(el valor predeterminado) no tiene ningún efecto, siapproximation_degree=Noneutiliza la tasa de error especificada enTargetpara la puerta que se está evaluando, y un valor numérico distinto de 1 contargetconfigurado se utiliza como factor de escala de la tasa de error del objetivo.
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)
Ejecutar un pase en el DAGCircuit. Esto lo implementa el desarrollador del pase.
Parámetros
dag (DAGCircuit) – el dag en el que se ejecuta el pase.
Eleva
NotImplementedError - cuando esto se deja sin implementar para un pase.
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