630 likes | 647 Views
More Undecidable Problems. Rice’s Theorem Post’s Correspondence Problem Some Real Problems. Properties of Languages. Any set of languages is a property of languages. Example : The infiniteness property is the set of infinite languages. Properties of Langauges – (2).
E N D
More Undecidable Problems Rice’s Theorem Post’s Correspondence Problem Some Real Problems
Properties of Languages • Any set of languages is a property of languages. • Example: The infiniteness property is the set of infinite languages.
Properties of Langauges – (2) • As always, languages must be defined by some descriptive device. • The most general device we know is the TM. • Thus, we shall think of a property as a problem about Turing machines. • Let LP be the set of binary TM codes for TM’s M such that L(M) has property P.
Trivial Properties • There are two (trivial ) properties P for which LP is decidable. • The always-false property, which contains no RE languages. • The always-true property, which contains every RE language. • Rice’s Theorem: For every other property P, LP is undecidable.
Plan for Proof of Rice’s Theorem • Lemma needed: recursive languages are closed under complementation. • We need the technique known as reduction, where an algorithm converts instances of one problem to instances of another. • Then, we can prove the theorem.
Closure of Recursive Languages Under Complementation • If L is a language with alphabet Σ*, then the complement of L is Σ* - L. • Denote the complement of L by Lc. • Lemma: If L is recursive, so is Lc. • Proof: Let L = L(M) for a TM M. • Construct M’ for Lc. • M’ has one final state, the new state f.
Proof – Concluded • M’ simulates M. • But if M enters an accepting state, M’ halts without accepting. • If M halts without accepting, M’ instead has a move taking it to state f. • In state f, M’ halts.
Reductions • A reduction from language L to language L’ is an algorithm (TM that always halts) that takes a string w and converts it to a string x, with the property that: x is in L’ if and only if w is in L.
TM’s as Transducers • We have regarded TM’s as acceptors of strings. • But we could just as well visualize TM’s as having an output tape, where a string is written prior to the TM halting. • Such a TM translates its input to its output.
Reductions – (2) • If we reduce L to L’, and L’ is decidable, then the algorithm for L’ + the algorithm of the reduction shows that L is also decidable. • Used in the contrapositive: If we know L is not decidable, then L’ cannot be decidable.
Reductions – Aside • This form of reduction is not the most general. • Example: We “reduced” Ld to Lu, but in doing so we had to complement answers. • More in NP-completeness discussion on Karp vs. Cook reductions.
Proof of Rice’s Theorem • We shall show that for every nontrivial property P of the RE languages, LP is undecidable. • We show how to reduce Lu to LP. • Since we know Lu is undecidable, it follows that LP is also undecidable.
The Reduction • Our reduction algorithm must take M and w and produce a TM M’. • L(M’) has property P if and only if M accepts w. • M’ has two tapes, used for: • Simulates another TM ML on the input to M’. • Simulates M on w. • Note: neither M, ML, nor w is input to M’.
The Reduction – (2) • Assume that does not have property P. • If it does, consider the complement of P, which would also be decidable by the lemma. • Let L be any language with property P, and let ML be a TM that accepts L. • M’ is constructed to work as follows (next slide).
Design of M’ • On the second tape, write w and then simulate M on w. • If M accepts w, then simulate ML on the input x to M’, which appears initially on the first tape. • M’ accepts its input x if and only if ML accepts x.
On accept Simulate ML on input x Accept iff x is in ML Action of M’ if M Accepts w Simulate M on input w x
Design of M’ – (2) • Suppose M accepts w. • Then M’ simulates ML and therefore accepts x if and only if x is in L. • That is, L(M’) = L, L(M’) has property P, and M’ is in LP.
Design of M’ – (3) • Suppose M does not accept w. • Then M’ never starts the simulation of ML, and never accepts its input x. • Thus, L(M’) = , and L(M’) does not have property P. • That is, M’ is not in LP.
Action of M’ if M Does not Accept w Simulate M on input w Never accepts, so nothing else happens and x is not accepted x
Design of M’ – Conclusion • Thus, the algorithm that converts M and w to M’ is a reduction of Lu to LP. • Thus, LP is undecidable.
A real reduction algorithm Hypothetical algorithm for property P M’ M, w This would be an algorithm for Lu, which doesn’t exist Picture of the Reduction Accept iff M accepts w Otherwise halt without accepting
Applications of Rice’s Theorem • We now have any number of undecidable questions about TM’s: • Is L(M) a regular language? • Is L(M) a CFL? • Does L(M) include any palindromes? • Is L(M) empty? • Does L(M) contain more than 1000 strings? • Etc., etc.
Post’s Correspondence Problem • But we’re still stuck with problems about Turing machines only. • Post’s Correspondence Problem (PCP) is an example of a problem that does not mention TM’s in its statement, yet is undecidable. • From PCP, we can prove many other non-TM problems undecidable.
Should be “w sub i sub 1,” etc. PCP Instances • An instance of PCP is a list of pairs of nonempty strings over some alphabet Σ. • Say (w1, x1), (w2, x2), …, (wn, xn). • The answer to this instance of PCP is “yes” if and only if there exists a nonempty sequence of indices i1,…,ik, such that wi1…win = xi1…xin. In text: a pair of lists.
Example: PCP • Let the alphabet be {0, 1}. • Let the PCP instance consist of the two pairs (0, 01) and (100, 001). • We claim there is no solution. • You can’t start with (100, 001), because the first characters don’t match.
0 01 100 001 100 001 Can add the second pair for a match Must start with first pair As many times as we like Example: PCP – (2) Recall: pairs are (0, 01) and (100, 001) But we can never make the first string as long as the second.
Example: PCP – (3) • Suppose we add a third pair, so the instance becomes: 1 = (0, 01); 2 = (100, 001); 3 = (110, 10). • Now 1,3 is a solution; both strings are 0110. • In fact, any sequence of indexes in 12*3 is a solution.
Proving PCP is Undecidable • We’ll introduce the modified PCP (MPCP) problem. • Same as PCP, but the solution must start with the first pair in the list. • We reduce Lu to MPCP. • But first, we’ll reduce MPCP to PCP.
Example: MPCP • The list of pairs (0, 01), (100, 001), (110, 10), as an instance of MPCP, has a solution as we saw. • However, if we reorder the pairs, say (110, 10), (0, 01), (100, 001) there is no solution. • No string 110… can ever equal a string 10… .
Representing PCP or MPCP Instances • Since the alphabet can be arbitrarily large, we need to code symbols. • Say the i-th symbol will be coded by “a” followed by i in binary. • Commas and parentheses can represent themselves.
Representing Instances – (2) • Thus, we have a finite alphabet in which all instances of PCP or MPCP can be represented. • Let LPCP and LMPCP be the languages of coded instances of PCP or MPCP, respectively, that have a solution.
Reducing LMPCP to LPCP • Take an instance of LMPCP and do the following, using new symbols * and $. • For the first string of each pair, add * after every character. • For the second string of each pair, add * before every character. • Add pair ($, *$). • Make another copy of the first pair, with *’s and an extra * prepended to the first string.
Add *’s ($, *$) Ender (*1*1*0*, *1*0) Special pair version of first MPCP choice – only possible start for a PCP solution. Example: LMPCP to LPCP MPCP instance, in order: (110, 10) (0, 01) (100, 001) PCP instance: (1*1*0*, *1*0) (0*, *0*1) (1*0*0*, *0*0*1)
LMPCP to LPCP – (2) • If the MPCP instance has a solution string w, then padding with stars fore and aft, followed by a $ is a solution string for the PCP instance. • Use same sequence of indexes, but special pair to start. • Add ender pair as the last index.
LMPCP to LPCP – (3) • Conversely, the indexes of a PCP solution give us a MPCP solution. • First index must be special pair – replace by first pair. • Remove ender.
Reducing Lu to LMPCP • We use MPCP to simulate the sequence of ID’s that M executes with input w. • If q0w⊦I1⊦I2⊦ … is the sequence of ID’s of M with input w, then any solution to the MPCP instance we can construct will begin with this sequence of ID’s. • # separates ID’s and also serves to represent blanks at the end of an ID.
Reducing Lu to LMPCP – (2) • But until M reaches an accepting state, the string formed by concatenating the second components of the chosen pairs will always be a full ID ahead of the string from the first pair. • If M accepts, we can even out the difference and solve the MPCP instance.
Reducing Lu to LMPCP – (3) • Key assumption: M has a semi-infinite tape; it never moves left from its initial head position. • Alphabet of MPCP instance: state and tape symbols of M (assumed disjoint) plus special symbol # (assumed not a state or tape symbol).
Reducing Lu to LMPCP – (4) • First MPCP pair: (#, #q0w#). • We start out with the second string having the initial ID and a full ID ahead of the first. • (#, #). • We can add ID-enders to both strings. • (X, X) for all tape symbols X of M. • We can copy a tape symbol from one ID to the next.
A B A B Example: Copying Symbols • Suppose we have chosen MPCP pairs to simulate some number of steps of M, and the partial strings from these pairs look like: . . . # . . . #ABqCD#
Reducing Lu to LMPCP – (5) • For every state q of M and tape symbol X, there are pairs: • (qX, Yp) if δ(q, X) = (p, Y, R). • (ZqX, pZY) if δ(q, X) = (p, Y, L) [any Z]. • Also, if X is the blank, # can substitute. • (q#, Yp#) if δ(q, B) = (p, Y, R). • (Zq#, pZY#) if δ(q, X) = (p, Y, L) [any Z].
qC D # Ep D # Example: Copying Symbols – (2) • Continuing the previous example, if δ(q, C) = (p, E, R), then: . . . #AB . . . #ABqCD#AB • If M moves left, we should not have copied B if we wanted a solution.
Reducing Lu to LMPCP – (6) • If M reaches an accepting state f, then f “eats” the neighboring tape symbols, one or two at a time, to enable M to reach an “ID” that is essentially empty. • The MPCP instance has pairs (XfY, f), (fY, f), and (Xf, f) for all tape symbols X and Y. • To even up the strings and solve: (f##, #).
A BfC D E # AfD E # fE # f## A f D E # f E # f # # Example: Cleaning Up After Acceptance … # … #ABfCDE#
CFG’s from PCP • We are going to prove that the ambiguity problem (is a given CFG ambiguous?) is undecidable. • As with PCP instances, CFG instances must be coded to have a finite alphabet. • Let a followed by a binary integer i represent the i-th terminal.
CFG’s from PCP – (2) • Let A followed by a binary integer i represent the i-th variable. • Let A1 be the start symbol. • Symbols ->, comma, and ε represent themselves. • Example: S -> 0S1 | A, A -> c is represented by A1->a1A1a10,A1->A10,A10->a11
CFG’s from PCP – (3) • Consider a PCP instance with k pairs. • i-th pair is (wi, xi). • Assume index symbols a1,…, ak are not in the alphabet of the PCP instance. • The list language for w1,…, wk has a CFG with productions A -> wiAai and A -> wiai for all i = 1, 2,…, k.
List Languages • Similarly, from the second components of each pair, we can construct a list language with productions B -> xiBai and B -> xiai for all i = 1, 2,…, k. • These languages each consist of the concatenation of strings from the first or second components of pairs, followed by the reverse of their indexes.
Example: List Languages • Consider PCP instance (a,ab), (baa,aab), (bba,ba). • Use 1, 2, 3 as the index symbols for these pairs in order. A -> aA1 | baaA2 | bbaA3 | a1 | baa2 | bba3 B -> abB1 | aabB2 | baB3 | ab1 | aab2 | ba3
Reduction of PCP to the Ambiguity Problem • Given a PCP instance, construct grammars for the two list languages, with variables A and B. • Add productions S -> A | B. • The resulting grammar is ambiguous if and only if there is a solution to the PCP instance.