Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Introduction to Computational Complexity Lance Fortnow University of Chicago.

Similar presentations


Presentation on theme: "An Introduction to Computational Complexity Lance Fortnow University of Chicago."— Presentation transcript:

1 An Introduction to Computational Complexity Lance Fortnow University of Chicago

2 The Round Table Problem

3 Sir Lancelot Sir Percivale

4 Sir Galahad Sir Gareth

5 Sir PericvaleSir Bevidere

6 The Round Table Problem

7 Map Coloring

8 5 Colors

9 All Maps are Four Colorable

10 Can we use only 3 colors?

11 Sudoku

12 Sudoku

13 All The Same Problem Solve one of these problems, you solve them all.

14 And Thousands More… ► Minesweeper ► Traveling Salesperson ► Cliques ► Integer Programming ► Quadratic Programming ► Maximum Cut ► Longest Path ► Bin Packing ► Job Scheduling ► Filling a Knapsack ► Crossword Puzzle Construction ► Code Generation ► Sequencing DNA ► Finding Arbitrage

15 Can We Solve These Problems? P = NP?

16 The P versus NP Question ► P – Efficiently Computable Solutions ► NP – Efficiently Verifiable Solutions

17 P – Efficiently Computable ► Finding the shortest path from point A to point B

18 NP – Efficiently Verifiable

19

20 NP-Complete NP P NPC

21 If P ≠ NP NP P NPC

22 If P = NP NP P NPC

23 P versus NP ► General Consensus: P ≠ NP ► Major Open Problem: Formally prove P ≠ NP ► First to do so wins $1,000,000 ► One of the seven “Millennium” Problems of the Clay Mathematics Institute. ► Many approaches, all have failed miserably.

24 P versus NP: A Short History ► 1936: Alan Turing tries to understand how a mathematician thinks and developed a theoretical model of computation we now call the Turing Machine.

25 P versus NP: A Short History ► 1956: The logician Kurt Gödel, in a letter to John van Neumann, asked a question mathematically equivalent to P = NP? ► The letter was never followed up and soon forgotten.

26 P versus NP: A Short History ► 1962: Juris Hartmanis and Richard Stearns develop the notion of “Computational Complexity” by suggesting we look at the time a program takes as a function of the size of the input. ► They show that given more time, a computer can do solve more problems.

27 P versus NP: A Short History ► 1965: Independently Alan Cobham and Jack Edmonds suggest that one can characterize efficient computation by having the running time run in some fixed polynomial of the input length. ► This class of problems is later given the name P.

28 P versus NP: A Short History ► 1972: Steve Cook gave the first NP- complete problem, Boolean Formula Satisfiability, and formally defined the P versus NP problem.

29 P versus NP: A Short History ► 1973: Richard Karp showed that several natural problems, such as Clique and Traveling Salesperson are NP-complete. ► The rest is history.

30 Suppose P = NP ► What a beautiful world…

31 We Can Efficiently Solve ► Minesweeper ► Traveling Salesperson ► Cliques ► Integer Programming ► Quadratic Programming ► Maximum Cut ► Longest Path ► Bin Packing ► Job Scheduling ► Filling a Knapsack ► Crossword Puzzle Construction ► Code Generation ► Sequencing DNA ► Finding Arbitrage

32 Occam’s Razor ► William of Ockham  Entities should not be multiplied beyond necessity. ► The shortest explanation of the data is the best one.

33 Translation ► In the beginning God created the heavens and the earth. Now the earth was formless and empty, darkness was over the surface of the deep, and the Spirit of God was hovering over the waters. And God said, "Let there be light," and there was light. God saw that the light was good, and He separated the light from the darkness. God called the light "day," and the darkness he called "night." And there was evening, and there was morning—the first day. ► Im Anfang schuf Gott die Himmel und die Erde. Und die Erde war wüst und leer, und Finsternis war über der Tiefe; und der Geist Gottes schwebte über den Wassern. Und Gott sprach: Es werde Licht! Und es wurde Licht. Und Gott sah das Licht, daß es gut war; und Gott schied das Licht von der Finsternis. Und Gott nannte das Licht Tag, und die Finsternis nannte er Nacht. Und es wurde Abend, und es wurde Morgen: ein Tag.

