Tw (O podstawianiu) Niech f ∈ C k a g1,...,gk ∈ C n. Wte
Transkrypt
Tw (O podstawianiu) Niech f ∈ C k a g1,...,gk ∈ C n. Wte
Tw (O podstawianiu) Niech f ∈ Ck a g1 , . . . , gk ∈ Cn . Wtedy funkcja h(x) ' f (g1 (x), . . . , gk (x)) ∈ Cn . ciej w O(f (n)) krokach. co razem daje O(f (n)) · O(2f (n) ) = O(4f (n) ) kroków. Dowód: Niech f ∈ Ck bedzie ˛ obliczana przez program F , a g1 , . . . , gk ∈ Cn bed ˛ a˛ obliczane przez programy G1 , . . . , Gk odpowiednio. Wtedy funkcja h(x) jest obliczana przez podany program H. Niech m = max{n, k, ρ(F ), ρ(G1), . . . , ρ(Gk)}. T (1, m + 1) ... T (n, m + n) G1 [m + 1, . . . , m + n → m + n + 1] ... Gk [m + 1, . . . , m + n → m + n + k] F [m + n + 1, . . . , m + n + k → 0] Dla k-taśmowej MT M (k 2) istnieje 1-taśmowa MT M, która rozpoznaje ten sam jezyk. ˛ Jeśli M ma złożoność czasowa˛ O(f (n)), to M ma złożoność czasowa˛ O(f (n) ∗ f (n)). Szkic dowodu: Dla k-taśmowej maszyny M jej konfiguracja opisana jest przez zawartość każdej z taśm; czyli ciag ˛ słów vi qwi , i = 1 . . . k zamieniamy na słowo #v1 qw1 #v2 qw2 # . . . vk qwk #. Konstrukcja M polega na zamianie każdej instrukcji M na ciag ˛ instrukcji, które symuluja˛ jej realizacje˛ na opisanym słowie. Każde słowo powstajace ˛ w czasie symulacji obliczeń M na słowie długości n jest długości O(f (n)), a zmiana wymaga po prostu jego przeczytania. Rekursja to sposób zadania kolejnej wartości funkcji poprzez wartości wcześniej obliczone. Tw (O op rekursji) Niech f (x) ∈ Cn i g(x, y, z) ∈ Cn+2 . Wtedy funkcja h(x, y) : N n+1 → N określona układem h(x, 0) ' f (x) h(x, y + 1) ' g(x, y, h(x, y)) jest obliczalna (h ∈ Cn+1 ). Niech β : N → Π bedzie ˛ dowolna˛ numeracja˛ zbioru RAMprogramów (czyli funkcja˛ "na"). Mówimy, że β jest efektywna, jeśli istnieja˛ obliczalne funkcje d : N → N, kod, A : N 2 → N takie, że dla wszelkich x ∈ N i β(x) = hi0, ..., ini mamy: d(x) = n ∀0¬r¬n ir = hkod(x, r), A(x, r)i. Funkcja d określa ilość instrukcji, natomiast kod, A określaja˛ kody oraz adresy komórek, którymi one manipuluja. ˛ I = {0, 1, 2, 3} × N x ∈ N, x = 4a + k Funkcja α : N → I, α(x) = hk, ai Dowód: Niech f (x) ∈ Cn i g(x, y, z) ∈ Cn+2 bed ˛ a˛ objest bijektywn a ˛ numeracj a ˛ zbioru instrukcji. Funkcja: µ(x) = liczane przez programy F i G odpowiednio. Wtedy funkcja hα(a0 ), . . . , α(an )i gdzie τ (a0 , . . . , an ) = x. Wyznaczenie h(x, y) : N n+1 → N jest obliczana przez podany proy+1 przedstawienia x l(x) = µ(y ¬ x)(x < 2 ), c - ciag ˛ dziegram H. Niech ˛ reszt l1 (x) = sg(b(y, x + 1)) - ilość m = max(n + 2, ρ(F ), ρ(G)). Używać bedziemy ˛ rejestrów leń, b - ciag y¬l(x+1) 1, 2, . . . , m + n + 1, m + n + 2, m + n + 3 i oznaczenia ’1’ w rozw. bin. b1 - pozycje kolejnych jedynek, a1 (i + 1, x) = t=m+n b1 (i + 1, x) − b(i, x) − 1 - odpowiednie współczynniki takie, T (1, m + 1) ... i a1 (j,x) T (n + 1, m + n + 1) l1 (x) j=0 że: x = 2 − 1 Należy zauważyć, że: F [1, 2, . . . , n → t + 3] P P P i=0 q : I(t + 2, t + 1, p) G(m + 1, . . . , m + n, t + 2, t + 3 → t + 3] S(t + 2) I(1, 1, q) p : T (t + 3, 0) d(x) = l1 (x), kod(x, r) = rm(4, a1 (r, x)), A(x, r) = qt(4, a1 (r, x)) Tw (O parametryzacji, s-m-n) Dla dowolnych liczb naturalnych 1+m n, m 1 istnieje totalna i obliczalna funkcja sm →N n : N (m+n) Minimalizacja Dla f (x, y) : N n+1 → N połóżmy: g(x) ' µy(f (x, y) = 0) najmniejsze y takie, że f (x, z) jest określona dla wszystkich z ¬ y i f (x, y) = 0; gdy takie y nie istnieje wartość funkcji pozostaje nieokreślona. Tw (O op minimalizacji) Jeśli f ∈ Cn+1 , to g ∈ Cn. Dowód: Załóżmy, że f jest obliczana przez program F . Wtedy podany program G oblicza funkcje˛ g. Niech m = max(n + 1, ρ(F )). T (1, m + 1) ... T (n, m + n) p : F [m + 1, . . . , m + n, m + n + 1 → 1] I(1, m + n + 2, q) S(m + n + 1) I(1, 1, p) q : T (m + n + 1, 0) taka, że ∀e∈N,a∈N m ϕe (n) (a, −) ' ϕ m (−) sn (e,a) Szkic dowodu: Dla prostoty założymy, że n = m = 1 i bedzie˛ my swobodnie używać tych oznaczeń. Niech e, a ∈ N . Przez Πe,a oznaczymy program powstały z Pe poprzez modyfikacje: 1. na po czatku ˛ umieszczamy ciag ˛ instrukcji T(1,2), Z(1), S(1), . . . , S(1); przy czy instrukcja S(1) wystepuje ˛ a-razy; 2. potem nastepuje ˛ tekst programu Pe ze zmodyfikowanymi instrukcjami warunkowy(2) (1) (y) e,a mi. Z konstrukcji wynika, że ϕe (a, y) ' ϕΠ Pozostaje zauważyć, że µ(m) = Πe,a ↔ s1 1 (e, a) = m. Funkcja˛ uniwersalna˛ d la n-argumentowych funkcji RAM(n) obliczalnych nazywamy funkcje˛ ΨU : N n+1 → N taka, ˛ że: (n) ∀e∈N,x∈N n ΨU (e, x) ' ϕ( n)e (x) Każda funkcja uniwersalna jest cz˛eściowo-rekurencyjna, a wiec ˛ i RAM-obliczalna. Dowód: Niech e bedzie ˛ dowolna˛ liczba˛ naturalna. ˛ Niech Zbiór R funkcji cz˛eściowo rekurencyjnych definiujemy jako naj- σn (e, x, k) bedzie ˛ kodem konfiguracji uzyskanej po k krokach mniejszy zbiór funkcji rzutowania, który zawiera funkcje bazwoe: obliczeń Pe na x. Przyjmować bedziemy, ˛ że konfiguracja˛ nastep˛ zerowa, ˛ nastepnika i rzuty oraz jest domkniety ˛ na operatory pod- na˛ po końcowej jest ona sama. Wtedy (σn (e, x, k))0 jest zastawiania, rekursji i minimalizacji wartościa˛ licznika rozkazów, natomiast (σn (e, x, k))1 zawartościa˛ rejestru zerowego po k krokach obliczeń Pe . Inaczej σn Zbiór PR oznacz zbiór funkcji pr. rek., które powstaja˛ z funkcji ba- zadana jest poprzez schemat rekursji: f (x) = cd(codn (x)) g(x, y, z) = C(z) <d(e)+1 δ̄(i(z) , z) + C(z) d(e)+1 z zowych przy uzyciu operatorów podstawiania i rekursji. 0 0 0 Wtedy funkcje: cn (e, x, k) = (σn (e, x, k))1 , jn (e, x, k) = (σn (e, x, k))0 sa˛ prymitywnie rekurencyjne i opisuja˛ zawartość MT M = hS, Q, P, q0 , F i jest det, jeśli dla każdej pary rejestru 0 (c) i licznik rozkazów (j) po k krokach obliczeń P . Wtee (stan,litera) (konfiguracji zawierajacej ˛ takie podsłowo) istnieje co (n) dy ΨU (e, x) ' cn (e, x, µk(jn (e, x, k) d(e) + 1)) co najwyżej jedna instrukcja, która˛ można do niej zastosować. oznacza, że funkcja uniwersalna jest cz˛eściowo rekurencyjna. Niech M bedzie ˛ deterministyczna˛ MT zatrzymujac ˛ a˛ sie˛ na wszystkich wejściach. Czasem działania lub złożonościa˛ czasowa˛ M jest funkcja f : N → N , gdzie f (n) jest maksymalna˛ ilościa˛ kroków obliczeń M wykonywanych przez nia˛ na każdym wejściu długości n. Mówimy też, że M działa w czasie f (n). Niech M bedzie ˛ MT zatrzymujac ˛ a˛ sie˛ na wszystkich wejściach. Czasem działania lub złożonościa˛ czasowa˛ M jest funkcja f : N → N , gdzie f (n) jest maksymalna˛ ilościa˛ kroków obliczeń M wykonywanych przez nia˛ na każdym wejściu długości n w czasie każdego przebiegu obliczeń. Mówimy też, że M działa w czasie f (n). Dla nd MT M o czasowej złożoności obliczeniowej f (n) takiej, że n ¬ f (n) dla wszystkich n ∈ N , istnieje det trójtaśmowa MT M1 rozpoznajaca ˛ ten sam jezyk, ˛ której czasowa złożoność obliczeniowa jest rz˛edu: O(cf (n) ), dla pewnej liczby c > 1. Idea konstrukcji maszyny M1. Załóżmy, że M w każdej konfiguracji może wykonać co najwyżej dwie instrukcje. Ponieważ jest nd w pewnej konfiguracji ma faktycznie wybór pomiedzy ˛ dwiema instrukcjami. Dokonajmy ponumerowania liczbami 0 lub 1 tych instrukcji dla takich konfiguracji. Każdy ciag ˛ obliczeń M na wejściu długości n można wtedy opisać ciagiem ˛ zer i jedynek długości co na jwyżej f (n), odpowiadajacym ˛ wyborowi kolejnej instrukcji. Ciagów ˛ takich jest 2f (n)+1 − 1. Maszyne˛ det M1 konstruuje sie˛ tak, aby dla wejścia długości n umieszczanego na pierwszej taśmie wyznaczała na drugiej taśmie kolejny ciag ˛ w porzadku ˛ leks, a nastepnie ˛ realizowała obliczenia M opisane przez wygenerowany ciag ˛ na taśmie trzeciej. Każde z O(2f (n) ) obliczeń wymaga: 1. kopiowania wejścia z taśmy 1. na 3. (ponieważ n ¬ O(f (n)) kroków; 2. generowania nastepnego ˛ ciagu ˛ w O(f (n)) krokach; 3. wykonania obliczeń na taśmie trze- Tw (Rice) Niech B bedzie ˛ właściwym i niepustym podzbiorem C1 . Wtedy problem "ϕx ∈ B" jest nierozstrzygalny; bardziej formalnie zbiór B = {x ∈ N ; ϕx ∈ B} nie jest rekurencyjny. Ponieważ zbiory N i ∅ sa˛ rekurencyjne otrzymujemy inne sformułowanie tw: Problem "ϕx ∈ B" jest rozstrzygalny wtw, gdy B = ∅ lub B = C1 . Dowód: Niech f∅ bedzie ˛ funkcja˛ o pustej dziedzine. Funkcja ta jest obliczalna. Załóżmy, że funkcja ta nie należy do B. Jeśli tak jest, to prowadzimy dowód dla zbioru C1 \B i korzystamy z faktu, że problem "ϕx ∈ B" jest rozstrzygalny wtw gdy problem "ϕx ∈ / B" jest rozstrzygalny. Niech f ∈ B bedzie ˛ ustalona˛ funkcja. ˛ Rozważmy obliczalna˛ funkf (y) x ∈ Wx cje: ˛ g(x, y) = Możemy do niej zasto∞ x∈ / Wx sować tw. o parametryzacji, niech k bedzie ˛ totalna i obliczalna: ∀x,y∈N g(x, y) = ϕk(x) (y) Zależnie of tego czy x ∈ Wx mamy: ∀x∈N x ∈ Wx ↔ ϕk (x) ∈ B Wiec ˛ "ϕ(x) ∈ B" nie może być rozstrzygalny. Tw (R-S) Niech A ∈ C1 bedzie ˛ takim zbiorem funkcji RAMobliczalnych, że zbiór indeksów A = {x ∈ N : ϕx ∈ A} jest r. p. Wtedy dla dowolnej funkcji f ∈ C1 nastepuj ˛ ace ˛ warunki sa˛ równoważne: 1. f ∈ A 2. Istnieje skończona funkcja θ ⊆ f taka, że θ ⊆ A. Dowód: (1) pociaga ˛ (2): nie wprost. Niech f ∈ A bedzie ˛ taka˛ funkcja, ˛ że żadna skończona funkcja θ ⊆ f nie należy do A. Niech P = Pe bedzie ˛ programem obliczajacym ˛ ccK , K = x ∈ N ; x ∈ Wx . Rozważmy obliczalna˛ funkcje: ˛ f (t) ¬H(e, z, t) g(z, t) = Zastosujmy tw o para∞ H(e, z, t) metryzacji, s ∈ C1 , totalna, obliczalna i taka, że: g(z, t) = ϕs(z) (t) Z określenia ϕs(z) ⊆ f , ale z ∈ K pociaga, ˛ że ϕs(z) jest skończona, wiec ˛ ∈ / A podobnie, gdy z ∈ / K Otrzymujemy: ∀z ∈ z ∈ / K ↔ s(z) ∈ A, wiec ˛ pierwszy nie jest r.e. co daje sprzecznośc z założeniem. (2) pociaga ˛ (1): nie wprost. 1 Przypuśćmy, że istnieje obliczalna funkcja f ∈ / A dla której θ ∈ A dla pewnej skończonej funkcji θ ⊆ f . Postapimy ˛ podobnie. Niech f (t) t ∈ Domθz ∈ K g(z, t) = Najpierw pokażemy, ∞ w.p.p. że g obliczalna. Domθ jest skończony, wiec ˛ rekurencyjny. Wtedy zbiór B = {(t, z)t ∈ Domθ ∈ K} jest r.e. Na koniec zauważmy: g(z, t) = f (t) · ccB (t, z). Zastosujmy s-m-n tw. s totalna, obliczalna i taka, że: g(z, t) = ϕs(z) (t) dla wszystkich z, t. Wtedy w zależności od tego czy z ∈ / K ponownie otrzymujemy: ∀z ∈ z ∈ / K ↔ s(z) ∈ A.