TokenSwapperSynthesisPermutation
class qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation
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)
Executa a síntese para a permutação fornecida.