Skip to content
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 (MIP) via GNU Linear Programming Kit #439

Open
wants to merge 20 commits into
base: master
Choose a base branch
from

Conversation

Fe-r-oz
Copy link
Contributor

@Fe-r-oz Fe-r-oz commented Nov 30, 2024

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:

  • The code is properly formatted and commented.
  • Substantial new functionality is documented within the docs.
  • All new functionality is tested.
  • All of the automated tests on github pass.
  • We recently started enforcing formatting checks. If formatting issues are reported in the new code you have written, please correct them.

@Fe-r-oz Fe-r-oz changed the title QuantumCliffordJuMPExt: compute the minimum distance of QLDPC using Mixed Integer Programming (MIP) QuantumCliffordJuMPExt: compute the minimum distance of QLDPC using Mixed Integer Programming (MIP) via GNU Linear Programming Kit Nov 30, 2024
Copy link

codecov bot commented Nov 30, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 83.13%. Comparing base (5fcf353) to head (988751a).

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #439      +/-   ##
==========================================
+ Coverage   83.00%   83.13%   +0.13%     
==========================================
  Files          71       72       +1     
  Lines        4565     4636      +71     
==========================================
+ Hits         3789     3854      +65     
- Misses        776      782       +6     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Fe-r-oz Fe-r-oz marked this pull request as ready for review December 5, 2024 13:41
@Fe-r-oz
Copy link
Contributor Author

Fe-r-oz commented Dec 5, 2024

Please help review this PR, thank you :)

Thanks to GNU for open-souring GLPK. I have tested all the instances of 2bga codes using distance and added other tests for correctness. Many more tests are in #435. Referring to #353 as it's related a issue. This PR aims to provide the first reasonable step. This MIP method is used by Panteleev and Kalachev and by Bravyi et. al.. This MILP method that Bravyi used was also asked on stack exchange. The end goal is to be able to compute minimum distance of QECC/QLDPC codes with n being $10^3$ or $10^4$: QDistRnd or MaxSAT solvers or upcoming algorithms appear to be helpful for that. There is a lot more work to be done in this direction. I will be happy if this PR is one of my PRs you are most excited about, along with in-place Ted's Pauli measurement algorithm PR. :)

Possible Future TODOs include:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant