-
Notifications
You must be signed in to change notification settings - Fork 58
WIP: Improvements to leakage modeling and gauge optimization #664
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
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…s from reportables.py into pygsti/tools/leakage.py. Bugfix for qubit label assumption in leaky_qubit_model_from_pspec.
…last commit just applied a fix to linear operators). Also, make it possible to use different weights on state prep vs `spam` writ-large in gauge optimization
…t` from their gopparameters member. Update lagoified_gopparams_dict so the gauge optimization step that `stdgaugeopt` does over the unitary group is REPLACED by gauge optimization over the target models default_gauge_group (when that default exists). Update leaky_qubit_model_from_pspec to handle idle gates in a more robust way and to set the default gauge group to a direct sum unitary group that preserves separation between computational subspace and leakage space.
…d to write tests.
…d the values of what are currently magic numbers hard-coded to 1e-4.
* Lots of docs. * New function called “subspace_projector” * rename functions only introduced in this PR (leakage_profile, seepage_profile —> gate_leakage_profile, gate_seepage_profile). * rename std_lago_gopsuite to std_lago_gaugeopt_params. This makes sense because each dict in a list-of-dicts representation of a gauge optimization suite is supposed to be passable to gaugeopt_to_target entirely as kwargs. One could argue that this is a breaking change, but it's for a function that should have had low-exposure in 0.9.14. updates to gst.py and gaugeopt.py to incorporate the subspace_projector function. updates to reportables.py to reflect the renames of leakage_profile / seepage_profile.
… functions. Rename subspace_projector to superop_subspace_projector.
rileyjmurray
commented
Oct 10, 2025
|
Testing TODOs: Leakage-specific
General
|
…eakage.py, rather than home-brewing an equivalent function.
…ion that should work for arbitrary constructions of the computational subspace. Comitting to share code and get feedback before devising the clean-up and testing plan
|
Closing this PR since its scope got too large. Moving preliminary changes into a new PR. |
|
Splitting into ...
|
This was referenced Oct 17, 2025
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
EDIT: closing this PR since its scope got too large. Moving preliminary changes into a new PR.
I made this branch to resolve issue #652. While working on that I made various improvements to gauge optimization.
I made incidental changes to objectivefns.py. The default values that various objective classes use for "min_prob_clip" (or similarly named variables) are now controlled by module-wide or class-wide constants that can be changed at runtime, rather than being hard-coded to defaults of 1e-4.
Changes to gst.py:
_load_datasetand_load_modelthat were not referenced anywhere in the pyGSTi repo._compute_wildcard_budget_1d_modeland_compute_1d_reference_values_and_nameto eliminate nesting and code duplication._compute_1d_reference_values_and_nameto use subspace-restricted diamond distance if the provided gauge optimization suite includes the flag n_leak=1._add_param_preserving_gauge_optto also call_add_bad_fit_estimates.Other leakage-related changes: