Complexity Theory Part Two

Similar documents
Complexity Theory Part Two

Complexity Theory Part Two

Complexity Theory Part Two

NP-Completeness Part One

NP-Completeness Part I

NP-Completeness Part One

Complexity Theory Part One

NP-Completeness Part One

NP-Completeness Part One

NP-Completeness Part II

NP-Completeness Part II

Recap from Last Time

Recap from Last Time

Complexity Theory Part II

Friday Four Square! Today at 4:15PM, Outside Gates

Congratulations you're done with CS103 problem sets! Please evaluate this course on Axess!

Complexity Theory Part I

Announcements. Friday Four Square! Problem Set 8 due right now. Problem Set 9 out, due next Friday at 2:15PM. Did you lose a phone in my office?

NP-Completeness Part II

Congratulations you're done with CS103 problem sets! Please evaluate this course on Axess!

Congratulations you're done with CS103 problem sets! Please evaluate this course on Axess!

Complexity Theory Part I

Announcements. Using a 72-hour extension, due Monday at 11:30AM.

CMSC 441: Algorithms. NP Completeness

CS103 Handout 22 Fall 2012 November 30, 2012 Problem Set 9

Announcements. Final exam review session tomorrow in Gates 104 from 2:15PM 4:15PM Final Friday Four Square of the quarter!

Outline for Today. Binary Relations. Equivalence Relations. Partial Orders. Quick Midterm Review

Topics in Complexity

Lecture 22: PSPACE

NP-Completeness. Until now we have been designing algorithms for specific problems

Topics in Complexity Theory

Nonregular Languages

CS5371 Theory of Computation. Lecture 19: Complexity IV (More on NP, NP-Complete)

Announcements. Problem Set 7 graded; will be returned at end of lecture. Unclaimed problem sets and midterms moved!

(Note that these points are to give a relative sense of the weights on the final exam and have no bearing on extra credit points)

Essential facts about NP-completeness:

Finite Automata Part One

6.080 / Great Ideas in Theoretical Computer Science Spring 2008

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: NP-Completeness I Date: 11/13/18

1 Computational problems

Decidability and Undecidability

Approximation Algorithms

Undecidability and Rice s Theorem. Lecture 26, December 3 CS 374, Fall 2015

6-1 Computational Complexity

Finite Automata Part One

CS154, Lecture 13: P vs NP

Intro to Theory of Computation

P vs. NP. Data Structures and Algorithms CSE AU 1

Practice Second Midterm Exam I

A Note on Turing Machine Design

Course Staff. Textbook

Practice Second Midterm Exam III

Outline for Today. Revisiting our first lecture with our new techniques! How do we know when two sets have the same size?

CS 154 Introduction to Automata and Complexity Theory

Lecture Notes Each circuit agrees with M on inputs of length equal to its index, i.e. n, x {0, 1} n, C n (x) = M(x).

6.045: Automata, Computability, and Complexity (GITCS) Class 15 Nancy Lynch

conp, Oracles, Space Complexity

CS154, Lecture 13: P vs NP

Turing Machines Part II

CSE 311: Foundations of Computing I. Lecture 1: Propositional Logic

Mathematical Induction Part Two

Lecture 23: More PSPACE-Complete, Randomized Complexity

Computability Theory

Algorithm Design and Analysis

NP-Completeness and Boolean Satisfiability

Chapter 2. Reductions and NP. 2.1 Reductions Continued The Satisfiability Problem (SAT) SAT 3SAT. CS 573: Algorithms, Fall 2013 August 29, 2013

Design and Analysis of Algorithms

COP 4531 Complexity & Analysis of Data Structures & Algorithms

SAT, NP, NP-Completeness

CSE 105 Theory of Computation

NP-Completeness Review

an efficient procedure for the decision problem. We illustrate this phenomenon for the Satisfiability problem.

Turing Machines Part Two

CS103 Handout 08 Spring 2012 April 20, 2012 Problem Set 3

Overview, cont. Overview, cont. Logistics. Optional Reference #1. Optional Reference #2. Workload and Grading

CS154, Lecture 17: conp, Oracles again, Space Complexity

CSE 105 THEORY OF COMPUTATION

CSE 105 THEORY OF COMPUTATION

1 PSPACE-Completeness

15.1 Proof of the Cook-Levin Theorem: SAT is NP-complete

Complexity Theory Part One

1.1 Administrative Stuff

Lecture 4 : Quest for Structure in Counting Problems

1 More finite deterministic automata

Notes on Complexity Theory Last updated: December, Lecture 2

