530 likes | 733 Views
15-453. FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY. A TM = { (M,w) | M is a TM that accepts string w }. HALT TM = { (M,w) | M is a TM that halts on string w }. E TM = { M | M is a TM and L(M) = }. REG TM = { M | M is a TM and L(M) is regular}.
E N D
15-453 FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY
ATM = { (M,w) | M is a TM that accepts string w } HALTTM = { (M,w) | M is a TM that halts on string w } ETM = { M | M is a TM and L(M) = } REGTM = { M | M is a TM and L(M) is regular} EQTM = {( M, N) | M, N are TMs and L(M) =L(N)} ALLPDA = { P | P is a PDA and L(P) = Σ* } ALL UNDECIDABLE Use Reductions to Prove Which are SEMI-DECIDABLE?
Let f : Σ* Σ* be a computable function such that w A f(w) B Σ* Σ* B A f f Say: A is mapping reducible to B; Write: A m B Also, A mB, why?
Theorem: If A m B and B is (semi) decidable, then A is (semi) decidable Let M decide B and let f be a reduction from A to B Proof: We build a machine N that decides A as follows: On input w: 1. Compute f(w) 2. Run M on f(w)
ATM = { (M,w) | M is a TM that accepts string w } HALTTM = { (M,w) | M is a TM that halts on string w } CLAIM: ATMmHALTTM CONSTRUCT f : Σ* Σ* f: (M,w) (M’, w) where M’( w) = M(w) if M(w) accepts Loops otherwise So, (M, w ) ATM (M’, w) HALTTM So HALTTMis NOT DECIDABLE, but it is SEMI-DECIDABLE (Why?)
ATM = { (M,w) | M is a TM that accepts string w } ETM = { M | M is a TM and L(M) = } CLAIM: ATMm ETM ATMmETM CONSTRUCT f : Σ* Σ* f: (M,w) Mwwhere Mw (s) = M(w) if s = w Loops otherwise So, M(w) accepts L (Mw) So, (M, w ) ATM Mw ETM So ETM is NOT DECIDABLE, but it is SEMI-DECIDABLE (why?) Is ETM SEMI-DECIDABLE?
ATM = { (M,w) | M is a TM that accepts string w } REGTM = { M | M is a TM and L(M) is regular} CLAIM: ATMmREGTM SoREGTMis UNDECIDABLE CONSTRUCT f : Σ* Σ* f: (M,w) M’wwhere M’w (s) = accept if s = 0n1n M(w) otherwise So, L (M’w) = Σ* if M(w) accepts {0n1n} if not So, (M, w ) ATM M’w REGTM Is REG SEMI-DECIDABLE?
ATM = { (M,w) | M is a TM that accepts string w } REGTM = { M | M is a TM and L(M) is regular} CLAIM: ATMmREGTM So, REG NOTSEMI-DECIDABLE CONSTRUCT f : Σ* Σ* f: (M,w) M”wwhere M”w (s) = accept if s = 0n1n and M(w) accepts Loop otherwise So, L (M’w) = {0n1n}if M(w) accepts if not So, (M, w ) ATM M”w REGTM So, REG NOTSEMI-DECIDABLE
ETM = { M | M is a TM and L(M) = } EQTM = {( M, N) | M, N are TMs and L(M) =L(N)} CLAIM: ETMmEQTM SoEQTMis UNDECIDABLE CONSTRUCT f : Σ* Σ* f: M (M, M ) where M (s) = Loops So, M E TM (M, M ) EQTM NO, since, Is EQTMSEMI-DECIDABLE? ATMmETMmEQTM
ATM = { (M,w) | M is a TM that accepts string w } ALLPDA = { P | P is a PDA and L(P) = Σ* } CLAIM: ATMmALLPDA ATMmALLPDA CONSTRUCT f : Σ* Σ* f: (M,w) Pwwhere Pw (s) = accept iff s is NOT an accepting computation of M(w) So, (M, w ) ATM Pw ALLPDA So, (M, w ) ATM Pw ALLPDA
COMPUTATION HISTORIES An accepting computation history is a sequence of configurations C1,C2,…,Ck, where 1. C1 is the start configuration, 2. Ck is an accepting configuration, 3. Each Ci follows from Ci-1 An rejecting computation history is a sequence of configurations C1,C2,…,Ck, where 1. C1 is the start configuration, 2. Ck is a rejecting configuration, 3. Each Ci follows from Ci-1 M accepts w if and only if there exists an accepting computation history that starts with C1=q0w
P will recognize all strings (read as sequences of configurations) that: 1. Do not start with C1 2. Do not end with an accepting configuration 3. Where some Ci does not properly yield Ci+1 ε,ε → ε ε,ε → ε ε,ε → ε Non-deterministic checks for 1, 2, and 3.
qreject x → x, L 2n 0 → 0, L { 0 | n ≥ 0 } q2 → , R → , L x → x, R x → x, R q0 q1 q3 0 → , R 0 → x, R x → x, R 0 → 0, R → , R 0 → x, R → , R qaccept q4 x → x, R → , R
x → x, L 2n 0 → 0, L { 0 | n ≥ 0 } q2 → , R → , L x → x, R x → x, R q0 q1 q3 0 → , R 0 → x, R x → x, R 0 → 0, R → , R qreject 0 → x, R → , R qaccept q4 x → x, R → , R q00000 q1000 xq300 x0q40 x0xq3 x0q2x xq20x q2x0x q2x0x
P recognizes all strings except: #C1# C2R#C3 #C4R#C5 #C6R#….# Ck If k is odd, putCk on stack and see if Ck+1R follows properly: For example, If =uaqibv and (qi,b) = (qj,c,R), then Ck properly yields Ck+1 Ck+1 = uacqjv
P recognizes all strings except: #C1# C2R#C3 #C4R#C5 #C6R#….# Ck If k is odd, putCk on stack and see if Ck+1R follows properly: If =uaqibv and (qi,b) = (qj,c,L), then Ck properly yields Ck+1 Ck+1 = uqjacv
P recognizes all strings except: #C1# C2R#C3 #C4R#C5 #C6R#….# Ck If k is even, putCkRon stack and see if Ck+1 follows properly.
q00000 q1000 xq300 x0q40 ODD x0xq3 x0q2x xq20x q2x0x : #q00000#000q1#xq300#0q40x #x0xq3# ... #
q00000 q1000 xq300 x0q40 ODD x0xq3 x0q2x xq20x q2x0x : #q00000#000q1#xq300#0q40x #x0xq3# ... #
q00000 q1000 xq300 x0q40 ODD x0xq3 x0q2x xq20x q2x0x : #q00000#000q1#xq300#0q40x #x0xq3# ... #
q00000 q1000 xq300 x0q40 EVEN x0xq3 x0q2x xq20x q2x0x : #q00000#000q1#xq300#0q40x #x0xq3# ... #
q00000 q1000 xq300 x0q40 EVEN x0xq3 x0q2x xq20x q2x0x : #q00000#000q1#xq300#0q40x #x0xq3# ... #
ba ba b b a a bcb ab ab a a a THE PCP GAME
aaa aaa a a a c a aa aa aa a c a a
abc abc ca ca b b a a a ab ab ab ca ca a c a c
abc acc ca ab ca a
GENERAL RULE #1 If every top string is longer than the corresponding bottom one, there can’t be a match
aab acc caa b b c aa b b a a a
GENERAL RULE #2 If there is a domino with the same string on the top and on the bottom, there is a match
POST CORRESPONDENCE PROBLEM Given a collection of dominos, is there a match? PCP = { P | P is a set of dominos with a match } PCP is undecidable!
THE FPCP GAME … is just like the PCP game except that a match has to start with the first domino
aaa aaa a a a c a aa aa aa a c a a FPCP
ba b b a bcb ab a a FPCP
Theorem:FPCP is undecidable Proof: Assume machine C decides FPCP We will show how to use C to decide ATM
aba caa a … bb d c Given (M,w) we will construct a set of dominos P where a match is an accepting computation history for M on w P = C P has a match?
qreject x → x, L 2n 0 → 0, L { 0 | n ≥ 0 } q2 → , R → , L x → x, R x → x, R q0 q1 q3 0 → , R 0 → x, R x → x, R 0 → 0, R → , R 0 → x, R → , R qaccept q4 x → x, R → , R
x → x, L 2n 0 → 0, L { 0 | n ≥ 0 } q2 → , R → , L x → x, R x → x, R q0 q1 q3 0 → , R 0 → x, R x → x, R 0 → 0, R → , R qreject 0 → x, R → , R qaccept q4 x → x, R → , R q00000 q1000 xq300 x0q40 x0xq3 x0q2x xq20x q2x0x q2x0x #q00000#q1000#xq300#x0q40#x0xq3# ... # :
Given (M,w), we will construct an instance P of FPCP in 7 steps
# #q0w1w2…wn# STEP 1 Put into P START
cqa qa pcb bp STEP 2 If (q,a) = (p,b,R) then add STEP 3 for all c Γ If (q,a) = (p,b,L) then add RULES
qreject x → x, L 2n 0 → 0, L { 0 | n ≥ 0 } q2 → , R → , L x → x, R x → x, R q0 q1 q3 0 → , R 0 → x, R x → x, R 0 → 0, R → , R 0 → x, R → , R qaccept q4 x → x, R → , R
x → x, L 2n 0 → 0, L { 0 | n ≥ 0 } q2 → , R # → , L x → x, R x → x, R #q00000# q0 q1 q3 0 → , R 0 → x, R x → x, R 0 → 0, R → , R qreject 0 → x, R → , R xq20 q20 xq3 0q3 q3 0q20 q10 q00 qaccept q4 q1 xq3 q2 q20 q2x q20 q2x0 q200 x → x, R → , R …
a # # # a # STEP 4 for all a Γ add STEP 5 add CONTINUE
qacca aqacc a # # qacc qacc # # a STEP 4 for all a Γ add STEP 5 add STEP 6 add for all a Γ
# # # q00 q00 q10 q10 q1 q1x q0x q0 #q00000# #q00000# #q00000# xq3 xq3 qa q1 q1 xq1 xqr qr q20 xq20 0q3 0q20 q3x q2 q30 q40 q4 q4x q2x0 q1 q20 q20 xq3 q200 0q4 xq3 qr xq4 # 0 x 0 0 0 0 0 # q3x xq3 q3 0q3x xq3x # q2x q2xx # 0 # 0 x 0 0 0 0 q2 # q20x q2x xqacc qacc qacc qaccx 0qacc qacc0 0 0 x x x x
qacc## # STEP 7 add END
# q00 q10 qacc0 qacc 0qacc qacc## qacc q0 #q00# 0qrej 0q1 qrej qacc qacc qacc qacc # # # q1 0 qreject qacc 0 # # q00 # 0 q1 # # # 0 0qacc qacc # #q00# 0q1 # 0 qacc # # # 0 qacc qacc 0 → 0, R → , R q0 q1 qaccept 0→ 0, R → , R
Given (M,w), we can construct an instance of FPCP that has a match if and only if M accepts w
t1 tk t2 t1 t1 t2 tk b1 b2 b1 bk b1 b2 bk Can convert an instance of FPCP into one of PCP: Let u = u1u2…un,define: u = u1 u2 u3 … un u = u1 u2 u3 … un u = u1 u2 u3 … un FPCP: … PCP: …