1 / 10

Decidability

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

mercer
Télécharger la présentation

Decidability

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Giorgi Japaridze Theory of Computability Decidability Chapter 4

  2. 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}

  3. 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. 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.”

  5. 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.”

  6. 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?

  7. 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>) =

  8. 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>.

  9. 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.

  10. 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 | n0} ATM ATM {anbncn | n0}

More Related