• Nie Znaleziono Wyników

Oto zestaw zadań do wykładu z Teorii Obliczalności, który (mam nadzie- ję) uławi opanowanie materiału. Zadanie 0.1 Napisz program na maszynę RAM obliczający funkcję: 1. f(x) = x mod 2; 2. g(x, y) =

N/A
N/A
Protected

Academic year: 2021

Share "Oto zestaw zadań do wykładu z Teorii Obliczalności, który (mam nadzie- ję) uławi opanowanie materiału. Zadanie 0.1 Napisz program na maszynę RAM obliczający funkcję: 1. f(x) = x mod 2; 2. g(x, y) ="

Copied!
6
0
0

Pełen tekst

(1)

Oto zestaw zadań do wykładu z Teorii Obliczalności, który (mam nadzie- ję) uławi opanowanie materiału.

Zadanie 0.1 Napisz program na maszynę RAM obliczający funkcję:

1. f (x) = x mod 2;

2. g(x, y) =

( 1 x ¬ y 0 x > y

Rozwiązanie Oto program obliczający funkcję f : 0 I(1, 2, 7)

1 S(2) 2 I(1, 2, 5) 3 S(2) 4 goto0 5 S(0)

Opis: W rejstrze 2-gim umieszczane są kolejne liczby naturalne. Jeśli x jest parzyste (test w instrukcji 0), to program zwraca 0, jeśli nieparzyste (test w instrukcji 2), program zwraca 1.

Jeśli w pętli 0-4 umieścimy instrukcję S(3) ( w którym miejscu?), to po zatrzymaniu programu w rejestrze 3-cim będzie wyznaczona częś całkowita z dzielenia przez 2.

Zmodyfikuj ten program tak, aby obliczał resztę z dzielenia x przez dowolną liczbę naturalną y różną od zera.

W zadaniu drugim należy napisać program, który wyznaczy mniejszą z liczb x, y i ustali, czy jest to x, czy y.

0 I(3, 1, 4) 1 I(3, 2, 5) 2 S(3) 3 goto0 4 S(0)

Zadanie 0.2 Wykaż, że jeśli funkcja charakterystyczna cM zbioru M ⊆ N jest obliczalna a funkcje f, g ∈ C1 są totalne, to funkcja:

h(x) =

( f (x) x ∈ M

g(x) x 6∈ M jest (totalna i) obliczalna.

(2)

Rozwiązanie Zauważmy, że definicja h jest klasyczną definicją przez przy- padki, odpowiadającą instrukcji warunkowej: if x ∈ M then f (x) else g(x).

Definicję tę można zapisać matematycznym wzorem h(x) = cM(x)f (x)+(1−

cM(x))g(x). Wszystkie użyte w nim funkcje są obliczalne, więc z twierdzenia o postawianiu mamy dowód, że h jest obliczalna. Przypuśćmy, że f, g nie są totalne np. f nie jest określona dla dowolnego x ∈ N . Wtedy dziedziną funkcji h równa jest dziedzinie g, a podany wzór wymaga znajomości f (x) dla każdego x, więc dziedziną takiej funkcji jest zbiór pusty. Podany dowód nie jest więc poprawny dla funkcji, które nie są totalne. Nie oznacza to , że twierdzenie nie jest prawdziwe dla funkcji, które nie są totalne! Program obliczający h najpierw ustali, czy cM(x) = 1 i zależnie od wartości logicznej tego testu wywoła program obliczający f albo program obliczający g.

Zadanie 0.3 Wykaż, że fukcja f wyznaczająca wykładnik z jakim 2 pojawia się w rozkładzie na czynniki pierwsze liczby x jest obliczalna.

Rozwiązanie Przyjmijmy, że f (x) = 0 dla liczby nieparzystej x. Wtedy wartość f (x) równa się najmniejszej liczbie naturalnej k dla której 2k jest dzielnikiem x, ale 2k+1 nie jest dzielnikiem x. Zakładając, że funkcja g(x, y) = x mod y jest obliczalna wystarczy zastosować operator minimalizacji;

f (x) = µ k (g(x, 2k) = 0 ∧ g(x, 2k+1) 6= 0)

Zadanie 0.4 Wykaż, że funkcja Fibonacciego: f(0)=1,f(1)=1, f(n+2)=f(n)+f(n+1);

jest obliczalna.

Rozwiązanie Zauważmy, że definicja ta nie jest prostą rekursją, w której wartość funkcji na n + 1 zależy tylko od wartości na n. Tym niemniej łatwo jest obliczać f przez prostą iterację; aby ułatwić sobie zadanie zapiszemy ją używając pętli for:

z[0] = 1;

z[2] = 1;

f or i = 2 to z[1] do begin

z[3] := z[0] + z[2];

z[2] := z[0];

z[0] := z[3]end;

Pomysł jest prosty: w rejestrze 0 jest obliczona wartość w kroku ostatnim, a w rejestrze 2 w kroku przedostatnim. Wtedy należy wyznaczyć ich sumę (w

(3)

rejestrze 3) i dokonać odpowiedniej zamiany przed ewentualnym powtórze- niem czynności.

Przykład ma pokazywać, że rekursja jest prostszym sposobem definiowa- nia funkcji obliczalnych niż rekurencja dopuszczana w wielu językach progra- mowania. Rekursja jest raczej iteracją.

Zadanie 0.5 Skonstruuj maszynę Turinga obliczającą funkcję 1. f (x) = x mod 4;

2. g(x) = x div 2;

Rozwiązanie Ponieważ w definicji maszyny Turinga obliczającej funkcję za- kładamy, że wejściem jest zapis binarny bez zbędnych zer liczby x w pierw- szym wypadku wystarczy odszykać dwie ostatnie cyfry zapisu, w drugim usunąć ostatnią cyfrę. Należy to zrobić dbająć o poprawność wyniku (też musi być zpisem binarnym..).

Zadanie 0.6 Wyznacz program o numerze 2002. Jaką funkcję dwuargumen- tową oblicza ten program?

Zadanie 0.7 Wyznacz jakokolwiek numer funkcji f (x) = x mod 3.

Wskazówka Należy napisać dowolny program obliczający funkcję f i wy- znaczyć jego numer.

Zadanie 0.8 Wykaż, że problem φx = φy jest nierozstrzygalny.

Rozwiązanie Formalnie: rozważmy zbiór A tych par liczb naturalny (x, y), że program o numerze x oblicza tę samą funkcję jednoargumentową co pro- gram o numerze y. Chcemy wykazać, że funkcja charakterystyczna tego zbio- ru:

cA(x, y) =

( 1 (x, y) ∈ A 0 (x, y) 6∈ A

nie jest obliczalna. Z wykładu wiemy, że nie jest rozstrzygalny problem

”φx = 0, czyli nie jest obliczalna funkcja charakterystyczna zbioru B tych liczb naturalnych x, które są numerami programów obliczających funkcję jednoargumentową tożsamościowo równą zero. Niech e będzie ustalonym ele- mentem zbioru B. Wobec równości cB(x) = cA(x, e) mamy, że obliczalność fukcji cA pociąga obliczalność funkcji cB. Zatem cA nie jest obliczalna.

(4)

Zadanie 0.9 Wykaż, że istnieje totalna funkcja k ∈ C1 taka, że ∀x∈NWk(x) = {x}.

Zadanie 0.10 Rozstrzygnij, czy podane języki są regularne:

1. L = {0n1m; n 6= m};

2. S = {0p; p jest liczbą pierwszą };

3. język P tych słów w ∈ {0, 1}?, które są postaci uw, gdzie u ∈ L.

Rozwiązanie Ponieważ każde słowo ma prefiks należący do języka L otrzy- mujemy: P = {0, 1}?. Język ten jest z definicji regularny.

Aby zanalizować pozostałe języki posłużymy się twierdzeniem Kleene, które mówi, że język jest regularny wtw gdy jest skończenie akceptowalny.

Wykorzystamy twierdzenie Nerode’a aby pokazać, że L nie jest skończenie akceptowalny. Rozważmy ciąg słów an = 0n, n ∈ N . Wystarczy wykazać, że każde dwa słowa w nim występujące wyznaczają różne klasy abstrakcji relacji ρrL, czyli zbiór ilorazowy {0, 1}?rL wszystkich klas abstrakcji jest nieskoń- czony. Przypomnijmy, że xρrLy wtw gdy ∀wxw ∈ L ⇔ yw ∈ L. Ponieważ dla n 6= m mamy an0m = 0n1m ∈ L i am1m = 0m1m 6∈ L orzymujemy żądaną tezę.

Język S również nie jest skończenie akceptowalny, co wykażemy z zde- finicji! Przypuśćmy, że A =< {0}, Q, F, δ, q0 > jest RS-automatem akcep- tującym S o n stanach. Rozważmy liczbę pierwszą p większą od n. Niech c = q0, q1, . . . , qp będzie ciągiem stanów opisującym działanie A prowadzące do zaakceptowania słowa 0p (czyli qp ∈ F ). Ciąg ten jest długości p + 1 > n, więc dla pewnych i < j, i, j ¬ p mamy qi = qj. Niech u = 0i, v = 0j−i, w = 0p−j. Wtedy 0p = uvw, słowo v jest niepuste i każde słowo uvkw dla każde- go k ∈ N jest akceptowane przez A, bo jeden z ciągów stanów pojawiają- cych się w czasie obliczeń A na takim słowie można uzyskać z c powtarzając wielokrotnie qi, . . . , qj. Wtedy słowo uw ∈ L, weźmy k = |u| + |w|, wtedy

|uvkw| = |u| + k|v| + |w| = k(|v| + 1). Ponieważ k jest liczbą pierwszą, a

|v| + 1 ­ 2 liczba ta jest złożona, co jest sprzeczne z tym, że uvkw ∈ S.

Otrzymujemy zatem, że żaden RS-automat nie akceptuje języka S.

Zadanie 0.11 Niech X-język L będzie skończenie akceptowalny. Zdefiniuj- my przez indukcję ze względu na długość słowa funkcję R : X? 7→ X?:

(5)

R = ; (wa)R = awR dla a ∈ X, w ∈ X?. Łatwo zauważyć, że funkcja ta

”odwraca litery w słowie”. Odbiciem zwierciadlanym języka L nazywamy ję- zyk LR będący obrazem L przez zdefiniowaną funkcję. Wykaż, że język LR jest skończenie akceptowalny.

Rozwiązanie Wykorzystamy twierdzenie Myhill’a wykazując, że dla dowol- nych słów x, y ∈ X? Ly wtw gdy xRρLRyR, co pociąg, że te relacje (ρL, ρLR) mają tyle samo klas abstrakcji. Jeśli więc L jest skończenie akceptowalnyh, to LR również. Zauważmy, że (uw)R = wRuR dla dowolnych słów u, w; przy- pomnijmy, że xρLy wtw gdy z definicji ∀u,w∈X?uxw ∈ L ⇔ uyw ∈ L. Ale uxw ∈ L wtw gdy wRxRuR = (uxw)R ∈ LR. Dla dowolnych u, w zdanie uxw ∈ L ⇔ uyw ∈ L równoważne jest zdaniu wRxRuR = (uxw)R ∈ LR wRyRuR = (uyw)R ∈ LR, co wobec dowolności u, w i równości (uR)R = u kończy dowód.

Zadanie 0.12 Skonstruuj RS-automaty rozpoznające języki:

1. wszystkich słów nad alfabetem {a, b} nie zaczynających się słowem aba;

2. opisany wyrażeniem regularnym (a + ba + bba)?( + b + bb);

3. wszystkich słów nad alfabetem {a, b}, w których ilość wystąpień litery a jest parzysta.

Rozwiązanie, wskazówki W zadaniu pierwszym należy skonstruować de- terministyczny i zupełny RS-automat dla języka wszystkich słów zaczynają- cych się aba i zamienić zbiór stanów końcowych na jego dopełnienie.

W zadaniu drugim należy zauważyć, że do wyrażenia pasują dokładnie te słowa, które nie zawierają słowa bbb.

Zadanie 0.13 Skonstruuj gramatyki bezkontekstowe generujące jeżyki:

1. K = {a2nb3m; n, m ­ 1};

2. L = {anbman+m; n, m ­ 1};

Które z wymienionych języków są prawostronnie liniowe?

Rozwiązanie, wskazówki Przypomnijmy, że język jest generowany przez gramatykę prawostronnie liniową wtw, gdy jest regularny wtw, gdy jest skoń- czenie akceptowalny. Oto gramatyka generująca drugi język: S → aSa|aBa B → ba|bBa. Uzasadnienie jej poprawności opiera się o dwie obserwacje:

(6)

1. B generuje język wszystkich słów postaci bmam dla m ­ 1;

2. słowo w ∈ L wtw, gdy jest postaci vwv, gdzie v = an, n ­ 1 i w ma wyprowadzenie z B.

Cytaty

Powiązane dokumenty

[r]

[r]

jest funk j¡ Lips hitza lokalnie, je»eli speªnia warunek Lips hitza w ka»dym punk ie

Przerabianie zada« z tej listy na ¢wi zenia h jest

Special features, for example landrovers, shot-down planes, bunkers, houses or castles which transform the landscape into a battlefield.. Paintballs

Suppose the pulley is 25f t above ground, the rope is 45f t long, and the worker is walking rapidly away from the vertical line P W at the rate of

[r]

If it shows a red face, the player loses 2 points, if it shows a blue face, the player gains 1 point and if it shows the green face, the player gains 2 points.. Each time he