PauliEvolutionSynthesisMcts
class qiskit.transpiler.passes.synthesis.hls_plugins.PauliEvolutionSynthesisMcts
Bases: HighLevelSynthesisPlugin
Synthesize a PauliEvolutionGate using Monte Carlo Tree Search (MCTS).
This plugin name is registered under the name "PauliEvolution.mcts", which can be used as the key on an HLSConfig object to use this method with HighLevelSynthesis.
The synthesis algorithm is described in [1].
On large circuits, this synthesis method may require a significant runtime.
The plugin supports the following additional options:
- preserve_order (bool): Preserve the order of Pauli rotations, up to commutativity.
- upto_clifford (bool): if True, the final Clifford operator is not synthesized.
- upto_phase (bool): if True, the returned circuit may differ from the input by a global phase.
- num_simulations (int): Number of Monte Carlo simulations to perform. This value must be at least 1.
- max_parallel_simulations (int | None): Maximum number of simulations that can be performed in parallel. If integer, this value must be at least 1. The value of None means “unlimited”.
References
- Mulundano Machiya, Matt Menickelly, Paul Hovland, Ji Liu, MonteQ: A Monte Carlo Tree Search Based Quantum Circuit Synthesis Framework, arXiv:2604.19029
Methods
run
run(high_level_object, coupling_map=None, target=None, qubits=None, **options)
Run synthesis for the given Operation.
Parameters
- high_level_object (Operation) – The Operation to synthesize to a
DAGCircuitobject. - coupling_map (CouplingMap) – The coupling map of the backend in case synthesis is done on a physical circuit.
- target (Target) – A target representing the target backend.
- qubits (list) – List of qubits over which the operation is defined in case synthesis is done on a physical circuit.
- options – Additional method-specific optional kwargs.
Returns
The quantum circuit representation of the Operation
when successful, and None otherwise.
Return type