Maszyna Turinga
Transkrypt
Maszyna Turinga
Maszyna Turinga Maszyna Turinga – automat abstrakcyjny, służący do analizy algorytmów (zdolny do realizacji zapisanego w pewien formalny sposób algorytmu). Składa się ona z: Podzielonej na kratki nieskończenie długiej taśmy, oraz głowicy przesuwającej się nad taśmą. Definicje pojęć: Głowica czyta/pisze symbole alfabetu S na taśmie, przesuwa się wzdłuż taśmy, przyjmuje zawsze jeden z m stanów q1, ..., qm Zbiór symboli S = {si} zbiór symboli, które będą przetwarzane przez maszynę Turinga, nazwany alfabetem S Napis ciąg symboli alfabetu S Stan maszyny określa jednoznacznie stan głowicy qj i odczytany przez nią symbol alfabetu si: Sij = (si,qj) Ruch maszyny opisuje akcję, jaką ma wykonać MT. Ruch maszyny jest reakcją maszyny na stan maszyny Sij. Opisywany jest jako trójka: Rij = (sk, ql, pm), Gdzie: sk – symbol zapisany przez głowicę, ql – nowy stan wewnętrzny głowicy, pm –przesunięcie głowicy {P, N, L}, Każdy ruch Rij jest związany jednoznacznie ze stanem maszyny Sij. Zatem: Rij = T (Sij), gdzie T – to tablica charakterystyczna maszyny Turinga Tablica charakterystyczna: q1 q2 ... qj ... qm s1 s2 ... si ... Zbiór stanów głowicy Rij = (sk, ql, pm) Jeśli będąc w stanie qj głowica odczytała symbol si, to należy zapisać na taśmie symbol sk, zmienić stan wewnętrzy głowicy na ql i dokonać przesunięcia głowicy pm, Twierdzenie: Każdy algorytm może być realizowany przez odpowiednio zaprogramowaną (za pomocą tablicy charakterystycznej) Maszynę Turinga sn Zbiór symboli alfabetu qi s1 s2 s3 s4 ... ZADANIA Zaprojektować tablicę charakterystyczną Maszyny Turinga, która 1. dokonuje inwersji bitów liczby binarnej zapisanej na taśmie. Głowica z prawej. 2. odejmuje jeden od dodatniej liczby binarnej zapisanej na taśmie. Głowica z prawej. 3. zamienia co drugą jedynkę na 0 licząc od lewej w binarnym ciągu zapisanym na taśmie. Głowica z lewej. 4. generuje bit parzystości po lewej stronie liczby (sumaryczna liczba jedynek jest parzysta). Głowica z prawej. 5. eliminuje nieznaczące zera liczb ułamkowych w zapisie trójkowym (zarówno na początku jak i na końcu liczby, przy czym dopuszczalne są zapisy: .01 lub 1.). Głowica z lewej. Zmodyfikować MT tak, by nie było usuwane 0 poprzedzające kropkę z lewej strony i zero następujące bezpośrednio za kropką, np.: 0.01 lub 1.0. 6. dodaje trzy do nieujemnej binarnej liczby parzystej zapisanej na taśmie lub mnoży przez dwa w przypadku liczby nieparzystej. Głowica z prawej. (realizować jako złożenie MT). 7. mnoży nieujemną liczbę trójkową zapisaną na taśmie przez 2. Głowica z prawej. 8. mnoży nieujemną liczbę binarną zapisaną na taśmie przez 3. Głowica z prawej. 9. dokonuje cyklicznego przesunięcia w prawo w binarnym ciągu zapisanym na taśmie. a. Głowica z lewej. b. Głowica z prawej. 10.generuje symetryczny ciąg symboli a i b zapisanych na taśmie po prawej stronie tego ciągu. Głowica z prawej. 11.sprawdza symetrię dwóch binarnych ciągów zapisanych na taśmie i oddzielonych symbolem kropki. Głowica z lewej. (Jeżeli ciągi są symetryczne MT ma przejść do pewnego stanu qi (identyczne), jeżeli różne to do stanu qr.(różne))