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

Implement a Flexible Noise Model Class #12

Open
adelshb opened this issue Feb 10, 2025 · 2 comments
Open

Implement a Flexible Noise Model Class #12

adelshb opened this issue Feb 10, 2025 · 2 comments
Assignees
Labels
coding General coding work, such as implementing a new algorithm or writing tests enhancement New feature or request good first issue Good for newcomers noise-modelling Implementation of noise models

Comments

@adelshb
Copy link
Owner

adelshb commented Feb 10, 2025

Issue: Implement a Flexible Noise Model Class

Description:
Currently, the circuit-level threshold calculator uses a fixed and limited noise model. To improve flexibility and clarity and allow users to assign different noise models dynamically, we propose implementing a NoiseModel class. This class would allow users to easily assign and customize their desired noise model for threshold calculations, including support for various types of noise (e.g., depolarizing, bit-flip, phase-flip, amplitude damping, etc.).

This new class would decouple the noise model from the existing circuit construction logic, enabling a more modular approach to handling noise and allowing users to experiment with different noise models.

Motivation:

  • Flexibility: Users should be able to easily switch between different noise models depending on their use case or experiment.
  • Modularity: A separate NoiseModel class will make the codebase more maintainable and easier to extend with new noise models.
  • Customization: Researchers can fine-tune noise models specific to their quantum hardware or experimental setup, allowing for more realistic simulations.

Expected Changes:

  • Introduce NoiseModel class: Implement a class that allows users to assign a desired noise model (e.g., depolarizing, bit-flip, phase-flip, amplitude damping) and specify noise parameters.
  • Interface for assigning noise models: Allow users to pass an instance of the NoiseModel class to the ThresholdLAB or/and BaseCode for customized noise handling.
  • Support for multiple noise types: Provide a flexible interface that can be extended to support new noise models in the future.
  • Update threshold calculation logic: Refactor the threshold calculation to interface with the NoiseModel class instead of relying on a fixed noise model.
  • Testing and Validation: Ensure existing tests pass with the new class and add new tests to cover various noise models.

Design Proposal:

  1. NoiseModel Class:
  • The class should have a base interface for common operations (e.g., apply_noise()).
  • Each subclass should implement the noise model-specific behaviour.
  1. Threshold Calculation Integration:
  • Modify the ThresholdLAB or/and BaseCode to accept an instance of the NoiseModel class.
  • Update the threshold calculation logic to interface with the noise model dynamically, applying the model during the simulation process.
  1. Future Extensions:
  • Design the NoiseModel class to be easily extendable with additional noise models (e.g., correlated noise, time-dependent noise, qubit-dependent noise).
@adelshb adelshb added coding General coding work, such as implementing a new algorithm or writing tests enhancement New feature or request good first issue Good for newcomers noise-modelling Implementation of noise models labels Feb 10, 2025
@eshant742
Copy link

hi @adelshb can you assign this issue to me i can try

@adelshb adelshb assigned adelshb and eshant742 and unassigned adelshb Feb 13, 2025
@adelshb
Copy link
Owner Author

adelshb commented Feb 13, 2025

Hi @eshant742! Thanks so much for accepting and taking care of this issue. I’ll be adding more details soon (I’ll update this message later). Hopefully, this will help clarify exactly what needs to be done!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
coding General coding work, such as implementing a new algorithm or writing tests enhancement New feature or request good first issue Good for newcomers noise-modelling Implementation of noise models
Projects
None yet
Development

No branches or pull requests

2 participants