410 likes | 545 Vues
This tutorial delves into the concepts of decidability and undecidability within formal languages and automata theory. It distinguishes between recognizers and deciders for languages, explains Turing-recognizable and decidable languages, and highlights key undecidable problems like ATM and REGULARTM. The session also covers the concept of reduction, showcasing how one problem can be reduced to another to prove undecidability. Through examples and clear definitions, learners will grasp the complexity and implications of these foundational topics in computer science.
E N D
CSC3130Formal Languages andAutomata TheoryTutorial 9Undecidable Problem KN Hung SHB 1026
Agenda • Recap • Decidibility, Undecidibility, Turing-Recognizable … • Reduction • Undecidable Problem
Recap: Recognize • Given a language L and a machine M “MrecognizesL” iff “For any w ∈ L, M halts and goes to an accepting state” • “M is a recognizer for L” • However, for w ∉ L, M may • Reject • Loop forever
Recap: Decide • Given a language L and a machine M “MdecidesL” iff “For any w ∈ L, M halts and accepts AND Otherwise, M rejects” • “M is a decider for L” • Meaning: M can determine whether a given string is in L or not
Recognize VS Decide • Recognize = Halts for accepting input • Decide = Halts for all inputs • Decide => Recognize • Make sure that you can distinguish these two concepts!
Recap: ~able / ~ability • L is Turing-recognizable iffthere is a TM that recognizes L • L is decidable iffthere is a TM that decides L • L is undecidable iffthere is no TM that decides L
Recognizability VS Decidibility Turing-Recognizable Decidable For a language, L, located here,there is no machine that halts for all input string
Some Decidable Problems • The following problems are decidable • ADFA = {<A, w> | A is a DFA that accepts w} • ANFA = {<A, w> | A is a NFA that accepts w} • EDFA= {<A, w> | A is a DFA and L(A) = Ø} • EQDFA = {<A, B> | A, B are DFAs, L(A) = L(B)} • ACFG = {<G, w> | G is a CFG that generates w}
Some Undecidable Problems • The following problems are undecidable • ATM = {<M, w> | M is a TM that accepts w} • To prove undecidability of a problem using reduction, ATM is used very frequently (nearly in all situations) • Used in Example 1 and 2 (Later slides)
Reduction • Occurs in daily life… • Problem A: Travel to Japan • Problem B: Buying a air ticket to Japan • Problem Areduces toProblem B • Meaning: Settling B automatically solves A • Put in logical statement: B is solvable A is solvable
Reduction Buy an air ticket Reduce to Travel to Japan The problem “To buy an air ticket”enclosesThe problem “To travel to Japan”
Reduction B Reduce to A Problem B“encloses”ASo, B is solved => A is solvedThus, B is no harder than A!
Reduction B • A reduces to B • A is reducible to B • If B is solved, then A is solved • i.e., Whenever there is a solution to B,then there is a solution to A • If A cannot be solved, then B cannot be solved (Contrapositive) • Thus, B is no harder than A Reduced to A
Example 1 • Show that REGULARTM is undecidable • REGULARTM = {<M> | M is a TM and L(M) is a regular language}
REGULARTM is undecidable? • Idea (By Contradiction): • Assume there is a TM R that decides REGULARTM • Construct a TM S that decides ATM • Contradiction!
Construction of S • On input <M, w> • where M is a TM and w is a string: • Construct M’ by M and w • Run R on <M’> • Output the answer
Idea of M’ • Strategy: Convert M into another TM M’: M’ recognizes a regular languageiffM accepts w • If M accepts w, let M’ recognizes {0, 1}* • Otherwise, let M’ recognizes {0n1n} • With the above properties • When we run R on <M’>, the output is “accept” iffM accepts w • Why…? [See next few slides…]
Construction of M’ • M’ = “On input x: • If x has the form 0n1n, accept • If x does not have this form, run M on input wand output answer” • {0n1n} is recognized by M’ anyway • How about the other strings?
Construction of M’ • For strings of form 0n1n, M’ accepts • For all the other strings, listing all cases… • If M accepts w • they are all accepted by M’ • If M rejects w • they are all rejected by M’ • If M loops on w • they all loop on M’ • M’ = “On input x: • If x has the form 0n1n, accept • If x does not have this form, run M on input wand output answer”
L(M’)in relation to S • If M accepts w • M’ recognizes {0n1n}∪{0,1}* • {0,1}* is regular • R will accept M’ • If M does not accept w • M’ recognizes {0n1n}∪Ø • {0n1n} is not regular • R will reject M’
REGULARTM is undecidable • Assume “R that decides REGULARTM” exists • We construct S to decide ATM “On input <M, w>, where M is a TM and w is a string: • Construct the following TM M’ M’ = “On input x: • If x has the form 0n1n, accept • If x does not have this form, run M on input w and accept if M accepts w” 2. Run R on input <M’> 3. Output the output of R” • Now, S decides ATM… Contradiction!
Example 2 • L = {<M, w> |M accepts all strings shorter than w} • Show that L is undecidable
L is undecidable? • L = {<M, w> |M accepts all strings shorter than w} • Again, we try to use the undecidability of ATM to achieve a contradiction • Idea (By Contradiction): • Assume there is a TM R that decides L • Construct a TM (by R), S that decides ATM • Contradiction!
Construction of S • On input <M, w> • where M is a TM and w is a string: • Construct M’ by M and w • Run R on <M’, ?> • This time, we have a TM that takes 2 arguments – a TM, and a string – as inputs • Think what string to put as the 2nd input • Output the answer
Idea of M’ • Strategy: Convert M into another TM M’: M’ accepts all strings shorter than ziffM accepts w • We want to achieve the following: • When we run R on <M’, z>, the output is “accept” iffM accepts w
Idea of M’ • Strategy: Convert M into another TM M’: M’ accepts all strings shorter than “1”iffM accepts w • We want to achieve the following: • When we run R on <M’, “1”>, the output is “accept” iffM accepts w
Construction of M’ • M’ = “On input x: • If x =ε Run M on w Output the answer • If x ≠ε Reject
Construction of M’ • For M’ • If M accepts w • the only possibility is input isε ANDM’ accepts ε • If M rejects w, • Case 1: x=ε • M’ rejects • Case 2: x ≠ε • M’ rejects • If M loops on w • Case 1: x=ε • M’ loops • Case 2: x ≠ε • M’ rejects • M’ = “On input x: • If x =ε run M on w and output answer • If x ≠ε reject”
Construction of M’ • For M’ • If M accepts w • M’ accepts only ε • Otherwise • M’ does not accepts any string • including ε • M’ = “On input x: • If x =ε run M on w and output answer • If x ≠ε reject”
L(M’)in relation to S • If M accepts w • L(M’) = {ε} • {ε} is exactly the language that contains all string shorter than “1” • S accepts <M’, “1”> • Otherwise (i.e., M loops on or rejects w) • L(M’) = Ø • S rejects <M’, “1”>
L is undecidable • Assume “R that decides REGULARTM” exists • We construct S to decide ATM “On input <M, w>, where M is a TM and w is a string: • Construct the following TM M’M’ = “On input x: • If x =ε Run M on x Output the answer • If x ≠ε Reject 2. Run R on input <M’, “1”> 3. Output the output of R” • Now, S decides ATM… Contradiction!
Pf: Undecidability by Reduction • Given an undecidable language, L • Assume such a decider TM R, exists R
Given an undecidable language, L Assume such a decider TM R, exists Construct a TM, M’, by M and w M is from input Pf: Undecidability by Reduction R Input Modify M M’ w 37
Given an undecidable language, L Assume such a decider TM R, exists Construct a TM, M’, by M and w M is from input Feed M’ to R Pf: Undecidability by Reduction R Input Modify M M’ w 38
Pf: Undecidability by Reduction “M acc w” then ACC Otherwise,REJ • Given an undecidable language, L • Assume such a decider TM R, exists • Construct a TM, M’, by M and w • M is from input • Feed M’ to R • If you are right • R will accept M’iff M accepts w • R will reject M’iff M does not accept w • Thus, you obtain a decider for ATM • Contradiction!! R Input Modify M M’ w
Q & A • Thanks for coming! • I understand that this topic is confusing… • Should have some questions?