An Introduction to Computational Complexity Lance Fortnow University of Chicago.

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

An Introduction to Computational Complexity Lance Fortnow University of Chicago

The Round Table Problem

Sir Lancelot Sir Percivale

Sir PericvaleSir Bevidere

The Round Table Problem

Map Coloring

5 Colors

All Maps are Four Colorable

Can we use only 3 colors?

Sudoku

Sudoku

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

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

Can We Solve These Problems? P = NP?

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

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

NP – Efficiently Verifiable

NP-Complete NP P NPC

If P ≠ NP NP P NPC

If P = NP NP P NPC

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.

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.

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.

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.

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.

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.

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.

Suppose P = NP ► What a beautiful world…

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

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

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.

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.

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

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.

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.

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.

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

Approximation

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.

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

Public-Key Cryptography

Impossible if P = NP

Possible if Factoring is Hard

NP as Proof System

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.

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

Proof Checking

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.

Quantum Computing

Quantum Bits

Entanglement

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

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

Complexity of Factoring NP P NPC

Complexity of Quantum NP P NPC Quantum

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.

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.

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