INFORMS Open Forum

  • 1.  Open source optimization suite

    Posted 04-20-2018 10:44
    I am looking for a free/ open source software program for solving integer programming (IP) models.
    I currently use Excel Solver but I need something that can handle more than 200 decision variables.
    Any recommendations?
    Thanks,
    Steve Vijayan
    Measurement Specialist
    Continuous Improvement Resource Office
    Nemours Children's Health System
    Ph: 302-298-7449 | Cell: 302-562-9085
     
     
     


  • 2.  RE: Open source optimization suite

    Posted 04-21-2018 01:30
    Probably you can look into <g class="gr_ gr_17 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar only-ins doubleReplace replaceWithoutSep" id="17" data-gr-id="17">academic</g> version of Gurobi. It is not FOSS. But it may work with you for different programming languages.

    ------------------------------
    Sreekanth V K
    Indian Institute of Technology Kharagpur
    Kharagpur
    ------------------------------



  • 3.  RE: Open source optimization suite

    Posted 04-21-2018 04:42
    You can use Pyomo (http://www.pyomo.org/) for modeling the optimization problem and as a solver you can use Cbc from COIN-OR (https://www.coin-or.org/)
    Another option is the NEOS server (NEOS Server for Optimization) where you can upload your model in different input formats and obtain the solution by email. It has its limitations, but I think is a good option to explore and test different solvers.

    ------------------------------
    Diego Alejandro Tejada Arango
    Research Asssistant
    Universidad Pontificia Comillas
    Madrid
    ------------------------------



  • 4.  RE: Open source optimization suite

    Posted 04-21-2018 09:41
    If you'd like to stay in Excel, you might consider OpenSolver, an Excel add-in that uses CBC (a COIN-OR project) as its solver engine.

    ------------------------------
    Paul Rubin
    Professor Emeritus
    Michigan State University
    East Lansing MI
    ------------------------------



  • 5.  RE: Open source optimization suite

    Posted 04-22-2018 23:37
    Frontline Solver add-in with excel has a limitation of 200 variables etc. However, full version without limitations is available for trial for 14 days. This can be used to set up the problem on trial basis and solve. Later, you can ask Frontline systems for a full version for academic purpose and they normally issue a license with longer validity like 6 months as long as there is no commercial motive associated.

    Since excel modeling is easier to handle I am suggesting this. You can try similarly with whatsbest, the excel solver from LINDO, which requires a little adjustment to a solver setup.

    I have tried and solved larger problems with more variables and constraints successfully for academic and competition purposes.

    Hope this helps.


    ------------------------------
    Nilakantan Narasinganallur
    Associate Professor - Quantitative Methods
    K J Somaiya Institute of Management Studies & Research
    MumbaiIndia
    ------------------------------



  • 6.  RE: Open source optimization suite

    Posted 04-21-2018 10:03
    Hello,

    Maybe  you can check if GAMS can fit your needs.

    Best regards
    Hugo Caçote

    ------------------------------
    Hugo José Monteiro Caçote
    Global Demand Planning Manager
    Givaudan International SA
    Geneva
    ------------------------------



  • 7.  RE: Open source optimization suite

    Posted 04-21-2018 18:11
    If you want to stay in Excel, try SolverStudio (at solverstudio.org) or OpenSolver. Either can solve larger problems using optimizers from the open-source site coin-or.org

    ------------------------------
    Richard Barr
    Associate Professor, EMIS Department
    Southern Methodist University
    Dallas TX
    ------------------------------



  • 8.  RE: Open source optimization suite

    Posted 04-21-2018 21:09
    Hi Steve. You can use the FICO Xpress-Solver with Xpress-Mosel modeling language. Xpress-Mosel is now free to use, and the community license of Xpress-Solver allows for a maximum of 5000 rows+columns, so that should help you get beyond the Excel limit.

    Go to https://community.fico.com/community/fico-optimization-community and click on Free FICO Xpress Community license on the top left of the page.

    Hope that helps.

    ------------------------------
    Zahir Balaporia
    FICO
    ZahirBalaporia@fico.com
    (920) 246-5035
    ------------------------------



  • 9.  RE: Open source optimization suite

    Posted 04-23-2018 08:59
    Edited by Alex Marvin 04-23-2018 09:01
    I'd also recommend SolverStudio / OpenSolver for Excel, as Paul and Richard had mentioned. Both are open-source Excel add-ons that make other COIN-OR components more accessible. SolverStudio comes with CBC as a free solver, and you can write your mathematical model using the algebraic modeling language of your choice (e.g. GAMS, AMPL, Gurobi in Python, PuLP in IronPython, JuMP in Julia, Pyomo in Python).

    If your problem becomes too hard to solve with CBC, then you simply change one line of code to use any solver you prefer. There are examples for using CPLEX, Gurobi, and any of the NEOS-based (cloud) solvers.

    ------------------------------
    Alex Marvin
    Operations Research Manager
    BASF
    Florham Park, NJ
    ------------------------------



  • 10.  RE: Open source optimization suite

    Posted 04-23-2018 13:46

    If you don't want Excel, I recommend using Julia. It has JuMP modeling package for optimization and can be connected to open-source Cbc solver.   Everything is open-source.

    Very well supported by developers and the user community.

    See:   http://www.juliaopt.org

    Chapter 1 of this book  is available and would be helpful. 

    http://www.chkwon.net/julia/book/juliabook-preview.pdf

    (Disclaimer: I am the author of this book.)


    You need to do something like this:

    using JuMP, Cbc
    m = Model(solver=CbcSolver())
    @variable(m, 0 <= x <= 15, Int)
    @variable(m, 0 <= y <= 20, Int)
    @objective(m, Max, x + y)
    @constraint(m, 20x + 4y <= 240)
    @constraint(m, 10x + 3y <= 210)

    status = solve(m)
    println("Optimal objective: ",getobjectivevalue(m))
    println("x = ", getvalue(x), " y = ", getvalue(y))


    ------------------------------
    Changhyun Kwon
    Associate Professor
    University of South Florida
    Tampa FL
    www.chkwon.net
    ------------------------------