circuit_knitting.cutting.find_cuts¶
- find_cuts(circuit, optimization, constraints)[source]¶
Find cut locations in a circuit, given optimization parameters and cutting constraints.
- Parameters:
circuit (
QuantumCircuit
) – The circuit to cut. The input circuit may not contain gates acting on more than two qubits.optimization (
OptimizationParameters
) – Options for controlling optimizer behavior. Currently, the optimal cuts are chosen using Dijkstra’s best-first search algorithm.constraints (
DeviceConstraints
) – Constraints on how the circuit may be partitioned
- Return type:
tuple
[QuantumCircuit
,dict
[str
,float
]]- Returns:
A circuit containing
BaseQPDGate
instances. The subcircuits resulting from cutting these gates will be runnable on the devices meeting theconstraints
.- A metadata dictionary:
cuts: A list of length-2 tuples describing each cut in the output circuit. The tuples are formatted as
(cut_type: str, cut_id: int)
. The cut ID is the index of the cut gate or wire in the output circuit’sdata
field.sampling_overhead: The sampling overhead incurred from cutting the specified gates and wires.
- Raises:
ValueError – The input circuit contains a gate acting on more than 2 qubits.