Lecture 14 - P v.s. NP 1

CS173 Lecture B, September 10, 2015

CSC 5170: Theory of Computational Complexity Lecture 4 The Chinese University of Hong Kong 1 February 2010

CS 301. Lecture 17 Church Turing thesis. Stephen Checkoway. March 19, 2018

Exam Computability and Complexity

Algorithms Design & Analysis. Approximation Algorithm

Lecture 20: conp and Friends, Oracles in Complexity Theory

6.080 / Great Ideas in Theoretical Computer Science Spring 2008

CS154, Lecture 15: Cook-Levin Theorem SAT, 3SAT

Complexity and NP-completeness

Math 31 Lesson Plan. Day 2: Sets; Binary Operations. Elizabeth Gillaspy. September 23, 2011

DRAFT. Diagonalization. Chapter 4

Checkpoint Questions Due Monday, October 1 at 2:15 PM Remaining Questions Due Friday, October 5 at 2:15 PM

CSE 135: Introduction to Theory of Computation NP-completeness

Chapter 7: Time Complexity

Transcription:

Complexity Theory Part Two

Recap from Last Time

The Cobham-Edmonds Thesis A language L can be decided efficiently if there is a TM that decides it in polynomial time. Equivalently, L can be decided efficiently if it can be decided in time O(n k ) for some k N. Like Like the the Church-Turing thesis, this this is is not not a theorem! It's It's an an assumption about about the the nature of of efficient computation, and and it it is is somewhat controversial.

The Complexity Class P The complexity class P (for polynomial time) contains all problems that can be solved in polynomial time. Formally: P = { L There is a polynomial-time decider for L } Assuming the Cobham-Edmonds thesis, a language is in P if it can be decided efficiently.

Polynomial-Time Verifiers A polynomial-time verifier for L is a TM V such that V halts on all inputs. w L iff c Σ*. V accepts w, c. V's runtime is a polynomial in w (that is, V's runtime is O( w k ) for some integer k)

The Complexity Class NP The complexity class NP (nondeterministic polynomial time) contains all problems that can be verified in polynomial time. Formally: NP = { L There is a polynomial-time verifier for L } The name NP comes from another way of characterizing NP. If you introduce nondeterministic Turing machines and appropriately define polynomial time, then NP is the set of problems that an NTM can solve in polynomial time.

Theorem (Baker-Gill-Solovay): Any proof that purely relies on universality and self-reference cannot resolve P NP. Proof: Take CS154!

So how are we going to reason about P and NP?

Maximum Matching Given an undirected graph G, a matching in G is a set of edges such that no two edges share an endpoint. A maximum matching is a matching with the largest number of edges.

Maximum Matching Given an undirected graph G, a matching in G is a set of edges such that no two edges share an endpoint. A maximum matching is a matching with the largest number of edges. A maximum maximum matching. matching.

Maximum Matching Jack Edmonds' paper Paths, Trees, and Flowers gives a polynomial-time algorithm for finding maximum matchings. (This is the same Edmonds as in Cobham- Edmonds Thesis. ) Using this fact, what other problems can we solve?

Domino Tiling

Solving Domino Tiling

In Pseudocode boolean canplacedominos(grid G, int k) { } return hasmatching(gridtograph(g), k);

Intuition: Tiling a grid with dominoes can't be harder than solving maximum matching, because if we can solve maximum matching efficiently, we can solve domino tiling efficiently.

New Stuff!

Another Example

Reachability Consider the following problem: Given an directed graph G and nodes s and t in G, is there a path from s to t? It's known that this problem can be solved in polynomial time (use DFS or BFS). Given that we can solve the reachability problem in polynomial time, what other problems can we solve in polynomial time?

Converter Conundrums Suppose that you want to plug your laptop into a projector. Your laptop only has a VGA output, but the projector needs HDMI input. You have a box of connectors that convert various types of input into various types of output (for example, VGA to DVI, DVI to DisplayPort, etc.) Question: Can you plug your laptop into the projector?

Converter Conundrums Connectors RGB RGB to to USB USB VGA VGA to to DisplayPort DB13W3 DB13W3 to to CATV CATV DisplayPort to to RGB RGB DB13W3 DB13W3 to to HDMI HDMI DVI DVI to to DB13W3 DB13W3 S-Video S-Video to to DVI DVI FireWire FireWire to to SDI SDI VGA VGA to to RGB RGB DVI DVI to to DisplayPort USB USB to to S-Video S-Video SDI SDI to to HDMI HDMI VGA RGB USB DisplayPort DB13W3 CATV HDMI X FireWire DVI S-Video SDI

