-
Notifications
You must be signed in to change notification settings - Fork 55
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
Generating Random Error Generators #473
Comments
Just a heads-up to avoid working at cross purposes, I've started working on an implementation of this as part of a soon to be published branch. The currently envisioned features are (thanks to @kevincyoung for letting me pick his brain):
This overlaps a good deal with your list of desiderata, with the possible exception of:
I hadn't considered this, but it should be doable. This option is definitely something I can envision someone wanting down the road, so implementing it now is definitely in the spirit of 'do it once so we don't need to do this again.' Follow up on your parenthetical:
I hadn't considered this. My current target was for the output of this function to return a dictionary with |
In this case, the
|
I see. This definitely a scope creepy sort of question, but how much of a lift would it be to decouple the C and A terms? E.g. just having an SC or SA block? This is something we've mentioned wanting to be able to do before for finer tuned reduce model construction. It is also a parallel issue to this thread, however. |
Medium lift IMO. It's luckily mostly localized to Edit: Thinking through it more, it's possible we aren't enforcing CPTP with To avoid scope creep, I'd be inclined to keep the SCA sectors tied together for this PR, and then when we decouple later, we update the random generation as well. Really, nothing needs to happen in the random generation code if you are describing via the dictionaries and we are automagically detecting block structure, just under the hood we would allow an SC block instead of an SCA block in your example. |
Is your feature request related to a problem? Please describe.
We often like to test new protocols or features with random noise to see how it performs in simulation. It is fairly straightforward to generate realistic random noise for full/TP parameterized operations, using the
depolarize
,rotate
, orkick
functions. However, we currently don't have a good tool for generating random CPTP operations that are parameterized by error generators.Describe the solution you'd like
A function (maybe in
lindbladtools
?) which can generate valid random CPTP maps parameterized by error generators. Ideal features include:Of course, the challenge is being able to provide these sorts of tunable parameters and ensuring that the SCA matrix is PSD such that the map is CPTP overall...
Describe alternatives you've considered
We've tried variants of this in the past, normally by sampling some matrices and using
[email protected]
tricks to enforce the PSD constraint. Let's do this once correctly and put it in pyGSTi so we can stop rediscovering this every few months. :)The text was updated successfully, but these errors were encountered: