python-mip
osqp
python-mip | osqp | |
---|---|---|
1 | 4 | |
504 | 1,565 | |
1.4% | 1.6% | |
7.1 | 8.1 | |
about 2 months ago | 8 days ago | |
Python | C | |
Eclipse Public License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
python-mip
-
Ask HN: Do you use an optimization solver? Which one? Why? Do you like it?
I've been using CBC via python-mip (https://github.com/coin-or/python-mip). It's great because it's got a super clean interface (milp variables/expressions/constraints), the code is quite accessible, and it's low overhead which makes it good for solving many very small problems.
Community sentiment seems to be beginning to shift toward favouring the HiGHS solver (https://github.com/ERGO-Code/HiGHS) over CBC. Something I'm keeping a close eye on.
nextmv seems to pitch itself as a generic solving ("decision automation") platform or something (unclear). But it seems that the only fleshed out product offering is for vehicle routing, based on the docs. Are there plans to offer, for instance, a solver binary that can be used to solve generic problems?
Also all the github repos under https://github.com/nextmv-io are private, so links from docs are 404.
osqp
-
Best/Any Convex Optimization Solver for Rust?
There's also two bindings for the osqp library (which is written in C), osqp published 2 years ago and osqp-rust published 3 months ago. I don't know what are the differences between them, but they both target osqp 0.6.2 (released in 2021) while the last released version is osqp 0.6.3 which was released last week.
-
Cvxpy probs
Cvxpy is overkill for a standard quadratic program. I’d recommend trying OSQP https://osqp.org which can take advantage of sparsity.
-
Ask HN: Do you use an optimization solver? Which one? Why? Do you like it?
I have been using OSQP [1] quite a bit in a project where I needed to solve many quadratic programs (QPs). When I started the project, OSQP didn't exist yet; I ended up using both cvxopt and MOSEK; both were frustratingly slow.
After I picked up the project again a year later, I stumbled across the then new OSQP. OSQP blew both cvxopt and MOSEK out of the water (up to 10 times faster) in terms of speed and quality of the solutions. Plus the C interface was quite easy to use and super easy (as far as numerics C code goes) to integrate into my larger project.
[1] https://osqp.org/
-
What's the industry standard "fast" library for optimization methods?
For quadratic programming—which is a class of problems in convex optimization, which is a sub-field of numerical optimization in general—a solver that is frequently used is OSQP. Although it is implemented in C++ you can also use it in Python thanks to its bindings. If your goal is to use a solver that's state-of-the-art and relatively versatile it is a good pick. If your goal is to find the best solver for a given problem, then there is no one-stop-shop. For example in this benchmark OSQP was the best-performing solver for sparse problems but quadprog performed better on dense problems.
What are some alternatives?
or-tools - Google's Operations Research tools:
MControlCenter - An application that allows you to change the settings of MSI laptops running Linux
SciPy - SciPy library main repository
HiGHS - Linear optimization software
quadprog - Quadratic Programming Solver
EA-FC-24-Automated-SBC-Solving - EA FC 24 Automated SBC Solving using Integer Programming ⚽
golomb-solver - Create Golomb rulers with constraint programming
minizinc-python - Access to all MiniZinc functionality directly from Python
vroom - Vehicle Routing Open-source Optimization Machine
exact
csips - A pure-python integer programming solver