coin-or / coin-or/python-mip

Feature Request: Indicator Constraints

Open
#9 12 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Linear Programming
Stars
600
Forks
108
PR merge metrics
No merged PRs in 30d

Description

Following up from my boolean modelling issue, one of the nicest features of Gurobi, CPLEX and SCIP are indicator constraints. They make modelling complex boolean constraints extremely easy, in fact Gurobi and CPLEX also include boolean AND and OR constraints which are just lovely, though those are not particularly hard to model once you have indicator constraints.

Indicator constraints can be implemented using Big-M, Convex Hull, or SOS constraints. The Big-M formulation is the simplest but variables need tight bounds for it to work nicely. Convex Hull needs less tight bounds and has better numerical properties but is more complicated and needs more additional variables and constraints. I have no idea how they are encoded with SOS constraints.

Are there any plans to expose the indicator constraint features of Gurobi? And if so, would they be replicated in Python-MIP for CBC by using one of the encoding tricks above?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.