I'm implementing LP-relaxaction based algorithm for solving Prize Collecting Steiner Tree problem. In fact, this problem is equivalent to ILP problem with exponentially many constraints. In the algorithm proposed in http://www.siam.org/meetings/alenex05/papers/06iljubic.pdf they start from LP-relaxation problem with relatively small number of constraints and then introduce new at every CUT step. Is there any package that allows to implement it in Python?
Asked
Active
Viewed 65 times
0
-
1These are often called **lazy constraints**. The commercial solvers [Gurobi](http://www.gurobi.com/) and [Cplex](https://www-01.ibm.com/software/commerce/optimization/cplex-optimizer/) offer nice API's (and might be free for academic use). The only open-source solver with support for these i know, is [scip](http://scip.zib.de/) (open-source, but not free for commercial use i think!). These constraints might be supported in it's [python-API](https://github.com/SCIP-Interfaces/PySCIPOpt) with an example @```examples/finished/lotsizing_lazy.py``` – sascha Sep 15 '16 at 18:33
-
1It's also possible that i misunderstood your use-case and you don't want lazy-constraints, but user-cuts. Read [this nice article](http://orinanobworld.blogspot.de/2012/08/user-cuts-versus-lazy-constraints.html) about the difference. I'm pretty sure every solver supporting lazy-constraints also support user-cuts. – sascha Sep 15 '16 at 18:37