qiskit-addon-slc is a package for computing the shaded lightcone (SLC) [1] of an
observable with respect to a quantum circuit. In the context of probabilistic error cancellation (PEC), shaded lightcones
are similar to conventional binary lightcones in that not mitigating errors outside the
lightcone can reduce the variance (i.e. sampling cost). Lightcone shading allows this strategy to
be pushed further by assigning scales to Pauli error generators within the causal lightcone.
Errors that are assigned smaller scales have less effect on the observable; truncating them from the
noise model can reduce variance (i.e. sampling cost) at the cost of some bias. The qiskit-addon-slc package
gives users the ability to do lightcone shading and control the tradeoff between sampling cost and bias.
All documentation is available at https://quantum.cloud.ibm.com/docs/addons/qiskit-addon-slc.
We encourage installing this package via pip, when possible:
pip install qiskit-addon-slcFor more installation information refer to these installation instructions.
A simple guide to help you get started quickly with this package is available [here][docs/guides/quickstart.ipynb).
This technique has been used to improve the sampling cost of PEC on a 20-qubit mirrored Ising circuit [tutorial].
Shaded lightcones are calculated and used in 5 steps:
- Compute a bound on the effect of each Pauli error term on the observable at the end of the circuit (forward bound)
- Compute a bound on the effect of each Pauli error term on the initial state at the beginning of the circuit (backward bound)
- Approximate a bias contribution for each Pauli error term using the forward/backward bounds and the term's error rate
- Prioritize error terms based on their error rate and bounds. Truncate terms from the noise model which have the least effect on the observable expectation value until the user-specified bias tolerance is hit. Alternatively, one can add the most impactful error terms to a noise model until the user-specified sampling cost budget is filled.
- Mitigate the truncated noise model. Using the directed execution model from Qiskit Runtime, specifying error terms to ignore during PEC sampling is straightforward. See the tutorial for details.
- Parallel asynchronous bound computation
- Rust-accelerated Pauli propagation
- Permits ahead-of-time bound computation (i.e. prior to the actual noise learning)
- Windows not supported
InjectNoise(site="before")not supported- Does not support fine-grained bound merging
- Rust-accelerated eigenvalue computation for computing forward bounds
- Additional guides coming soon
The source code is available on GitHub.
The developer guide is located at CONTRIBUTING.md in the root of this project's repository. By participating, you are expected to uphold Qiskit's code of conduct.
If you use this package in your research, use the CITATION.bib file in this project’s repository to cite the appropriate reference(s).
We follow semantic versioning. We may occasionally make breaking changes in order to improve the user experience. When possible, we will keep old interfaces and mark them as deprecated, as long as they can co-exist with the new ones. Each substantial improvement, breaking change, or deprecation will be documented in the release notes.
[1] Andrew Eddins, et al., Lightcone shading for classically accelerated quantum error mitigation, arXiv:2409.04401v1 [quant-ph].




