Title: An Introduction to Computational Complexity
1An Introduction to Computational Complexity
- Lance Fortnow
- University of Chicago
2The Round Table Problem
3Sir Percivale
Sir Lancelot
4Sir Gareth
Sir Galahad
5Sir Pericvale
Sir Bevidere
6The Round Table Problem
7Map Coloring
85 Colors
9All Maps are Four Colorable
10Can we use only 3 colors?
11Sudoku
12Sudoku
13All The Same Problem
- Solve one of these problems, you solve them all.
14And 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
15Can We Solve These Problems?
16The P versus NP Question
- P Efficiently Computable Solutions
- NP Efficiently Verifiable Solutions
17P Efficiently Computable
- Finding the shortest path from point A to point B
18NP Efficiently Verifiable
19NP Efficiently Verifiable
20NP-Complete
NPC
NP
P
21If P ? NP
NPC
NP
P
22If P NP
NPC
NP
P
23P 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.
24P 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.
25P 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.
26P 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.
27P 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.
28P 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.
29P 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.
30Suppose P NP
31We 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
32Occams Razor
- William of Ockham
- Entities should not be multiplied beyond
necessity. - The shortest explanation of the data is the best
one.
33Translation
- 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
morningthe 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.
34Translation
- 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
morningthe 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.
35If P NP
- Can efficiently find the smallest program to
translate documents. - Recognizing Faces
- Speech to Text, Pictures to Text
- Recognizing Music
36No Such Luck
- Life cant be so good so we all believeP ? NP.
- Once we show a problem is NP-Complete we should
stop looking for an efficient algorithm.
37What to do about hard problems?
- Solve it anyway.
- Computers are very fast these days.
- Heuristics.
- Your specific instance might not be that hard.
- Approximation.
- Cant get best algorithm but perhaps one can get
a good enough solution.
38Solve It Anyway
- There are about 2x1075 possible numbers to try.
- A simple backtracking algorithm can solve the
problem on a PC in a few seconds.
39Heuristics
- Most puzzles are designed to be solved by humans.
40Approximation
41Clique 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.
42Good 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
43Public-Key Cryptography
44Impossible if P NP
45Possible if Factoring is Hard
46NP as Proof System
47NP as Proof System
48Zero-Knowledge Proof System
- Can convince someone that a solution exists
without revealing any details of the solution. - Requires cryptography and verification process is
randomized.
49Interactive Proofs
- Can convince someone there is no solution.
- Verification process is randomized.
5
5
50Proof Checking
51Probabilistically 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.
52Quantum Computing
53Quantum Bits
54Entanglement
55Interference
- Use entanglement to search many states.
- Use interference to eliminate the ones that dont
solve your problem.
56Shors Algorithm
- Factor quickly with a quantum computer.
57Complexity of Factoring
NPC
NP
P
58Complexity of Quantum
NPC
NP
Quantum
P
59Grovers 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.
60Quantum 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.
61The 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