Complexity Theory Part I

Similar documents
Complexity Theory Part I

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

Complexity Theory Part One

Recap from Last Time

Complexity Theory Part II

Turing Machines Part III

Decidability and Undecidability

Turing Machines Part II

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

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

Turing Machines Part II

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

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

A Note on Turing Machine Design

Recap from Last Time

Nonregular Languages

Introduction to Turing Machines. Reading: Chapters 8 & 9

Finite Automata Part Two

Computability Theory. CS215, Lecture 6,

Finite Automata Part Two

More Turing Machines. CS154 Chris Pollett Mar 15, 2006.

1 Showing Recognizability

Announcements. Problem Set 6 due next Monday, February 25, at 12:50PM. Midterm graded, will be returned at end of lecture.

1 Computational problems

CSE 105 THEORY OF COMPUTATION

The purpose here is to classify computational problems according to their complexity. For that purpose we need first to agree on a computational

Turing Machines Part Two

CS5371 Theory of Computation. Lecture 10: Computability Theory I (Turing Machine)

Complexity Theory Part Two

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?

CSE 105 THEORY OF COMPUTATION. Spring 2018 review class

Introduction to Languages and Computation

An example of a decidable language that is not a CFL Implementation-level description of a TM State diagram of TM

CS154, Lecture 13: P vs NP

CS5371 Theory of Computation. Lecture 10: Computability Theory I (Turing Machine)

Turing Machines (TM) Deterministic Turing Machine (DTM) Nondeterministic Turing Machine (NDTM)

Complexity Theory Part One

ECS 120 Lesson 24 The Class N P, N P-complete Problems

CS5371 Theory of Computation. Lecture 12: Computability III (Decidable Languages relating to DFA, NFA, and CFG)

Recap DFA,NFA, DTM. Slides by Prof. Debasis Mitra, FIT.

CS154, Lecture 13: P vs NP

Turing Machines Part One

Notes for Lecture Notes 2

CSCE 551: Chin-Tser Huang. University of South Carolina

CSE 105 THEORY OF COMPUTATION

CSE355 SUMMER 2018 LECTURES TURING MACHINES AND (UN)DECIDABILITY

CSE 105 THEORY OF COMPUTATION

Complexity Theory Part Two

Time Complexity (1) CSCI Spring Original Slides were written by Dr. Frederick W Maier. CSCI 2670 Time Complexity (1)

Turing Machines. Lecture 8

Acknowledgments 2. Part 0: Overview 17

Most General computer?

An example of a decidable language that is not a CFL Implementation-level description of a TM State diagram of TM

CSE 105 Theory of Computation

The Class NP. NP is the problems that can be solved in polynomial time by a nondeterministic machine.

Computer Sciences Department

Finish K-Complexity, Start Time Complexity

CSE 105 THEORY OF COMPUTATION

Final Exam Comments. UVa - cs302: Theory of Computation Spring < Total

CS154, Lecture 10: Rice s Theorem, Oracle Machines

CPSC 421: Tutorial #1

1 Computational Problems

Midterm Exam 2 CS 341: Foundations of Computer Science II Fall 2018, face-to-face day section Prof. Marvin K. Nakayama

Artificial Intelligence. 3 Problem Complexity. Prof. Dr. Jana Koehler Fall 2016 HSLU - JK

COMP/MATH 300 Topics for Spring 2017 June 5, Review and Regular Languages

Decidable Languages - relationship with other classes.

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

V Honors Theory of Computation

(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)

Exam Computability and Complexity

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

Midterm Exam 2 CS 341: Foundations of Computer Science II Fall 2016, face-to-face day section Prof. Marvin K. Nakayama

ECS 120 Lesson 23 The Class P

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever. ETH Zürich (D-ITET) October,

Complexity Theory Part Two

Turing Machine Variants

Complexity Theory Part Two

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

CS 125 Section #10 (Un)decidability and Probability November 1, 2016

