Wielotaśmowa maszyna Turinga

Wielotaśmowa maszyna Turinga (ang. multitape Turing machine) jest jak zwykła maszyna Turinga z tą różnicą, że ma wiele taśm. Każda taśma ma własną głowicę do zapisu i odczytu danych. Początkowo dane wejściowe zapisane są na taśmie pierwszej, a pozostałe taśmy są puste[1].

Symulacja wielotaśmowej maszyny Turinga na modelu jednotaśmowym
Symulacja wielotaśmowej maszyny Turinga na modelu jednotaśmowym

W niektórych publikacjach naukowych wielotaśmowa maszyna Turinga nazywana jest także maszyną Turinga z wieloma ciągami i kursorami, gdzie ciągi to innymi słowy taśmy, natomiast kursory to głowice[2].

Każdą wielotaśmową maszynę Turinga działającą w czasie niezależnie od liczby taśm, można zasymulować za pomocą jednotaśmowej maszyny Turinga w czasie [2]. Ponadto żadna z klas złożoności (np. czasu wielomianowego) nie podlega zmianom, a zatem zarówno w modelu jednotaśmowym, jak i wielotaśmowym są one takie same.

Zapis formalny

edytuj

Maszyna Turinga z  -taśmami może być opisana jako   gdzie:

  •   – skończony zbiór stanów,
  •   – skończony zbiór symboli wejściowych,
  •   – skończony zbiór dopuszczalnych symboli,
  •   – stan początkowy,
  •   – symbol pusty, który należy do zbioru dopuszczalnych symboli, ale nie może być symbolem wejściowym,
  •   – zbiór stanów końcowych,
  •   – funkcja częściowa, zwana funkcją przejść, gdzie   jest liczbą taśm,   to przesunięcie w lewo,   przesunięcie w prawo, a   to brak przesunięcia.

Maszyna Turinga z dwoma stosami

edytuj

Maszyna Turinga z dwoma stosami (ang. two-stack Turing machine) – to deterministyczna maszyna Turinga z taśmą wejściową służącą tylko do odczytu, oraz dwiema taśmami pamięci. Jeżeli na którejkolwiek z taśm pamięci głowica przesuwa się w lewo, to na danej taśmie drukowany jest symbol pusty.

Przetwornik ciągów skończonych

edytuj

Specjalnym przypadkiem wielotaśmowej maszyny Turinga jest maszyna posiadająca trzy taśmy: roboczą, wejściową i wyjściową. Na taśmie wejściowej umieszczone jest słowo wejściowe tylko do odczytu, bez możliwości zmiany zawartości komórek. Na taśmie wyjściowej w chwili początkowej umieszczone są wyłącznie symbole puste, a w trakcie wykonywania programu w komórkach zapisywane są pewne symbole wynikające z prowadzonych obliczeń[3].

Zobacz też

edytuj

Przypisy

edytuj
  1. Michael. Sipser, Introduction to the theory of computation, wyd. 2nd ed, Boston: Thomson Course Technology, 2006, ISBN 0-534-95097-3, OCLC 58544333 [dostęp 2018-11-26].
  2. a b Kanarek i inni, Złożoność obliczeniowa, wyd. 2, Warszawa: Wydawnictwa Naukowo-Techniczne, 2007, ISBN 978-83-204-3335-7, OCLC 749799507 [dostęp 2019-01-14].
  3. Bolesław Mikołajczak, Janusz Stokłosa, Złożoność obliczeniowa algorytmów, Instytut Podstaw Informatyki Polskiej Akademii Nauk, 1983 [dostęp 2019-01-12] (pol.).