MIPLIB 2017 Infeas
Background

About this collection

Primal-infeasible instances

A CPLEX branch-and-bound run explores a MIPLIB 2017 instance with cuts, presolve, probing and primal heuristics switched off. A callback follows the search and re-solves the opposite side of every branch it takes; the sides with no feasible point are written out. The bounds come from a branch the run actually took, not from bounds tightened at random. Which nodes a tree contains depends on the solver that built it, so reproducing this subset means reproducing that run.

Dual-infeasible instances

Where the source LP relaxation is feasible with a bounded optimum, a CPLEX loop drops bounds and constraints one at a time from the optimal dual support until the objective goes unbounded, then restores every unnecessary drop, leaving an inclusion-minimal set. A source relaxation that is already unbounded is published without dropping anything. Relaxing a feasible problem cannot make it infeasible, so each one is genuinely unbounded rather than empty.

What survives to publication

A candidate is kept only if neither HiGHS nor Gurobi presolve settles it unaided: whatever a presolver disposes of on its own is too easy to publish. One instance per source instance per subset is then selected, reproducibly, from what survives. Neither presolver contributes an instance.

Software

These are the versions that produced the published files. A solver named without its version describes a run nobody can repeat: which nodes a tree holds depends on the solver that built it, and what a presolve run disposes of changes between releases.

CPLEX22.1.2.1
Built the branch-and-bound trees the primal-infeasible set is taken from, and ran the loop that drops bounds and constraints for the dual-infeasible one.
HiGHS1.14.0
The first presolver a candidate had to survive, reached through the highspy bindings.
Gurobi12.0.3
The second presolver a candidate had to survive.
Python3.11.9
Ran the mining code driving all three: the callback that follows the search, the drop loop, and the selection.

Source and licence

Every instance derives from MIPLIB 2017. Please also cite Gleixner et al., “MIPLIB 2017: Data-Driven Compilation of the 6th Mixed-Integer Programming Library”.

The source instances do not all carry the same terms. Sources submitted through the MIPLIB 2017 form carry CC BY-SA 4.0 unless their contributor chose otherwise; adult-max5features carries BSD 3-Clause. Sources carried over from earlier MIPLIB editions carry no licence of record because they predate the form and the licence it required.

To the extent this project holds copyright or related rights in them, its own work and the linear programs derived from CC BY-SA sources are released under CC BY-SA 4.0. The carried-over sources are not: neither MIPLIB nor anyone else placed them under it, so they are redistributed on the footing ZIB distributes them on, with the source named and the contributor credited. Each instance page states the terms of its own source; the BSD notice, the required attribution and the list of sources without a licence of record are set out in LICENSE.