Ask HN: What is the most important NP-complete problem?
If it were possible to efficiently solve a large NP-complete problem, the solution to which real-world problem would have the largest positive impact?
I'm interested in actual, concrete problems where a solution would have a real, obvious, and positive impact. I'm not interested in (except in-so-far-as the real-world problem can be re-formulated as) the theoretical "toy" problems (travelling salesman, subgraph isomorphism, subset sum, etc.).
9 comments
[ 2.7 ms ] story [ 30.2 ms ] threadOnce in a while a breakthrough happen in these areas and some problems are now become simple but that doesn't meant they solved a NP problem, that means they have discovered that the problem was not NP complete problem. So if you really want to solve the real world problems you would basically find some insight in that specific problem which would make it efficient to solve that particular problem but it wont mean that you solved a NP problem, it would just mean that you proved that the problem is not NP problem.
Say you were trying to develop a general algorithm to solve NP-complete problems in P-time. You want this algorithm so that you can solve actual, real-world problems. Now imagine that you only have enough computing power to solve 1 problem per week; you'd likely want to prioritize the problems you solve based on the 'value' derived from solving them. I'm asking, what is the problem with the highest value?
Where could you have the most impact? Optimizing global shipping routes? Power-generation scheduling in Arizona? Encryption breaking?
Not really about a start-up idea. I've been talking to a person who claims to have such an algorithm, but is looking for an actual instance of a real-world problem.
So far, no one I've asked has been able to describe such a problem.
When I was still a graduate student (1980's), I was helping out some local businesses. There was a need to print a lot of receipts, and these receipts would be of some size, measured in number of lines. Say 10, 35, 20, 5, 12 etc. The paper size would be about 60 lines.
And then, we thought we should reduce the number of papers actually consumed for printing, by fitting as many receipts in single paper (We had cheap manpower to cut the pages manually.) Ordering of receipts was immaterial.
So given a simple list of (receipt no, #lines), how do you re-order them and create groupings so that each of that group size is less than 66 (in this case), and yet, the wasted size from all groups is minimized?
It is famous Knapsack problem.
The problem you described is the Multiple Knapsack Problem, which is indeed NP-complete.