Hacker News new | ask | show | jobs
by rwlincoln 1510 days ago
I am surprised not to see any mention of the OSQP (Operator Splitting Quadratic Program) solver. It is the most impressive open source solver of this type that I have seen published in recent years. It appears to have been developed as a collaboration between Princeton, ETH Zurich, Oxford, Stanford and some other prestigious names. The benchmarks show that it compares favorably with leading proprietary solvers:

https://github.com/osqp/osqp_benchmarks

The problem described seems to be an ideal use-case for Machine Learning. The MATPOWER Optimal Scheduling Toolkit (MOST) can already solve:

"a stochastic, security-constrained, combined unit-commitment and multiperiod optimal power flow problem with locational contingency and load-following reserves, ramping costs and constraints, deferrable demands, lossy storage resources and uncertain renewable generation."

Much more and it becomes a global optimization problem where you can never really be sure you are not just stuck in a local optimum. The L2RPN (Learning to Run a Power Network) challenge, from RTE-France, is the most interesting effort I have seen applying Machine Learning to energy system management.

https://l2rpn.chalearn.org/

https://github.com/rte-france/l2rpn-baselines

The competition has been renewed for 2022 and has been accepted for the IEEE World Congress on Computational Intelligence in July.

https://wcci2022.org

5 comments

Yes to this! However, a while ago I tested OSQP, but I found low precision and the speed didn't justify using it over other solvers. The project remains on my radar due to the strength of the development team -- amazing group -- and knowing that numerical solvers can really shine in one domain while they struggle in others.

Another pair of projects that I find useful are ECOS [1] and CVXPY [2]. CVXPY makes head-to-head comparisons of solvers (including ECOS and OSQP) trivial.

[1] https://web.stanford.edu/~boyd/papers/ecos.html

[2] https://www.cvxpy.org

I’m in the optimization space and have never heard of this. Thanks. I recognize many of the names behind it.

I think part of the reason it’s not more popular is because QPs aren’t the most popular problem type. They’re used in MPC problems and any number of L2-loss function problems like ML problems, but these already have custom methods for solving the QP. Doesn’t meant they can’t adopt a standard high performance solver — I think this is very promising.

Also I’m not sure if there’s any political issues that limits them from listing this on COIN OR. That’s usually most folks go to site for discovering new solvers.

OSQP is fast, but is only for QP, not LP.

The "benchmarks" (https://github.com/osqp/osqp_benchmarks) include some important problem classes but are random so, for general QP, are not valid. On the industry standard benchmarks (http://plato.asu.edu/ftp/qpbench.html) OSQP doesn't look so good, and it's not even tested against commercial solvers (http://plato.asu.edu/ftp/cconvex.html).

Our experience with it on general benchmarking problems is that it can struggle to get sufficiently accurate dual values to the extent that it fails to solve them.

For certain classes of important QP problems, and when optimization to small tolerances is not required, it's undoubtedly a great solver - but it's not a general solver.

Can you recommend a go-to library to start solving a charging network problem?

The domain is somewhat unique since our charging points are mobile and stochastic, but charging demand is scheduled in advance

The problem is not solution per se, but scalable solution.