Validating Mixed-Integer Programming Solvers
Xintong Zhou, Zhenyang Xu, Chengnian Sun
Abstract
Mixed-integer programming (MIP) is a fundamental class of mathematical optimization problems with broad applications in various domains such as finance, engineering, and management science. MIP solvers, software systems that automatically solve MIP problems, serve as the computational backbone for these applications. Given their widespread use, ensuring the correctness of MIP solvers is crucial, as incorrect results, such as falsely determining feasibility or returning incorrect solutions, can lead to serious real-world consequences. Despite its importance, validating the correctness of MIP solvers remains largely unexplored in both theory and practice.
This paper presents the first systematic effort to address this problem. We propose feasibility-driven instance generation, a simple yet effective technique to generate random MIP instances for testing solver correctness. The core idea is to systematically synthesize MIP instances that are provably feasible or infeasible by construction. These instances are then fed to MIP solvers to detect potential bugs. We realize this methodology in Flip. To date, Flip has uncovered 67 confirmed bugs in five widely used MIP solvers, spanning both open-source and commercial systems. Among these, 54 have been promptly fixed by the developers. Our efforts and findings have been well acknowledged by the MIP solver community.
• Software and its engineering → Software testing and debugging.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext e8583c4e-8c24-4520-943f-1fcc854f2c9aBuilds on21
- Coverage-based Greybox Fuzzing as Markov ChainMarcel Böhme, Van-Thuan Pham, Abhik RoychoudhuryCCS 2016 · 1,026 citations
- Directed Greybox FuzzingMarcel Böhme, Van-Thuan Pham, Manh-Dung Nguyen, Abhik RoychoudhuryCCS 2017 · 836 citations
- kAFL: Hardware-Assisted Feedback Fuzzing for OS KernelsSergej Schumilo, Cornelius Aschermann, Robert Gawlik, Sebastian Schinzel et al.USENIX Security 2017 · 324 citations
- Random testing for C and C++ compilers with YARPGenVsevolod Livinskii, Dmitry Babokin, John RegehrOOPSLA 2020 · 140 citations
- NNSmith: Generating Diverse and Valid Test Cases for Deep Learning CompilersJiawei Liu, Jinkun Lin, Fabian Ruffy, Cheng Tan et al.ASPLOS 2023 · 90 citations
Related papers
- L2P-MIP: Learning to Presolve for Mixed Integer ProgrammingChang Liu, Zhichen Dong, Haobo Ma, Weilin Luo et al.ICLR 2024 · 10 citations
- Automatically testing string solversAlexandra Bugariu, Peter MüllerICSE 2020 · 28 citations
- Learning to Schedule Heuristics in Branch and BoundAntonia Chmiela, Elias B. Khalil, Ambros M. Gleixner, Andrea Lodi et al.NeurIPS 2021 · 79 citations
- Accelerating Primal Solution Findings for Mixed Integer Programs Based on Solution PredictionJian-Ya Ding, Chao Zhang, Lei Shen, Shengyin Li et al.AAAI 2020 · 119 citations
- FMIP: Joint Continuous-Integer Flow For Mixed-Integer Linear ProgrammingHongpei Li, Hui Yuan, Han Zhang, Jianghao Lin et al.ICLR 2026
