What is the purpose of libraries like Pyomo and Google OR tools?Advantages generic cplex callback within branch-and-cutGurobi's “Out of memory” error without exhausting the RAM?Termination Criteria of Solver in PyomoHow to set a maximum time to improve a solution with Pyomo and CBCNLP solvers in pyomo other than ipopt?Warm start CPLEX using google or-toolsComparison of Algebraic modelling languages and general programming languagesProblems Installing APOPT in PyomoUnderstanding the AMPL Solver LIbrary within Pyomo

Seized engine due to being run without oil

Can I cast Sunbeam if both my hands are busy?

What is Japanese Language Stack Exchange called in Japanese?

Are programming languages necessary/useful for operations research practitioner?

Is it appropriate for a professor to require students to sign a non-disclosure agreement before being taught?

Is there a standard terminology for female equivalents of terms such as 'Kingdom' and if so, what are the most common terms?

Can a magnet rip protons from a nucleus?

Are there any instances of members of different Hogwarts houses coupling up and marrying each other?

Why was "leaping into the river" a valid trial outcome to prove one's innocence?

Exact Brexit date and consequences

What does "synoptic" mean in avionics?

Can I toggle Do Not Disturb on/off on my Mac as easily as I can on my iPhone?

Who are the two thieves that appear the opening of Batman: TAS?

Why did it become so much more expensive to start a university?

I asked for a graduate student position from a professor. He replied "welcome". What does that mean?

How do you build a Dominant 7th chord?

Can the UK veto its own extension request?

Is English tonal for some words, like "permit"?

How can I fix a framing mistake so I can drywall?

How to split a string by the third .(dot) delimiter

Might have gotten a coworker sick, should I address this?

Creating a Master Image to roll out to 30 new Machines Licensing Issues

Were Roman public roads build by private companies?

How to help my 2.5-year-old daughter take her medicine when she refuses to?



What is the purpose of libraries like Pyomo and Google OR tools?


Advantages generic cplex callback within branch-and-cutGurobi's “Out of memory” error without exhausting the RAM?Termination Criteria of Solver in PyomoHow to set a maximum time to improve a solution with Pyomo and CBCNLP solvers in pyomo other than ipopt?Warm start CPLEX using google or-toolsComparison of Algebraic modelling languages and general programming languagesProblems Installing APOPT in PyomoUnderstanding the AMPL Solver LIbrary within Pyomo













8












$begingroup$


I'm new to the OR world, and trying to learn the various tools available. I originally thought that Pyomo and Google OR tools were open source alternatives to commercial solvers like Gurobi or CPLEX.



But now I'm discovering more and more that they are used more as a sort of interface to those solvers, not as an alternative to them.



Why is this the case? What purpose do these libraries serve? Gurobi for example already has a Python interface, why would I need Pyomo to interface with it?










share|improve this question







New contributor



Alex Kinman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






$endgroup$









  • 5




    $begingroup$
    You don't need Pyomo to interface with Gurobi from Python. But Pyomo lets you easily switch among several solvers without having to reenter the model for each solver.
    $endgroup$
    – Mark L. Stone
    8 hours ago
















8












$begingroup$


I'm new to the OR world, and trying to learn the various tools available. I originally thought that Pyomo and Google OR tools were open source alternatives to commercial solvers like Gurobi or CPLEX.



But now I'm discovering more and more that they are used more as a sort of interface to those solvers, not as an alternative to them.



Why is this the case? What purpose do these libraries serve? Gurobi for example already has a Python interface, why would I need Pyomo to interface with it?










share|improve this question







New contributor



Alex Kinman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






$endgroup$









  • 5




    $begingroup$
    You don't need Pyomo to interface with Gurobi from Python. But Pyomo lets you easily switch among several solvers without having to reenter the model for each solver.
    $endgroup$
    – Mark L. Stone
    8 hours ago














8












8








8





$begingroup$


I'm new to the OR world, and trying to learn the various tools available. I originally thought that Pyomo and Google OR tools were open source alternatives to commercial solvers like Gurobi or CPLEX.



But now I'm discovering more and more that they are used more as a sort of interface to those solvers, not as an alternative to them.



