Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

Like this presentation? Why not share!

- MELJUN CORTES Automata Theory (Auto... by MELJUN CORTES 331 views
- State machines for gesture recognition by Dan Bourke 1250 views
- ANOTHER BRICK OFF THE WALL: DECONST... by Ioannis Stais 779 views
- Component Based Model Driven Develo... by Remedy IT 2047 views
- Component Based Testing Using Finit... by Sanjoy Kumar Das 608 views
- Deterministic Finite Automata by Mohammad jawad khan 9851 views

279 views

Published on

MELJUN CORTES Automata Theory (Automata17)

Published in:
Technology

No Downloads

Total views

279

On SlideShare

0

From Embeds

0

Number of Embeds

2

Shares

0

Downloads

9

Comments

0

Likes

1

No embeds

No notes for slide

- 1. MELJUN P. CORTES, MBA,MPA,BSCS,ACS CSC 3130: Automata theory and formal languages Undecidable Languages MELJUN CORTES
- 2. Are Turing Machines computers? input data instructions (program) computer output data A Turing Machine does not take the program as part of its input. ... but it can!
- 3. The Universal Turing Machine input x program 〈 M〉 U M on input x The universal TM U takes as inputs a program M and a string x and simulates M on x The program M itself is specified as a TM!
- 4. Turing Machines as strings ☐/☐R q0 0/0R 1/1R qacc M qrej • This Turing Machine can be described by the string 〈 M 〉 = ((q0, qacc, qrej), ((q0, q0, ☐/☐R), (q0, qacc, 0/0R), (q0, qrej, 1/1R)))
- 5. The universal Turing Machine 001 U input x ((q0, qacc, qrej), ((q0, q0, ☐/☐R), program 〈 M〉 q0 state U on input ( 〈 M 〉 , x) will simulate M on input x
- 6. Languages about automata • A TM can take another TM (or DFA, CFG) as input ADFA = {( 〈 D 〉 , w): decidDFA that accepts input w} D is a ab le APDA = {( 〈 P 〉 , w): Pdea PDA that accepts w} is cida b le ATM = {( 〈 M 〉 , w): M is a TM that accepts w} Which of these is decidable?
- 7. Languages about automata ATM = {( 〈 M 〉 , w): M is a TM that accepts w} • Idea: Simulate M on input w • Simulation is correct: – If M accepts w, we accept – If M rejects w, we reject – If M loops on w, we loop • This TM recognizes but does not decide ATM
- 8. Recognizing versus deciding The language recognized by a TM is the set of all inputs that make it reach qacc A TM decides language L if it recognizes L and does not loop on any input – This kind of TM is called a decider • The textbook uses different terminology: recognizable = recursively enumerable (r. e.) decidable = recursive
- 9. Undecidability • Turing’s Theorem: The language ATM is undecidable. • Before we prove this, let’s observe one thing: A Turing Machine M can be given its own description 〈 M 〉 as an input!
- 10. Proof of undecidability • Proof by contradiction: Suppose ATM is decidable. Then there is a TM H that decides ATM: accept if M accepts w 〈M〉 H reject if M rejects w 〈 M 〉 or M loops on w or M loops on 〈 M〉 What happens when w = 〈 M 〉 ? 〈M〉 ,w 〈M〉
- 11. Proof of undecidability 〈M〉, 〈M〉 accept if M accepts 〈M〉 reject if M rejects 〈 M 〉 or M loops on 〈M〉 H Let H’ be a TM that does the opposite of H acc H H’ acc rej rej
- 12. Proof of undecidability 〈M〉, 〈M〉 〈M〉, 〈M〉 H H’ accept if M accepts 〈M〉 reject if M rejects 〈 M 〉 or M loops on 〈M〉 if M rejects 〈 M 〉 or M loops on reject 〈M accepts if M 〉 accept 〈M〉
- 13. Proof of undecidability 〈M〉, 〈M〉 H’ if M rejects 〈 M 〉 or M loops on reject 〈M accepts 〈 M 〉 if M 〉 accept Let D be the following TM: 〈M〉 copy 〈M〉, 〈M〉 H’
- 14. Proof of undecidability 〈 M 〉 D if M rejects 〈M〉 reject or M accepts 〈 if M loops on 〈 M〉 M〉 accept What happens when M = D? If D accepts 〈 D 〉 D rejects 〈 D 〉 then so D does not exist! If D rejects 〈 D 〉 D accepts 〈 D 〉 then
- 15. Proof of undecidability: conclusion • Proof by contradiction – We assumed ATM was decidable – Then we had Turing Machines H, H’, D – But D does not exist! • Conclusion The language ATM is undecidable.
- 16. What happened? input w Turing Machine … ε 0 1 00 acc rej rej acc rej acc loop rej M3 rej loop rej rej … … M1 M2 … We can write an infinite table for every pair (M, w)
- 17. What happened? 〈 〈 M1 〉 M2 〉 M3 〉 M4 〉 … 〈 〈 acc loop rej acc rej acc rej acc rej loop rej … M3 loop … … M1 M2 Now let’s look only at those w that describe a TM M
- 18. What happened? 〈 〈 M1 〉 M2 〉 M3 〉 M4 〉 … 〈 〈 acc loop rej acc rej acc rej acc rej rej acc rej … … D … … … M1 M2 If ATM is decidable, then TM D is in the table
- 19. What happened? 〈 〈 M1 〉 M2 〉 M3 〉 M4 〉 … 〈 〈 acc loop rej acc rej acc rej acc rej rej acc rej D … … … M1 M2 D does the opposite of the diagonal entries 〈 M 〉 D accept if M rejects or loops on 〈 M 〉 reject if M accepts 〈M〉
- 20. What happened? … 〈 〈 M1 〉 M2 〉 M3 〉 M4 〉 〈 D 〉 〈 〈 acc loop rej acc rej acc rej acc … acc rej rej acc rej … ? D loop … … M1 M2 We run into trouble when we look at (D, 〈 D 〉 )!
- 21. Unrecognizable languages The language ATM is recognizable but not decidable. • How about languages that are not recognizable? ATM = {( 〈 M 〉 , w): M is a TM that does not accept w} = {( 〈 M 〉 , w): M rejects or loops on input w} The language ATM is not recognizable.
- 22. Unrecognizable languages • General Theorem If L and L are both recognizable, then L is decidable. • We know ATM is recognizable, so if ATM were also, then ATM would be decidable • Impossible by Turing’s Theorem
- 23. Unrecognizable languages If L and L are both recognizable, then L is decidable. • Proof idea w M accept if w ∈ L rej/loop if w ∉ L accept M’ accept if w ∉ L rej/loop if w ∈ L reject w w
- 24. Unrecognizable languages If L and L are both recognizable, then L is decidable. • Proof attempt Problem: If M loops on w, we Let M = TM for L, M’ = TM for L will never get to step 2! On input w, ① Simulate M on input w. If it accepts, accept. ② Simulate M’ on input w. If it accepts, reject.
- 25. Bounded simulation If L and L are both recognizable, then L is decidable. • Proof Let M = TM for L, M’ = TM for L On input w, For k = 0 to infinity Simulate M on input w for k steps. If it accepts, accept. Simulate M’ on input w for k steps. If it accepts, reject.
- 26. Another undecidable language HALTTM = {( 〈 M 〉 , w): M is a TM that halts on input w} HALTTM is an undecidable language • To prove this, we will show that If HALTTM can be decided, so can ATM. … so by Turing’s Theorem it is undecidable.
- 27. Undecidability of halting If HALTTM can be decided, so can ATM. • Suppose H decides HALTTM 〈M〉,w H accept if M halts on w reject if M loops on w • We want to use H to design D for ATM 〈M〉,w ? accept if M accepts w reject if M rejects or loops on w
- 28. Undecidability of halting 〈M〉,w 〈M〉,w acc H rej H accept if M halts on w reject if M loops on w acc simulate M on w rej D accept if M accepts w reject if M rejects or loops on w
- 29. More undecidable problems L1 = { 〈 M 〉 : M is a TM that accepts input ε} L2 = { 〈 M 〉 : M is a TM that accepts some input} L3 = { 〈 M 〉 : M is a TM that accepts all inputs} L4 = { 〈 M, M’ 〉 : M and M’ accept the same inputs} Which of these are recognizable?
- 30. Gödel’s incompleteness theorem Some mathematical statements are true but not provable. • Proof due to Turing: If every true statement is provable, then ATM can be decided.
- 31. Proof sketch of Gödel’s theorem • Suppose every true statement has a proof • For every TM M and input w, one of the statements M accepts w or M does not accept w is true, so it must have a proof
- 32. Proof sketch of Gödel’s theorem • Consider this algorithm for ATM: On input 〈 M 〉 , w: For k = 0 to infinity For all possible proofs p of length k If p is a proof of “M accepts w”, accept. If p is a proof of “M does not accept w”, reject. One of them is true, so it has a proof p Eventually, the algorithm will find this proof
- 33. Proof sketch of Godel’s theorem • Consider this algorithm for ATM: On input 〈 M 〉 , w: For k = 0 to infinity For all possible proofs p of length k If p is a proof of “M accepts w”, accept. If p is a proof of “M does not accept w”, reject. Recall that TMs can check if a proof p is correct

No public clipboards found for this slide

×
### Save the most important slides with Clipping

Clipping is a handy way to collect and organize the most important slides from a presentation. You can keep your great finds in clipboards organized around topics.

Be the first to comment