Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a primitives/backend wrapper to StabilizerState #13610

Open
gadial opened this issue Jan 5, 2025 · 0 comments
Open

Add a primitives/backend wrapper to StabilizerState #13610

gadial opened this issue Jan 5, 2025 · 0 comments
Labels
mod: primitives Related to the Primitives module mod: quantum info Related to the Quantum Info module (States & Operators) type: feature request New feature or request

Comments

@gadial
Copy link
Contributor

gadial commented Jan 5, 2025

What should we add?

In Qiskit we have the class quantum_info.states.StabilizerState which is effectively a Clifford simulator. Such simulator can provide real value for users thanks to their ability to handle large (Clifford) circuits.

Currently the usage of StabilizerState is very simple:

from qiskit import QuantumCircuit
from qiskit.quantum_info import StabilizerState, Pauli

# Bell state generation circuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
stab = StabilizerState(qc)
print (stab.probabilities_dict())

However, this is not the interface expected by users or encouraged by our documentation; currently the users are encouraged to use the primitives interface. While using primitives on the cloud is done via qiskit-ibm-runtime, in qiskit-sdk we also provide a local interface in the qiskit.primitives module. There are two ways in which the existing Clifford simulator can be integrated into qiskit.primitives with relative ease:

  1. We currently have a StatevectorEstimator and StatevectorSampler classes which are also based on a quantum_info capability (the Statevector class). Similarly we can add a StabilizerEstimator and StabilizerSampler classes.
  2. More generally, we can add a StabilizerBackend to providers (which currently contain the rudimentary simulator BasicSimulator) which will support the BackendV2 interface and will be used directly or via the BackendEstimatorV2 and BackendSamplerV2 classes of the primitives module.
@gadial gadial added the type: feature request New feature or request label Jan 5, 2025
@ShellyGarion ShellyGarion added mod: quantum info Related to the Quantum Info module (States & Operators) mod: primitives Related to the Primitives module labels Jan 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mod: primitives Related to the Primitives module mod: quantum info Related to the Quantum Info module (States & Operators) type: feature request New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants