# Tag Info

18

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 ...

16

OR-Tools is a set of solver: A very popular Routing Library built on top of a traditional constraint programming solver An award winning CP-SAT solver that combines Constraint Programming techniques, SAT solver search and Boolean centric approach, MIP solver techniques like cuts and linear relaxation, and Large Neighborhood search A Simplex solver: GLOP A ...

12

The programming language used to setup the problem can matter under two circumstances. One is setup time of the problem this not only differs by programming language but also by the Gurobi interface used See page 30+. The other situations in which it might matter are user callbacks. If one programming language is slower at those time spent in these is not ...

10

You need to send your model to a solver. Let's discuss the "solver" part and the "send" part separately. The "solver" part: A solver is a piece of software that implements a general-purpose algorithm for solving optimization problems. Solvers implement algorithms like the simplex method, interior point methods, branch-and-bound, and branch-and-cut. Their ...

9

GAMS and AMPL are general purpose modelling languages and can he used to describe any type of nonlinear function, including some niche stuff like floor, ceil, max, etc (AMPL). I don't have experience with OPL so I can't comment on that. The purpose of these languages is twofold: They provide a solver interface for your math. Solvers typically require input ...

7

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 ...

5

According to the docs, IloNumArrays constructor signature is public IloNumArray(const IloEnv env, IloInt n, IloNum f0, IloNum f1, ...) which creates an array of n floating point objects for use in a model. Note that the constructor is a C-Style variadic function due to the ... parameter. Thus, you can assign your values while calling the constructor, i.e. ...

4

One of the most important things to keep in mind is that we should install Pyomo in another environment than the base environment together with its solvers. However, this is not enough to use Pyomo properly. In the case of ipopt solver, it returns the error No executable found for solver 'ipopt'. To overcome this error, we need to search the exe file of ...

4

For OptaPlanner (implemented in Java), we have done benchmarks and see no performance difference between use cases implemented in Java or Kotlin. This is no surprise, because both are running on a JVM. For other JVM languages Scala, Groovy, JRuby, Closure, ..., we haven't run enough benchmarks yet, but as far as I can tell, they are in the same ballpark, ...

4

The syntax that you are using in your Pyomo code is correct and you should be able to access the GAMS solvers once Pyomo is able to find GAMS. As the error mentions, the GAMS command is not found in the system PATH. I would double check if the GAMS path is correctly added to the system PATH. A way of doing so is opening a command prompt (since you are using ...

3

As you mentioned that you looked for python packages for RO before and didn't find any you might want to have a look at RSOME. You can custom build uncertainty sets using affine constraints as well as 1, 2, and infinity norms. For many of the uncertainty sets (if the reformulation is not linear) commercial solvers are needed. I found that for big problems ...

3

The AMPL Solver Library (or ASL) is an open-source interface between solvers and modelling languages. As long as a solver can (i) read an .nl file and (ii) produce a .sol file, it will work out of the box with AMPL and any other modelling platform, such as Pyomo, that supports ASL. Unfortunately, many solvers do not come with an ASL interface out of the box....

3

As far as I know, the core of many of the mathematical optimization solvers have been designed with C/C++ and other programming languages are treating as an exchange layer. It does not affect directly the solving time, but for the pre-processing or post-processing, it is important. For example, I am aware that initializing/manipulating data with python might ...

2

While the @hakank answer is pretty nice and useful, I found exactly what I was looking for: PySAT, SAT Technology in Python With PySAT, via the PyPBLIB, it is possible to write high-level pseudo-boolean formulas (e.g., at-least-k,at-most-k,at-exactly-k, $\sum_{i \in I} a_i x_i \leq b$, ...), and then to get the global CNF formula, which can be dumped in a ...

2

As @sascha mentions, Picat has the option to save a SAT model to CNF, using the dump(file.cnf) option (or just dump to print the CNF to stdout). It's described a little more in the Picat Guide section 12.6.3 "Solving Options for sat" (See http://picat-lang.org/download/picat_guide.pdf) Here's a small example how to use this for a Picat model: ...

2

One way to use CPLEX solver of GAMS in Pyomo (I am assuming you have a license for GAMS and CPLEX itself licensed for your GAMS, In other words, your CPLEX solver can only be used by GAMS) is that: You can use GAMS Writer in Pyomo to translate your model from Pyomo into a format that can be read by GAMS and then use GAMS to solve the model. In this link, ...

Only top voted, non community-wiki answers of a minimum length are eligible