background image

Maszyna Turinga 

Maszyna Turinga (MT) jest to abstrakcyjne, pojęciowe urządzenie,  a komputer można uznać za jego 
implementację.  Każdy  problem  algorytmizowany  da  się  rozwiązać  przy  pomocy  MT.  Została  ona 
opracowana przez Alana Turinga w 1936 roku. 

Maszyna składa się z: 

 

nieskończonej taśmy podzielonej na pola, 

 

głowicy odczytująco/zapisującej, 

 

 zbioru stanów  

 

alfabetu 

 

algorytmu 
 

Na taśmie jest zapisana informacja przy pomocy skończonego alfabetu. W każdej chwili jedno z pól 
jest  polem  bieżącym,  a  maszyna  przyjmuje  jeden  określony  stan.  W  zależności  od  kombinacji 
aktualnego stanu maszyny i wartości bieżącego pola taśmy, maszyna zmienia stan, zmienia wartość 
bieżącego  pola  na  taśmie,  a  głowica  przemieszcza  się  o  jedno  pole  w  prawą  lub  lewą  stronę,  lub 
pozostaje bez zmian. Maszyna sterowana jest listą takich rozkazów (zawarte w tabeli). Wśród stanów 
wyróżniony  jest  stan  początkowy  (start)  i  końcowy  (koniec),  a  alfabet  zawiera  symbol  początku  i 
końca danych (*). 
 
Przykład – Maszyna Turinga 1: 
Rozważmy następującą MT: 
Maszyna ta dodaje wartość „1” do liczby binarnej zapisanej na taśmie. 
 
Zbiór stanów:  {S, D, P, N, K} 
 

S – start 

 

D – dodawanie 

 

P – przeniesienie 
N – nadmiar 
K – koniec - sukces 
KN – koniec - nadmiar 

Alfabet:  {0, 1, *}  

Rozkazy

←– przesuń głowicę w lewo 

 

 

→  – przesuń głowicę w prawo 

 

 

_  – nic nie rób 

 

Stan początkowy maszyny to S, startowe pole na taśmie, to *  kończąca liczbę dwójkową. 

 

 

 

……. 

……. 

start 

background image

Tabela z listą rozkazów naszej maszyny: 

stan 

 
symbol 

NT  R 

NS  NT  R 

NS  NT  R 

NS  NT  R  NS 

←  D 

 

 

 

←  N 

−  KN 

 

 

 

−  K 

− 

−  KN 

 

 

 

←  P 

←  P 

−  KN 

 
W  tabeli  jest  zapisane  działanie  maszyny  dla  każdego  stanu  i  dla  każdego  symbolu  bieżącego  na 
taśmie. Jest ono wyrażone trzema wartościami: 

 

NT – nowa wartość na taśmie /zastępuje bieżącą 

 

R – rozkaz / związany z ruchem głowicy 

 

NS – nowy stan 

 
Przeanalizujmy działanie maszyny dla liczby binarnej 101 zapisanej na taśmie: 
 
Taśma   

 

 

 

 

 Stan  Nowy stan 

Bieżące pole 

Nowe pole  

 

      S 

        D   

     

 * 

 

 

 

      D 

        P   

 

 

 

 

     P 

        K   

 

 

 

 

     K 

     - 

 

 

 

 

 
 
STOP maszyny:  Wynik na taśmie: 110; stan K - koniec 
 
 
 
-------------------------------------------------------------------------------------------------------------------------------------- 
 
 
 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

background image

 
A co się stanie, jeśli na taśmie zapiszemy liczbę 111: 
 
Taśma   

 

 

 

 

 Stan  Nowy stan 

Bieżące pole 

Nowe pole  

 

     S 

         D   

 

 

 

 

     D 

         P   

 

 

 

 

     P 

       P   

 

 

 

 

    P               P   

 

 

 

 

     P               N   

 

 

 

 

      N         KN   

 

 

 

 
 
Wynik: 1000; stan: KN. 
Stan  ”KN”  oznacza,  że  wystąpił  nadmiar.  W  przypadku  tej  maszyny  wynik  jest  poprawny,  ale  na 
taśmie  zastąpiony  został  symbol  występujący  przed  ”*”  rozpoczynającą  ciąg  bitowy  reprezentujący 
liczbę, symbolem ”*”. 

