Skip to main content
IBM Quantum Platform

TokenSwapperSynthesisPermutation

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

GitHub

Bases : HighLevelSynthesisPlugin

Le plugin de synthèse des permutations est basé sur l'algorithme de permutation des jetons.

Le nom de ce plugin est :permutation.token_swapper qui peut être utilisé comme clé sur un objet pour utiliser cette méthode HLSConfig pour utiliser cette méthode avec HighLevelSynthesis.

Plus précisément, ce plugin est utilisé pour synthétiser des objets de type PermutationGate. Lorsque la synthèse réussit, le plugin produit un circuit quantique composé uniquement de portes de permutation. Lorsque la synthèse n'aboutit pas, le plugin émet une valeur nulle.

Si la valeur de coupling_map ou de qubits est None, le circuit synthétisé n'est pas tenu de respecter les contraintes de connectivité, comme c'est le cas lorsque la synthèse est effectuée avant la mise en page/le routage.

En revanche, si la carte de couplage et les qubits sont tous deux spécifiés, le circuit synthétisé est censé respecter les contraintes de connectivité. Pour l'instant, le plugin ne crée que des portes d'échange entre qubits dans des qubits, c'est-à-dire qu'il n'utilise pas d'autres qubits dans la carte de couplage (si une telle synthèse n'est pas possible, le plugin affiche None).

Le plugin prend en charge les options suivantes, spécifiques au plugin :

  • essais : Le nombre d'essais pour que l'échangeur de jetons effectue la mise en correspondance. Le circuit ayant le plus petit nombre de SWAP est renvoyé.
  • la graine : L'argument de l'échangeur de jetons spécifiant la graine pour les essais aléatoires.
  • parallel_threshold : L'argument de l'échangeur de jetons spécifiant le nombre de nœuds dans le graphe au-delà duquel l'algorithme utilisera le traitement parallèle.

Pour plus de détails sur l'algorithme d'échange de jetons, voir l'article : arXiv:1902.09102.


Méthodes

run

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

GitHub

Exécute la synthèse pour la permutation donnée.

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.