Noisy & Approximate: MPO and NoisySPD
MPO: Matrix Product Operator-based quantum simulator
Note
For more information on entanglement-aware simulations, see our article.
Matrix product-based tensor networks methods have been among the most popular avenue at circumventing the exponential scaling of exact quantum simulations [Vidal03] [Schollwoeck2010]. Lowly entangled states can be efficiently simulated using matrix product states. This approach has allowed the reach of systems sizes far beyond what exact computations can achieve.
Any mixed state can be represented as a matrix product operator (MPO) [Schollwoeck2010]. The density matrix of a quantum state of \(N\) qubits is cast into a factorized form of \(N\) tensors connected to each other with what is generally called bond dimension. Physically, bond dimensions can be thought of as the amount of entanglement a quantum state can encapsulate. Contracting every tensors of this MPO along its bond dimensions gives back the quantum state in its standard density matrix representation. But where the MPO representation really shines is at approximating large quantum states into a more compact version, by truncating bond dimensions. This is done by limiting bond dimensions growth up to a pre-defined maximum bond dimension (possibly combined with a truncation threshold for the singular values), which effectively approximates the quantum state. The more entanglement, the bigger the truncation errors, which limits MPO effectiveness to lowly entangled, but possibly very large quantum states.
Truncating bond dimensions higher than a specific maximum bond dimension is the standard approach when it comes to approximating MPS. However a new technique called entanglement-aware has been designed at Qaptiva™ [Oliva2023]. This algorithm fully leverages the presence or absence of both noise and entanglement. It dynamically adapts the bond dimensions of the quantum state throughout the simulation, based on an input fidelity the quantum state has to at least reach. Decreasing (resp. increasing) the desired fidelity decides how aggressive (resp. conservative) the algorithm will be at truncating bond dimensions.
As noise tend to destroy quantum coherences, EA-MPO is especially powerful at dealing with highly noisy quantum systems. It can adapt the bond dimensions to the local entanglement needs throughout the simulation and proves vastly superior to standard maximum bond dimension MPO.
Since bond dimensions are kept as low as possible for every operation, the algorithm efficiency far surpasses that of regular fixed maximum bond dimensions algorithms, while simultaneously allowing trustworthy output quantum states. In particular, a noiseless random circuit of 300 qubits and depth 25 simulated using MPO methods takes one week of computation time, while EA-MPO only needs 40 minutes to reach similar quantum state fidelity.
Comparison of the simulation time between MPO and EA-MPO on random circuits of depth 25. For each point, the MPO maximum bond dimension is taken as the maximum bond dimension encountered during the EA-MPO simulation. Both quantum state fidelities are equal.
qat.qpus.MPO QPU implements both truncation techniques. Please see
our notebook on MPO and EA-MPO simulations for more informations on how to use
the qat.qpus.MPO QPU.
If you wish to use MPO tensor networks directly, refer to our notebook about MPS and MPO computation and usage.
NoisySPD: Noisy Sparse Pauli Dynamics-based quantum simulator
Sparse Pauli Dynamics, or Pauli propagation methods, are a family of computational techniques used to efficiently simulate quantum circuits by tracking the evolution of Pauli operators rather than directly calculating the quantum state.
These methods leverage the fact that physically relevant observables can be expressed as sums of Pauli strings, and that Pauli operators evolve in a structured, often sparse, manner under many circuits of interest.
The Noisy Sparse Pauli Dynamics (NoisySPD) algorithm goes through the noisy quantum circuit in reverse, starting from the target observable in the Pauli basis. Quantum channels representing either perfect quantum gates, noise application or a combination of both, are applied in reverse order, transforming the observable backwards through the circuit. This is equivalent to studying the time evolution of a system in the Heisenberg picture by time-evolving the observable rather than the density matrix in the Schrödinger picture.
Because NoisySPD avoids explicit representation of the full quantum state, it can scale to circuit sizes that are otherwise inaccessible to traditional exact density matrix simulation, and circuits with more than 100 qubits can be evaluated in minutes (see [Shao2024]).
At its core, NoisySPD maintains a list of Pauli strings and their associated coefficients. When a quantum channel is applied, it updates this list according to the transformation rules of Pauli operators under conjugation by other Paulis. For general quantum channels, the Pauli list typically grows exponentially in size, but there are exceptions. Notably, if the quantum channel represents a Clifford gate or the application of Pauli noise, the size of the Pauli list size remains the same. Additionally, just like with the noiseless SPD, various truncation strategies can be employed to manage this growth, making it an approximate QPU.
One such technique is truncation based on the absolute value of the coefficients of the Pauli terms, discarding the Paulis with low coefficients as their contributions to the final expectation value will be small. This truncation technique is particularly suitable in the case of near-Clifford circuits, where the rotations angles are close to multiples of \(\frac{\pi}{2}\), but also in circuits with non-Pauli noise that will cause a given Pauli to split into several branches with usually highly skewed weights (see [Martinez2025]).
Another way to truncate Paulis is to discard them based on their support, by cutting all Pauli strings with a Hamming weight exceeding a given value. This weight-based truncation is particularly relevant for circuits with Pauli noise, as all Pauli operators of high weights are exponentially suppressed by Pauli noise (see [Shao2024], [Gonzalez2025] and [Aharonov2023]).
To make sure that the computation does not grow beyond what the computer can handle, it is also possible to simply set a maximum size for the list of Paulis, truncating some Paulis when this limit is exceeded, starting with the ones with the lowest coefficients (in absolute value). This method offers no guarantee in terms of accuracy, but guarantees a reasonable computation time.
Finally, it is also possible, and sometimes relevant, to truncate Paulis based of their number of X and Y terms. The reason behind this method is the same as in the noiseless case: when computing the final expectation value \(\textrm{Tr}[\ket{0} \bra{0} \mathcal{O}]\), only the Paulis that contain only I and Z have non-zero contributions. An argument can then be made that Paulis with a large number of Xs and Ys have very little chance to generate Paulis with only Is and Zs along the way, and can then be truncated right away to simply the computation. This truncation method is particularly appropriate in the case of Trotter-like circuits, where because of the Jordan-Wigner encoding, the number of Xs is linked to the number of excitations of fermionic modes (see [Martinez2025]).
All four truncation methods, and an option for Clifford recompilation are implemented in qat.qpus.NoisySPD. Please see
our notebook on NoisySPD simulations for more informations on how to use the
qat.qpus.NoisySPD QPU.
NoisyQProc: Noisy Quantum Emulator (stochastic)
The qat.qpus.NoisyQProc QPU emulates a noisy quauntum computer. As such, it will behave
similarly to noiseless QPUs, but will accept a hardware model describing the noise model to be
applied.
Two simulation modes are currently implemented:
deterministic: requires the storage of the full density matrix describing the qubits’ state, the latter
stochastic: avoids this overhead at the cost of stochastic sampling of the final result, with intrinsic statistical uncertainty.
Note
Only the stochastic mode of NoisyQProc can be considered to be an
approximate simulator, because of the statistical uncertainty
introduced by this mode.