1 / 36

Decidability

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

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

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

  3. Decidable problems concerning Regular languages ADFA={<B,w>| B is a DFA that accepts w } • Thm: ADFA is a decidable language

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

  5. ANFA ={<B,w>| B is an NFA that accepts w} • Thm: ANFA is a decidable language.

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

  7. AREX={<R,w>| R is a regular expression that generates string w } • Thm: AREX is a decidable language.

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

  9. EDFA= {<A>| A is a DFA and L(A)=∅ } • Thm: EDFA is a decidable language

  10. 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. “

  11. EQDFA={<A,B>: A and B are DFAs and L(A)=L(B) } • Thm: EQDFA is a decidable language.

  12. 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. “

  13. Decidable problems concerning Context-free languages • ACFG={<G,w>: G is a CFG that generates string w} • Thm: ACFG is a decidable language

  14. 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. “

  15. ECFG={<G>| G is a CFG and L(G)=∅ } • Thm: ECFG is a decidable language.

  16. 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 AU1 …Uk marked 4. If the start symbol is not marked, ACCEPT; else reject. ”

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

  18. 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. “

  19. Halting Problem • ATM={<M,w>| M is a TM and M accepts w } • Thm: ATM is un-decidable .

  20. (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!

  21. Diagonalization Method: (Georg Cantor in 1873) A and B are the same size if there is a 1-1, onto function f : AB f is 1-1 : f(a) ≠ f(b) , if a≠ b f A B

  22. Eg: N={1,2,3,…} E={2,4,6,…} f(n)=2n

  23. Def: A is countable if either it is finite or it has the same size as N .

  24. Eg:

  25. Thm: R is uncountable

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

  27. ATM={<M,w>| M is a TM and M accepts w } • Thm: ATM is un-decidable.

  28. 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. “

  29. (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.

  30. 1. (i, j) is accept if Mi accepts <Mj>

  31. 2. (i, j) is the value of H on input <Mi ,<Mj>>.

  32. 3. Contradiction!

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

  34. Proof: • “⇒” If A is decidable, then both A and are Turing-recognizable. Yes Yes Yes x MA x MA No No No

  35. (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

  36. Cor: is not Turing-recognizable.

More Related