MapperFnEvolutionSynthesis
class MapperFnEvolutionSynthesis(mapper_fn, product_formula=None)
Bases: object
A F2QSynthesisPlugin para compilação dinâmica Evolution com um mapeamento personalizado.
Este plug-in mapeia o hamiltoniano fermiónico do gate Evolution de entrada para um operador de qubit usando mapper_fn e emite um PauliEvolutionGate. Dessa forma, preserva a convenção “ ” da porta Evolution , com o mesmo tempo de evolução .
A forma como isso PauliEvolutionGate é posteriormente decomposto em portas de base é determinada pela fórmula de produto passada como product_formula. Deixá-lo em seu valor padrão (None) faz com que seja utilizada a síntese padrão PauliEvolutionGatedo próprio (uma LieTrotter decomposição de primeira ordem com uma única repetição). O fornecimento de um explícito EvolutionSynthesis — por exemplo, um de ordem superior ou SuzukiTrotter com várias repetições — seleciona uma fórmula de produto de Trotter-Suzuki diferente, trocando a profundidade do circuito por um erro de Trotter menor.
A inicialização deste plug-in de passagem do transpiler pode ser feita com os argumentos listados abaixo.
Parâmetros
- mapper_fn (MapperFunction) – a função de mapeamento do operador de férmion para qubit.
- product_formula (EvolutionSynthesis | None) – a fórmula do produto com a qual se sintetiza o emitido
PauliEvolutionGate. Se (Nonepadrão), é utilizada a síntese padrão da própria porta (umaLieTrotterdecomposição de primeira ordem com uma única repetição).
Atributos
mapper_fn
Tipo: MapperFunction
A função de mapeamento do operador de férmion para qubit.
Os dois argumentos de entrada devem ser os seguintes:
- o operador a ser mapeado.
- o número de qubits sobre os quais o operador resultante deve ser definido.
É de responsabilidade do usuário garantir que essa função esteja em sincronia com a configuração F2QLayout global de transpilação.
product_formula
Tipo: EvolutionSynthesis | None
A fórmula do produto usada para sintetizar o sinal emitido PauliEvolutionGate, ou None para recorrer à síntese padrão própria dessa porta.
Métodos
run
run(in_node, out_dag, *, f2q_layout)
Executa este plug-in de transpilagem.
O hamiltoniano fermiónico do portão Evolution de entrada é mapeado para um operador de qubit por meio de mapper_fn, simplificado e anexado a out_dag como um que PauliEvolutionGate implementa com o tempo de evolução original e a product_formula síntese.
Parâmetros
- in_node (DAGOpNode) – a instrução do circuito baseada em férmions de entrada. Quando esse plug-in for chamado, o atributo
in_node.opdeve ser do tipoEvolution. - out_dag (DAGCircuit) – o circuito de saída baseado em qubits.
- f2q_layout (dict[QuantumRegister, QuantumRegister]) – a configuração
F2QLayoutde transpilação global.
Tipo de retorno
Nenhum
Consulte a documentação de F2QSynthesisPlugin para obter explicações mais detalhadas sobre os argumentos.
Aumentos
NotImplementedError – quando in_node atua sobre modos fermiónicos distribuídos por várias FermionicRegister instâncias.
Parâmetros
- in_node (DAGOpNode)
- out_dag (DAGCircuit)
- f2q_layout (dict[QuantumRegister, QuantumRegister])
Tipo de retorno
Nenhum