Download presentation
Presentation is loading. Please wait.
1
Theory of Computability
Giorgi Japaridze Theory of Computability Decidability Chapter 4
2
Examples of decidable languages
Giorgi Japaridze Theory 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} Undecidable: {<P> | P is a two-variable polynomial expression with an integral root}
3
The acceptance problem for DFAs is decidable
Giorgi Japaridze Theory of Computability 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
The acceptance problem for NFAs is decidable
Giorgi Japaridze Theory of Computability 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
The emptiness problem for the language of a DFA is decidable
Giorgi Japaridze Theory of Computability 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: 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
Other decidable problems from the language theory
Each the following languages are also decidable: EQDFA = {<A,B> | A and B are DFAs and L(A)=L(B)} AREX = {<R,w> | R is a regular expression that generates string w} ACFG = {<G,w> | G is a CFG that generates string w} Theorem 4.9: Every context-free language is decidable. Proof idea: Suppose L is a context-free language. Let G be the CFG that generates L, and S be a TM that decides ACFG. Here is a Turing machine H that decides L: H = “On input w: 1. Run S on input <G,w>. 2. If the machine accepts, accept; if it rejects, reject.”
7
The universal Turing machine
Giorgi Japaridze Theory of Computability 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?
8
Theorem 4.11: ATM is undecidable.
Giorgi Japaridze Theory of Computability 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>) =
9
accept if D does not accept <D> reject if D accepts <D>
ATM is undecidable 4.2.b.2 Giorgi Japaridze Theory of Computability 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>.
10
A Turing-unrecognizable language
Giorgi Japaridze Theory of Computability 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} Theorem 4.23: A TM is Turing-unrecognizable. 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.
11
The language hierarchy summary
4.2.d Giorgi Japaridze Theory of Computability All languages Turing-recognizable languages Turing-decidable languages Context-free languages Regular languages {anbn | n0} ATM ATM {anbncn | n0}
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.