-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
codingGeneral coding work, such as implementing a new algorithm or writing testsGeneral coding work, such as implementing a new algorithm or writing testsenhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomersnoise-modellingImplementation of noise modelsImplementation of noise models
Description
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
NoiseModelclass 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
NoiseModelclass: 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
NoiseModelclass to theThresholdLABor/andBaseCodefor 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
NoiseModelclass 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:
NoiseModelClass:
- The class should have a base interface for common operations (e.g.,
apply_noise()). - Each subclass should implement the noise model-specific behaviour.
- Threshold Calculation Integration:
- Modify the
ThresholdLABor/andBaseCodeto accept an instance of theNoiseModelclass. - Update the threshold calculation logic to interface with the noise model dynamically, applying the model during the simulation process.
- Future Extensions:
- Design the
NoiseModelclass to be easily extendable with additional noise models (e.g., correlated noise, time-dependent noise, qubit-dependent noise).
Metadata
Metadata
Assignees
Labels
codingGeneral coding work, such as implementing a new algorithm or writing testsGeneral coding work, such as implementing a new algorithm or writing testsenhancementNew feature or requestNew feature or requestgood first issueGood for newcomersGood for newcomersnoise-modellingImplementation of noise modelsImplementation of noise models