4 ms·
>Actually, people mostly talk about how the world would be much better if NP != P. I know I've seen some arguments stating as such. If you know of a well-found
by jsprogrammer 11y ago
>Actually, people mostly talk about how the world would be much better if NP != P.
I know I've seen some arguments stating as such. If you know of a well-founded one, I'd be interested in reading it. Personally, I don't know or have a strong opinion. Seems like either could be viewed as "better" in some way.
>But you know someone who claims to be able to solve subset-sum problems quickly. I have a graph to 3-color, I wonder if I should convert it into a subset-sum problem for them to solve. That would take some time, and I'm pretty sure it won't be worth it. I'll have a think.
Well, I actually wrote up some tests for him and he ran his algorithm against it. I also gave him a ~10MB text file containing a very large list of integers (I forget the range at the moment. I could find it if you'd like, but I'm not sure how meaningful it is.) with a randomly selected target sum. He provided the solution (which I have not verified) in ~6-9 months. He also ran through many thousands of problem instances (subset sum...in JSON arrays) with varying parameters (number of integers; range of integers) over the course over several days. I made a rudimentary plot of the parameters and timings and in my very limited analysis, it did appear that there was a sub-exponential trend (at least for the instances that he provided solutions to [:)]).
I've been searching for the results (all instances, solutions, and timings) that I had collected from the test machine, but I haven't been able to find them yet. However, all of the test code is on GitHub and packaged into Docker containers for easy deployment of the test server and basic visualization of the results. I'd guess he (the person who claims a P=NP proof and sub-exponential-time subset sum solver) would be willing to run his algorithm against the test server again.
- ColinWright 11y ago>> Actually, people mostly talk about how >> the world would be much better if NP != P. > Seems like either could be viewed as > "better" in some way. Indeed, it depends on your internal axioms about "better". I don't have strong feelings either way either, and my feelings don't affect what's true and what isn't. The problem is open, remains open, and we deal with what's in front of us. >> But you know someone who claims to be >> able to solve subset-sum problems quickly. > ... He also ran through many thousands > of problem instances ... with varying > parameters ... it did appear that there > was a sub-exponential trend ... Unfortunately that means exactly nothing. The whole point is that for many (perhaps most) problems, the proportion of hard instances gets vanishingly small, and yet those are the ones that we often need to solve. Showing a sub-exponential trend for randomly chosen instances, or worse, instances he's chosen to show you, is no evidence at all. >> I have a graph to 3-color, I wonder if >> I should convert it into a subset-sum >> problem for them to solve. > I'd guess he (the person who claims a > P=NP proof and sub-exponential-time > subset sum solver) would be willing > to run his algorithm ... Perhaps that would be interesting. I'll look into how easy the conversion might be.
- jsprogrammer 11y ago>Unfortunately that means exactly nothing. The whole point is that for many (perhaps most) problems, the proportion of hard instances gets vanishingly small, and yet those are the ones that we often need to solve. Showing a sub-exponential trend for randomly chosen instances, or worse, instances he's chosen to show you, is no evidence at all. I wouldn't say exactly nothing. If no one can present an algorithm than can do at least as good on the same instances...that's interesting. He did not choose the instances. They were generated using multiple calls to a built-in pseudo-random function. The instances were generated when he requested an instance and the timer started when the instances were transmitted to him. The timer was stopped when a response was received and the response was then verified. He never submitted an incorrect answer. [Aside: There is a particular web page of a university professor that lists a smallish subset sum problem and claims that the naive algorithm would take some 10^large_number years to find the answer. His algorithm solves that particular instance in some very short period of time (seconds or less I believe). Is that particular instance "hard"? I don't know. Apparently not. He likes to use that instance as an example of his algorithm solving a "hard" problem. My problem is that I don't know how to verify if an instance is hard (or if such an analysis is even possible/valid). My instincts say that it very much depends on the "density of solutions" in the particular instance. Maybe that instance has lots of solutions and so a random walk will easily find one? On the other hand, maybe there is a limit to the number of solutions that can exist in a well-formed instance?] While I do not understand his entire proof (and I do believe he has intentionally withheld a portion of the proof [and certainly a key piece of the algorithm (if it exists)]), he does point to some interesting things (such as an apparent fractal pattern in the sum of all sets in the powerset of a set of integers). He claims a function that provides an ordering over the sums of the sets in the powerset, which can apparently be computed on-demand in polynomial time of the original set. A binary search is then applied over the ordering. In my own theory, it seems like it could be possible; after all, there isn't an exponential number of items, only combinations. >The whole point Sorry, the whole point of what? NP-Completeness?
- ColinWright 11y ago>> Showing a sub-exponential trend for >> randomly chosen instances ... is no >> evidence at all. > If no one can present an algorithm > than can do at least as good on the > same instances...that's interesting. It proves nothing about whether it's a polynomial algorithm, or even a sub-exponential algorithm. > He did not choose the instances. They > were generated using multiple calls > to a built-in pseudo-random function. Even worse - you know nothing about how the instances were created, or whether they are supposed to be hard. Does this magic function claim to produce known hard instances? > ... a particular web page ... that > lists a smallish subset sum problem > ... claims that the naive algorithm > would take some 10^large_number years > to find the answer. His algorithm > solves that particular instance in > some very short period of time ... > Is that particular instance "hard"? > I don't know. Apparently not. Indeed - apparently not. This entire discussion is running in circles. You keep feeding me small pieces of information, one piece at a time, and it's not adding up to anything convincing. At this point I feel the discussion is going nowhere. > ... I don't know how to verify if an > instance is hard ... Largely speaking no one does, which is why we require proofs of worst case running times. Proofs are difficult, and to present a proof requires full disclosure of the entire algorithm. To expend effort on such a proof some evidence is required to make it likely to be worthwhile. To say: I found this place that gives me instances, and I solve them all quickly. ... is unconvincing. > My instincts say that it very much > depends on the "density of solutions" > in the particular instance. Maybe > that instance has lots of solutions > and so a random walk will easily find > one? Or maybe every obvious choice you make is the right one. Hard instances are hard when you have to make choices early, and you only find out much later that the choice you made was wrong. That's what creates the exponential search space. > On the other hand, maybe there is a > limit to the number of solutions that > can exist in a well-formed instance? Number of solutions to an instance is not usually a good measure, unless there are exponentially many. Usually there aren't. > While I do not understand his entire > proof (and I do believe he has > intentionally withheld a portion of > the proof [and certainly a key piece > of the algorithm (if it exists)]), Making it impossible to provide an effective evaluation ... > ... he does point to some interesting > things (such as an apparent fractal > pattern in the sum of all sets in the > powerset of a set of integers). That seems to be a meaningless comment without more information. > He claims a function that provides an > ordering over the sums of the sets in > the powerset, which can apparently be > computed on-demand in polynomial time > of the original set. A binary search > is then applied over the ordering. Again, doesn't seem to mean much. Feels a lot like simple dynamic programming. > In my own theory, it seems like it > could be possible; after all, there > isn't an exponential number of items, > only combinations. But it's the combinations that need to be searched, not simply the items. There are only a linear number of vertices in graphs, and at most a quadratic number of edges, and yet that's NP-Complete. >>>> But you know someone who claims to be >>>> able to solve subset-sum problems quickly. >>> ... He also ran through many thousands >>> of problem instances ... with varying >>> parameters ... it did appear that there >>> was a sub-exponential trend ... >> Unfortunately that means exactly nothing. >> The whole point is that for many (perhaps >> most) problems, the proportion of hard >> instances gets vanishingly small, > Sorry, the whole point of what? NP-Completeness? No, the whole point of my comments to you. Let me summarize: * You know someone who claims to have a sub-exponential solution to the Subset Sum problem. * The evidence provided is that over a large collection of instances, the solution time seems to be sub-exponential. * The difficulty is that to be a solution to P=NP you need an algorithm that runs sub-exponentially on all cases. * Most instances are easy, but you/he need to show that the algorithm runs sub-exponentially on all instances, not just the easy ones. * The whole point of all my comments is that claiming sub-exponential running time on specific examples/instances is no proof, and poor evidence.