Closed javabster closed 8 months ago
There are actually two distinct and unrelated Clifford simulator implementations:
Which one of these should the new page be about? Should we write about both of them?
I think that probably both of them should be documented, and a good starting point could be this blog: https://medium.com/qiskit/explore-the-clifford-group-a-crucial-tool-for-benchmarking-error-correction-and-more-b9fdca16bb46
However, I also think that Qiskit Aer simulator is more powerful in several ways: First, as it's written in C++ it should be more efficient and scalable than the Python quantum_info classes. Second, Qiskit Aer also includes the Extended Stabilizer simulator that can simulate circuits containing some non-Clifford gates. Third, one can use Qiskit Aer noise model to simulate Clifford circuits with additional Pauli noise using the Stabilizer simulator.
Perhaps there may be some interesting use-cases for Quantum Error Correction (https://github.com/qiskit-community/qiskit-qec)?
Note that the StabilizerState
class can be useful in preparing an initial stabilizer state as part of a more general quantum circuit (or a final Clifford for multi-qubit Randomized Benchmarking). There are some efficient synthesis algorithms for it:
https://qiskit.org/documentation/apidoc/synthesis.html#qiskit.synthesis.synth_stabilizer_depth_lnn
Thanks for the information. I think this particular page should explain the most efficient option, which is the Aer simulator. Using StabilizerState should probably be documented in a page that's more focused on quantum information.
What the new page should cover:
Non-trivial example of using Clifford Simulator
SME collaborators (involve for planning and review):
Shelly Garion
Existing resources to build upon