Disclaimer: I am currently working for a commercial solver company (Gurobi) and have worked before on another commercial solver (IBM CPLEX). Hence, my opinion may be biased, but still I am trying to not turn my answer into a marketing and sales pitch. For my PhD thesis I developed the academic solver SCIP, which is still actively maintained and developed by ...
No, the situation isn´t the same for OR libraries. There are several reasons for this, among them being
Performance: The difference is relevant, with an emphasis on Mixed Integer Programming (linear and nonlinear). For Linear Programming it's less abrupt but it still exists. You can see empirical results in e.g. the Mittelmann benchmarks for Optimization ...
I think the short answer is: speed.
Most optimization problems solved in the OR world are computationally intractable, they cannot be solved in reasonable time as the size of the data increases. A commercial solver will allow you to push back the limit of the size of the problem you are tackling, and to solve the small ones very fast.
If you checkout for ...
I don't know much about Python-mip but looking at the code, maximize expects a LinExpr, so I tried:
model.objective = maximize(1*x)
which gives the expected output.
Edit: I also opened a PR to allow maximize(var) and minimize(var).
Edit: The PR has been merged, this shouldn't be a problem in >1.7.2.
(Full disclosure: I run a solver company)
The state of the art
Unlike ML, in the optimisation space commercial software is unfortunately on average superior to open-source alternatives. This does not mean that open source can't be a perfectly viable choice. Open source solvers can and do solve very difficult problems. It just means that commercial solvers ...
The Coin-OR stack is pretty complex with a huge dependency chain.
In general i would say, that the usual rules apply: easiest to hardest in general looks like
Build from Sources
In all cases it might be critical if someone only needs an executable (probably sufficient for pyomo) or a shared library (often easier to obtain ...
I do not have direct experience myself with installing COIN-OR solvers under unix-based operating systems, but I do know that it can be done.
I have seen it successfully done for CLP (Linear Program Solver) and CBC (Branch and Cut Solver) by directly downloading the (open) source code and integrating these libraries with other source code. This is the ...
in CPLEX you can use warmstart with all APIs. Let me show you in OPL:
// a tuple is like a struct in C, a class in C++ or a record in Pascal
key int nbSeats;
// This is a tuple set
// asserts help make sure data is fine
assert forall(b in pricebuses) b.nbSeats>0;assert forall(b in ...
Please check this question which is asked and answered in Stack Overflow. Also, this link includes the explanation of different termination condition in Pyomo. One of those conditions is "userInterrupt" that I think can be used to define a condition inside Pyomo to force the solver to stop. In that situation, the solver status will be "Aborted".