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
$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?
cplex pyomo gurobi
New contributor
$endgroup$
add a comment |
$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?
cplex pyomo gurobi
New contributor
$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
add a comment |
$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?
cplex pyomo gurobi
New contributor
$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
cplex pyomo gurobi
New contributor
New contributor
New contributor
asked 9 hours ago
Alex KinmanAlex Kinman
1643 bronze badges
1643 bronze badges
New contributor
New contributor
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
add a comment |
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
add a comment |
2 Answers
2
active
oldest
votes
$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.
$endgroup$
add a comment |
$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).
$endgroup$
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
$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.
$endgroup$
add a comment |
$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.
$endgroup$
add a comment |
$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.
$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.
answered 8 hours ago
Bethany NicholsonBethany Nicholson
2461 silver badge4 bronze badges
2461 silver badge4 bronze badges
add a comment |
add a comment |
$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).
$endgroup$
add a comment |
$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).
$endgroup$
add a comment |
$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).
$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).
edited 8 hours ago
answered 8 hours ago
Oguz ToragayOguz Toragay
3,1943 silver badges30 bronze badges
3,1943 silver badges30 bronze badges
add a comment |
add a comment |
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.
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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