220 likes | 326 Views
Theory of Computing. Lecture 20 MAS 714 Hartmut Klauck. Decidability. Definition: A language is decidable if there is a TM that accepts all words in the language and rejects all words not in the language In particular it always halts in finite time
E N D
Theory of Computing Lecture 20 MAS 714 Hartmut Klauck
Decidability • Definition: A language is decidable if there is a TM that accepts all words in the language and rejects all words not in the language • In particular it always halts in finite time • For a Turing machine M the language accepted by M is the set of x on which M accepts (denoted by LM)
Example • U={<M>,x: M accepts x} • Universal Language (inputs acc. by the universal TM) • U is not decidable: HALT· U • Note: decider must be correct and halt on all inputs • Reduction: Map <M>,x to <N>,x • where N is the machine that simulates M, and if M halts, then N accepts (N never rejects) • <M>,x2 HALT, <N>,x2 U
Decidability • The complement of L is the set of strings that is not in L (over the same alphabet) • Observation: L is decidable if and only if C(L) is decidable • simply switch acceptance with rejecting • Corollary: If L is not decidable then C(L) is also not decidable • Example: EMPTY={<M>: LM=;} is not decidable • Note this is not exactly the complement of NEMPTY, but the complement minus a computable set: {x: x is not a TM encoding}
Equivalence • EQ={<M>,<N>: LM =LN} • Theorem: EQ is not decidable • Reduction from EMPTY • Fix some TM N that never accepts • Reduction maps <M> to <M>,<N>
Closure • If L is decidable and S is decidable then • Complement of L is decidable • LÅS is decidable • L[S is decidable • Corollary: • CH={<M>: M halts on no input} is not decidable • CH=C(H)-{x: not encoding a TM}
Rice’s Theorem • A (nontrivial) property P of languages is a subset of all languages • such that there is a language (accepted by a TM) with P and a language (accepted by a TM) without P • Theorem: Let L(P)={<M>: LM has property P},where P is a nontrivial property • Then: L(P) is not decidable • Example: {<M>: fM can be computed in polynomial time} • Note: M might not run in polynomial time • Not an example: {<M>: M runs 100 steps on the empty input}
Proof [Rice] • We assume that ; does not have property P • Otherwise we use the complement of P • Denote by A some TM such that LA has property P • Must exist since P is not trivial • We show that U·LP • Given <M>, x we construct Mx: • Simulate M on x • If M accepts x then simulate A on the input u to Mx • If M does not accept x go into infinite loop • Now: <M>,x2 U) M accepts x )Mx accepts u iff A accepts u)Mx behaves like A and L(Mx) has property P • <M>,x not in U)Mx will not halt)L(Mx) is empty, L(Mx) does not have property P
Nondeterminism • Consider the set of languages that can be accepted by nondeterministic TM that always halt • As before we can see that these can be simulated by deterministic TM that run in exponentially more time • Corollary: Computability by deterministic and nondeterministic TM is the same as long as the TM must halt • What if the NTM does not need to halt?
One-sided decisions • For NP it does not matter if the NTM halts on inputs not in the language, because we have a time upper bound and can stop the machine after that time • If there is no time bound we never know if the machine might still accept • Definition: A language L is recognizable if there is a TM that accepts it (which might never stop on inputs outside of L).
Example • Halting problem HALT • Simply simulate M on x • If M halts on x, accept • Clearly: all <M>,x that are in HALT are accepted, all other <M>,x are not accepted • Theorem: HALT is recognizable • Similar: H={<M>: M accepts some x} is recognizable
Complements • Theorem: • If L and C(L) are recognizable, then L is decidable • Proof: • There are recognizers M and N for L and C(L) • Idea: simulate both in parallel • Simulate M for a few steps, then N, then M again... • One of them stops: can make the decision • x2 L then M accepts and our machine also accepts • x2 C(L) then N accepts and our machine rejects
Complements • Corollary: the following situations are possible: • L and C(L) both decidable • L recognizable but C(L) not recognizable and both not decidable • both L and C(L) not recognizable • Example: HALT is not decidable but recognizable, hence C(HALT) not recognizable
Not recognizable • Theorem: Assume L· S . If L is not recognizable then S is not recognizable • Proof: If S is recognizable, we can recognize L by computing the reduction and then using the recognizer for S • Theorem: C(U) is not recognizable • Proof: Enough to show that U is recognizable, since U is not decidable • How? Simulate M on x.
Not recognizable • Theorem: EQ is not recognizable • Reduction from C(H)={<M>: M halts on no x} • Given <M> find N: N simulates M and accepts if M halts • Map <M> to <N>, <S>, where S does not accept anything • Then: <M>2 C(H) , N accepts nothing , <N>,<S>2 EQ
Not recognizable • Theorem: C(EQ) is not recognizable • Proof: • C(EQ)={<M>,<N>: LMLN } • Reduction from C(U) • N: ignore input, simulate M on x, accept if M accepts • S: accept every input • Map <M>,x to <N>,<S> • If M is in C(U) them M rejects x or never halts. Then N rejects or never halts on every input, then N and S do not accept the same language • If M is not in C(U), then M accepts x, then N accepts everything, then N and S accept the same language
Corollary • There are languages such the neither L not C(L) are recognizable
Enumerable • Definition: L is enumerable, if there is a Turing machine M that writes all strings in L to a special output tape • M has no input and runs forever • Theorem: L is enumerable iff L is recognizable • Proof: • ): Enumerate L, test each output against x, once x is found, accept
Back direction of the proof • Idea: loop over all inputs, and write the accepted ones to the output tape • Problem: TM does not halt • Solution: Dove-Tailing: • Loop over all strings x • Loop over all integers i • Simulate M on x for i steps. • If M accepts, write x to the output tape • Clearly this machine eventually writes all recognized strings to the tape
Other problems? • All problems so far concern Turing machines • Any other undecidable problems? • Example: Arithmetic • Given a sentence in Peano arithmetic, can it be proved from the Peano axiom [is it a theorem]? • Undecidable • Decidable: remove multiplication, still hard for doubly exponential time [Presburger arithmetic]
Hilbert’s 10th problem • A Diophantine equation is p(x1,…,xn)=0,where p is a polynomial with integer coefficients • Question: Are there integer solutions? • Example: an+bn=c n, are there integer solutions for n>2? • There are none, but this slide is too small for the proof… • Theorem [Matiyasevich ’70]: The problem of solving Diophantine Equations is uncomputable
Example: Posts’ correspondence problem • Given two sequences of strings • example: A=[a, ab, bba] and B=[baa, aa, bb] • Can we find a set of indices such that the corresponding strings are the same(concatenated? • Example: 3,2,3,1 • bba ab bba a = bb aa bb baa • Problem is undecidable