Skip to content

feat(simulator): add QuantumState interface and local DensityMatrixSi… - #29

Open
Aditya12313 wants to merge 4 commits into
qpiai:mainfrom
Aditya12313:feature
Open

Aditya12313 wants to merge 4 commits into
qpiai:mainfrom
Aditya12313:feature

Conversation

@Aditya12313

@Aditya12313 Aditya12313 commented Sep 3, 2026

Copy link
Copy Markdown

…mulator

  • Add QuantumState abstract base class for state representations
  • Implement DensityMatrixState and local DensityMatrixSimulator for offline execution
  • Fix 2D list parsing bug in quantum_info.DensityMatrix._init_from_array
  • Add comprehensive test suite in tests/test_density_matrix_simulator.py

Summary

This PR adds a generic QuantumState interface and introduces a local DensityMatrixSimulator backend, enabling offline and noisy circuit simulations without cloud dependencies. It also resolves a 2D array parsing bug in quantum_info.DensityMatrix.

Key Changes

  1. QuantumState Abstract Interface (qpiai_quantum/simulator/state.py):
    • Defines a standard interface for quantum state representations (single-qubit gates, multi-qubit gates, unitary evolution, Kraus channels, measurement statistics).
  2. DensityMatrixState & DensityMatrixSimulator (qpiai_quantum/simulator/density_matrix.py):
    • Implements two-sided tensor gate transformations: $\rho \to U \rho U^\dagger$.
    • Supports Kraus operator channel application: $\rho \to \sum_i K_i \rho K_i^\dagger$.
    • Includes state helpers (pure_state, maximally_mixed), information-theoretic metrics (purity, von_neumann_entropy), and subsystem partial_trace (specifically optimized for 2-level qubit registers).
    • Implements BaseSimulator interface, returning standard QasmSimulatorResult.
  3. Bug Fix in quantum_info.DensityMatrix._init_from_array:
    • Fixed conditional branch handling in _init_from_array so 2D numeric and complex nested lists properly initialize self.data.
  4. Unit Tests (tests/test_density_matrix_simulator.py):
    • 10 comprehensive tests covering gates, mixed states, partial trace, Kraus channels, and quantum_info.DensityMatrix interoperability.

Verification

  • All 10 tests in tests/test_density_matrix_simulator.py and existing simulator unit tests pass cleanly.

Aditya Deshmukh and others added 4 commits September 3, 2026 17:17
…mulator

- Add QuantumState abstract base class for state representations
- Implement DensityMatrixState and local DensityMatrixSimulator for offline execution
- Fix 2D list parsing bug in quantum_info.DensityMatrix._init_from_array
- Add comprehensive test suite in tests/test_density_matrix_simulator.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants