zhao-andrew / symmetry-adjusted-classical-shadows

Classical shadows codes for quantum simulations of fermions and qubits, with error-mitigation routines for systems with symmetries
Apache License 2.0
17 stars 5 forks source link

Symmetry-Adjusted Classical Shadows

Open-source codes for performing classical shadows, particularly for noisy quantum simulations of fermions and qubits. Based primarily on the following papers:

The base implementation in Python requires OpenFermion and Cirq. The numerical examples additionally require qsimcirq, ReCirq, and the Julia package ITensor.

The files are organized as follows. For either fermion_shadows or pauli_shadows, codes in the prediction directory provide the routines to postprocess the quantum measurement data (description of random unitary and bit string) into numerical estimates of desired observables (using either a Pauli or Majorana operator decomposition). Included are also the robust estimators, using either Symmetry-Adjusted Classical Shadows if the system obeys a U(1) symmetry, or Robust Shadow Estimation from separately obtained calibration data. Codes in the simulation directory provide examples for running the protocol (i.e., numerically simulating the quantum circuits to obtain samples, which are then postprocessed into observable predictions).

Working examples/test codes are provided for each protocol. If you have any questions, please do not hesitate to reach out.