F2QSynthesis
class F2QSynthesis(config=None)
Bases: GenericPass[DAGCircuit, DAGCircuit]
Una pasada de transpilación para mapear las instrucciones de los circuitos basados en fermiones a las basadas en qubits.
Esta pasada de transpilación funciona de manera similar a la pasada HighLevelSynthesis de Qiskit; dada una entrada FermionicDAGCircuit, recorre las instrucciones que contiene y delega la traducción a instrucciones basadas en qubits a la pasada correspondiente methods. La inserción de las instrucciones del circuito basadas en qubits en la salida también DAGCircuit se deja en manos del método del complemento. Esta pasada se limitará a preparar el QuantumRegister según la configuración F2QLayout de transpilación global.
Uso
Hay dos formas de configurar los complementos que utiliza esta etapa del transpilador. Los ejemplos siguientes muestran la configuración equivalente a la generate_preset_jw_pass_manager().
-
Especificar un
configdurante la inicialización:>>> from qiskit_fermions.mappers.library import jordan_wigner >>> from qiskit_fermions.transpiler import passes >>> >>> config = { ... "Evolution": ("MapperFn", (jordan_wigner,)), ... "InitializeModes": "TrivialOccupation", ... "OrbitalRotation": "GivensDecomposition", ... } >>> synth = passes.F2QSynthesis(config) -
Cómo rellenar manualmente el atributo
methods:>>> from qiskit_fermions.mappers.library import jordan_wigner >>> from qiskit_fermions.transpiler import passes >>> >>> synth = passes.F2QSynthesis() >>> synth.methods["Evolution"] = passes.MapperFnEvolutionSynthesis(jordan_wigner) >>> synth.methods["InitializeModes"] = passes.TrivialOccupationInitializeModesSynthesis() >>> synth.methods["OrbitalRotation"] = passes.GivensDecompositionOrbitalRotationSynthesis()Mediante este enfoque manual, también es posible introducir
F2QSynthesisPluginimplementaciones personalizadas sin necesidad de registrarlas a través de un punto de entrada.
La inicialización de esta pasada del transpilador se puede realizar con los argumentos que se indican a continuación.
Parámetros
config (F2QSynthesisConfig | None) – un diccionario opcional para rellenar previamente el methods con los complementos proporcionados por el F2QSynthesisPluginManager.
Atributos
methods
Tipo: dict[str, F2QSynthesisPlugin]
Un diccionario de métodos de transpilación de instrucciones de circuitos de fermiones a qubits.
Para que esta pasada de transpilación surta efecto, este diccionario debe rellenarse con instancias del protocolo F2QSynthesisPlugin . Las claves de este diccionario se corresponden con las de __name__ una instrucción de circuito.
Todos los complementos de transpilación disponibles se gestionan mediante el F2QSynthesisPluginManager.
¡Este diccionario está vacío por defecto! Puedes rellenarlo previamente con los complementos proporcionados por F2QSynthesisPluginManager especificando un argumento config durante la inicialización de esta instancia de la pasada del transpilador.
Métodos
run
run(dag)
Ejecuta esta pasada de transpilación.
Parámetros
dag (DAGCircuit) – el circuito de entrada con instrucciones basadas en fermiones. Solo DAGOpNode op se admiten instancias FermionicGate como estas.
Devuelve
El circuito de salida con instrucciones basadas en qubits.
Subidas
- ValueError – cuando
DAGOpNodese encuentra un cuyo noopes de tipoFermionicGate. - TypeError – cuando se encuentra un tipo
FermionicGatepara el que no existe ningún complemento de traducción enmethods.
Tipo de retorno
Métodos heredados
execute
execute(passmanager_ir, state, callback=None)
Ejecutar la tarea de optimización para el IR de Qiskit de entrada.
Parámetros
- passmanager_ir (IR) – Qiskit IR para optimizar.
- state (PassManagerState) – Estado relacionado con la ejecución del flujo de trabajo por parte del propio gestor de pasadas.
- callback (Callable[[Task, IR_OUT, PropertySet, float, int], None] | None) – Una función de devolución de llamada que se invoca cada vez que se ejecuta una tarea de optimización.
Devuelve
IR de Qiskit optimizado y estado del flujo de trabajo.
Tipo de retorno
tupla [ IR_OUT, PassManagerState ]
name
update_status
update_status(state, run_state)
Actualizar el estado del flujo de trabajo.
Parámetros
- state (PassManagerState) – Pasa el estado del gestor para actualizarlo.
- run_state (RunState) – Estado de finalización de la tarea actual.
Devuelve
Se ha actualizado el estado del gestor de pases.
Tipo de retorno