-
Notifications
You must be signed in to change notification settings - Fork 49
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
QuantumCliffordJuMPExt: compute the minimum distance of QLDPC using Mixed Integer Programming #439
base: master
Are you sure you want to change the base?
Conversation
…ixed Integer Programming (MIP)
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #439 +/- ##
==========================================
+ Coverage 82.79% 83.06% +0.26%
==========================================
Files 69 72 +3
Lines 4558 4636 +78
==========================================
+ Hits 3774 3851 +77
- Misses 784 785 +1 ☔ View full report in Codecov by Sentry. |
Please help review this PR, thank you :) Thanks to GNU for open-souring GLPK. I have tested all the instances of 2bga codes using Possible Future TODOs include:
|
This is really interesting and deserving of a bounty. Regrettably there are a few merge conflicts related to the doc fixes in an earlier PR. Could you fix those? I also probably would suggest looking into a slightly different API, or at least some easier way to support independent solvers. But that can be discussed after the first round of review. |
I will mark it as a draft, just to make managing my review queue a bit easier. Just re-request review and mark it as ready after the fixes. |
That's a great suggestion
From A̶s̶ a̶ f̶u̶t̶u̶r̶e̶ T̶O̶D̶O̶:̶ C̶e̶r̶t̶a̶i̶n̶ M̶L̶E̶ d̶e̶c̶o̶d̶e̶r̶s̶ r̶e̶q̶u̶i̶r̶e̶ M̶I̶P̶ s̶o̶l̶v̶e̶r̶s̶ a̶s̶ w̶e̶l̶l̶. T̶h̶i̶s̶ w̶e̶e̶k̶, [̶C̶o̶r̶r̶e̶l̶a̶t̶e̶d̶ d̶e̶c̶o̶d̶i̶n̶g̶ o̶f̶ l̶o̶g̶i̶c̶a̶l̶ a̶l̶g̶o̶r̶i̶t̶h̶m̶s̶ w̶i̶t̶h̶ t̶r̶a̶n̶s̶v̶e̶r̶s̶a̶l̶ g̶a̶t̶e̶]̶(̶h̶t̶t̶p̶s̶:̶//a̶r̶x̶i̶v̶.o̶r̶g̶/p̶d̶f̶/2̶4̶0̶3̶.0̶3̶2̶7̶2̶)̶ a̶p̶p̶e̶a̶r̶e̶d̶ o̶n̶ a̶r̶X̶i̶v̶, a̶n̶d̶ i̶t̶ u̶s̶e̶d̶ M̶L̶E̶ d̶e̶c̶o̶d̶e̶r̶ t̶h̶a̶t̶ u̶s̶e̶ M̶I̶P̶ a̶p̶p̶r̶o̶a̶c̶h̶. T̶h̶i̶s̶ p̶a̶p̶e̶r̶ r̶e̶f̶e̶r̶e̶n̶c̶e̶s̶ t̶h̶e̶ s̶a̶m̶e̶ 2̶0̶1̶1̶ p̶a̶p̶e̶r̶ t̶h̶a̶t̶ i̶n̶t̶r̶o̶d̶u̶c̶e̶d̶ t̶h̶e̶s̶e̶ M̶L̶E̶ d̶e̶c̶o̶d̶e̶r̶s̶ u̶s̶i̶n̶g̶ m̶i̶x̶e̶d̶-̶i̶n̶t̶e̶g̶e̶r̶-̶p̶r̶o̶g̶r̶a̶m̶. The MLE decoder if we implement it using Linear Programming approach is 1000x slower than Chromobius and 300x slower than NN decoder (Reference), so I don't think that going within LP formulation (MLE decoders using LP) approach sounds appealing. We can allow to user to select from these solvers (based on recent trends):
|
This PR implements the Mixed Integer programming (MIP) approach to compute the minimum distance of QLDPC using GNU's Linear Programming Kit. This method is used by Panteleev and Kalachev and by Bravyi et. al.. The latter reference mentioned that this MIP approach was originally developed in 2011 and used in this reference
This PR allows the users to compute the minimum distance with ease and also provide the necessary documentation along with the relevant modern usecases. The tests have been conducted in #435
ILP/MILP methods: https://quantumcomputing.stackexchange.com/questions/37289/compute-the-exact-minimum-distance-of-a-qecc-with-integer-linear-programming-met
P.S. Mixed Integer Programming (MIP) or mixed integer linear program refer to same thing in the literature, in this context.
Edit: