Canada Spends Logo

Explore our Budget 2026 analysis

Grant: Discovery Grants Program - Individual

University of New Brunswick

$41,000.00

Novel constraint synthesis methods for integer programs

FY 2024-25

Summary
Integer Programming is a broadly applicable mathematical modelling technique that looks for integral solutions to systems of linear inequalities. The standard integer programming benchmark suite MIPLIB includes applications from scheduling (academic timetables, trains, airline crews, nurse/doctor rostering), computational systems biology, water system planning, vehicle routing, and statistical disclosure control. Integer programming models are processed by sophisticated solvers, primarily based on branch-and-bound and the incremental addition of constraints called cutting planes. Many problems of interest remain out of reach: 286 of the 1065 MIPLIB collection are unsolved as of this writing. In this proposal new techniques for solving and modelling (i.e. constructing sets of constraints for) integer programs are explored under the umbrella of constraint synthesis i.e. generating constraints from high level input. The proposed techniques promise to extend the reach of existing solvers to new problem classes. A set of candidates is called a coreset (or set of core points) for some problem if solving the problem on this set gives the same answer as considering the entire search space. Recently several authors have developed coreset methods for solving integer programs based on input symmetry; problem symmetries occur in practice when relabellings of the input yield equivalent problem structure. This equivalent problem structure causes repeated work for branching solvers, and state of the art commercial and research solvers make efforts to break the symmetries in various ways. Instead of seeing symmetry as a problem, coreset techniques seek to exploit it to solve integer programs faster. In the most direct approach, core points are enumerated and tested individually. Current research on core points for integer programming is mainly focused on bounding the number core points (or the number of equivalence classes). I propose to explore a new approach based on outer approximation, in particular based on the synthesis of constraints that describe the set of core points. This has the potential to make new classes of integer programs solvable, and is of interest to both solver writers and practitioners (i.e. people with integer programs to solve). While integer programming is a very general problem solving method, the process of modelling, or constructing input for a solver can be challenging, and the tractability of an instance can depend on the skill (and luck) of the modeller. I propose to develop a compiler to synthesize constraints from a simple procedural description of the feasible points. Based on recent work in extended formulations, this represents a kind of dual to the standard procedural approach of generating the constraints directly. We plan to integrate the new modelling tool into an existing algebraic (declarative) modelling language to make it available to practitioners in a solver independent way.
Program
Discovery Grants Program - Individual
Location
New Brunswick, Canada
Recipient Type
Academia
Type
Grant
Source
NSERC's Awards Data

As published

Application id
RGPIN-2020-04108
Name nom
Bremner, David
Department département
Computer Science, Faculty of - Computer Science, Faculty of
Organization id
75
Institution établissement
University of New Brunswick
Province en
New Brunswick
Province fr
Nouveau-Brunswick
Country en
CANADA
Country fr
CANADA
Fiscal year exercice financier
2024
Competition year année de concours
2020
Award amount
41000
Program id
RGPIN
Program name en
Discovery Grants Program - Individual
Program name fr
Programme de subventions à la découverte - individuelles
Group en
DISCOVERY RESEARCH
Group fr
RECHERCHE AXÉE SUR LA DÉCOUVERTE
Committee code
1507
Committee name en
Computer Science
Committee name fr
Sciences informatiques
Area of application code
700
Area of application group en
Transportation systems and services
Area of application group fr
Services et systèmes de transport
Area of application en
Transportation systems and services
Area of application fr
Services et systèmes de transport
Research subject code
2715
Research subject group en
Information technology
Research subject group fr
Technologie de l'information
Research subject en
Optimization
Research subject fr
Optimisation
Field of research list names en
Not available
Field of research list names fr
Non disponible
Socioeconomic objective list names en
Not available
Socioeconomic objective list names fr
Non disponible
Application title
Novel constraint synthesis methods for integer programs
Keywords
optimization; operations research; algorithms; linear programming; integer programming; core points; symmetry; modelling languages; extended formulations; geometry
Application summary
Integer Programming is a broadly applicable mathematical modelling technique that looks for integral solutions to systems of linear inequalities. The standard integer programming benchmark suite MIPLIB includes applications from scheduling (academic timetables, trains, airline crews, nurse/doctor rostering), computational systems biology, water system planning, vehicle routing, and statistical disclosure control. Integer programming models are processed by sophisticated solvers, primarily based on branch-and-bound and the incremental addition of constraints called cutting planes. Many problems of interest remain out of reach: 286 of the 1065 MIPLIB collection are unsolved as of this writing. In this proposal new techniques for solving and modelling (i.e. constructing sets of constraints for) integer programs are explored under the umbrella of constraint synthesis i.e. generating constraints from high level input. The proposed techniques promise to extend the reach of existing solvers to new problem classes. A set of candidates is called a coreset (or set of core points) for some problem if solving the problem on this set gives the same answer as considering the entire search space. Recently several authors have developed coreset methods for solving integer programs based on input symmetry; problem symmetries occur in practice when relabellings of the input yield equivalent problem structure. This equivalent problem structure causes repeated work for branching solvers, and state of the art commercial and research solvers make efforts to break the symmetries in various ways. Instead of seeing symmetry as a problem, coreset techniques seek to exploit it to solve integer programs faster. In the most direct approach, core points are enumerated and tested individually. Current research on core points for integer programming is mainly focused on bounding the number core points (or the number of equivalence classes). I propose to explore a new approach based on outer approximation, in particular based on the synthesis of constraints that describe the set of core points. This has the potential to make new classes of integer programs solvable, and is of interest to both solver writers and practitioners (i.e. people with integer programs to solve). While integer programming is a very general problem solving method, the process of modelling, or constructing input for a solver can be challenging, and the tractability of an instance can depend on the skill (and luck) of the modeller. I propose to develop a compiler to synthesize constraints from a simple procedural description of the feasible points. Based on recent work in extended formulations, this represents a kind of dual to the standard procedural approach of generating the constraints directly. We plan to integrate the new modelling tool into an existing algebraic (declarative) modelling language to make it available to practitioners in a solver independent way.