Definice Turingova stroje

  • Turingův stroj je definován jako šestice , kde
    • je konečná neprázdná množina stavů,
    • je konečná neprázdná množina vstupních symbolů,
    • je neprázdná množina páskových symbolů, kde a v je (přinejmenším) speciální znak (prázdný znak [blank])
    • je počáteční stav
    • je množina koncových stavů
    • je přechodová funkce
  • Význam instrukce je tento:

    • Tato instrukce je aplikovatelná v konfiguraci, kdy řídící jednotka je ve stavu a hlava čte na pásce symbol
    • Vykonání instrukce znamená následující:
      • řídící jednotka přejde do stavu ,
      • hlava zapíše do aktuálně čtené buňky symbol ,
      • je-li
        • , hlava se posune na sousední buňku pásky doprava,
        • , hlava se posune na sousední buňku pásky doleva,
        • , hlava se nikam neposune
  • Turingův stroj svůj výpočet po dosažení koncového stavu končí

  • Konfigurace Turingova stroje je dána

    • Stavem řídící jednotky
    • obsahem pásky
    • pozicí hlavy

Nedeterministický TS

  • Nedeterministický Turingův stroj (NTS) je dán stejnými složkami jako deterministický Turingův stroj (TS) až na přechodovou funkci.
    • Přechodová funkce
  • Nedeterministický algoritmus “rozhoduje ANO/NE problémy” , jestliže:
    • Pro vstup problému , na nějž je odpověď ANO, alespoň jeden výpočet nedeterministického algoritmu vydá ANO.
    • Pro vstup problému , na nějž je odpověď NE, každý výpočet nedeterministického algoritmu vydá NE.
  • Výpočet NTS tvoří strom výpočtů
  • Činnost nedeterministického TS je možné snadno simulovat pomocí deterministického algoritmu tak, že deterministický algoritmus systematicky simuluje činnost všech jednotlivých větví výpočtu (prochází strom výpočtu do hloubky)

Předchozí: Deterministické bezkontextové jazyky Následující: Jazyk přijímaný TS, jazyk rozhodovaný TS Celý okruh: 1. Teoretické základy informatiky