TokenSwapperSynthesisPermutation
class qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation
Basen: HighLevelSynthesisPlugin
Das Permutationssynthese-Plugin basiert auf dem Token-Swapper-Algorithmus.
Dieser Plugin-Name lautet:permutation.token_swapper , der als Schlüssel für ein Objekt verwendet werden kann HLSConfig objekt verwendet werden kann, um diese Methode mit HighLevelSynthesis.
Genauer gesagt, wird dieses Plugin verwendet, um Objekte des Typs PermutationGate zu synthetisieren. Wenn die Synthese erfolgreich ist, gibt das Plugin eine Quantenschaltung aus, die nur aus Tauschgattern besteht. Wenn die Synthese nicht erfolgreich ist, gibt das Plugin "None" aus.
Wenn entweder coupling_map oder qubits None ist, muss sich die synthetisierte Schaltung nicht an Konnektivitätsbeschränkungen halten, wie es der Fall ist, wenn die Synthese vor dem Layout/Routing erfolgt.
Werden hingegen sowohl coupling_map als auch Qubits spezifiziert, muss die synthetisierte Schaltung die Konnektivitätsbedingungen einhalten. Im Moment erzeugt das Plugin nur Swap Gates zwischen Qubits in Qubits, d.h. es verwendet keine anderen Qubits in der Kopplungskarte (wenn eine solche Synthese nicht möglich ist, gibt das Plugin None aus).
Das Plugin unterstützt die folgenden Plugin-spezifischen Optionen:
- versuche: Die Anzahl der Versuche, die der Token-Swapper benötigt, um die Zuordnung vorzunehmen. Der Schaltkreis mit der geringsten Anzahl von SWAPs wird zurückgegeben.
- samen: Das Argument für den Token-Swapper, das den Samen für die Zufallsversuche angibt.
- parallel_threshold: Das Argument für den Token-Swapper, das die Anzahl der Knoten im Graphen angibt, bei deren Überschreitung der Algorithmus die Parallelverarbeitung einsetzt.
Weitere Einzelheiten über den Token-Swapper-Algorithmus finden Sie in dem Dokument: arXiv:1902.09102.
Methoden
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
Führt die Synthese für die angegebene Permutation durch.