Release Notes
MindQuantum 0.12.0 Release Notes
Major Features and Enhancements
Device
[BETA]
QPU: Added an abstract base class for real quantum hardware execution. This class standardizes asampling-driven interface that mirrorsmindquantum.simulator.Simulator, enabling seamless backend swapping between simulators and real QPUs. Key capabilities include (!2842):Minimal vendor burden: Hardware providers only need to implement the abstract
sampling()method.Shot-based expectation estimation:
get_expectation()automatically performs Pauli basis rotations and statistical estimation from measurement shots.Shot-based Gradient estimation:
get_expectation_with_grad()returns aGradOpsWrappersupporting both parameter-shift rules (for RX, RY, RZ, U3, Rxx, Ryy, Rzz, and 10+ other gate families) and central finite-difference fallback, with intelligent per-parameter strategy selection.Batch optimization hook: Vendors can optionally override
_sampling_batch()for batched job submission.
Simulator
[BETA]
mqmpsbackend: Added a Matrix Product State (MPS) simulator that represents quantum states as tensor networks instead of full state vectors. When circuit entanglement is moderate, this backend can simulate many more qubits than state-vector methods with significantly less memory (!3088).Supports single- and two-qubit gates (automatic SWAP insertion for non-adjacent qubits), measurement, sampling, reduced density matrix computation, and Pauli expectation values.
High-performance C++ core with BLAS/LAPACK backend for numerical stability.
[STABLE]
SequentialUCCAnsatz: Added a sequential UCC ansatz builder undermindquantum.simulator.mqchemthat preserves excitation insertion order. Unlike standard UCC, the same excitation operator can appear multiple times with independent parameters, enabling layered/Trotter-style ansatz constructions for VQE workflows (!3096,!3103).
Algorithm
Improvements
Bug Fixes
MQSABRE mapping:
InitialMappingcould produce invalid qubit assignments on certain topologies, potentially causing segfaults. Fixed (!2793,!2794).OpenQASM export: Circuits with repeated measurements on the same qubit produced invalid OpenQASM output. Each measurement now maps to a distinct classical bit (
!2826).OpenQASM import: The parser could not handle arithmetic expressions in gate parameters (e.g.,
pi/4 + 0.5). Replaced with a general expression evaluator (!2825).Circuit.apply_value: Custom gate internal state (e.g.,UCCExcitationGate) was corrupted during parameter substitution. Gate state is now preserved (!3095).Noise backend gradients API missing: Fixed missing
NoiseBackend.get_expectation_with_gradsupport. (!3097).QAIA SB initialization:
xiwas initialized incorrectly when external fieldhwas provided, causing wrong optimization results (!2818).QAIA error messaging: Improved GPU import error message for SB solver to clearly indicate what is needed (
!2788).
Contributors
Thanks to the following developers for their contributions:
dsdsdshe, Waikikilick, Yaocheng Chen, MangroveCoder, liudongmei2025, wangyin888, zhoushijie2025, 宦晓玲.
Welcome contributions to the project in any form!