5 ms·
You should use a modeling library which abstracts away from individual solvers, such as pyomo for Python: http://www.pyomo.org http://www.pyomo.org Gurobi is t
by allenz 8y ago
You should use a modeling library which abstracts away from individual solvers, such as pyomo for Python: http://www.pyomo.org 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.pdf https://people.eecs.berkeley.edu/~vazirani/algorithms/chap7....
- nickpsecurity 8y agoThanks! 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. :)
- allenz 8y agoI recommend learning linear programming first. It's simple and useful, and makes it easier to understand quadratic programming, convex optimization, etc.
- cjhanks 8y agoYeah, way to provide some great references here. Thanks.
- aidos 8y agoWe 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 https://github.com/SCIP-Interfaces/PySCIPOpt