F2QSynthesis
class F2QSynthesis(config=None)
Bases: GenericPass[DAGCircuit, DAGCircuit]
Uma etapa de transpilagem para mapear instruções de circuitos baseados em férmions para instruções baseadas em qubits.
Essa etapa de transpilagem funciona de maneira semelhante à HighLevelSynthesis etapa do Qiskit; dada uma entrada FermionicDAGCircuit, ela percorre as instruções contidas e delega a tradução para instruções baseadas em qubits àquelas correspondentes methods. A inserção das instruções do circuito baseado em qubits na saída também DAGCircuit fica a cargo do método do plug-in. Essa etapa terá apenas preparado o QuantumRegister de acordo com a configuração F2QLayout de transpilação global.
Uso
Existem duas maneiras de configurar os plug-ins utilizados por essa etapa do transpiler. Os exemplos a seguir mostram a configuração equivalente à generate_preset_jw_pass_manager().
-
Fornecendo um
configdurante a inicialização:>>> 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) -
Preenchimento manual do 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()Por meio dessa abordagem manual, também é possível injetar
F2QSynthesisPluginimplementações personalizadas sem que seja necessário registrá-las por meio de um ponto de entrada.
A inicialização desta etapa do transpiler pode ser feita com os argumentos listados a seguir.
Parâmetros
config (F2QSynthesisConfig | None) – um dicionário opcional para preencher previamente o com methods plug-ins fornecidos pelo F2QSynthesisPluginManager.
Atributos
methods
Tipo: dict[str, F2QSynthesisPlugin]
Um dicionário de métodos de transpilagem de instruções de circuitos de férmions para qubits.
Para que essa etapa de transpilagem tenha algum efeito, esse dicionário deve ser preenchido com instâncias do protocolo F2QSynthesisPlugin . As chaves deste dicionário correspondem aos de __name__ uma instrução de circuito.
Todos os plug-ins de transpilação disponíveis são gerenciados pelo F2QSynthesisPluginManager.
Este dicionário está vazio por padrão! É possível preenchê-lo previamente com plug-ins fornecidos pelo F2QSynthesisPluginManager , passando um argumento config durante a inicialização desta instância da etapa do transpiler.
Métodos
run
run(dag)
Executa essa etapa de transpilagem.
Parâmetros
dag (DAGCircuit) – o circuito de entrada com instruções baseadas em férmions. Somente DAGOpNode FermionicGate instâncias como essas são op suportadas.
Retorna
O circuito de saída com instruções baseadas em qubits.
Aumentos
- ValueError – quando
DAGOpNodese encontra um cujo não éopdo tipoFermionicGate. - TypeError – quando é encontrado um tipo
FermionicGatepara o qual não há nenhum plug-in de tradução nomethods.
Tipo de retorno
Métodos herdados
execute
execute(passmanager_ir, state, callback=None)
Executar tarefa de otimização para o IR do Qiskit de entrada.
Parâmetros
- passmanager_ir (IR) – Qiskit IR para otimização.
- state (PassManagerState) – Estado associado à execução do fluxo de trabalho pelo próprio gerenciador de passagens.
- callback (Callable[[Task, IR_OUT, PropertySet, float, int], None] | None) – Uma função de retorno de chamada que é chamada a cada execução de uma tarefa de otimização.
Retorna
IR do Qiskit otimizado e situação atual do fluxo de trabalho.
Tipo de retorno
tupla [ IR_OUT, PassManagerState ]
name
update_status
update_status(state, run_state)
Atualizar o status do fluxo de trabalho.
Parâmetros
- state (PassManagerState) – Passe o estado do gerenciador para atualização.
- run_state (RunState) – Status de conclusão da tarefa atual.
Retorna
Atualizou o status do gerenciador de senhas.
Tipo de retorno