KMSSynthesisPermutation¶
- class KMSSynthesisPermutation[source]¶
Bases:
qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin
The permutation synthesis plugin based on the Kutin, Moulton, Smithline method.
This plugin can be accessed by the
kms
method name in theHLSConfig
forpermutation
. For example:from qiskit.circuit import QuantumCircuit from qiskit.circuit.library import PermutationGate from qiskit.transpiler import PassManager from qiskit.transpiler.passes.synthesis.high_level_synthesis import HLSConfig, HighLevelSynthesis from qiskit.transpiler.passes.synthesis.plugin import HighLevelSynthesisPluginManager # Create a permutation and add it to a quantum circuit perm = PermutationGate([4, 6, 3, 7, 1, 2, 0, 5]) qc = QuantumCircuit(8) qc.append(perm, range(8)) # KMSSynthesisPermutation plugin for permutations # Returns a quantum circuit with size 18 and depth 6 # but adhering to the linear nearest-neighbor architecture. qct = PassManager(HighLevelSynthesis(HLSConfig(permutation=[("kms", {})]))).run(qc) print(f"kms: {qct.size() = }, {qct.depth() = }")
Methods
Run synthesis for the given Permutation.