In Pseudocode boolean canplugin(list<plug> plugs) { } return isreachable(plugstograph(plugs), VGA, HDMI);

Intuition: Finding a way to plug a computer into a projector can't be harder than determining reachability in a graph, since if we can determine reachability in a graph, we can find a way to plug a computer into a projector.

bool solveproblema(string input) { return solveproblemb(transform(input)); } Intuition: Problem A can't be harder than problem B, because solving problem B lets us solve problem A.

bool solveproblema(string input) { return solveproblemb(transform(input)); } If A and B are problems where it's possible to solve problem A using the strategy shown above *, we write A p B. We say that A is polynomial-time reducible to B. * Assuming that transform * runs in polynomial time.

Polynomial-Time Reductions If A p B and B P, then A P. If A p B and B NP, then A NP. P NP

This ₚ relation lets us rank the relative difficulties of problems in P and NP. What else can we do with it?

Time-Out for Announcements!

Please evaluate this course on Axess. Your feedback makes a difference.

Problem Set Nine Problem Set Nine is due this Wednesday at the start of class. No late submissions can be accepted. This is university policy sorry! This problem set is much shorter than the other ones we ve given out so far this quarter. Check the course website for the final office hours timetable for the week.

Final Exam Logistics Our final exam is this Friday from 3:30PM 6:30PM. Rooms are divvied up by last (family) name: Abb Kan: Go to Bishop Auditorium. Kar Zuc: Go to Cemex Auditorium. Exam is cumulative and all topics from the lectures and problem sets are fair game. The exam focus is roughly 50/50 between discrete math topics (PS1 PS5) and computability/complexity topics (PS6 PS9). As with the midterms, the exam is closed-book, closedcomputer, and limited-note. You can bring a single, double-sided, 8.5 11 sheet of notes with you to the exam.

Preparing for the Exam Up on the course website, you ll find three sets of extra practice problems (EPP9 EPP11), with solutions, and four practice final exams, with solutions. Feel free to ask questions about them on Piazza or in office hours. Thursday office hours are a great place to ask questions! Need more practice on a particular topic? Let us know! Folks on Piazza have asked for more practice with Myhill- Nerode and CFG design, and we re working on putting together some more practice problems along those lines. Stay tuned!

Your Questions

Regarding CS tracks, are there any references out there that help describe the CS tracks in greater detail and how each apply to industry today? This This is is a a great great question question and and I I don t don t have have a a good good answer answer for for you. you. I ll I ll ask ask around around and and see see if if I I can can come come up up with with anything. anything. If If so, so, I ll I ll share share it it on on Wednesday. Wednesday. If If not, not, I ll I ll ask ask around around about about making making one! one!

Keith! as someone struggles in CS/STEM, your constant encouragement and belief in us makes a world of difference. Any advice for the future when things get hard On entry to this quarter, I ve had 7,265 total students in the courses I ve On entry to this quarter, I ve had 7,265 total students in the courses I ve taught. I ve seen a lot of people struggle. I ve met people for whom the taught. I ve seen a lot of people struggle. I ve met people for whom the material didn t click as quickly as they d like. I ve chatted with folks who were material didn t click as quickly as they d like. I ve chatted with folks who were worried about whether they could keep up. But I have never, not once, met worried about whether they could keep up. But I have never, not once, met someone I legitimately thought could not learn this material. someone I legitimately thought could not learn this material. Learning is uncomfortable it requires you to face the harsh reality that Learning is uncomfortable it requires you to face the harsh reality that there are things that you don t understand as well as you think you do. It there are things that you don t understand as well as you think you do. It requires repetition and practice and can be frustrating. But the rewards are requires repetition and practice and can be frustrating. But the rewards are immense. Take a look back on what you ve accomplished in this quarter. Where immense. Take a look back on what you ve accomplished in this quarter. Where did you start? And where are you now? It s easy to lose sight of that in the did you start? And where are you now? It s easy to lose sight of that in the daily/weekly/monthly grind, but it s so refreshing when you see it. daily/weekly/monthly grind, but it s so refreshing when you see it. And you re always welcome to come talk to me even if you aren t in CS103! I And you re always welcome to come talk to me even if you aren t in CS103! I love hearing what people are up to! love hearing what people are up to!

How do you think the mindset of computer science thinking extend to life? (How CS affects one's outlook of life compared to non-stem disciplines?) I ll I ll take take this this one one in in class class because because I I was was silly silly and and didn t didn t budget budget enough enough time time to to write write up up an an answer answer before before coming coming to to class. class.

Back to CS103!

NP-Hardness and NP-Completeness

Question: What makes a problem hard to solve?

Intuition: If A ₚ B, then problem B is at least as hard * as problem A. * for some definition of at least as hard as.

Intuition: To show that some problem is hard, show that lots of other problems reduce to it.

NP-Hardness A language L is called NP-hard if for every A NP, we have A P L. Intuitively: L has has to to be be at at least least as as hard as every problem in NP, since an an algorithm for for L can can be be used used to to decide all all problems in in NP. NP. A language in L is hard called as NP-complete every problem iff L is in NP-hard NP, since and L NP. The class NPC is the set of NP-complete problems. NP NP-Hard P

NP-Hardness A language L is called NP-hard if for every A NP, we have A P L. A language in L is called NP-complete if L is NP-hard and L NP. The class NPC is the set of NP-complete problems. NP NP-Hard NPC P

The Tantalizing Truth Theorem: If any NP-complete language is in P, then P = NP. Proof: Suppose that L is NP-complete and L P. Now consider any arbitrary NP problem A. Since L is NP-complete, we know that A p L. Since L P and A p L, we see that A P. Since our choice of A was arbitrary, this means that NP P, so P = NP. P = NP

The Tantalizing Truth Theorem: If any NP-complete language is not in P, then P NP. Proof: Suppose that L is an NP-complete language not in P. Since L is NP-complete, we know that L NP. Therefore, we know that L NP and L P, so P NP. NP P NPC

How do we even know NP-complete problems exist in the first place?

Satisfiability A propositional logic formula φ is called satisfiable if there is some assignment to its variables that makes it evaluate to true. p q is satisfiable. p p is unsatisfiable. p (q q) is satisfiable. An assignment of true and false to the variables of φ that makes it evaluate to true is called a satisfying assignment.

SAT The boolean satisfiability problem (SAT) is the following: Formally: Given a propositional logic formula φ, is φ satisfiable? SAT = { φ φ is a satisfiable PL formula }

Theorem (Cook-Levin): SAT is NP-complete. Proof Idea: Given a polymomial-time verifier V for an arbitrary NP language L, for any string w you can construct a polynomially-sized formula φ(w) that says there is a certificate c where V accepts w, c. This formula is satisfiable if and only if w L, so deciding whether the formula is satisfiable decides whether w is in L. Proof: Take CS154!

Why All This Matters Resolving P NP is equivalent to just figuring out how hard SAT is. If SAT P, then P = NP. If SAT P, then P NP. We've turned a huge, abstract, theoretical problem about solving problems versus checking solutions into the concrete task of seeing how hard one problem is. You can get a sense for how little we know about algorithms and computation given that we can't yet answer this question!

Why All This Matters You will almost certainly encounter NP-hard problems in practice they're everywhere! If a problem is NP-hard, then there is no known algorithm for that problem that is efficient on all inputs, always gives back the right answer, and runs deterministically. Useful intuition: If you need to solve an NP-hard problem, you will either need to settle for an approximate answer, an answer that's likely but not necessarily right, or have to work on really small inputs.

Sample NP-Hard Problems Computational biology: Given a set of genomes, what is the most probable evolutionary tree that would give rise to those genomes? (Maximum parsimony problem) Game theory: Given an arbitrary perfect-information, finite, twoplayer game, who wins? (Generalized geography problem) Operations research: Given a set of jobs and workers who can perform those tasks in parallel, can you complete all the jobs within some time bound? (Job scheduling problem) Machine learning: Given a set of data, find the simplest way of modeling the statistical patterns in that data (Bayesian network inference problem) Medicine: Given a group of people who need kidneys and a group of kidney donors, find the maximum number of people who can end up with kidneys (Cycle cover problem) Systems: Given a set of processes and a number of processors, find the optimal way to assign those tasks so that they complete as soon as possible (Processor scheduling problem)

Coda: What if P NP is resolved?

Intermediate Problems With few exceptions, every problem we've discovered in NP has either definitely been proven to be in P, or definitely been proven to be NP-complete. A problem that's NP, not in P, but not NP-complete is called NP-intermediate. Theorem (Ladner): There are NP-intermediate problems if and only if P NP. NP P NPC

What if P NP?

A Good Read: A Personal View of Average-Case Complexity by Russell Impagliazzo

What if P = NP?

And a Dismal Third Option

Next Time The Big Picture Where to Go from Here A Final Your Questions Parting Words!