Intractable Problems [HMU06,Chp.10a]

Mapping Reducibility. Human-aware Robotics. 2017/11/16 Chapter 5.3 in Sipser Ø Announcement:

Theory of Computation (IX) Yijia Chen Fudan University

Lecture 16: Time Complexity and P vs NP

Further discussion of Turing machines

CSCE 551: Chin-Tser Huang. University of South Carolina

CSE 105 THEORY OF COMPUTATION

NP-Completeness Part II

Decidability. Human-aware Robotics. 2017/10/31 Chapter 4.1 in Sipser Ø Announcement:

CS151 Complexity Theory. Lecture 1 April 3, 2017

Turing Machines and Time Complexity

NP-Completeness Part One

CSE 105 THEORY OF COMPUTATION

CSE 105 THEORY OF COMPUTATION

Computational Models Lecture 8 1

CS 154 Introduction to Automata and Complexity Theory

3 Probabilistic Turing Machines

CS 301. Lecture 18 Decidable languages. Stephen Checkoway. April 2, 2018

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

Logarithmic space. Evgenij Thorstensen V18. Evgenij Thorstensen Logarithmic space V18 1 / 18

Lecture 25: Cook s Theorem (1997) Steven Skiena. skiena

Transcription:

Complexity Theory Part I

Outline for Today Recap from Last Time Reviewing Verifiers Nondeterministic Turing Machines What does nondeterminism mean in the context of TMs? And just how powerful are NTMs? Complexity Theory A new framework for solvability. The Complexity Class P What problems can be solved efficiently?

Recap from Last Time

Verifiers A verifier for a language L is a TM V with the following properties: V is a decider (that is, V halts on all inputs.) For any string w Σ*, the following is true: w L iff c Σ*. V accepts w, c Some notes about V: If V accepts w, c, then we're guaranteed w L. If V does not accept w, c, then either w L, but you gave the wrong c, or w L, so no possible c will work.

Verifiers A verifier for a language L is a TM V with the following properties: V is a decider (that is, V halts on all inputs.) For any string w Σ*, the following is true: w L iff c Σ*. V accepts w, c Some notes about V: If w L, a string c for which V accepts w, c is called a certificate for c. V is required to halt, so given any potential certificate c for w, you can check whether the certificate is correct.

Verifiers and RE Theorem: If there is a verifier V for a language L, then L RE. Proof idea: Build a recognizer that tries every possible certificate to see if w L. Proof sketch: Show that this TM is a recognizer for L: M = On On input input w: w: For For i i = 0 to to For For each each string string c of of length i: i: Run Run V on on w, w, c. c. If If V accepts w, w, c, c, M accepts w. w.

Verifiers and RE Theorem: If L RE, then there is a verifier for L. Proof sketch: Let L be an RE language and let M be a recognizer for it. Then show that this is a verifier for L: V = On On input input w, w, n, n, where n N: N: Run Run M on on w for for n steps. steps. If If M accepts w within n steps, steps, accept. If If M did did not not accept w in in n steps, steps, reject.

Nondeterministic Turing Machines

Nondeterministic TMs A nondeterministic Turing machine (or NTM) is a Turing machine in which there can be zero or multiple transitions defined at each state. Nondeterministic TMs do not have ε-transitions; they have to read or write something and move the tape at each step. As with NFAs, NTMs accept if any path accepts. In other words, an NTM for a language L is one where w L iff there is some series of choices N can make that causes N to accept w. In particular, if w L, N only needs to accept w along one branch. The rest can loop infinitely or reject.

