Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

ACGSynthesisPermutation

class ACGSynthesisPermutation

GitHub

Bases: qiskit.transpiler.passes.synthesis.plugin.HighLevelSynthesisPlugin

The permutation synthesis plugin based on the Alon, Chung, Graham method.

This plugin can be accessed by the acg method name in the HLSConfig for permutation. 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))
 
# ACGSynthesisPermutation plugin for permutations
# Returns a quantum circuit with size 6 and depth 2
qct = PassManager(HighLevelSynthesis(HLSConfig(permutation=[("acg", {})]))).run(qc)
print(f"acg: {qct.size() = }, {qct.depth() = }")

Methods

run

ACGSynthesisPermutation.run(high_level_object, **options)

Run synthesis for the given Permutation.

Was this page helpful?
Report a bug or request content on GitHub.