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

Sparse operators on extended alphabets #12282

Closed
nonhermitian opened this issue Apr 19, 2024 · 0 comments · Fixed by #12671
Closed

Sparse operators on extended alphabets #12282

nonhermitian opened this issue Apr 19, 2024 · 0 comments · Fixed by #12671
Assignees
Labels
mod: primitives Related to the Primitives module mod: quantum info Related to the Quantum Info module (States & Operators) Rust This PR or issue is related to Rust code in the repository type: feature request New feature or request
Milestone

Comments

@nonhermitian
Copy link
Contributor

What should we add?

The current primary operator class in Qiskit, SparsePauliOp, is limited to only Pauli observables, and is actually not sparse, but rather holds data in the form of two dense NumPy arrays. This design choice comes with several limitations. First, the restriction to Pauli operators means that one cannot use the current class for computing expectation values of projector operators, like those used in QML kernel methods, requiring a Pauli decomposition that scales exponentially. Second, the choice of internal representation results in a memory footprint and operator construction time that is larger than other quantum SDKs.

Instead, Qiskit should move to a real sparse format that allows for operations on extended alphabets that include projection operators, the most important being '0' and '1'. The limited alphabet can be stored efficiently where the indices of only non-identity terms should be kept in the data structure.

@nonhermitian nonhermitian added the type: feature request New feature or request label Apr 19, 2024
@mtreinish mtreinish added mod: quantum info Related to the Quantum Info module (States & Operators) Rust This PR or issue is related to Rust code in the repository mod: primitives Related to the Primitives module labels Apr 19, 2024
@mtreinish mtreinish added this to the 1.2.0 milestone Apr 19, 2024
@mtreinish mtreinish modified the milestones: 1.2.0, 1.3 beta Jul 25, 2024
@mtreinish mtreinish modified the milestones: 1.3 beta, 1.3.0 Sep 4, 2024
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) Rust This PR or issue is related to Rust code in the repository type: feature request New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants