Skip to main content
IBM Quantum Platform

TokenSwapperSynthesisPermutation

class qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation

GitHub

Bases: HighLevelSynthesisPlugin

O plug-in de síntese de permutação é baseado no algoritmo de troca de tokens.

O nome do plug-in é:permutation.token_swapper , que pode ser usado como a chave em um HLSConfig para usar esse método com HighLevelSynthesis.

Em mais detalhes, esse plug-in é usado para sintetizar objetos do tipo PermutationGate. Quando a síntese é bem-sucedida, o plug-in gera um circuito quântico que consiste apenas em portas de troca. Quando a síntese não é bem-sucedida, o plug-in gera None.

Se coupling_map ou qubits for None, o circuito sintetizado não precisará aderir às restrições de conectividade, como é o caso quando a síntese é feita antes do layout/roteamento.

Por outro lado, se tanto o mapa de acoplamento quanto os qubits forem especificados, o circuito sintetizado deverá aderir às restrições de conectividade. No momento, o plug-in cria apenas portas de troca entre qubits em qubits, ou seja, ele não usa nenhum outro qubits no mapa de acoplamento (se essa síntese não for possível, o plug-in produzirá None).

O plug-in é compatível com as seguintes opções específicas do plug-in:

  • tentativas: O número de tentativas para o swapper de token realizar o mapeamento. O circuito com o menor número de SWAPs é retornado.
  • seed: O argumento para o swapper de token que especifica a semente para tentativas aleatórias.
  • parallel_threshold: O argumento para o swapper de token que especifica o número de nós no gráfico além do qual o algoritmo usará o processamento paralelo.

Para obter mais detalhes sobre o algoritmo de troca de tokens, consulte o documento: arXiv:1902.09102.


Métodos

run

run(high_level_object, coupling_map=None, target=None, qubits=None, **options)

GitHub

Executa a síntese para a permutação fornecida.

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