4 ms·
I agree that you can solve it using MILP, but I would say that commercial solvers will solve many instances of the problem pretty fast. But we know that you nee
by JohnKemeny 2y ago
I agree that you can solve it using MILP, but I would say that commercial solvers will solve many instances of the problem pretty fast. But we know that you need even Ω(n²) time for 3SUM, so given large enough n, some instances will take a long time, regardless of solver.
- whatever1 2y agoThis is assuming exhaustive search. This is not what math programming does. Theoretically if you derive tight enough cuts for the problem and the solution lies on a vertex of the relaxed simplex you you can get the optimal solution in polynomial time.
- almostgotcaught 2y ago> Theoretically if you derive tight enough cuts for the problem and the solution lies on a vertex of the relaxed simplex you you can get the optimal solution in polynomial time. I hate when people cloak very obvious things in jargon to make those things seem more insightful and disguise how obvious they are. What you're basically saying is if you're lucky and you win the lottery then you'll be rich. Ie yes we all know that if you luck out then interior point will give you the optimum in polynomial time. But the whole reason why MIP is np-hard is exactly because deriving those cuts in general isn't possible (at least currently). > This is not what math programming does So what gurobi/cplex/etc actually do is first try a bazillion symmetry transformations/warm start heuristics/etc but then ultimately it does boil down to search.
- whatever1 2y agoNo and No. This way of thinking describes the plateau that MIP solvers hit in the 90's. Then in 2000's they starting implementing actual math (valid cuts in the root node mainly, but also during the search), which what gave us the exponential speed ups we enjoy today. So you would be right 30 years ago. You are wrong in 2024.
- almostgotcaught 2y ago> No and No. > which what gave us the exponential speed ups we enjoy today You're just patently wrong because 1. P=?NP is still open 2. You can consult the implementation of any solver There's really nothing more to be said about it because both of these bullets are formal proofs that you are wrong.
- whatever1 2y agoSimplex algorithm should never work given its exponential worst case performance. Yet it solves the vast majority of LP problems, including ones with billions of variables. It is the default algorithm for every solver despite the fact that we have a polynomial interior point method in our disposal. Go figure. Worst case performance or NP completeness is not a predictor of how fast we can solve an optimization problem.
- JohnKemeny 2y ago> should never work given its exponential worst case performance This is again not true. We know why it works well. See the paper "Smoothed analysis of algorithms: Why the simplex algorithm usually takes polynomial time" by Spielmann and Teng.
- whatever1 2y agoWe started understanding of why it works so well like 30 years after its first implementation (in the 1950's)? The paper you mention is written in the 2000s while the Simplex dominated the field from at least the 70's. Meanwhile the GP would have discarded the simplex algorithm due to its worst case performance.
- SkiFire13 2y ago> Simplex algorithm should never work given its exponential worst case performance. Note that it has been proven however that if you slightly perturbate the inputs then the expected complexity becomes polynomial, meaning the inputs for which it's exponential are actually just pathological cases and it is polynomial in practice.