CS 208: Computing Theory Assoc. Prof. Dr. Brahim Hnich

Slides:



Advertisements
Similar presentations
Algorithms Sipser 3.3 (pages ). CS 311 Fall Computability Hilbert's Tenth Problem: Find a process according to which it can be determined.
Advertisements

Turing Machines Memory = an infinitely long tape Persistent storage A read/write tape head that can move around the tape Initially, the tape contains only.
Introduction to Computability Theory
CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Variants of Turing machines
THE CHURCH-TURING T H E S I S “ TURING MACHINES” Pages COMPUTABILITY THEORY.
Turing Machines (At last!). Designing Universal Computational Devices Was Not The Only Contribution from Alan Turing… Enter the year 1940: The world is.
Applied Computer Science II Chapter 3 : Turing Machines Prof. Dr. Luc De Raedt Institut für Informatik Albert-Ludwigs Universität Freiburg Germany.
Algorithms Sipser 3.3 (pages ). CS 311 Mount Holyoke College 2 Computability Hilbert's Tenth Problem: Find “a process according to which it can.
1 Introduction to Computability Theory Lecture11: Variants of Turing Machines Prof. Amos Israeli.
Complexity ©D.Moshkovitz 1 Turing Machines. Complexity ©D.Moshkovitz 2 Motivation Our main goal in this course is to analyze problems and categorize them.
CS5371 Theory of Computation Lecture 11: Computability Theory II (TM Variants, Church-Turing Thesis)
1 Turing Machines. 2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
CS 310 – Fall 2006 Pacific University CS310 Turing Machines Section 3.1 November 6, 2006.
Lecture 5 Turing Machines
Computation Theory Introduction to Turing Machine.
CHAPTER 3 The Church-Turing Thesis
CS5371 Theory of Computation Lecture 10: Computability Theory I (Turing Machine)
Computability and Complexity 3-1 Turing Machine Computability and Complexity Andrei Bulatov.
Prof. Busch - LSU1 Turing Machines. Prof. Busch - LSU2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
Theory of Computation. Computation Computation is a general term for any type of information processing that can be represented as an algorithm precisely.
More Theory of Computing
Turing Machines A more powerful computation model than a PDA ?
Complexity and Computability Theory I Lecture #13 Instructor: Rina Zviel-Girshin Lea Epstein Yael Moses.
Turing Machines Chapter Plan Turing Machines(TMs) – Alan Turing Church-Turing Thesis – Definitions Computation Configuration Recognizable vs. Decidable.
CSE202: Introduction to Formal Languages and Automata Theory Chapter 9 The Turing Machine These class notes are based on material from our textbook, An.
CSCI 2670 Introduction to Theory of Computing September 28, 2005.
 Computability Theory Turing Machines Professor MSc. Ivan A. Escobar
Introduction to CS Theory Lecture 15 –Turing Machines Piotr Faliszewski
THE CHURCH-TURING T H E S I S “ TURING MACHINES” Part 1 – Pages COMPUTABILITY THEORY.
The Church-Turing Thesis Chapter 3 Giorgi Japaridze Theory of Computability.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 3 The Church-Turing Thesis Contents Turing Machines definitions, examples,
TM Design Macro Language D and SD MA/CSSE 474 Theory of Computation.
Donghyun (David) Kim Department of Mathematics and Computer Science North Carolina Central University 1 Chapter 3 Church-Turing Thesis Some slides are.
CS 3240: Languages and Computation
Overview of the theory of computation Episode 3 0 Turing machines The traditional concepts of computability, decidability and recursive enumerability.
1 Turing Machines - Chap 8 Turing Machines Recursive and Recursively Enumerable Languages.
1 Turing Machines. 2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 3 The Church-Turing Thesis Contents Turing Machines definitions, examples,
1 Introduction to Turing Machines
1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 12 Mälardalen University 2007.
1 Turing Machines. 2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
Umans Complexity Theory Lectures Lecture 1b: Turing Machines & Halting Problem.
Turing Machines CS 130 Theory of Computation HMU Textbook: Chap 8.
1 Turing Machines. 2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
1 Turing Machines. 2 The Language Hierarchy Regular Languages Context-Free Languages ? ?
CSCI 2670 Introduction to Theory of Computing September 29, 2005.
FORMAL LANGUAGES, AUTOMATA, AND COMPUTABILITY * Read chapter 4 of the book for next time * Lecture9x.ppt.
Theory of Computation Automata Theory Dr. Ayman Srour.
Busch Complexity Lectures: Turing Machines
Turing Machines.
CS21 Decidability and Tractability
Pumping Lemma Revisited
CSE 105 theory of computation
Turing Machines 2nd 2017 Lecture 9.
CSE 105 theory of computation
Chapter 3: The CHURCH-Turing thesis
فصل سوم The Church-Turing Thesis
CSE 105 theory of computation
CS21 Decidability and Tractability
Decidability and Tractability
CSE 105 theory of computation
CSE 105 theory of computation
Instructor: Aaron Roth
Intro to Theory of Computation
CSE 105 theory of computation
CSE 105 theory of computation
Presentation transcript:

CS 208: Computing Theory Assoc. Prof. Dr. Brahim Hnich Faculty of Computer Sciences Izmir University of Economics

Computability Theory Turing Machines

TMs We introduce the most powerful of the automata we will study: Turing Machines (TMs) TMs can compute any function normally considered computable Indeed we can define computable to mean computable by a TM

Turing Machines A Turing machine (TM) can compute everything a usual computer program can compute may be less efficient But the computation allows a mathematical analysis of questions like : What is computable? What is decidable? What is complexity?

input State control a a b a - - - A Turing Machine is a theoretical computer consisting of a tape of infinite length and a read-write head which can move left and right across the tape.

Informal definition TMs uses an infinite memory (tape) Tape initially contain input string followed by blanks When started, a TM executes a series of discrete transitions, as determined by its transition function and by the initial characters on the tape

Informal definition For each transition, the machine checks what state it is in and what character is written on the tape below the head. Based on those, it then changes to a new state, writes a new character on the tape, and moves the head one space left or right. The machine stops after transferring to the special HALT (accept or reject) state. If TM doesn’t enter a HALT state, it will go on forever

Differences between FA and TMs A TM can both write on the tape and read from it The read-write head can move both to the left and to the right The tape is infinite The special states of rejecting and accepting take immediate effect

Examples aa,R ba,R aa,R means TM reads the symbol a, it replaces it with a and moves head to right This TM when reading an a will move right one square stays in the same start state. When it scans a b, it will change this symbol to an a and go into the other state (accept state).

