A Python package for reducing the quantum resource requirement of your problems, making them more NISQ-friendly!
To install this package either run:
pip install symmer
for the latest stable version OR from the root of the project run:
pip install .
For basic usage see readthedocs and the following notebooks
Qubit reduction techniques such as tapering and Contextual-Subspace VQE are effected by the underlying stabilizer subspace projection mechanism; such methods may be differentiated by the approach taken to selecting the stabilizers one wishes to project over.
.operators
contains the following classes (in resolution order):
PauliwordOp
for representing general Pauli operators.QuantumState
for representing quantum statevectors.IndependentOp
represents algebraically independent sets of Pauli operators for stabilizer manipulation/projections.AnticommutingOp
represents sets of anticommuting Pauli operators for the purposes of Unitary Partitioning and Linear Combination of Unitaries as in this paper.NoncontextualOp
represents noncontextual Hamiltonians (defined here) that may be mapped onto a hidden-variable model and solved classically; various solvers are supplied in NoncontextualSolver
..projection
contains stabilizer subspace projection classes (in resolution order):
S3_projection
for rotating a StabilizerOp onto some basis of single-qubit Pauli operators via Clifford operations and projecting into the corresponding stabilizer subspace.QubitTapering
ContextualSubspace
QubitSubspaceManager
Why should you use Symmer? It has been designed for high efficiency when manipulating large Pauli operators -- addition, multiplication, Clifford/general rotations, commutativity/contextuality checks, symmetry generation, basis reconstruction and subspace projections have all been reformulated in the symplectic representation and implemented carefully to avoid unnecessary operations and redundancy. It also has a QASM simulator for evaluating expectation values, which is efficient when restricted to Clifford operations.
All this allows us to approach significantly larger systems than was previously possible, including those exceeding the realm of classical tractibility.
When you use in a publication or other work, please cite as:
Tim Weaving, Alexis Ralli, Peter J. Love, Sauro Succi, and Peter V. Coveney. Contextual Subspace Variational Quantum Eigensolver Calculation of the Dissociation Curve of Molecular Nitrogen on a Superconducting Quantum Computer. arXiv preprint arXiv:2312.04392 (2023).
Alexis Ralli, Tim Weaving, Andrew Tranter, William M. Kirby, Peter J. Love, and Peter V. Coveney. Unitary partitioning and the contextual subspace variational quantum eigensolver. Phys. Rev. Research 5, 013095 (2023).
Tim Weaving, Alexis Ralli, William M. Kirby, Andrew Tranter, Peter J. Love, and Peter V. Coveney. A Stabilizer Framework for the Contextual Subspace Variational Quantum Eigensolver and the Noncontextual Projection Ansatz. J. Chem. Theory Comput. 2023, 19, 3, 808–821 (2023).
William M. Kirby, Andrew Tranter, and Peter J. Love, Contextual Subspace Variational Quantum Eigensolver, Quantum 5, 456 (2021).