Placeholder Image

Subtitles section Play video

  • Thanks to Brilliant for supporting this episode of SciShow.

  • Go to Brilliant.org/SciShow if you're interested in investing in your STEM skills this year.

  • ♪♪♪

  • Think about the last time you checked your credit card balance or how much money you had in the bank.

  • You probably had to put in your password, which -- if you picked a good one! --

  • ensures that only you and your bank know how to access your bank accounts.

  • But what if, no matter how strong your password, a hacker could crack it just as easily as you can type it in?

  • In fact, what if all sorts of puzzles we thought were hard turned out to be easy?

  • Mathematicians call this problem P vs. NP, and despite the technical-sounding name,

  • it is perhaps the single most important question in computer science today.

  • P vs. NP is a question about algorithms, or sets of specific instructions computers use to solve problems.

  • If you've done anything on a computer, you've encountered an algorithm before.

  • But to understand what P and NP are and why people care so much about them,

  • you need a little background on how algorithms work.

  • So, some context!

  • Solving a given problem is an algorithm's most important job, but, after that,

  • the thing computer scientists care obsessively about is speed.

  • Because, hey, we want answers!

  • And presumably, we don't want to wait a year for them.

  • Computer scientists measure an algorithm's speed using time complexity,

  • which estimates the time required to solve a problem based on the size of the input.

  • A real world example for you: think about grocery shoping.

  • If you have twenty-five items on your list, at the end of the trip, you ought to have twenty-five things in your cart.

  • But to check that you've got the right things requires comparing every one of those items to what's on your list.

  • If you're lucky, every time you pick something out of the cart,

  • it matches the next item on your shopping list.

  • Then, you'd need only twenty-five comparisons in total.

  • But maybe you got a couple of impulse buys in there, maybe you skipped some stuff,

  • in which case you'd be checking each item against the whole list.

  • It's like, okay, can of soup.

  • Then you look at the list and you're like is this ice cream? No. Is this pickles? No.

  • Is this mayonnaiseehhh, this is not good!

  • Mathematicians call algorithms like these polynomial-time algorithms, because their

  • running time can grow like the number of items to some exponential power.

  • In the case of your grocery cart, we've got twenty-five times twenty-five, or twenty-five-squared, so the power is two.

  • That tells us that a twenty-five-item shopping list could require up to six hundred twenty-five comparisons,

  • but a fifty-item list would require twenty-five hundred!

  • In which case, your algorithm would be much slower.

  • It would take the computer longer to compare everything.

  • As bad as that sounds, other algorithms are way worse.

  • Think back to the password on your bank account.

  • Currently, the only way we know to figure out a random password is guess-and-check.

  • So let's imagine you make a really dumb password, like something that's twenty-five characters long,

  • but only uses the letters “a” and “b.”

  • Since there are two choices for each character, your total number of possibilities is

  • two times two times two and so on, which mathematicians might write as two-to-the-twenty-fifth power.

  • At first glance, that might seem like it has polynomial complexity like grocery shopping, but look a little closer.

  • In the grocery store, our algorithm had speed n-to-the-two, or the number of things to check raised to the second power.

  • But guessing and checking a password has speed two-to-the-n, or two raised to however many inputs you have.

  • It's flipped.

  • That's what computer scientists call exponential-time complexity.

  • And it might seem like a small difference, but its effect is not small.

  • If it takes one second to check a grocery item from a list of twenty-five things,

  • then at worst, you'd be done in about ten minutes.

  • But if it takes a second to make one password guess for a password that's twenty-five

  • characters long, you could be guessing for over a year.

  • That difference is why computer scientists generally consider polynomial algorithmsfastand exponential onesslow.”

  • Which brings us back to P vs NP!

  • Mathematicians label the set of all problems that can be solved by a polynomial algorithm P.

  • And they call the set of all problems whose answers can be checked by a polynomial algorithm NP.

  • The distinction is a little subtle, but NP consists of all the stuff you might spend

  • hours slaving over, only to have someone glance at your answer and say, “Yeah, that's right.”

  • An example here: Jigsaw puzzles.

  • It might take you days to put together a ten-thousand-piece puzzle,

  • but it will only take a very brief amount of time to know whether you did it right.

  • The same goes for passwords.

  • A bot might spend hours trying to guess your login using an exponential algorithm,

  • but when you type in the correct characters, a website knows almost immediately if you're in the clear.

  • Basically, these problems are ones that are fast to check, but slow to solve.

  • So!

  • The big question is, are these two types of problems the same?

  • Is P equal to NP?

  • If so, that would mean that every problem you can check quickly also has a fast, easy solution.

  • It might just sound like a bunch of math, but finding out whether this is true is seen

  • as so important that the Clay Mathematics Institute has offered a million dollars for a correct proof.

  • And as you might expect with that kind of prize money,

  • people are using basically every field of modern mathematics to try and provide one.

  • Unfortunately, simpler math problems than this in the past have taken centuries or even millennia to solve.

  • So, figuring out if P equals NP could take a while.

  • And in the end, well, we might realize that P doesn't equal NP.

  • That some algorithms will always take a long time to run.

  • In fact, many mathematicians and computer scientists think that's probably the case.

  • But they're still looking because of the implications herenot just because of the prize money!

  • If P really does equal NP, we will have found an almost-magical key capable of unlocking virtually any computer science or math problem.

  • And while that could be great in some cases, it could be disastrous in others.

  • Like, the most immediate casualty would be the complete collapse of modern encryption.

  • That's stuff like the entire internet, banking passwords we looked at before...

  • The fact that they're hard to guess and easy to check is what makes passwords useful,

  • so if P is equal to NP, that advantage would go out the window.

  • Wellmaybe.

  • See, here's the thing: Even if we wake up tomorrow and discover P equals NP, all hope of security might not be lost.

  • I said before that computer scientists usually think of polynomial algorithms as fast.

  • And that's reasonable for polynomials like n-squared or n-cubed.

  • But what if the actual polynomial is n to a millionth power, or the billionth?

  • Sure, it would be part of P, but it would still be way too slow to be of practical use.

  • The discovery would still be transformative for math, but, in that case, our lives -- and our money -- might still be safe.

  • So, for the sake of learning and exploration, let's hope we can figure this out.

  • Because finding answers and discovering new things is one of the best parts of science and being alive!

  • Still, when or if we do crack this codeit'd be nice if the results were in our favor, too.

  • If you want to learn more about problems like these, Brilliant has you covered.

  • We talk about them a lot on this channel, and it's because they have a ton of resources

  • to teach you about everything from science to engineering to math to computer science.

  • If you enjoyed this episode, you might specifically like their Computer Science Fundamentals course.

  • It talks a lot about algorithms and problem-solving and teaches you how computersthinkand operate.

  • If you want to check it out, you can go to Brilliant.org/SciShow.

  • And as a thank-you for watching, the first two hundred people to sign up at that link

  • will get twenty percent off their annual Premium subscription.

  • When you sign up, you'll be supporting SciShow and learning something new about the world.

  • So thank you!

  • And we hope you enjoy it.

  • ♪♪♪

Thanks to Brilliant for supporting this episode of SciShow.

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it