by wesammikhail on 3/23/23, 11:19 PM with 39 comments
by tromp on 3/24/23, 8:13 AM
> NP, on the other hand, is a class of problems that are hard to solve yet easy to verify.
The latter description is not quite correct, as NP includes P. So not all problems in NP are hard to solve. Similarly with EXP.
The class of problems that are hard to solve yet easy to verify, is exactly NP\P, which we assume (but cannot prove) is non-empty.
by chx on 3/24/23, 6:13 AM
This is to say, it's possible for a problem the best P algorithm we can find takes n^(10^82) time while the NP algorithm we can find is say (1.00000000.....(10^82 zeroes)... 1)^n. For any practical number the NP algorithm will be faster. (I used 10^82 because it's the approximate number of atoms in the observable universe.)
by chippiewill on 3/24/23, 2:38 AM
by codeflo on 3/24/23, 10:48 AM
by friend_and_foe on 3/25/23, 7:02 AM
by xref on 3/24/23, 6:13 AM
Wish they’d given/linked a few examples there, anyone happen to know some off the top of their head?
by isaacfrond on 3/24/23, 8:33 AM
Computational Complexity: A Modern Approach
readable, and covers all the topics
by bmacho on 3/24/23, 10:47 AM
by jdlyga on 3/24/23, 3:11 AM
Prompt:
"Give me good computer science arguments for why P = NP and why P != NP"
Response:
"The P vs. NP problem is a major open question in computer science, which asks whether problems whose solutions can be quickly verified by a computer can also be quickly solved by a computer. Both sides of the argument have been extensively debated, but the problem remains unsolved. Here are some arguments for both possibilities:
Arguments for P = NP:
Lack of counterexamples: Despite extensive research, no concrete counterexample has been found to definitively prove that P != NP. This lack of evidence may suggest that P = NP could still be true.
Potential algorithmic breakthroughs: If P = NP, this implies that a polynomial-time algorithm exists for every problem in NP, even though such algorithms may not be known yet. There is always the possibility that new algorithmic techniques or breakthroughs could be discovered, leading to polynomial-time solutions for NP problems.
Simplicity and symmetry: From a theoretical perspective, some argue that P = NP is a more elegant and symmetric outcome, as it would mean all problems that can be verified in polynomial time can also be solved in polynomial time.
Arguments for P != NP:
Exponential lower bounds: Some computational problems have proven exponential lower bounds, indicating that these problems are fundamentally difficult to solve. While these problems may not be in NP, they provide evidence that not all problems can be solved efficiently.
The lack of efficient algorithms: Despite extensive research and many attempts, no efficient (i.e., polynomial-time) algorithms have been found for any of the NP-complete problems, which are among the hardest problems in NP. This suggests that P and NP might indeed be separate complexity classes.
The existence of NP-complete problems: NP-complete problems are those that, if any one of them can be solved in polynomial time, then all NP problems can be solved in polynomial time. They are considered the hardest problems in NP. The existence of such problems, and the lack of polynomial-time algorithms for them, supports the belief that P != NP.
Cryptography: Modern cryptography relies on the assumption that certain problems are hard to solve, such as factoring large numbers. If P = NP, then these cryptographic schemes would become insecure, as the difficult problems on which they are based could be solved efficiently. The widespread use and success of cryptography provide some evidence that P != NP.
It is important to note that these arguments are speculative, and no definitive proof has been found for either side of the debate. The P vs. NP problem remains a significant open question in computer science."