Zadania - przygotowanie do egzaminu 1. Podaj funkcje przejscia

Transkrypt

Zadania - przygotowanie do egzaminu 1. Podaj funkcje przejscia
Zadania - przygotowanie do egzaminu
1. Podaj funkcje przejscia maszyny Turinga nad alfabetem wejściowym {0, 1}, która zatrzymuje się dla każdego słowa wejściowego w ∈ 1∗ oraz nie zatrzymuje się dla słów
v ∈ 0 · 0∗ , zaś dla pozostałych słów wejściowych zachowuje się dowolnie.
2. Pokazać, że język regularny jest akceptowany przez maszynę Turinga, która wykonuje
tylko ruch w prawo.
3. Podaj maszynę Turinga M, która wylicza konkatenację słów nad alfabetem {a, b}, to
znaczy, startując od konfiguracji q0 w1 #w2 , gdzie w1 , w2 ∈ {a, b}∗ , zatrzymuje się w
konfiguracji qf w1 w2 .
4. Zaprojektuj maszynę akceptującą słowa nad alfabetem {a, b, c}, w których pierwsza
litera nie pojawia się w dalszej części słowa. Podaj funkcje przejscia.
5. Podaj maszynę Turinga M z dwoma taśmami, która akceptuje język:
{wcw | w ∈ (a + b)∗ }.
Ile kroków wykonuje dla słowa wcw długości n?
6. Podaj przykład maszyny Turinga, która startując od konfiguracji q0 w zatrzymuje się
w konfiguracji qf z, gdzie |z| = 2|w|.
7. Podać maszynę Turinga, która rozstrzyga dla dwóch danych liczb naturalnych zapisanych w systemie unarnym, czy jedna jest podzielnikiem drugiej.
8. Maszyna Turinga M niedeterministyczna, dwutasmowa akceptuje język
L = {On : n jest liczbą złożoną}
i działa w następujący sposób:
• rozpoczyna działanie z pierwszą tasmą zawierającą 0n dla n > 2 oraz drugą tasmą
pustą,
•
∗
•
∗∗
na drugiej tasmie generuje niedeterministycznie słowo 0k dla k < n,
maszyna sprawdza, czy zawartosc pierwszej tasmy jest wielokrotnoscią zawartosci drugiej tasmy i przechodzi do stanu akceptującego, jesli warunek jest spełniony
oraz nieakceptujacego w przeciwnym przypadku
Punkt ∗ rozpisać dokładnie podając funkcję przejscia maszyny Turinga.
Punkt ∗∗ rozpisać dokładnie podając funkcję przejscia maszyny Turinga.
Jaka jest złożonosć czasowa maszyny M ? Odpowiedź uzasadnić.
9. Pokazać, że klasa języków rekurencyjnie przeliczalnych (akceptowanych przez maszyny
Turinga) jest zamknięta ze względu na sumę mnogościową, czyli pokazać że jeżeli L1 ,
L2 sa dwoma językami rekurencyjnie przeliczalnymi akceptowanymi odpowiednio przez
maszyny M1 , M2 , to istnieje maszyna Turinga M3 , która akceptuje L(M1 ) ∪ L(M2 ).
10. Pokazać, że klasa języków rekurencyjnych (akceptowanych przez maszyny Turinga,
które zawsze się zatrzymują) jest zamknięta ze względu na sumę mnogościową, uzupełnienie oraz przekrój języków (część wspólną).
11. Jaka jest złożoność czasowa deterministycznej maszyny Turinga M akceptujacej język
L = {an b2n cn : n ≥ 1} przy założeniu, że
• M jest jednotaśmowa,
• M jest dwutaśmowa,
• M ma trzy taśmy.
12. Dana jest maszyna Turinga M działająca w czasie T (n). Podać konstrukcję równoważnej maszyny N (tzn. L(M ) = L(N )) o złożoności czasowej 21 T (n) + n.
13. Podać przykłady dwóch problemów N P -zupełnych (różnych od SAT) i uzasadnić ich
N P - zupełność.
14. Określić złożoność pamięciową deterministycznej maszyny Turinga akceptującej język
nad alfabetem {a, b, c}
L = {an bn cn : n ≥ 1}
15. Jaka jest złożoność pamięciowa maszyn Turinga akceptujacych języki regularne, dla
przypadku maszyn deterministycznych,
16. Podać niedeterministyczną maszynę Turinga:
L = {an b2n c3n : n ≥ 1}
Określić złożoność pamięciową i czasową podanej maszyny.
17. Opisz maszynę Turinga z pamięcią ograniczoną przez log n akceptującą języki:
(a) {wcwv | w, v ∈ {a, b}∗ },
(b) {an bn | n ≥ 1},
18. Podaj metodę numerowania wszystkich maszyn Turinga nad alfabetem wejściowym
{0, 1, 2}.
19. Pokazać, że poniższe problemy dla języków są rozstrzygalne - wskazać odpowiedni
algorytm
2
(a) dla danych dwóch automatów skończonych, deterministycznych A1 , A2 sprawdzać,
czy są równoważne tz. L(A1 ) = L(A2 ),
(b) dla danego automatu skończonego rozstrzygać, czy akceptowany język jest skończony,
(c) dla danej gramatyki bezkontekstowej G, rozstrzygać czy generuje zadane słowo
(powtórzyć algorytm CYK),
(d) dla danej gramatyki bezkontekstowej rozstrzygać, czy język jest skończony.
20. Przyjmujemy następujący porządek wyliczania kolejnych słów nad alfabetem {0, 1}:
λ, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, . . .
czyli słowa są wyliczane wg rosnącej długosci, dla słów tej samej długoci porządek jest
leksykograficzny. Podać ogólny wzór na numer słowa, zależny od parametru n-długosć
słowa, k - numer słowa w porządku leksygograficznym słów długosci n.
21. Uniwersalna maszyna Turinga Mu akceptuje język
Lu = {< M, w >| M akceptuje w}
symulując obliczenie maszyny z zadanym kodem < M > na danym słowie w. Maszyna
Mu posiada trzy taśmy:
• na pierwszej taśmie przechowuje dane wejściowe < M, w >.
• na drugiej taśmie przechowuje aktualną zawartość tasmy M i rozpoczyna obliczenie z zawartością w
• na trzeciej taśmie maszyna Mu przechowuje numer bieżącego stanu maszyny M
(na początku jest to stan początkowy q1 ).
Podać fragment funkcji przejścia maszyny Mu (trzytaśmowej) odpowiedzialny za znalezienie w kodzie maszyny (czyli danych z pierwszej taśmy) instrukcji do zastosowania
dla aktualnej konfiguracji, zapamietanej odpowiednio na taśmie drugiej (zawartosc taśmy symulowanej maszyny) i taśmie trzeciej (jaki jest aktualny stan).
3