Maszyna Turinga Maszyna Turinga

Transkrypt

Maszyna Turinga 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:
q2
...
qj
...
qm
q1
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. zamienia co drugą jedynkę na 0 licząc od lewej w binarnym ciągu zapisanym na taśmie.
Głowica z lewej.
2. generuje bit parzystości po lewej stronie liczby (sumaryczna liczba jedynek jest
parzysta). Głowica z prawej.
3. mnoży nieujemną liczbę piątkową zapisaną na taśmie przez 2. Głowica z prawej.
4. mnoży nieujemną liczbę czwórkową zapisaną na taśmie przez 2. Głowica z prawej.
5. generuje symetryczny ciąg symboli a i b zapisanych na taśmie po prawej stronie tego
ciągu. Głowica z prawej.
6. generuje symetryczny ciąg symboli 0 i 1 zapisanych na taśmie po lewej stronie tego
ciągu. Głowica z lewej.