Skip to content

Conversation

@Snopoff
Copy link
Contributor

@Snopoff Snopoff commented Nov 26, 2025

Checklist

  • My pull request has a clear and explanatory title.
  • My pull request passes the Linting test.
  • I added appropriate unit tests and I made sure the code passes all unit tests. (refer to comment below)
  • My PR follows PEP8 guidelines. (refer to comment below)
  • My code is properly documented, using numpy docs conventions, and I made sure the documentation renders properly.
  • I linked to issues and PRs that are relevant to this PR.

Description

This PR introduces the MIPLIBDataset, a dataset class for loading Mixed Integer Programming (MIP) instances from the MIPLIB 2017 benchmark.

What is a MIP?

A mixed-integer linear program (MIP) is an optimization problem of the form

$$ \min_{x \in \mathbb{Z}^p \times \mathbb{R}^q} c^\top x \quad \text{s.t.} \quad Ax \le b, $$

where some components of (x) are required to be integer-valued. MIPs are a standard modelling tool for combinatorial optimization and operations research and are solved in practice by branch-and-bound, cutting planes, and related techniques.

What is MIPLIB?

MIPLIB is the standard public library of real-world and synthetic MIP instances used to benchmark mixed-integer solvers. The current version, MIPLIB 2017, contains 1,065 instances, with a 240-instance official benchmark subset used to compare solver performance. In this PR, the benchmark subset is used.

Motivation:
Combinatorial optimization problems, specifically MIPs, possess a natural bipartite structure (Variables $\leftrightarrow$ Constraints). This structure was exploited in several works applying GNNs to the combinatorial optimization problems. However, this bipartite representation naturally extends to a hypergraph formulation, where each constraint is treated as a hyperedge connecting all variables appearing in it.

References & Prior Art

This implementation is inspired by works that apply GNNs to MIPs, generalizing the bipartite representation to hypergraphs:

@levtelyatnikov levtelyatnikov added the category-a2 Submission to TDL Challenge 2025: Mission A, Category 2. label Nov 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category-a2 Submission to TDL Challenge 2025: Mission A, Category 2.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants