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.
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.
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…”
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
♠ ♠ 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
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 ?
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)
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).
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.
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
[+] [-] DominikPeters|1 year ago|reply
[+] [-] thxg|1 year ago|reply
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
[1] https://arxiv.org/pdf/2311.12180
[+] [-] unknown|1 year ago|reply
[deleted]
[+] [-] sfpotter|1 year ago|reply
[+] [-] bee_rider|1 year ago|reply
ILU0 is practically free, right?
[+] [-] sfpotter|1 year ago|reply
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
[+] [-] raidicy|1 year ago|reply
[+] [-] cashsterling|1 year ago|reply
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.
[+] [-] armanboyaci|1 year ago|reply
Not all posts are business related but you can learn many practical tricks hard to find in books.
[+] [-] nickpeterson|1 year ago|reply
[+] [-] loehnsberg|1 year ago|reply
[+] [-] cschmidt|1 year ago|reply
https://www.wiley.com/en-us/Model+Building+in+Mathematical+P...
[+] [-] chris_nielsen|1 year ago|reply
[+] [-] jeffbee|1 year ago|reply
[+] [-] nuclearnice3|1 year ago|reply
https://www.informs.org/Publications
[+] [-] taeric|1 year ago|reply
[+] [-] currymj|1 year ago|reply
https://docs.mosek.com/modeling-cookbook/index.html
Not for total beginners though but great 201 level resource.
[+] [-] ant6n|1 year ago|reply
[+] [-] wodenokoto|1 year ago|reply
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
[+] [-] larrydag|1 year ago|reply
[+] [-] imtringued|1 year ago|reply
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 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
[+] [-] janetgabriel|1 year ago|reply
[+] [-] GistNoesis|1 year ago|reply
[+] [-] quantresearch1|1 year ago|reply
[+] [-] akoboldfrying|1 year ago|reply
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
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
[+] [-] snowstormsun|1 year ago|reply
[+] [-] Shopper|1 year ago|reply
[deleted]