Why is this the case? What purpose do these libraries serve? Gurobi for example already has a Python interface, why would I need Pyomo to interface with it?










share|improve this question







New contributor



Alex Kinman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






$endgroup$




I'm new to the OR world, and trying to learn the various tools available. I originally thought that Pyomo and Google OR tools were open source alternatives to commercial solvers like Gurobi or CPLEX.



But now I'm discovering more and more that they are used more as a sort of interface to those solvers, not as an alternative to them.



Why is this the case? What purpose do these libraries serve? Gurobi for example already has a Python interface, why would I need Pyomo to interface with it?







cplex pyomo gurobi






share|improve this question







New contributor



Alex Kinman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.










share|improve this question







New contributor



Alex Kinman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








share|improve this question




share|improve this question






New contributor



Alex Kinman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








asked 9 hours ago









Alex KinmanAlex Kinman

1643 bronze badges




1643 bronze badges




New contributor



Alex Kinman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




New contributor




Alex Kinman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • 5




    $begingroup$
    You don't need Pyomo to interface with Gurobi from Python. But Pyomo lets you easily switch among several solvers without having to reenter the model for each solver.
    $endgroup$
    – Mark L. Stone
    8 hours ago













  • 5




    $begingroup$
    You don't need Pyomo to interface with Gurobi from Python. But Pyomo lets you easily switch among several solvers without having to reenter the model for each solver.
    $endgroup$
    – Mark L. Stone
    8 hours ago








5




5




$begingroup$
You don't need Pyomo to interface with Gurobi from Python. But Pyomo lets you easily switch among several solvers without having to reenter the model for each solver.
$endgroup$
– Mark L. Stone
8 hours ago





$begingroup$
You don't need Pyomo to interface with Gurobi from Python. But Pyomo lets you easily switch among several solvers without having to reenter the model for each solver.
$endgroup$
– Mark L. Stone
8 hours ago











2 Answers
2






active

oldest

votes


















8














$begingroup$

Pyomo is an algebraic modeling language and allows users to easily represent optimization problems at a high-level (by defining variables, constraints, objective, etc.). Pyomo then provides interfaces to a variety of optimization solvers including Gurobi and CPLEX. This allows an optimization model to be formulated once and then a user can experiment with using different solvers to actually solve the problem. Pyomo also provides several modeling extensions for representing high-level modeling constructs (e.g. differential equations or disjunctions) and general implementations of transformations for converting these constructs to a form that off-the-shelf optimization solvers can solve.






share|improve this answer









