qiskit_addon_cutting.expand_observables¶
- expand_observables(observables, original_circuit, final_circuit, /)[source]¶
Expand observable(s) according to the qubit mapping between
original_circuit
andfinal_circuit
.The
Qubit
s onfinal_circuit
must be a superset of those onoriginal_circuit
.Given a
PauliList
of observables, this function returns new observables with identity operators placed on the qubits that did not exist inoriginal_circuit
. This way, observables onoriginal_circuit
can be mapped to appropriate observables onfinal_circuit
.This function is designed to be used after calling
final_circuit = transform_cuts_to_moves(original_circuit)
(seetransform_cuts_to_moves()
).This function requires
observables.num_qubits == original_circuit.num_qubits
and returns new observables such thatretval.num_qubits == final_circuit.num_qubits
.- Parameters:
observables (
PauliList
) – Observables corresponding tooriginal_circuit
original_circuit (
QuantumCircuit
) – Original circuitfinal_circuit (
QuantumCircuit
) – Final circuit, whose qubits the originalobservables
should be expanded to
- Return type:
- Returns:
New \(N\)-qubit observables which are compatible with the \(N\)-qubit
final_circuit
- Raises:
ValueError –
observables
andoriginal_circuit
have different number of qubits.ValueError – Qubit from
original_circuit
cannot be found infinal_circuit
.