-
Notifications
You must be signed in to change notification settings - Fork 2
Fix MIP Infeasibility/Unbounded errors and incorrect distance results by updating project.toml compat #61
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
Merged
Merged
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
5629f2f
Update package compatibility versions in Project.toml
Fe-r-oz fa4bb9f
Update Oscar dependency version to 1.7.0
Fe-r-oz 5a7e7dd
Update Julia version in downgrade workflow
Fe-r-oz e53a5f1
Update QECCore version to 0.1.3
Fe-r-oz 883ca4a
Update Oscar dependency version in Project.toml
Fe-r-oz 4cb235b
Merge branch 'QuantumSavory:main' into fa/improve-compact
Fe-r-oz 10215b8
remove tests that do not yield good codes
Fe-r-oz a2b7f92
polish.
Fe-r-oz 2b960dd
Modify distance tests with time limits.
Fe-r-oz 39ca4a7
polish
Fe-r-oz 2d689c6
polish
Fe-r-oz 7163992
polish
Fe-r-oz 5af8b7d
polish
Fe-r-oz 834c6a4
polish
Fe-r-oz 698afb2
polish
Fe-r-oz b20d22f
add mermaid diagram in ReadMe
Fe-r-oz ed533d8
cleanup
Fe-r-oz 0d4e71c
cleanup
Fe-r-oz 64f4bdd
Merge branch 'QuantumSavory:main' into fa/improve-compact
Fe-r-oz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a pretty weird change, a very good example of some of the weird changes in this PR.
You seem to have changed many of the broken tests with new similar but not the same tests (that now pass). But the broken tests were not actually fixed, they were replaced.
Given the state of the library, this is probably the best way forward and I have no qualms with it. But for the sake of documentation, could you explain why you have made these changes (in comments here). In particular, were the old broken tests wrong? Or were they in a format that was just difficult to reproduce? Are the new tests more "canonical" in some way, or are they also just some arbitrary tests? Why should be expect the new tests to not break in the future given that the old tests broke? Basically, I have the impression that you deleted some example codes and added new different example codes, and it feels kinda arbitrary.
Please try to be brief in your answer. Feel free to just answer whatever you perceive as the most important question above, not to answer them one-by-one. I am looking for a simple reason to trust all these numerous minute changes -- if they were necessary, why are you sure similar changes will not be needed in another year.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The “broken” tests were not incorrect implementation of$d_X$ , $d_Z$ ) instead of only $d_Z$ .
QuantumTannerCodethat causes the tests to broke, but examples of quantum Tanner codes whose true minimum distance is poor in one basis. After the compatibility-bound changes in QuantumClifford.jl, I retested the codes more systematically and started reporting the full minimum-distance (In most cases, I did not replace the tests: they are the same codes as before, but with separate verification of$d_X$ and $d_Z$ . For some tests, including the example you pointed out, I changed the parameters to use codes with more meaningful distances (for example, (
[[360,8,10,3]])) rather than keeping examples with poor distance in both bases. My goal was to keep examples that are more representative of good codes (from Morgensterns generators) and useful for documentation and regression testing.Since I have been building much of this library almost from scratch alongside developing new methods for searching quantum Tanner codes, many of the original test instances were exploratory examples generated during that process. At the time, I had not yet systematically validated both their X- and Z-basis minimum distances, whereas these tests now do.
After retesting the codes more carefully, I removed some whose true minimum distance turned out to be 1, since I do not think such examples are especially useful as regression tests. A smaller number of tests were also removed because the HiGHS/MIP minimum-distance computation occasionally returns unstable “INFEASIBLE/UNBOUNDED” behavior on those instances, making the tests unreliable.