34 Translation ► In the beginning God created the heavens and the earth. Now the earth was formless and empty, darkness was over the surface of the deep, and the Spirit of God was hovering over the waters. And God said, "Let there be light," and there was light. God saw that the light was good, and He separated the light from the darkness. God called the light "day," and the darkness he called "night." And there was evening, and there was morning—the first day. ► Im Anfang schuf Gott die Himmel und die Erde. Und die Erde war wüst und leer, und Finsternis war über der Tiefe; und der Geist Gottes schwebte über den Wassern. Und Gott sprach: Es werde Licht! Und es wurde Licht. Und Gott sah das Licht, daß es gut war; und Gott schied das Licht von der Finsternis. Und Gott nannte das Licht Tag, und die Finsternis nannte er Nacht. Und es wurde Abend, und es wurde Morgen: ein Tag.

35 If P = NP… ► Can efficiently find the smallest program to translate documents. ► Recognizing Faces ► Speech to Text, Pictures to Text ► Recognizing Music ► …

36 No Such Luck ► Life can’t be so good so we all believe P ≠ NP. ► Once we show a problem is “NP- Complete” we should stop looking for an efficient algorithm.

37 What to do about hard problems? ► Solve it anyway.  Computers are very fast these days. ► Heuristics.  Your specific instance might not be that hard. ► Approximation.  Can’t get best algorithm but perhaps one can get a “good enough” solution.

38 Solve It Anyway ► There are about 2x10 75 possible numbers to try. ► A simple backtracking algorithm can solve the problem on a PC in a few seconds.

39 Heuristics ► Most puzzles are designed to be solved by humans.

40 Approximation

41 Clique Problem ► Find a large group of people all of whom are friends with each other. ► Coming up with a clique anywhere close to the largest clique is as hard as solving NP- complete problems.

42 Good News with Hard Problems ► Pseudorandom Generators  Hard functions can help us create fake random coins that are as good as real random coins. ► Public-Key Cryptography

43 Public-Key Cryptography

44 Impossible if P = NP

45 Possible if Factoring is Hard

46 NP as Proof System

47

48 Zero-Knowledge Proof System ► Can convince someone that a solution exists without revealing any details of the solution. ► Requires cryptography and verification process is randomized.

49 Interactive Proofs 5 5 ► Can convince someone there is no solution. ► Verification process is randomized.

50 Proof Checking

51 Probabilistically Checkable Proof ► There is a proof that a solution exists where we need to only see three randomly chosen bits of the proof. ► This is the tool that shows that Clique is hard to approximate.

52 Quantum Computing

53 Quantum Bits

54 Entanglement

55 Interference ► Use entanglement to search many states. ► Use interference to eliminate the ones that don’t solve your problem.

56 Shor’s Algorithm ► Factor quickly with a quantum computer.

57 Complexity of Factoring NP P NPC

58 Complexity of Quantum NP P NPC Quantum

59 Grover’s Algorithm ► Search a trillion pieces of hay to find the needle by making only a million quantum hay searches. ► Can be used to give quadratic improvement to solving NP problems.

60 Quantum Computers in Our Future? ► A very very long way from building quantum computers that can outperform current machines in any task. ► Even if we build quantum computers, factoring is only good for breaking some codes. Quantum computers could end up being a very specialized tool.

61 The Future of Complexity ► Solve the P versus NP problem. ► Understanding complexity issues in the computational processes outside of traditional digital computers.  Biological Systems (Protein Folding)  Weather  Social Interactions  Financial Markets


Download ppt "An Introduction to Computational Complexity Lance Fortnow University of Chicago."

Similar presentations


Ads by Google