107 Views

Download Presentation
##### FORMAL LANGUAGES, AUTOMATA, AND COMPUTABILITY

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**15-453**FORMAL LANGUAGES, AUTOMATA, AND COMPUTABILITY * Read chapter 4 of the book for next time * Lecture9x.ppt**A Turing Machine is represented by a 7-tuple T = (Q, Σ, Γ,**, q0, qaccept, qreject): Q is a finite set of states Σ is the input alphabet, where Σ Γ is the tape alphabet, a superset of Σ; Γ : Q Γ→ Q Γ {L, R}is the transition func q0 Q is the start state qaccept Q is the accept state qreject Q is the reject state, and qreject qaccept**CONFIGURATION:(1) tape contents, (2) current state, (3)**location of read/write head. 11010q700110**A TM recognizesa language iff it accepts all and only those**strings in the language. A language L is called Turing-recognizable or recursively enumerable iff some TM recognizes L. A TM decides a language L iff it accepts all strings in L andrejects all strings not in L. A language L is called decidable or recursiveiff some TM decides L.**A language is called Turing-recognizable or recursively**enumerable (r.e.) if some TM recognizes it. A language is called decidable or recursiveif some TM decides it.**Theorem: If A and A are r.e. then A is decidable.**Given: a Turing Machine TMA that recognizes A and a Turing Machine TMR that recognizes A, we can build a new machine that decides A. How can we prove this? • Run TMA and TMR in parallel. (Or more precisely, interleave them.) • One of them will eventually recognize the input string. • If TMA recognizes it, then accept. • If TMR recognizes it, then reject.**2n**A TM that decides { 0 | n ≥ 0 } • We want to accept iff: • the input string consists entirely of zeros, and • the number of zeros is a power of 2. • High-Level Idea. • Repeatedly divide the number of zeros in half until it becomes an odd number. • If we are left with a single zero, then accept. • Otherwise, reject.**2n**A TM that decides { 0 | n ≥ 0 } PSEUDOCODE: • Sweep from left to right, cross out every other 0.(Divides number in half.) • If in step 1, the tape had only one 0, accept. • Else if the tape had an odd number of 0’s, reject. • Move the head back to the first input symbol. • Go to step 1.**C = {aibjck | k = i×j, and i, j, k ≥ 1}**Example aaabbbbcccccccccccc 3 4 3×4 = 12**C = {aibjck | k = i×j, and i, j, k ≥ 1}**• High-Level Idea. • For each occurrence of a: { • For each occurrence ofb: { • Delete an occurrence of c. • } • }**C = {aibjck | k = i×j, and i, j, k ≥ 1}**PSEUDOCODE: • If the input doesn’t match a*b*c*, reject. • Move the head back to the leftmost symbol. • Cross off an a, scan to the right until b. Sweep between b’s and c’s, crossing out one of each until all b’s are out. If too few c’s, reject. • Uncross all the b’s. If there’s another aleft, then repeat stage 3.If all a’s are crossed out, Check if all c’s are crossed off. If yes, then accept, else reject.**C = {aibjck | k = i×j, and i, j, k ≥ 1}**aabbbcccccc xabbbcccccc xayyyzzzccc xabbbzzzccc xxyyyzzzzzz**TURING-MACHINE VARIANTS**Turing machines can be extended in various ways, but so long as a new TM only reads and writes a finite number of symbols in each step,an old TM can still simulate it! Example: Turing machines with multiple tapes. Input comes in on one tape, and other tapes are used for scratch work.**FINITE STATE CONTROL**MULTITAPE TURING MACHINES : Q Γk→ Q Γk {L,R}k**FINITE STATE CONTROL**FINITE STATE CONTROL Theorem: Every Multitape Turing Machine can be transformed into a single tape Turing Machine 1 0 0 . . . # # 1 0 0 #**FINITE STATE CONTROL**FINITE STATE CONTROL Theorem: Every Multitape Turing Machine can be transformed into a single tape Turing Machine 1 0 0 . . . # # 1 0 0 #**THE CHURCH-TURING THESIS**Anything that can be computed by algorithm (in our intuitive sense of the term “algorithm”) can be computed by a Turing Machine.**We can encode a TM as a string of 0s and 1s**start state reject state n states 0n10m10k10s10t10r10u1… m tape symbols (first k are input symbols) blank symbol accept state ( (p, a), (q, b, L) ) = 0p10a10q10b10 ( (p, a), (q, b, R) ) = 0p10a10q10b11**Similarly, we can encode DFAs, NFAs, CFGs, etc. into strings**of 0s and 1s So we can define the following languages: ADFA = { (B, w) | B is a DFA that accepts string w } ANFA = { (B, w) | B is an NFA that accepts string w } ACFG = { (G, w) | G is a CFG that generates string w }**ADFA = { (B, w) | B is a DFA that accepts string w }**Theorem: ADFA is decidable Proof Idea: Simulate B on w ANFA = { (B, w) | B is an NFA that accepts string w } Theorem: ANFA is decidable ACFG = { (G, w) | G is a CFG that generates string w } Theorem: ACFG is decidable Proof Idea: Transform G into Chomsky Normal Form. Try all derivations of length 2|w|-1**w Σ***w Σ* TM TM w L ? w L ? no yes no yes accept reject or no output accept reject L is semi-decidable (recursively enumerable, Turing-recognizable) L is decidable (recursive) Theorem: L is decidable if both L and L are recursively enumerable**There are languages over {0,1} that are not decidable.**If we believe the Church-Turing Thesis, this is major: it means there are things that formal computational models inherently cannot do. We can prove this using a counting argument. We will show there is no functionfrom the set of all Turing Machines ontothe set of all languages over {0,1}. (Works for any Σ.) Then we will prove something stronger: There are semi-decidable (r.e.) languages that are NOT decidable.**Languages over {0,1}**Turing Machines**Cantor’s Theorem**Let L be any set and 2L be the power set of L Theorem: There is no map from L onto 2L Assume, for a contradiction, that there is an onto map f : L 2L Proof: Let S = { x L | x f(x) } We constructed S so that, for every elem x in L, the set S differs from f(x): S ≠ f(x) because x S iff x f(x)**Theorem: There is no onto function from the positive**integers to the real numbers in (0, 1) Proof: Suppose f is such a function: 0.28347279… 2 1 2 3 4 5 : 0.88388384… 8 0.77635284… 6 0.11111111… 1 5 0.12345678… : 1 if [ nth digit of f(n) ] 1 [ nth digit of r ] = 0 otherwise f(n) r for all n ( Here, r = 0.11101... )**Sidenote**Let Z+ = {1,2,3,4…}. There exists a bijection between Z+ and Z+ Z+ (or Q+) (1,1) (1,2) (1,3) (1,4) (1,5) … (2,1) (2,2) (2,3) (2,4) (2,5) … (3,1) (3,2) (3,3) (3,4) (3,5) … (4,1) (4,2) (4,3) (4,4) (4,5) … (5,1) (5,2) (5,3) (5,4) (5,5) … : : : : : ∙.**THE MORAL:**For any set L, 2Lalways has ‘more’ elements than L**Not all languages over {0,1} are decidable, in fact:**not all languages over {0,1} are semi-decidable {decidable languages over {0,1}} {semi-decidable langs over{0,1}} {Languages over {0,1}} {Turing Machines} {Strings of 0s and 1s} {Sets of strings of 0s and 1s} Powerset of L: 2L Set L**THE ACCEPTANCE PROBLEM**ATM = { (M, w) | M is a TM that accepts string w } Theorem: ATM is semi-decidable (r.e.) but NOTdecidable ATM is r.e. : Define a TM U as follows: On input (M, w), U runs M on w. If M ever accepts, accept. If M ever rejects, reject. U is a universal TM Therefore, U accepts (M,w) M accepts w (M,w) ATM Therefore, U recognizes ATM**Accept if M accepts w**Reject if M does not accept w Reject if M accepts M Accept if M does not accept M ATM = { (M,w) | M is a TM that accepts string w } ATM is undecidable: (proof by contradiction) Assume machine H decides ATM H( (M,w) ) = Construct a new TM D as follows: on input M, run H on (M,M) and output the opposite of H D D D( M ) = Contradiction! D D D**Theorem: ATM is r.e. but NOT decidable**Theorem: ATM is not even r.e.! The Halting Problem is Not Decidable**We have shown:**Given any presumed machine H for ATM,we can effectively construct a TM D such that (D,D) ATM but H fails to tell us that. In other words, For any machine H that recognizes ATMwe can effectively give an instance where H fails to decide ATM In other words, Given any good candidate for deciding the Halting Problem, we can effectively construct an instance where the machine fails.**THE HALTING PROBLEM**HALTTM = { (M,w) | M is a TM that halts on string w } Theorem: HALTTM is undecidable Assume, for a contradiction, that TM H decides HALTTM Proof: We use H to construct a TM D that decides ATM On input (M,w), D runs H on (M,w) If H rejects then reject If H accepts, run M on w until it halts: Accept if M accepts and Reject if M rejects**In many cases, one can show that a language L is undecidable**by showing that if it is decidable, then so is ATM We reduce deciding ATM to deciding the language in question ATM ≤ L We just showed:ATM ≤ HaltTM Is HaltTM ≤ ATM ?