$endgroup$






















    5














    $begingroup$

    Different solvers have their own interfaces (for example Cplex studio by IBM). You can use the specific syntax for those IDE or interfaces to input your model and then use the solver to solve it. Although the logic behind them all is the same but those languages or syntaxes are usually differing from one solver to the other. If you need to solve your problem by using more than one solver you will need a general form of problem which can be converted to the solver specific problems. This conversion is done using some Algebraic Modeling Languages (AML). Pyomo is an AML that extends Python to include objects for mathematical modeling. After generating your problem in Pyomo you will be able to use many solvers to solve it. Some of those are glpk(open source), CPLEX, Gurobi, BARON and many more.



    When you use interfaces of specific solver in python you may won't have the ability to solve the same problem with other solvers.



    Google created OR-Tools in C++, but you can also use it with Python, Java, or C#. So Pyomo and Google OR-tools are packages that can be called by python (in case of Google or: some other platforms) and are including many classes (for example ConcreteModel() in Pyomo) with many attributes (for example Objective in ConcreteModel class).






    share|improve this answer











    $endgroup$

















      Your Answer








      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "700"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      noCode: true, onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );







      Alex Kinman is a new contributor. Be nice, and check out our Code of Conduct.









      draft saved

      draft discarded
















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2for.stackexchange.com%2fquestions%2f1504%2fwhat-is-the-purpose-of-libraries-like-pyomo-and-google-or-tools%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      8














      $begingroup$

      Pyomo is an algebraic modeling language and allows users to easily represent optimization problems at a high-level (by defining variables, constraints, objective, etc.). Pyomo then provides interfaces to a variety of optimization solvers including Gurobi and CPLEX. This allows an optimization model to be formulated once and then a user can experiment with using different solvers to actually solve the problem. Pyomo also provides several modeling extensions for representing high-level modeling constructs (e.g. differential equations or disjunctions) and general implementations of transformations for converting these constructs to a form that off-the-shelf optimization solvers can solve.






      share|improve this answer









      $endgroup$



















        8














        $begingroup$

        Pyomo is an algebraic modeling language and allows users to easily represent optimization problems at a high-level (by defining variables, constraints, objective, etc.). Pyomo then provides interfaces to a variety of optimization solvers including Gurobi and CPLEX. This allows an optimization model to be formulated once and then a user can experiment with using different solvers to actually solve the problem. Pyomo also provides several modeling extensions for representing high-level modeling constructs (e.g. differential equations or disjunctions) and general implementations of transformations for converting these constructs to a form that off-the-shelf optimization solvers can solve.






        share|improve this answer









        $endgroup$

















          8














          8










          8







          $begingroup$

          Pyomo is an algebraic modeling language and allows users to easily represent optimization problems at a high-level (by defining variables, constraints, objective, etc.). Pyomo then provides interfaces to a variety of optimization solvers including Gurobi and CPLEX. This allows an optimization model to be formulated once and then a user can experiment with using different solvers to actually solve the problem. Pyomo also provides several modeling extensions for representing high-level modeling constructs (e.g. differential equations or disjunctions) and general implementations of transformations for converting these constructs to a form that off-the-shelf optimization solvers can solve.






          share|improve this answer









          $endgroup$



          Pyomo is an algebraic modeling language and allows users to easily represent optimization problems at a high-level (by defining variables, constraints, objective, etc.). Pyomo then provides interfaces to a variety of optimization solvers including Gurobi and CPLEX. This allows an optimization model to be formulated once and then a user can experiment with using different solvers to actually solve the problem. Pyomo also provides several modeling extensions for representing high-level modeling constructs (e.g. differential equations or disjunctions) and general implementations of transformations for converting these constructs to a form that off-the-shelf optimization solvers can solve.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 8 hours ago









          Bethany NicholsonBethany Nicholson

          2461 silver badge4 bronze badges




          2461 silver badge4 bronze badges
























              5














              $begingroup$

              Different solvers have their own interfaces (for example Cplex studio by IBM). You can use the specific syntax for those IDE or interfaces to input your model and then use the solver to solve it. Although the logic behind them all is the same but those languages or syntaxes are usually differing from one solver to the other. If you need to solve your problem by using more than one solver you will need a general form of problem which can be converted to the solver specific problems. This conversion is done using some Algebraic Modeling Languages (AML). Pyomo is an AML that extends Python to include objects for mathematical modeling. After generating your problem in Pyomo you will be able to use many solvers to solve it. Some of those are glpk(open source), CPLEX, Gurobi, BARON and many more.



              When you use interfaces of specific solver in python you may won't have the ability to solve the same problem with other solvers.



              Google created OR-Tools in C++, but you can also use it with Python, Java, or C#. So Pyomo and Google OR-tools are packages that can be called by python (in case of Google or: some other platforms) and are including many classes (for example ConcreteModel() in Pyomo) with many attributes (for example Objective in ConcreteModel class).






              share|improve this answer











              $endgroup$



















                5














                $begingroup$

                Different solvers have their own interfaces (for example Cplex studio by IBM). You can use the specific syntax for those IDE or interfaces to input your model and then use the solver to solve it. Although the logic behind them all is the same but those languages or syntaxes are usually differing from one solver to the other. If you need to solve your problem by using more than one solver you will need a general form of problem which can be converted to the solver specific problems. This conversion is done using some Algebraic Modeling Languages (AML). Pyomo is an AML that extends Python to include objects for mathematical modeling. After generating your problem in Pyomo you will be able to use many solvers to solve it. Some of those are glpk(open source), CPLEX, Gurobi, BARON and many more.



                When you use interfaces of specific solver in python you may won't have the ability to solve the same problem with other solvers.



                Google created OR-Tools in C++, but you can also use it with Python, Java, or C#. So Pyomo and Google OR-tools are packages that can be called by python (in case of Google or: some other platforms) and are including many classes (for example ConcreteModel() in Pyomo) with many attributes (for example Objective in ConcreteModel class).






                share|improve this answer











                $endgroup$

















                  5














                  5










                  5







                  $begingroup$

                  Different solvers have their own interfaces (for example Cplex studio by IBM). You can use the specific syntax for those IDE or interfaces to input your model and then use the solver to solve it. Although the logic behind them all is the same but those languages or syntaxes are usually differing from one solver to the other. If you need to solve your problem by using more than one solver you will need a general form of problem which can be converted to the solver specific problems. This conversion is done using some Algebraic Modeling Languages (AML). Pyomo is an AML that extends Python to include objects for mathematical modeling. After generating your problem in Pyomo you will be able to use many solvers to solve it. Some of those are glpk(open source), CPLEX, Gurobi, BARON and many more.



                  When you use interfaces of specific solver in python you may won't have the ability to solve the same problem with other solvers.



                  Google created OR-Tools in C++, but you can also use it with Python, Java, or C#. So Pyomo and Google OR-tools are packages that can be called by python (in case of Google or: some other platforms) and are including many classes (for example ConcreteModel() in Pyomo) with many attributes (for example Objective in ConcreteModel class).






                  share|improve this answer











                  $endgroup$



                  Different solvers have their own interfaces (for example Cplex studio by IBM). You can use the specific syntax for those IDE or interfaces to input your model and then use the solver to solve it. Although the logic behind them all is the same but those languages or syntaxes are usually differing from one solver to the other. If you need to solve your problem by using more than one solver you will need a general form of problem which can be converted to the solver specific problems. This conversion is done using some Algebraic Modeling Languages (AML). Pyomo is an AML that extends Python to include objects for mathematical modeling. After generating your problem in Pyomo you will be able to use many solvers to solve it. Some of those are glpk(open source), CPLEX, Gurobi, BARON and many more.



                  When you use interfaces of specific solver in python you may won't have the ability to solve the same problem with other solvers.



                  Google created OR-Tools in C++, but you can also use it with Python, Java, or C#. So Pyomo and Google OR-tools are packages that can be called by python (in case of Google or: some other platforms) and are including many classes (for example ConcreteModel() in Pyomo) with many attributes (for example Objective in ConcreteModel class).







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 8 hours ago

























                  answered 8 hours ago









                  Oguz ToragayOguz Toragay

                  3,1943 silver badges30 bronze badges




                  3,1943 silver badges30 bronze badges
























                      Alex Kinman is a new contributor. Be nice, and check out our Code of Conduct.









                      draft saved

                      draft discarded

















                      Alex Kinman is a new contributor. Be nice, and check out our Code of Conduct.












                      Alex Kinman is a new contributor. Be nice, and check out our Code of Conduct.











                      Alex Kinman is a new contributor. Be nice, and check out our Code of Conduct.














                      Thanks for contributing an answer to Operations Research Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      Use MathJax to format equations. MathJax reference.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2for.stackexchange.com%2fquestions%2f1504%2fwhat-is-the-purpose-of-libraries-like-pyomo-and-google-or-tools%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      ParseJSON using SSJSUsing AMPscript with SSJS ActivitiesHow to resubscribe a user in Marketing cloud using SSJS?Pulling Subscriber Status from Lists using SSJSRetrieving Emails using SSJSProblem in updating DE using SSJSUsing SSJS to send single email in Marketing CloudError adding EmailSendDefinition using SSJS

                      Кампала Садржај Географија Географија Историја Становништво Привреда Партнерски градови Референце Спољашње везе Мени за навигацију0°11′ СГШ; 32°20′ ИГД / 0.18° СГШ; 32.34° ИГД / 0.18; 32.340°11′ СГШ; 32°20′ ИГД / 0.18° СГШ; 32.34° ИГД / 0.18; 32.34МедијиПодациЗванични веб-сајту

                      19. јануар Садржај Догађаји Рођења Смрти Празници и дани сећања Види још Референце Мени за навигацијуу