Głowica przesuwa się od końca liczby w lewą stronę, aż do napotkania wartości ”0”. Napotkane po 
drodze ”1” zamienia na ”0”,a zatrzymuje się po zamianie wartości  ”0” na ”1”. Jeśli wcześniej napotka 
”*” oznaczającą początek liczby, dodaje z przodu ”1”, a przed nią ”*” i przechodzi w stan „nadmiar”. 

 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

…    * 

……. 

background image

Przykład – Maszyna Turinga 2: 
 
Rozważmy następującą MT: 
Maszyna  ta  dodaje  wartość  „1”  do  liczby  binarnej  zapisanej  na  taśmie,  ale  w  przeciwieństwie  do 
poprzedniego przykładu maszyna startuje od  ”*” występującej po lewej stronie liczby. 
 
Zbiór stanów:  {S, D, Po, N, K, KN} 
 

S – start 

 

D – dodawanie 

 

Po – powrót 
N – nadmiar 
K – koniec sukces 
KN – koniec - nadmiar 

Alfabet:  {0, 1, *}  

Rozkazy

←– przesuń głowicę w lewo 

 

 

→  – przesuń głowicę w prawo 

 

 

_  – nic nie rób 

 

Stan początkowy maszyny to S, startowe pole na taśmie, to *  rozpoczynająca liczbę dwójkową. 

 

 

 

Tabela z listą rozkazów naszej maszyny: 

stan 

 
symbol 

Po 

NT  R 

NS  NT  R 

NS  NT  R 

NS 

→  D 

←  Po  1 

− 

KN 

 

 

 

→  D 

− 

 

 

 

→  D 

←  Po 

 
W  tabeli  jest  zapisane  działanie  maszyny  dla  każdego  stanu  i  dla  każdego  symbolu  bieżącego  na 
taśmie. Jest ono wyrażone trzema wartościami: 

 

NT – nowa wartość na taśmie /zastępuje bieżącą 

 

R – rozkaz / związany z ruchem głowicy 

 

NS – nowy stan 

 
Przeanalizujmy działanie maszyny dla liczby binarnej 101 zapisanej na taśmie: 
 

……. 

……. 

start 

background image

Taśma   

 

 

 

 

 Stan  Nowy stan 

Bieżące pole 

Nowe pole  

 

      S 

         D   

     

 * 

 

 

 

      D 

         D   

 

 

 

 

     D 

          D   

 

 

 

 

    D 

         D   

 

 

 

 

     D 

         Po  

 

 

 

 

   Po 

         Po  

 

 

 

 

 

     Po            K   

 

 

 

 

      K 

         -   

 

 

 

 
 
STOP maszyny:  Wynik na taśmie: 110; stan K - koniec 
 
Najpierw  głowica  przesuwa  się  w  prawo,  do  końca  liczby,  a  potem  cofa  się  zamieniając  kolejne 
napotkane ”1” na „0”, aż do napotkania ”0”, które zamienia na ”1”. 
 
-------------------------------------------------------------------------------------------------------------------------------------- 
 
 
 

 

 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

background image

A co się stanie, jeśli na taśmie zapiszemy liczbę 111: 
 
Taśma   

 

 

 

 

 Stan  Nowy stan 

Bieżące pole 

Nowe pole  

 

     S 

         D   

 

 

 

 

     D 

        D   

 

 

 

 

     D 

       D   

 

 

 

 

    D              D   

 

 

 

 

     D               P   

 

 

 

 

    P              P 

 

 

 

 

 

     P               P   

 

 

 

 

    P              P 

 

 

 

 

 

     P              KN   

 

 

 
 

    KN             -   

       

 

 

 
 
Wynik: 1000; stan KN. 
Stan  ”KN”  oznacza,  że  wystąpił  nadmiar.  W  przypadku  tej  maszyny  wynik  jest  poprawny,  ale  na 
taśmie zastąpiony został symbol ”*” rozpoczynający liczbę, symbolem ”1”. 
 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

……. 

…….