theory of computing lecture 20 mas 714 hartmut klauck

22
Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

Upload: elijah-logan

Post on 21-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

Theory of Computing

Lecture 20MAS 714

Hartmut Klauck

Page 2: 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)

Page 3: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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

Page 4: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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}

Page 5: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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>

Page 6: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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}

Page 7: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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}

Page 8: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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

Page 9: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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?

Page 10: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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

Page 11: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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

Page 12: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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

Page 13: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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

Page 14: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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.

Page 15: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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

Page 16: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

Not recognizable

• Theorem: C(EQ) is not recognizable• Proof:

– C(EQ)={<M>,<N>: LM LN }– 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

Page 17: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

Corollary

• There are languages such the neither L not C(L) are recognizable

Page 18: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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

Page 19: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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

Page 20: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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]

Page 21: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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

Page 22: Theory of Computing Lecture 20 MAS 714 Hartmut Klauck

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