qat.analog.tomography.compute_superop_from_schedule
- qat.analog.tomography.compute_superop_from_schedule(schedule, qpu, traced_out_subspaces=None, spectator_states=None, dims=None, canonical=True)
When we have a quantum system in a noisy setting, the action of a Hamiltonian \(H\) on an initial pure state would not suffice to describe it. In general, once a noisy system evolves, it will be in a mixed state - a classical probability for each of its pure states. The mathematical object describing mixed states is the density matrix \(\rho\) and the evolution of the system will consist in the change of \(\rho\) over time expressed by the notion of a quantum channel \(E\), i.e:
\[H \, \longrightarrow \, \rho_0 \mapsto E(\rho_0) = \rho_f\]One possible representation of \(E\) is by a so-called superoperator \(S\), which is a matrix acting on the vectorized density matrix \(\vec{\rho}\) (raw-major), i.e. \(\vec{\rho_f} = S \cdot \vec{\rho_0}\).
What the current function does is to return such a superoperator \(S\) for a Hamiltonian \(H\) specified in a
Schedule
and for a noisy setting of the quantum computer (i.e. a noisy environment) defined by aHardwareModel
in an analog QPU. Of course, \(H\) can be both time-dependent and time-independent as well as noiseless.The function is also capable of tracing out some of the qubits. These qubits will be assumed to start from the state \(\left|0\right>\) unless specified otherwise via the field spectator_states.
- Parameters
schedule (
Schedule
) – theSchedule
describing the evolution of the quantum system over time. It includes the Hamiltonian of the system and the evolution duration.qpu (analog QPU) – an analog QPU to simulate the evolution of the quantum system - either a
QutipQPU
or anAnalogQPU
(the second one may be faster).traced_out_subspaces (list<int>, optional) – a list of the indices of the qubits to be traced out.
spectator_states (list<np.array>, optional) – a list with the initial state of the qubits to be traced out (if any). If not specified and there are qubits to be traced out, the default is \(\left|0\right>\), i.e. \([1, 0]\) per qubit.
- Returns
the superoperator in the computational basis with size \(4^{n-n_t} \times 4^{n-n_t}\), where \(n\) and \(n_t\) are the total number of qubits and the number of traced-out qubits, respectively
- Return type
np.array
Note
This method is available as an application in Qaptiva Access.