Skip to main content
IBM Quantum Platform

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().

  1. Fornecendo um config durante 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)
    
  2. 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 F2QSynthesisPlugin implementaçõ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.

Nota

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

Tipo de retorno

DAGCircuit

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

name()

Nome da passagem.

Tipo de retorno

str

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

PassManagerState

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.