• Nie Znaleziono Wyników

MASZYNY TURINGA I FUNKCJE REKURENCYJNE 1.1

N/A
N/A
Protected

Academic year: 2021

Share "MASZYNY TURINGA I FUNKCJE REKURENCYJNE 1.1"

Copied!
7
0
0

Pełen tekst

(1)

Obliczenia KK

1. MASZYNY TURINGA I FUNKCJE REKURENCYJNE

1.1. Maszyna Turinga składa si¸e z taśmy (bez końców) i głowicy czytaj¸acej. Symbole, wpisywane w polach taśmy, tworz¸a alfabet zewn¸etrzny S maszyny Turinga. B¸edziemy zakładać, że S = {0, 1}, gdzie 0 odpowiada polu pustemu. Alfabet wewn¸etrzny maszyny Q = {q1, ..., qn, q0} jest zbiorem stanów (oznaczanych literami qi) głowicy czytaj¸acej. Zawsze zakładamy że q1 jest stanem pocz¸atkowym, a q0 jest stanem końcowym (STOP).

Każdy krok głowicy składa si¸e z nast¸epuj¸acych działań (w zależności od symbolu s w polu i od stanu q głowicy): (1) wpisywanie (lub niewpisywanie) symbolu ze zbioru S w polu, na którym głowica si¸e znajduje; (2) przesuni¸ecie (lub nieprzesuni¸ecie) o jedno pole w prawo lub w lewo; (3) zmiana stanu.

Schematycznie opis kroku oznaczamy przez:

sq → s0Rq0, gdzie R ∈ {N, P, L},

i nazywamy poleceniem maszyny Turinga. Niepusty zbiór poleceń nazywamy programem maszyny Turinga.

1.2. Zadanie. Znaleźć programy realizuj¸ace nast¸epuj¸ace przekształcenia taśmy.

A : 00

q1

x

z}|{1...100 → 00

x+1

z }| { 1...11

q0

0,

B : 000000000

q1

x

z}|{1...10...0

y

z}|{1...10 → 00

q0

x

z}|{1...10

y

z}|{1...100, C : 00

q1

100 → 00101

q0

00, D : 00000010...0

q1

0000 → 01

q0

0...0, D0 : 010...01...1

q1

00 → 01

q0

0...01...100,

x

(2)

F : 0 ∗

q1

1 → 0 ∗

q0

0, J : 00000000

q1

10...01...10 → 010...01...1

q0

0, H : 00

q1

10...01 → 011...1

q0

01,

I : 000000

q1

y1

z}|{1...10

y2

z}|{1...10...0

ym

z}|{1...10 → 00...0

ym

z }| { 1...1

q0

0,

K : 00

q1

x

z}|{1...10 → 00

q0

x

z}|{1...10

x

z}|{1...10.

Funkcja f (x1, ..., xn) ze zbioru n-elementowych ci¸agów liczb naturalnych ωn (przez ω lub N oznaczamy zbiór liczb naturalnych) w zbiór ω nazywa si¸e funkcj¸a obliczaln¸a, jesli istnieje program maszyny Turinga taki, że głowica zaczynaj¸ac wykonanie programu w sytuacji

0000000

q1

l1

z}|{1...10

l2

z}|{1...10...0

ln

z}|{1...1000000000000000000000 kończy wykonanie w sytuacji

000000000000000

qo

f (l1,...,ln)

z}|{1...1 000000000000000000000000000000000000000

1.3. Zadanie. Znaleźć programy obliczaj¸ace nast¸epuj¸ace funkcje:

s(x): y = x + 1, O(x): y = 0;

I23(x1, x2, x3): y = x2;

y = 1 : x ∈ {0, 2, ...}

0 : x ∈ {1, 3, ...} .

(3)

1.4. Funkcje rekurencyjne. Na zbiorze wszystkich funkcji cz¸eściowych określonych na ω wprowadzamy nast¸epuj¸ace operatory.

Operator złożenia g = S(fm, f1n, ..., fmn) jest określony przez równość g(x1, ..., xn) = f (f1(x1, ..., xn), ..., fm(x1, ..., xn)),

gdzie Dom(g) składa si¸e z takich ci¸agów l1, ..., ln, że wartości kj = fj(l1, ..., ln) s¸a określone i f jest określona na k1, ..., km.

Operator rekursji pierwotnej gn+1 = P R(fn+2, hn) jest określony przez:

g(x1, ..., xn, 0) = h(x1, ..., xn), ...

g(x1, ..., xn, i + 1) = f (x1, ..., xn, i, g(x1, ..., xn, i)), ...,

gdzie Dom(g) składa si¸e z takich ci¸agów l1, ..., ln, l, że wartości k0 = h(l1, ..., ln) i kj = f (l1, ..., ln, j − 1, kj−1), 1 ≤ j ≤ l, s¸a określone.

µ-Operator gn = µ(fn+1) jest określony przez:

g(x1, ..., xn) = min{y : f (x1, ..., xn, y) = 0},

gdzie Dom(g) składa si¸e z takich ci¸agów l1, ..., ln, że wartości kj = f (l1, ..., ln, j), 0 ≤ j, s¸a określone do pewnego j spełniaj¸acego kj = 0.

Funkcja f jest rekurencyjna jeśli jest zbudowana z funkcji O(x), s(x), Imn(x1, ..., xn) = xm, 1 ≤ m ≤ n ∈ ω, przez skończon¸a ilość stosowań opera- torów S, P R i µ.

1.5. Zadanie. Pokazać, że nast¸epuj¸ace funkcje s¸a rekurencyjne:

x1+ x2, x1· x2, 2x, [x/2];

sg(x) = 0 : x = 0 1 : x 6= 0 ; sg(x) = 1 : x = 0

0 : x 6= 0 ; x ˙−y =

 0 : x < y .

(4)

1.7. Teza Churcha. Każda funkcja obliczalna intuicyjnie jest funkcj¸a rekurencyjn¸a.

(5)

Obliczenia KK Lista dodatkowa:

FUNKCJE REKURENCYJNE I NIEROZSTRZYGALNOŚĆ 1.8. Operatory Σ i Π.

Lemat. Niech f (x1, ..., xn+1) b¸edzie funkcj¸a rekurencyjn¸a.

Wtedy funkcje

g1(x1, ..., xn+1) = Σxi=0n+1f (x1, ..., xn, i) i

g2(x1, ..., xn+1) = Πxi=0n+1f (x1, ..., xn, i) s¸a rekurencyjne.

Wniosek. Nast¸epuj¸ace funkcje s¸a rekurencyjne1 : [x/y] (zakładamy, że [x/0] = x),

[x1/n],

rest(x, y) = x − [x/y] · y, q(x) = x − [x1/2]2,

div(x, y) = ¯sg(rest(x, y)) .

1.9. Zadanie. Pokazać, że nast¸epuj¸ace funkcje s¸a rekurencyjne:

τ (x) = ilość dzielników liczby x;

P r(x) =  1 : x jest liczb¸a pierwsz¸a 0 : x nie jest liczb¸a pierwsz¸a ; π(x) = ilość liczb pierwszych ≤ x;

p(x) = liczba pierwsza z numerem x;

1.10. Zadanie. Funkcja

g(x1, ..., xn) =





h0(x1, ..., xn), jeśli f0(x1, ..., xn) = 0 h1(x1, ..., xn), jeśli f1(x1, ..., xn) = 0 ..., jeśli ...

hs(x1, ..., xn), jeśli fs(x1, ..., xn) = 0

jest rekurencyjna, gdzie h1, ..., hs, f1, ..., fs s¸a rekurencyjne i żadne fi i fj nie

(6)

c(x, y) = (x + y)(x + y + 1)/2 + x;

n(z) = µm[z < (m + 1)(m + 2)/2];

l(z) = z − n(z)(n(z) + 1)/2;

r(z) = n(z) − l(z).

Fakt. l(c(x, y)) = x, r(c(x, y)) = y i c(l(z), r(z)) = z.

Niech

c2(x, y) = c(x, y); c3(x, y, z) = c2(c(x, y), z);...

cn(x1, x2, ..., xn) = cn−1(c(x1, x2), x3, ..., xn);...

Lemat. Wzór A(x1, ..., xn+1) = c(cn+1(x1, ..., xn+1), n) definiuje 1-1- numeracj¸e ci¸agów skończonych liczb naturalnych,

przy tym funkcja znalezienia i-go elementu ci¸agu o numerze x też jest rekuren- cyjna (oznaczamy przez τi(x)).

1.12. Funkcja uniwersalna. Niech φ(x, y) b¸edzie cz¸eściow¸a funkcj¸a rekurencyjn¸a tak¸a, że dla każdej cz¸eściowej rekurencyjnej funkcji ψ(y) istnieje liczba k (nazywana numerem funkcji ψ) taka że φ(k, y) ≡ ψ(y).

Niech H = {x : φ(x, x) jest określona }.

Fakt. Istnieje funkcja rekurencyjna (wsz¸edzie określona) gH taka, że H = Rng(gH) (= gH(ω)).

Dowód. Niech k0 ∈ H. Dla liczby t sprawdzamy, czy program maszyny Turinga odpowiadaj¸acy funkcji φ(l(t), y) przyjmie stan q0 w ci¸agu t kroków dla y = l(t). Jeśli TAK, to niech g(t) = l(t); jeśli NIE, to niech g(t) = k0.  1.13. Zbiory rekurencyjnie przeliczalne. Przeciwdziedziny (obrazy, Rng) funkcji rekurencyjnych wsz¸edzie określonych (lub zbiór pusty) nazy- wamy zbiorami rekurencyjnie przeliczalnymi.

Przykład: Zbiór H.

Zbiór A ⊆ ω nazywa si¸e zbiorem rekurencyjnym jeśli funkcja δA(x) = {1,x∈A0,x6∈A jest rekurencyjna i wsz¸edzie określona.

Twierdzenie (Post) Zbiór A jest rekurencyjny wtedy i tylko wtedy gdy A i ω \ A s¸a rekurencyjnie przeliczalne.

1.14. Twierdzenie. Zbiór H nie jest rekurencyjny.

(7)

Dowód. Niech h(x) = µy((y · δH(x)) + (1 − sg(y)) = 0). Wtedy h(x) = {1,δ?,δH(x)=0

H(x)=1. Jesli h jest rekurencyjna, to istnieje k : φ(k, y) ≡ h(y). Jeśli k ∈ H, to δH(k) = 1 i h(k) nie jest określona, tzn. k 6∈ H. Jeśli k 6∈ H, to δH(k) = 0 i h(k) = 1.

Tzn. k ∈ H. Sprzeczność.  1.15. Zadania.

(1) Pokazać, że istnieje cz¸eściowa funkcja rekurencyjna, która nie może być rozszerzona do funkcji rekurencyjnej wsz¸edzie określonej.

(2) Pokazać, że jeśli dziedzina Dom(f ) cz¸eściowej funkcji rekurencyjnej f (x) jest zbiorem rekurencyjnym, to f (x) może być rozszerzona do rekurencyjnej funkcji wsz¸edzie określonej.

(3) Pokazać, że zbiór {x : φ(x, x) = 0} jest rekurencyjnie przeliczalny, ale nie rekurencyjny (φ jest zdefiniowana w p.7.6).

Cytaty

Powiązane dokumenty

Maszyna Turinga składa si¸e z taśmy (bez końców) i głowicy czytaj¸ acej.. Niepusty zbiór poleceń nazywamy programem

● Maszyny Turinga, które zawsze się zatrzymują się na każdym wejściu nazywamy maszynami. rozstrzygającymi lub maszynami z

wejściowych obliczenie maszyny zatrzymuje się w stanie akceptującym to zakładamy, że wynik obliczenia zapisany jest na taśmie.. przeciwnym przypadku, gdy maszyna wykonuje

Zbudować maszynę Turinga o dwustronnie nieskończonej taśmie, która dla wejścia w postaci niepustego łańcucha binarnego o dowolnej długości traktowanego jako liczba

Teza Churcha-Turinga Odmiany modelu Maszyny Turinga Co nale»y wiedzie¢?. Algorytmika -

Możliwy zatem do przyjęcia jest taki maszynowy model umysłu, w którym byłby on wprawdzie maszyną operującą rachunkiem zdań (np. wypowiedziami), lecz maszyna

Jeśli powierzchnia wyznaczona jest przez kształt przewodnika, to sumaryczny efekt całkowania według tak wyznaczonej powierzchni nazywamy strumieniem magnetycznym skojarzonym z

W sta- nie akceptującym aby zaakceptować dane słowo musi być spełniony dodatkowy warunek, aby stos był pusty lub na stosie znajdował się tylko symbol startowy stosu Z..