Contents:
‣ Turing machines and time complexity
‣ Complexity classes
‣ P and NP
‣ Reducibility
‣ Impacts of P=NP
‣ Impacts of P≠NP
‣ Further reading
[1/n]
To understand the question and why it is important, let's take a crash course in complexity theory... [2/n]
If you instead use a binary search, you cut the number of possible solutions in half with each step, so it only takes O(log₂𝑁) number of steps. [5/n]
When computer scientists talk about a problem being "easy" or "efficient" to solve, they mean that it is solvable in polynomial time. [9/n]
"If it is easy to check that a solution to a problem is correct, is it also easy to solve the problem?" claymath.org/millennium-pro… [12/n]
There can be some overhead involved in transforming problem A into problem B. If B can be reduced to A using polynomial overhead, we say that it is efficiently reducible. [15/n]
So if you prove P=NP and find an efficient algorithm for even one NP-complete problem, you can use it to solve *every* NP problem! [17/n]
(Un?)fortunately, most scientists believe that P≠NP. [20/n]
I'm happy to answer any questions people have!
If you want to learn more about complexity, I recommend Chris Umans' notes (users.cms.caltech.edu/~umans/cs21/in…) and Michael Sipser's classic text (amzn.to/32ZGcSB)
[24/24]