Plug-ins de passagem do transpiler
A etapa do transpiler F2QSynthesis expõe uma interface de plug-in (ver F2QSynthesisPlugin) por meio da qual podem ser registradas implementações para o mapeamento de instruções baseadas em férmions para instruções baseadas em qubits.
Os plug-ins disponíveis são gerenciados pelo F2QSynthesisPluginManager. Escolher a combinação certa de plug-ins de síntese é fundamental, e a etapa de transpilação F2QSynthesis não possui nenhum plug-in padrão definido! Para isso, consulte o transpiler presets.
F2QSynthesisPlugin(*args, **kwargs) | O protocolo para plug-ins da etapa do transpiler F2QSynthesis . |
F2QSynthesisPluginManager() | Um gerenciador simples dos plug-ins instalados para síntese de férmions em qubits. |
Os plug-ins a serem usados em tempo de execução devem ser registrados no atributo F2QSynthesis.methods . Isso pode ser feito facilmente por meio do argumento config de, que F2QSynthesis especifica os plug-ins a serem usados a partir do, ou F2QSynthesisPluginManager pode ser feito manualmente, inserindo-os diretamente F2QSynthesis.methods no.
A tabela abaixo lista os plug-ins de síntese integrados, organizados de acordo com o elemento sobre o FermionicGate qual atuam:
Nome da instrução do circuito | Nome do método do plugin | Referência |
|---|---|---|
Evolution | MapperFn | MapperFnEvolutionSynthesis |
InitializeModes | TrivialOccupation | TrivialOccupationInitializeModesSynthesis |
OrbitalRotation | GivensDecomposition | GivensDecompositionOrbitalRotationSynthesis |
PrepareSlaterDeterminant | GivensDecompositionSlater | GivensDecompositionSlaterDeterminantSynthesis |
GivensDecompositionOrbitalRotationSynthesis() | A F2QSynthesisPlugin para transpilagem OrbitalRotation em rotações de Givens. |
GivensDecompositionSlaterDeterminantSynthesis(*) | A F2QSynthesisPlugin para transpilagem PrepareSlaterDeterminant. |
MapperFnEvolutionSynthesis(mapper_fn[,...] ) | A F2QSynthesisPlugin para compilação dinâmica Evolution com um mapeamento personalizado. |
TrivialOccupationInitializeModesSynthesis() | Um F2QSynthesisPlugin para transpilagem InitializeModes com ocupação mínima. |