Pojem algoritmus

  • Návod, postup, či posloupnost elementárních kroků, které je možné provádět mechanicky a jednotlivé kroky jsou konečné. Nemá přesnou matematickou definici.
  • Algoritmus můžeme formalizovat pomocí TS.

Definice problém

  • Problém je určen trojicí , kde je množina (přípustných) vstupů, je množina výstupů a je funkce přiřazující každému vstupu odpovídající výstup
  • Algoritmus řeší problém zadaný trojicí spolu s dohodnutým kódováním vstupů a výstupů (tj. prvků množin a ), jestliže je schopen přijmout (přečíst) kód jakéhokoli vstupu z množiny a vydat k němu po konečném počtu kroků kód výstupu z množiny , pro nějž .

Church-Turingova teze

Church-Turingova teze

  • Algoritmus = Turingův stroj
  • Ke každému algoritmu je možné zkonstruovat s ním ekvivalentní Turingův stroj (s rozumným kódováním vstupů a výstupů řetězce v určité abecedě). Ekvivalencí zde rozumíme podmínku, že algoritmus i Turingův stroj vydají pro tytéž vstupy tytéž výstupy.

Varianty Turingových strojů

  1. Oboustranně nekonečná páska
  2. Jednostranně nekonečná páska
  3. Vícepáskový turingův stroj

Jednostranně nekonečná páska

  • Je třeba definovat, co se má stát, když se hlava nachází na nejlevějším políčku pásky a má se posunout doleva
  • Dvě nejběžnější možnosti:
    1. Nastane “chybový” stav - výpočet se neúspěšně ukončí
    2. Na levém konci je “zarážka”
      • reprezentována speciálním symbolem
      • tuto zarážku není možné přepsat a není na ni možný pohyb směrem doleva
  • Simulace TS s oboustranně nekonečnou páskou pomocí TS s jednostranně nekonečnou pásku
    • Nepoužije se “levá” strana pásky
  • Simulace TS s jednostranně nekonečnou páskou pomocí TS s oboustranně nekonečnou páskou:
    • Oboustranně nekonečná páska
    • Jednostranně nekonečná páska

Vícepáskové Turingovy stroje

  • Vícepáskovým TS míníme model, který je definován odborně jako TS, ale pásek se samostatně řízenými hlavami.

    • Přechodová funkce bere ohled na symboly čtené hlavami ze všech pásek a určuje pohyb každé hlavy (na její pásce) zvlášť.
  • Každý z pásek má svou vlastní páskovou abecedu, máme páskové abecedy

  • Přechodová funkce je typu

Příklad

  • Simulace více páskového TS pomocí jedno páskového TS
  • Více pásek
  • Jedna páska s jednou hlavou (varianta, kde se posunují značky hlav)
  • Jedna páska s jednou hlavou (varianta, kde se posunují obsahy pásek)

Univerzální TS

  • Stroj, který provádí univerzální algoritmus
  • Na vstup dostane TS (zakódovaný do a ) a slovo, na které má daný stroj aplikovat
  • Dělá to, že simuluje chod libovolného TS na zadané vstupní slovo (provádí jeho výpočet)
  • Jak se to provádí?
    • Pomocí 3-páskového TS. Na první pásce je slovo a na druhé instrukce zadaného TS (obojí v 0 a 1). Třetí páska slouží k zapamatování aktuálního stavu. Simulace začíná hledáním instrukce na druhé pásce, která se má vykonat v počátečním stavu. Takto pokračujeme dále. Po každé iteraci je nutné se na druhé pásce vrátit na začátek. V první pásce se zase posouváme o symbol dopředu.
  • Sám o sobě nemá roli, slouží jen k simulaci dalších TS.

Předchozí: Jazyk přijímaný TS, jazyk rozhodovaný TS Následující: Částečně rekurzivní a rekurzivní jazyky, jazyky a rozhodovací problémy Celý okruh: 1. Teoretické základy informatiky