Examples A TM that tests for memberships in the language Idea: A= {w#w | w belongs to {0,1}*} Idea: Zig-zag across tape, crossing off matching symbols

Examples Tape head starts over leftmost symbol # a b b X b b # a b b X b b b # a b b Tape head starts over leftmost symbol Record symbol in control and overwrite X Scan right: reject if blank encountered before # When # encountered, move right one space If symbols don’t match, reject

Examples b X b b # X b b X X b # X b b X b X b # X b b Overwrite X Scan left, past # to X Move one space right Record symbol and overwrite X When # encountered, move right one space If symbols don’t match, reject …

Examples Finally scan left If a or b encountered, reject # X X X Finally scan left If a or b encountered, reject When blank encountered, accept

Examples http://ironphoenix.org/tril/tm/

Formal Definition A Turing Machine is a 7-tuple (Q,∑,T, ξ,q0,qaccept, qreject), where Q is a finite set of states ∑ is a finite set of symbols called the alphabet T is the tape alphabet, where – belongs to T, and ∑⊆ T ξ : Q x T  Q x T x {L,R} is the transition function q0 Є Q is the start state qaccept ⊆ Q is the accept state qreject ⊆ Q is the reject state, where qaccept ≠ qreject

Transition function ξ : Q x T  Q x T x {L,R} is the transition function ξ(q,a) = (r,b,L) means in state q where head reads tape symbol a the machine overwrites a with b enters state r move the head left

Workings of a TM M = (Q,∑,T, ξ,q0,qaccept, qreject) computes as follows Input w=w1w2…wn is on leftmost n tape sqaures Rest of tape is blank – Head is on leftmost square of tape

Workings of a TM M = (Q,∑,T, ξ,q0,qaccept, qaccept) When computation starts M Proceeds according to transition function ξ If M tries to move head beyond left-hand-end of tape, it doesn’t move Computation continues until qaccept or qaccept is reached Otherwise M runs forever

Configurations Computation changes Current state Current head position Tape contents

Configurations Configuration Means 1011r0111 State is r Left-Hand-Side (LHS) is 1011 Right-Hand-Side (RHS) is 0111 Head is on RHS 0

Configurations uarbv yields upacv if uarbv yields uacpv if ξ(r,b) = (p,c,L) uarbv yields uacpv if ξ(r,b) = (p,c,R) Special cases: rbv yields pcv if wr is the same as wr--

More configurations We have starting configuration q0w accepting configuration w0qacceptw1 rejecting configuration w0qrejectw1 halting configurations w0qacceptw1 w0qrejectw1

Accepting a language TM M accepts input w if a sequence of configurations C1,C2,…,Ck exist C1 is start configuration of M on w Each Ci yields Ci+1 Ck is an accepting configuration The collection of strings that M accepts is the language of M, denoted by L(M)

Detailed example M1 accepting {w#w | w in {0,1}*} Page 133 of Sipser’s book.

Enumerable languages Definition: A language is (recursively) enumerable if some TM accepts it In some other textbooks Turing-recognizable

Enumerable languages On an input to a TM we may accept reject loop (run for ever) Not very practical: never know if TM will halt

Enumerable languages Definition: A TM decides a language if it always halts in an accept or reject state. Such a TM is called a decider Definition: A language is decidable if someTM decides it Some textbooks use recursive instead of decidable Therefore, every decidable language is enumerable, but not the reverse!

Example of decidable language Here is a decidable language L={aibjck | ix j = k, I,j,k > 0} Because there exist a TM that decides it How?

Example of decidable language How? Scan from left to right to check that input is of the form a*b*c* Return to the start Cross off an a and scan right till you see a b Mark each b and scan right till you see a c Cross off that c Move left to the next b, and repeat previous two steps until all b’s are marked Unmark all b’s and go to the start of the tape Goto step 1 until all a’s are crossed off Check if all c’s are crossed off; if so accept; otherwise reject

Example of decidable language given, aabbbcccccc

Example of decidable language given, aabbbcccccc abbbcccccc

Example of decidable language given, aabbbcccccc abbbcccccc

Example of decidable language given, aabbbcccccc abbbcccccc abbbccccc

Example of decidable language given, aabbbcccccc abbbcccccc abbbccccc abbbcccc abbbccc

Example of decidable language given, aabbbcccccc abbbcccccc abbbccccc abbbcccc abbbccc bbbccc bbbcc bbbc bbb

TM: Variants Turing Machine head stays put Nondetermisim added to TMs Does not add any power Nondetermisim added to TMs

Remarks Many models have been proposed for general-purpose computation Remarkably all “reasonable” models are equivalent to Turing Machines All ”reasonable” programming languages like C, C++, Java, Prolog, etc are equivalent The notion of an algorithm is model-independent!

What is an algorithm? Informally Historically A recipe A procedure A computer program Historically Notion has long history in Mathematics (Al-kawarizmi), but Not precisely defined until 20th century Informal notion rarely questioned, but are insufficient

Hilbert’s 10th problem Hilbert’s tenth problem (1900): Find a finite algorithm that decides whether a polynomial has an integer root.

What is a polynomial? A polynomial is a sum of terms, each term is a product of variables and constants (coefficients) A root of a polynomial is an assignment of values to the variables such the value of the polynomial is 0 x=2 and y=2 is a root for 5x +15y=25 There is no such algorithm (1970)! Mathematics of 1900 could not have proved this, because they didn’t have a formal notion of an algorithm Formal notions are required to show that no algorithm exists

Church-Turing Thesis Formal notions appeared in 1936 Lambda-calculus of Alonzo Church Turing machines of Alan Turing These definitions look very different, but are equivalent The Church-Turing Thesis: The intuitive notion of algorithms equals Turing machines algorithms In 1970, it was shown that no algorithm exists for testing whether a polynomial has integral roots

Relationships among machines PDA NFA/DFA TM NPDA

Relationships among languages Context-free regular enumerable decidable

Conclusions Turing Machines definition examples Enumerable/decidable languages Next: Decidability Theory