top | item 41609670

Scaling up linear programming with PDLP

221 points| bookofjoe | 1 year ago |research.google

69 comments

order
[+] DominikPeters|1 year ago|reply
In this post, I don’t see any comparisons of their solver to other LP solvers on benchmarks, so it’s difficult to know how useful this is.
[+] thxg|1 year ago|reply
I think it's partially excusable. Most LP solvers target large-scale instances, but instances that still fit in RAM. Think single-digit millions of variables and constraints, maybe a billion nonzeros at most. PDLP is not designed for this type of instances and gets trounced by the best solvers at this game [1]: more than 15x slower (shifted geometric mean) while being 100x less accurate (1e-4 tolerances when other solvers work with 1e-6).

PDLP is targeted at instances for which factorizations won't fit in memory. I think their idea for now is to give acceptable solutions for gigantic instances when other solvers crash.

[1] https://plato.asu.edu/ftp/lpfeas.html

[+] dsfcxv|1 year ago|reply
Their numerical results with GPUs, compared to Gurobi, are quite impressive [1]. In my opinion (unless I'm missing something), the key benefits of their algorithms lie in the ability to leverage GPUs and the fact that there’s no need to store factorization in memory. However, if the goal is to solve a small problem on a CPU that fits comfortably in memory, there may be no need to use this approach.

[1] https://arxiv.org/pdf/2311.12180

[+] sfpotter|1 year ago|reply
They link to three of their papers that have more details.
[+] bee_rider|1 year ago|reply
I often see the sentiment, essentially, a method is much better because it uses only matvecs (rather than factorize and solve). This always confuses me, because the game for numerical linear algebra folks is inventing funky preconditioners to fit their problem, right? Unless people are subtly saying “our new method converges incredibly quickly…”

ILU0 is practically free, right?

[+] sfpotter|1 year ago|reply
There are tons of different games to play. Designing a preconditioner that's specific to the problem being solved can help you beat incomplete LU, often by a substantial (even asymptotic) margin.

If you have a problem that's small enough to factorize and solve, that's great. That probably is the best approach. This doesn't scale in parallel. For really big problems, iterative methods are the only game in town.

It's all about knowing the range of methods that are applicable to your problem and the regimes in which they operate best. There's no one-size-fits-all solution.

[+] pkhuong|1 year ago|reply
Preconditioning would only apply to approaches like interior point methods, where the condition number quickly approaches infinity.
[+] raidicy|1 year ago|reply
Slightly off topic but does anybody have any resources for learning linear programming for business applications?
[+] cashsterling|1 year ago|reply
I'd recommend getting the 9th or 10th edition of Introduction to Operations Research by Hillier and Lieberman. 9th: https://www.amazon.com/dp/0077298349 You can search for the 10th edition. Both are available used for less than 50 USD in good condition. The book covers a lot more than linear programming. A solution manual for both editions can be found on the internet.

A good "free-pdf" optimization book, to support the above is, Algorithms for Optimization by Kochenderfer & Wheeler ( https://algorithmsbook.com/optimization/ ). It has a chapter on constrained linear optimization with Julia code and is a good secondary resource. Kochenderfer, Wheeler, and colleagues also have two other free optimization books that are a little more advanced. It is exceptionally cool that they make the high quality PDF freely available; more authors in the technical space are making their books freely available as pdf and I applaud them for it.

[+] nickpeterson|1 year ago|reply
I really wish I could find solid websites/blogs/resources for operations research, mathematical planning, linear programming, etc aimed at regular software engineers. I feel like a lot of the really crazy parts of codebases often derive from inexperience with these kinds of tools.
[+] loehnsberg|1 year ago|reply
Largest applications may well be in power systems (economic dispatch, unit commitment), material requirements planning, transportation networks, but linear programming can also be used to fit functions, think constrained regression with L1 loss.
[+] cschmidt|1 year ago|reply
The "Model Building in Mathematical Programming" book by Williams is unique in that it talks about how to formulate LP and MILP problems, rather than focusing on the algorithm side of how the simplex algorithm works. That's nice to know, but not really necessary. You really need to get some intuition on thinking about objectives and constraints.

https://www.wiley.com/en-us/Model+Building+in+Mathematical+P...

[+] jeffbee|1 year ago|reply
You could just grab or-tools and work through their example problems, then extend it to something in your area of interest. The Python APIs are easy to experiment with.
[+] ant6n|1 year ago|reply
Isnt this something that could be useful for consulting? I’ve occasionally considered trying to help businesses model MILPs to help solve their problems, but its so specialist that finding good matches is like the actual problem. I wonder how specialists like milp experts find clients.
[+] wodenokoto|1 year ago|reply
We needed to get a project based off of ORTools, that some consultants had left us, working and expanded.

After mocking about for a while getting nowhere, we took the optimization course on coursera from Melbourne University and were quite happy with how it helped us move along.

[+] cschmidt|1 year ago|reply
I wonder if this technique works well in branch and bound for Mixed Integer Linear Programming applications. They seem to be just applying it to plain LP applications. While there certainly are some use cases for large LPs, it seems like MILP is where the action is.
[+] larrydag|1 year ago|reply
I don't see why not. Mixed Integer usually involves ways of setting up the variables for optimization. PDLP appears to use a lot of presovling which I'm sure helps to establish those bounds whether continuous or integer variables.
[+] imtringued|1 year ago|reply
You're all so lucky your problems can be solved quickly. I seemingly have hit the worst possible problem for ILP. Admittedly I am just testing things in GLPK, but still, solving the ILP problem at problem size n=6 does not terminate. GLPK can solve the LP relaxation up to n=50, but it gets unbearably slow.

This isn't even a contrived problem to trick the LP solver. It is a grossly oversimplified version of the actual problem, which could have millions to billions of variables and even that version would be a grossly oversimplified version of the one based on the LPCC problem, aka linear programming with complementarity constraints so that I can model equilibrium conditions.

It slowly dawns upon me that LP/LPCC are highly nonviable for what I'm trying to do, which is kind of funny, because the discipline itself pretends that equilibrium is easy and automatic.

[+] BrannonKing|1 year ago|reply
GLPK or GLPK_MI? GLPK is probably the worst tool you could pick. I tried it before on some of my problems, and it would not ever finish. Use OR-Tools, if it will work for your problem, or maybe one of the other free solvers with CVXpy will help you (https://www.cvxpy.org/tutorial/solvers/index.html), if you really need a free tool.

GLPK should not be used as a guide for the general field. The commercial solvers will do infinitely better than GLPK.

[+] petters|1 year ago|reply
This sounds interesting. Mind sharing an instance of these hard small problems?
[+] janetgabriel|1 year ago|reply
♠ ♠ Am here to thank Dr Osaka for helping get back my ex Dr Osaka ma a healer spiritual reader and professional spell caster with more than 20 years experience worry no more Dr Osaka gives solution to any kind of problem. Cleansing Reading Love spell Spell caster Curse removal Black magic/revenge spells hex spell Ex back spell and lot more visit his Facebook page for help Or whatsapp number +2349024827182 ::[email protected] https://www.facebook.com/profile.php?id=100089677235386
[+] GistNoesis|1 year ago|reply
Let's say you discover a new technique to solve a generic problem like Linear Programming faster for bigger instances (like PDLP). How much is it worth ? How do you turn it into cold hard cash ? How do you work developing it further with other people without revealing your secret sauce ?
[+] quantresearch1|1 year ago|reply
If you can beat the best solvers out there by a significant margin, I would say it's worth 10's of thousands a year. Speed is one aspect of it, but it could also be you are able to solve problems other solvers cannot solve. Depending on which companies you are targeting, I would not necessarily recommend going the route where the user upload their data to you and you solve it for them as many companies cannot legally share their clients' data (which is often part of the optimization). You can package the software into a linux/windows executable and sell it at a yearly subscription. It's worth noting that there are companies that will not be able to switch easily as they build all of their models around a specific solver API (say gurobipy)
[+] akoboldfrying|1 year ago|reply
LPaaS?

Optimisation fits the service model neatly: Submit your LP instance in some standard format, wait while it chugs away, then download the result (objective function value and variable assignments).

[+] RayVR|1 year ago|reply
Proprietary optimization software is very niche and very expensive but I really doubt a single innovation, unless really significant, could justify the cost.

Being able to solve bigger problems faster than someone else might give you a competitive advantage in some existing business but wouldn’t be the business in and of itself.

[+] user070223|1 year ago|reply
Maybe ask your customer how much does it worth to them? You don't have to reveal the secret sauce, provide an API to your server to keep the algorithm IP. Of course there might be race to the bottom eventually like any busniess with zero marginal cost
[+] snowstormsun|1 year ago|reply
Just share it for free. Science doesn't work that way.