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))