360 likes | 378 Views
Decidability. Why study un-solvability? When a problem is algorithmically unsolvable, we realize that the problem must be simplified or altered before we can find an algorithm solution
E N D
Why study un-solvability? • When a problem is algorithmically unsolvable, we realize that the problem must be simplified or altered before we can find an algorithm solution • A glimpse of the unsolvable can stimulate your imagination and help you gain an important perspective on computation
Decidable problems concerning Regular languages ADFA={<B,w>| B is a DFA that accepts w } • Thm: ADFA is a decidable language
Proof: • M=“On input <B,w>, where B is DFA and w is a string: 1. Simulate B on input w 2. If the simulation ends in an accept state, accept. If it ends in a non-accepting state, reject.”
ANFA ={<B,w>| B is an NFA that accepts w} • Thm: ANFA is a decidable language.
Proof: • 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 in Thm. 1.19 2. Run TM M from the previous Thm on input <C,w> 3. If M accepts, accept; otherwise reject. ”
AREX={<R,w>| R is a regular expression that generates string w } • Thm: AREX is a decidable language.
Proof: • P= “ On input <R,w> where R is a regular expression and w is a string. 1. Convert R to an equivalent DFA A by the procedure given in Thm 1.28 2. Run TM M on input <A,w> 3. If Maccepts , accept ; if M rejects, reject. “
EDFA= {<A>| A is a DFA and L(A)=∅ } • Thm: EDFA is a decidable language
Proof: • T= “ On input <A> where A is a DFA: 1. Mark the start state of A. 2. Repeat until no new state 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. “
EQDFA={<A,B>: A and B are DFAs and L(A)=L(B) } • Thm: EQDFA is a decidable language.
Proof: L(C) = ∅ iff L(A)=L(B) L(C) is regular, since regular languages are closed under complementation, union, and intersection. F= “ On input <A,B>, where A and B are DFAs: 1. Construct DFA C as described 2. Run the TM in the previous Thm on input <C>. 3. If accepts, accept; otherwise reject. “
Decidable problems concerning Context-free languages • ACFG={<G,w>: G is a CFG that generates string w} • Thm: ACFG is a decidable language
Proof: • S=“ On input <G,w>, where G is a CFG and w is a string: 1. Convert G to Chomsky normal form. 2. List all derivations with 2n-1 steps, where n is the length of w. 3. If any of these derivations generate w, accept; otherwise reject. “
ECFG={<G>| G is a CFG and L(G)=∅ } • Thm: ECFG is a decidable language.
Proof: • R = “On input <G>, where G is a CFG 1. Mark all terminal symbols in G 2. Repeat until no new variables get marked: 3. Mark all variables A with AU1 …Uk marked 4. If the start symbol is not marked, ACCEPT; else reject. ”
EQCFG={<G,H>| G and H are CFL’s and L(G)=L(H) } Not decidable Note that CFL is NOT closed under complementation or intersection. So the same technique for EQDFA DOES NOT work • Thm: Every CFL is decidable.
Defined before Proof: • Let G be a CFG for A and design a TM MG that decides A MG =“On input w: 1. Run TM S on input <G,w> 2. If this machine accepts, ACCEPTS; otherwise REJECTS. “
Halting Problem • ATM={<M,w>| M is a TM and M accepts w } • Thm: ATM is un-decidable .
(conti.) • 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 reject state, reject. “ U recognizes ATM but NOT decides it!
Diagonalization Method: (Georg Cantor in 1873) A and B are the same size if there is a 1-1, onto function f : AB f is 1-1 : f(a) ≠ f(b) , if a≠ b f A B
Eg: N={1,2,3,…} E={2,4,6,…} f(n)=2n
Def: A is countable if either it is finite or it has the same size as N .
Thm: R is uncountable
Proof: • By contradiction. Suppose there is a 1-1 onto f between N and R. Thus x≠f(n) for any n ⇒ x=0.4201⋯ The i-th digit of x is not equal to the i-th of f(i)
ATM={<M,w>| M is a TM and M accepts w } • Thm: ATM is un-decidable.
Proof: • Assume ATM is decidable. Suppose H decides ATMand H(<M,w>)= accept if M accepts w reject if M does not accept w • Define D= “ On input <M>, where M is a TM: 1. Run H on input < M,<M> >. 2. Output the opposite of what H outputs i.e. if H accepts, REJECT, and if H rejects, ACCEPT. “
(Proof conti.) • D(<M>)= accept if M does not accept <M> reject if M accepts <M> D(<D>)= accept if D does not accept <D> reject if D accepts <D> ⇒ Thus, ATM is un-decidable.
1. (i, j) is accept if Mi accepts <Mj>
2. (i, j) is the value of H on input <Mi ,<Mj>>.
3. Contradiction!
Turing-unrecognizable language: A language is co-Turing-recognizable if it is the Complement of a Turing-recognizable language. • Thm: A language is decidable iff it is both Turing-recognizable and co-Turing-recognizable.
Proof: • “⇒” If A is decidable, then both A and are Turing-recognizable. Yes Yes Yes x MA x MA No No No
(Proof conti.): • “⇐” If both A and are Turing-recognizable, let M1 recognize A and M2 recognize . M decides A. M: M1 Yes Yes x M2 No Yes
Cor: is not Turing-recognizable.