Designing an NTM A tautonym is a word that consists of the same string repeated twice. Some examples: dikdik (an adorable petite antelope) hotshots (people who aren't very fun to be around) Consider the following language ver Σ = {0, 1}: L = { ww w Σ* and w ε } This is the set of all nonempty tautonyms. How might we design a TM for this language?

What's Tricky 0 0 1 1 0 0 1 1

Using Nondeterminism 0 0 1 1 0 0 1 1

Using Nondeterminism 0 0 1 0 0 1

start 0 0, R 1 1, R 0, R 1, R Guess Split To end Match 0 0 0, R 1 1, R, L 0 0, R 1 1, R, L To end Match 1 Check 0, L split 1, L 0 0 1 1 0 0 1 1

A huge difference between NTMs and NFAs.

start 0 0, R 1 1, R 0, R 1, R To end Match 0 Guess Split 0 0, R 1 1, R, L 0 0, R 1 1, R, L To end Match 1 In In an an NFA, NFA, we we can can follow follow multiple multiple transitions at at once once by by just just being being in in many many states states at at the the same same time. time. That That doesn't doesn't work work with with NTMs! NTMs! The The tapes tapes will will be be different different in in each each case. case. Check 0, L split 1, L 0 1 0 0 1 0

start 0 0, R 1 1, R start 0 0, R 1 1, R 0, R 1, R Guess Split 0, R 1, R Guess Split To end Match 0 0 0, R 1 1, R, L 0 0, R To end Match 0 0, R To end 1 Every Every 1, R time time we we have have multiple multiple 0 choices, 1 choices, 1, R the the entire, entire computation L branches. branches., L Imagine Imagine that Match that we we completely clone clone the the Match Turing Turing 1machine, then then have have one one go go 1 down down one one branch branch and and one one go go down down Check the the other. other. split 0, L 1, L Check 0, L split 1, L To end 0 0, R 1 1, R, L 0 1 0 0 1 0 1 0 0 1 0

Intuiting Nondeterministic TMs Two of our previous NTM intuitions are useful here: Perfect guessing: If there is some choice of transitions that leads to an accepting state, the NTM can perfectly guess those transitions. There's just one NTM, and it makes the right guess if one exists. Massive parallelism: The NTM tries all options. Each time it follows multiple transitions, it copies the current state of the machine once for each option, then tries each option. Each step of the computation creates multiple new NTMs to try out each branch. The guess-and-check intuition from NFAs still applies here and is probably the best way to design NTMs.

Guessing Arbitrary Objects NTMs can use their nondeterminism to guess an arbitrary discrete, finite object. Idea: The NTM nondeterministically chooses a string to write on its tape, then does something with the string it just wrote.

Guessing an Arbitrary String As an example, here's how an NTM can guess an arbitrary string, then go do something with it: a, R b, R a a, L b b, L Build string, L Back home, R Check string As a high-level description: N = On On input input w: w: Nondeterministically guess guess a string string x Σ*. Σ*. Deterministically check check whether whether [...] [...]

Just How Powerful are NTMs?

NTMs and DTMs Theorem: If L RE, then there is an NTM for L. Proof Sketch: Every deterministic TM (DTM) can be thought of as an NTM with no nondeterminism, so if L is the language of a DTM, it's also the language of an NTM.

NTMs and DTMs Theorem: If L is the language of an NTM, then L RE. Faulty Proof Idea: Use the subset construction. Why doesn't this work? In an NFA, the only memory is which states are active, so creating one state per configuration simulates the NFA with a DFA. In an NTM, the memory is the current state plus the tape contents, so building one state per configuration is impossible.

NTMs and DTMs Theorem: If L is the language of an NTM, then L RE. Proof Idea: Show how to construct an verifier for L using the NTM. We showed how to build a verifier for an arbitrary TM M by having the certificate for some w L be the number of steps it takes for M to accept w. With an NTM, there might be many possible executions of length n on the string w. Idea: Our certificate will be the series of transitions that N is supposed to follow to accept w.

NTMs and DTMs Theorem: If L is the language of an NTM, then L RE. Proof Sketch: Let N be an NTM for L. Then we can prove that this is a verifier for L: V = On On input input w, w, T, T, where where T is is a sequence sequence of of transitions: Run Run N on on w, w, following following transitions in in the the order order specified specified in in T. T. If If any any of of the the transitions in in T are are invalid invalid or or can't can't be be followed, followed, reject. reject. If If after after following following the the transitions N accepts accepts w, w, accept; accept; otherwise reject. reject.

Where We Stand We now know a lot about R, RE, and co-re: The RE languages are the languages for which we can build a recognizer, an NTM, or which can be verified. The R languages are the decidable languages, or the languages which are both RE and co-re. The co-re languages are the complements of the RE languages and the languages for which there is a co-recognizer. The recursion theorem lets us find examples of languages that aren't in some of these classes.

The Limits of Computability EQ TM EQ TM co-re R RE L D ADD L D HALT A TM HALT A TM 0*1*

What problems can be solved by a computer?

What problems can be solved efficiently by a computer?

Where We've Been The class R represents problems that can be solved by a computer. The class RE represents problems where yes answers can be verified by a computer. The class co-re represents problems where no answers can be verified by a computer. The mapping reduction can be used to find connections between problems.

Where We're Going The class P represents problems that can be solved efficiently by a computer. The class NP represents problems where yes answers can be verified efficiently by a computer. The class co-np represents problems where no answers can be verified efficiently by a computer. The polynomial-time mapping reduction can be used to find connections between problems.

Time-Out for Announcements!

Casual CS Dinner Tonight WiCS is holding their second biquarterly Casual CS Dinner tonight on the Gates fifth floor at 6PM. Meet fellow women CS students, chat with professors, talk with folks in industry, and have a nice dinner!

Problem Set Six Grading The TAs are humming along and grading PS6. It should be ready by Friday.

Your Questions

The distribution for midterm 2 was very discouraging. I got everything correct except one detail and got put right below median. I studied extremely hard but apparently not doing it right. How can we best prepare for exams to meet such high curve?

I've spoken to friends in industry, and they seem to only speak of discrete math as something they did long ago almost like a rite of passage. How will CS103 help us become better programmers? Why do we need this? I'm missing the big picture.

Can we have a 103 trip for the Alan Turing movie (aka the Imitation Game, staring Benedict Cumberbatch)?

Keith, is it possible to build a Turing Machine that checks {w w is an encoding of some Turing Machine H}? How about a decider?

Is it theoretically possible for a machine to create a machine that is more complex than itself?

In class, you mentioned that there is no physical analog to NFAs, and that quantum computers "do not really match" how an NFA works. I've read a bit about QFAs - could you give us a broad idea of how they can solve problems that we otherwise can't? How does quantum computing relate to Turing Machines and DFAs? Do the same bounds apply?

I get that there are some types of problems that are impossible to compute, but so far they all seem 100% theoretical. What are the practical implications of what we're talking about? Can you give examples of real world problems impossible to solve?

Back to CS103!

It may be that since one is customarily concerned with existence, [ ] decidability, and so forth, one is not inclined to take seriously the question of the existence of a better-than-decidable algorithm. - Jack Edmonds, Paths, Trees, and Flowers

A Decidable Problem Presburger arithmetic is a logical system for reasoning about arithmetic. x. x + 1 0 x. y. (x + 1 = y + 1 x = y) x. x + 0 = x x. y. (x + y) + 1 = x + (y + 1) x. ((P(0) y. (P(y) P(y + 1))) x. P(x) Given a statement, it is decidable whether that statement can be proven from the laws of Presburger arithmetic. Any Turing machine that decides whether a statement in Presburger arithmetic is true or false has to move the tape head at least 2 2cn times on some inputs of length n (for some fixed constant c).

For Reference Assume c = 1. 2 20 =2 2 21 =4 2 22 =16 2 23 =256 2 24 =65536 2 25 =18446744073709551616 2 26 =340282366920938463463374607431768211456

The Limits of Decidability The fact that a problem is decidable does not mean that it is feasibly decidable. In computability theory, we ask the question Is it possible to solve problem L at all? In complexity theory, we ask the question Is it possible to solve problem L efficiently? In the remainder of this course, we will explore this question in more detail.

Regular Languages CFLs R Efficiently Decidable Languages Undecidable Languages

The Setup In order to study computability, we needed to answer these questions: What is computation? What is a problem? What does it mean to solve a problem? To study complexity, we need to answer these questions: What does complexity even mean? What is an efficient solution to a problem?

Measuring Complexity Suppose that we have a decider D for some language L. How might we measure the complexity of D? Number of states. Size of tape alphabet. Size of input alphabet. Amount of tape required. Amount of time required. Number of times a given state is entered. Number of times a given symbol is printed. Number of times a given transition is taken. (Plus a whole lot more...)

What is an efficient algorithm?

Searching Finite Spaces Many decidable problems can be solved by searching over a large but finite space of possible options. Searching this space might take a staggeringly long time, but only finite time. From a decidability perspective, this is totally fine. From a complexity perspective, this is totally unacceptable.

A Sample Problem 4 3 11 9 7 13 5 6 1 12 2 8 0 10 Longest so far: 4 11 How How many many different different subsequences are are there there in in a sequence sequence of of n elements? 2 n n How How long long does does it it take take to to check check each each subsequence? O(n) O(n) time. time. Runtime Runtime is is around around O(n O(n 2 n n ). ).

A Sample Problem 4 3 11 9 7 13 5 6 1 12 2 8 0 10 1 1 2 2 2 3 32 3 1 4 2 4 1 5 How How many many elements elements of of the the sequence sequence do do we we have have to to look look at at when when considering the the kth kth element element of of the the sequence? k 1 Total Total runtime runtime is is 1 + 2 + + (n (n 1) 1) = O(n O(n 2 2 ))

Another Problem From B To A F C D Number of of possible ways ways to to order order a subset of of n nodes nodes is is O(n O(n n!) n!) Time Time to to check check a path path is is O(n). O(n). Runtime: O(n O(n 2 2 n!) n!) E

Another Problem From B 3 To A F 0 3 C D 2 2 With With a precise analysis, runtime is is O(n O(n + m), m), where n is is the the number of of nodes nodes and and m is is the the number of of edges. E 1

For Comparison Longest increasing subsequence: Naive: O(n 2n ) Fast: O(n2 ) Shortest path problem: Naive: O(n 2 n!) Fast: O(n + m), where n is the number of nodes and m the number of edges. (Take CS161 for details!)

Defining Efficiency When dealing with problems that search for the best object of some sort, there are often at least exponentially many possible options. Brute-force solutions tend to take at least exponential time to complete. Clever algorithms often run in time O(n), or O(n 2 ), or O(n 3 ), etc.

Polynomials and Exponentials An algorithm runs in polynomial time if its runtime is some polynomial in n. That is, time O(n k) for some constant k. Polynomial functions scale well. Small changes to the size of the input do not typically induce enormous changes to the overall runtime. Exponential functions scale terribly. Small changes to the size of the input induce huge changes in the overall runtime.

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 iff 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 Cobham-Edmonds Thesis Efficient runtimes: 4n + 13 n 3 2n 2 + 4n n log log n Efficient runtimes: n 1,000,000,000,000 10 500 Inefficient runtimes: 2 n n! n n Inefficient runtimes: n 0.0001 log n 1.000000001 n

Why Polynomials? Polynomial time somewhat captures efficient computation, but has a few edge cases. However, polynomials have very nice mathematical properties: The sum of two polynomials is a polynomial. (Running one efficient algorithm after the other gives an efficient algorithm.) The product of two polynomials is a polynomial. (Running one efficient algorithm a reasonable number of times gives an efficient algorithm.) The composition of two polynomials is a polynomial. (Using the output of one efficient algorithm as the input to another efficient algorithm gives an efficient algorithm.)

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.