100 likes | 425 Views
Giorgi Japaridze Theory of Computability. Decidability. Chapter 4. 4.1.a. Giorgi Japaridze Theory of Computability. Decidable: {1,3,5} {x | x is even} {x | x is a perfect square} {x | x 2 -10x = 0} {x | x=y * z for some integers y,z>1 (i.e. x is not prime)}
E N D
Giorgi Japaridze Theory of Computability Decidability Chapter 4
4.1.a Giorgi JaparidzeTheory of Computability • Decidable: • {1,3,5} • • {x | x is even} • {x | x is a perfect square} • {x | x2-10x = 0} • {x | x=y*z for some integers y,z>1 (i.e. x is not prime)} • {x | x is a prime (i.e. x is not divisible by anything except 1 and • itself)} • {<G> | G is a connected graph} • {<P> | P is a one-variable polynomial expression with an integral root} Examples of decidable languages • Undecidable: • {<P> | P is a two-variable polynomial expression with an integral root}
4.1.b Giorgi JaparidzeTheory of Computability The acceptance problem for DFAs is decidable Let ADFA = {<B,w> | B is a DFA that accepts input string w} Theorem 4.1:ADFA is a decidable language. Proof idea: Here is a Turing machine M that decides ADFA: M = “On input <B,w>, where B is a DFA and w is a string: 1. Simulate B on input w. 2. If the simulation ends in an accept state, accept. If the simulation ends in a nonaccept state, reject.”
4.1.c Giorgi JaparidzeTheory of Computability The acceptance problem for NFAs is decidable Let ANFA = {<B,w> | B is an NFA that accepts input string w} Theorem 4.2:ANFA is a decidable language. Proof idea: Here is a Turing machine N that decides ANFA: N = “On input <B,w>, where B is an NFA and w is a string: 1. Convert NFA B to an equivalent DFA C using the procedure for this conversion that we learned. 2. Run TM M from Theorem 4.1 on input <C,w>. 3. If M accepts, accept. If M rejects, reject.”
4.1.d Giorgi JaparidzeTheory of Computability The emptiness problem for the language of a DFA is decidable Let EDFA = {<A> | A is a DFA and L(A)=} Theorem 4.4:EDFA is a decidable language. Proof idea: Here is a Turing machine T that decides EDFA: T = “On input <A>, where A is a DFA: 1. Mark the start state of A. 2. Repeat until no new states get marked: 3. Mark any state that has a transition coming into it from any state that is already marked. 4. If no accept state is marked, accept; otherwise reject.”
4.2.a Giorgi JaparidzeTheory of Computability The universal Turing machine Let ATM = {<M,w> | M is a TM and M accepts string w} ATM is misleadingly called the halting problem in the textbook. Instead, we will call it the acceptance problem. Theorem:ATM is Turing-recognizable. Proof idea. The following TM U, called the universal TM, recognizes ATM: U = “On input <M,w>, where M is a TM and w is a string: 1. Simulate M on input w. 2. If M ever enters its accept state, accept; if M ever enters its reject state, reject.” Does U also decide ATM?
4.2.b.1 Giorgi JaparidzeTheory of Computability ATM is undecidable Theorem 4.11:ATM is undecidable. Proof idea. Suppose, for a contradiction, that ATM is decidable. That is, there is a TM H that decides ATM. Thus, that machine H behaves as follows: accept if M accepts w reject if M does not accept w H(<M,w>) = Using H as a subroutine, we can construct the following TM D: D = “On input <M>, where M is a TM: 1. Run H on input <M,<M>>. 2. Do the opposite of what H does. That is, if H accepts, reject, and if H rejects, accept.” accept if M does not accept <M> reject if M accepts <M> Thus, D(<M>) =
4.2.b.2 Giorgi JaparidzeTheory of Computability ATM is undecidable accept if D does not accept <D> reject if D accepts <D> But then D(<D>) = Contradiction! • To summarize: • H accepts <M,w> exactly when M accepts w. • D rejects <M> exactly when M accepts M. • D rejects <D> exactly when D accepts <D>.
4.2.c Giorgi JaparidzeTheory of Computability Theorem 4.23: A is Turing-unrecognizable. TM A Turing-unrecognizable language ATM = {<M,w> | M is a TM and M accepts string w} ATM = {<M,w> | M is a TM and M does not accept string w} Proof idea. Suppose, for a contradiction, that ATM is Turing-recognizable. That is, there is a TM U that recognizes ATM. • U recognizes ATM (slide 4.2.a) • U recognizes ATM Thus, Let M = “On input w: 1. Run both U and U on input w in parallel; 2. If U accepts, accept; if U accepts, reject.” It can bee seen that M decides ATM, which contradicts Theorem 4.11.
4.2.d Giorgi JaparidzeTheory of Computability The language hierarchy summary All languages Turing-recognizable languages Turing-decidable languages Context-free languages Regular languages {anbn | n0} ATM ATM {anbncn | n0}