MapperFnEvolutionSynthesis
class MapperFnEvolutionSynthesis(mapper_fn, product_formula=None)
Bases: object
A F2QSynthesisPlugin para la transpilación Evolution bajo una asignación personalizada.
Este complemento asigna el hamiltoniano fermiónico de la puerta Evolution de entrada a un operador de qubit utilizando mapper_fn y emite un PauliEvolutionGate. De este modo, conserva la convención « » de la puerta Evolution , con el mismo tiempo de evolución .
La forma en que eso se PauliEvolutionGate descompone posteriormente en puertas de base viene determinada por la fórmula de producto que se pasa como product_formula. Si se deja en su valor por defecto (None), se recurre a la síntesis por defecto propia PauliEvolutionGatede (una descomposición LieTrotter de primer orden con una única repetición). Al especificar un término explícito EvolutionSynthesis —por ejemplo, uno de orden superior o SuzukiTrotter uno con varias repeticiones— se selecciona una fórmula del producto de Trotter-Suzuki diferente, con lo que se sacrifica la profundidad del circuito a cambio de un error de Trotter menor.
La inicialización de este complemento de pasada del transpilador puede realizarse con los argumentos que se indican a continuación.
Parámetros
- mapper_fn (MapperFunction) – la función de correspondencia entre el fermión y el qubit.
- product_formula (EvolutionSynthesis | None) – la fórmula del producto con la que sintetizar el emitido
PauliEvolutionGate. Si (Nonevalor por defecto), se utiliza la síntesis por defecto de la propia puerta (unaLieTrotterdescomposición de primer orden con una única repetición).
Atributos
mapper_fn
Tipo: MapperFunction
La función de correspondencia entre el operador de fermión y el de qubit.
Los dos argumentos de entrada deben ser los siguientes:
- el operador que se va a asignar.
- el número de qubits sobre los que debe definirse el operador resultante.
Es responsabilidad del usuario asegurarse de que esta función esté sincronizada con la configuración F2QLayout global de transpilación.
product_formula
Tipo: EvolutionSynthesis | None
La fórmula del producto utilizada para sintetizar la señal emitida PauliEvolutionGate, o None bien recurrir a la síntesis predeterminada de dicha puerta.
Métodos
run
run(in_node, out_dag, *, f2q_layout)
Ejecuta este complemento de transpilación.
El hamiltoniano fermiónico de la Evolution puerta de entrada se mapea a un operador de qubit mediante mapper_fn, se simplifica y se añade a out_dag como una implementación PauliEvolutionGate de con el tiempo de evolución original y la product_formula síntesis de.
Parámetros
- in_node (DAGOpNode) – la instrucción del circuito basada en fermiones de entrada. Cuando se invoca este complemento, el atributo
in_node.opdebe ser de tipoEvolution. - out_dag (DAGCircuit) – el circuito de salida basado en qubits.
- f2q_layout (dict[QuantumRegister, QuantumRegister]) – la configuración
F2QLayoutde transpilación global.
Tipo de retorno
Ninguna
Consulta la documentación de F2QSynthesisPlugin para obtener explicaciones más detalladas sobre los argumentos.
Subidas
NotImplementedError – cuando in_node actúa sobre modos fermiónicos que se distribuyen entre varias FermionicRegister instancias.
Parámetros
- in_node (DAGOpNode)
- out_dag (DAGCircuit)
- f2q_layout (dict[QuantumRegister, QuantumRegister])
Tipo de retorno
Ninguna