Hacker News new | past | comments | ask | show | jobs | submit login

I hadn't even heard of them before now. Mixed-Integer Programming Solvers is what I found looking up the term. What are the best free ones to check out? And anyone got good tutorials w/ examples? I'll start keeping an eye out for CompSci work on them if they're really useful.



You should use a modeling library which abstracts away from individual solvers, such as pyomo for Python: http://www.pyomo.org

Gurobi is the fastest solver, and it's free for college students. SCIP, MIPCL, and CBC are the fastest free solvers, in that order.

To learn how to formulate a problem as a linear program, you can read through the examples at https://people.eecs.berkeley.edu/~vazirani/algorithms/chap7....


We use SCIP in our system and it’s brilliant. They have proper python bindings so the call overhead is low. We reduced what was previously a complex hand optimised algorithm to a handful of equations a weight function. Highly recommended.

https://github.com/SCIP-Interfaces/PySCIPOpt


Thanks!

Edit: "Pyomo supports a wide range of problem types, including:

Linear programming

Quadratic programming

Nonlinear programming

Mixed-integer linear programming

Mixed-integer quadratic programming

Mixed-integer nonlinear programming

Stochastic programming

Generalized disjunctive programming

Differential algebraic equations

Bilevel programming

Mathematical programs with equilibrium constraints"

Love it when someone links to one thing that has a pile of links to other useful techniques to learn about. :)


I recommend learning linear programming first. It's simple and useful, and makes it easier to understand quadratic programming, convex optimization, etc.


Yeah, way to provide some great references here. Thanks.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: