Zestaw 7. - Maszyna Turinga

Transkrypt

Zestaw 7. - Maszyna Turinga
Zestaw 7. - Maszyna Turinga1
1. Zaprojektuj maszynę Turinga, która neguje bity znajdujące się na taśmie wejściowej. Niech znakiem pustym będzie “#”. Załóżmy, że głowica maszyny początkowo wskazuje na najmłodszy bit.
2. Przeanalizuj poniższe instrukcje maszyny Turinga wiedząc, że alfabetem wejściowym są symbole
{0, 1}, natomiast znak pusty to “#”. q0 jest stanem początkowym, q3 - końcowym. Co jest
wynikiem działania tej maszyny?
• (0, q0 , 1, q2 , L)
• (1, q0 , 0, q1 , L)
• (#, q0 , #, q0 , L)
• (0, q1 , 1, q2 , L)
• (1, q1 , 0, q1 , L)
• (#, q1 , 1, q3 , L)
• (0, q2 , 0, q2 , L)
• (1, q2 , 1, q2 , L)
• (#, q2 , #, q3 , L)
Czy wszystkie wypisane instrukcje są konieczne, aby algorytm zadziałał prawidłowo?
3. Zaprojektuj maszynę Turinga, która liczbę dziesiętną zwiększy o 1. Załóżmy, że głowica maszyny
początkowo wskazuje na najmniej znaczącą cyfrę.
4. Zaprojektuj maszynę Turinga, która zamieni liczbę binarną zapisaną w systemie U2 na przeciwną.
Załóżmy, że głowica maszyny początkowo wskazuje na najmłodszy bit.
5. Zaprojektuj maszynę Turinga, która do danej na taśmie liczby binarnej dopisze na początku 0
lub 1 tak, by nowa liczba miała parzystą liczbę jedynek. Załóżmy, że głowica maszyny początkowo
wskazuje na najmłodszy bit.
6. Zaprojektuj maszynę Turinga, która dla podanego na taśmie ciągu znaków należących do zbioru
{a, b} zamieni miejscami pierwszy symbol z ostatnim. Niech znakiem pustym będzie “#”.
7. Zaprojektuj maszynę Turinga, która dla podanego na taśmie wejściowej słowa składającego się
z symboli {x, y, z} zbada, czy to słowo jest symetryczne (tak samo brzmi czytane od lewej do
prawej i od prawej do lewej). Maszyna powinna mieć dwa stany końcowe: qA i qR . Jeżeli słowo
jest symetryczne, maszyna kończy działanie na stanie qA , w przeciwnym wypadku na qR . Niech
znakiem pustym będzie “#”. Załóżmy, że głowica maszyny początkowo wskazuje na pierwszą literę
słowa.
Wskazówki:
• taśmę wejściową możemy modyfikować;
1
Ćwiczenia audytoryjne z przedmiotu Podstawy informatyki, Wydział Fizyki i Informatyki Stosowanej AGH,
2016/2017. Elżbieta Wach ([email protected]), http://galaxy.agh.edu.pl/~ewach/pi.html
1
• po odczytaniu pierwszego słowa dobrze jest zapamiętać je dzięki przejściu do odpowiedniego
stanu;
• nadpisujemy pierwsze słowo znakiem pustym i przesuwamy głowicę do końca słowa;
• sprawdzamy ostatnią literę: jeśli jest różna od pierwszej, maszyna kończy działanie na stanie qR ;
• jeśli ostatnia litera jest taka sama jak pierwsza, to nadpisujemy ją znakiem pustym i przesuwamy głowicę z powrotem na początek słowa;
• procedurę powtarzamy, aż wymazane zostaną wszystkie litery (o ile słowo wejściowe było
symetryczne) - wtedy maszyna przechodzi w stan końcowy qA .
2