INFORMS Open Forum

Using Pyomo in production code with Gurobi

  • 1.  Using Pyomo in production code with Gurobi

    Posted 02-20-2019 09:58
    Hello everyone,

    at my current company we are using PuLP/CBC/Gurobi to quickly prototype some optimization software on jupyter notebooks.

    Soon we are going to deploy the prototype on a realistic use case where we can have large models, and we plan to use the Gurobi cloud edition for that, while moving away from PuLP, which we find too limited for further developments.

    We are considering however it could still be useful to employ a generic interface to be able to switch solvers, for example to be able to use CBC for small instances, as a local tool for the users, or just because we may be forced to change the solver due to licencing or other issues.

    As a generic interface, Pyomo would be a natural choice. It looks more robust and feature-rich than PuLP.

    However, using an open-source generic library could be problematic as well, as it would make it harder to receive support from Gurobi, it could prevent accessing advanced features of the solver, e.g. callbacks, parallelization, cloud services, or the efficient implementation of advanced algorithms, e.g. column generation, and would add another dependency to the project.

    Do you have any experience on using Pyomo for large-scale business critical projects?

    Further advice is welcome as well!

    Andrea

    ------------------------------
    Andrea Taverna
    Operational Researcher @ Pricing&Forecasting
    Zalando SE
    Berlin
    ------------------------------