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