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ž .
ANO/NE problém, neboli rozhodovací problém
-
U rozhodovacího problému, neboli ANO/NE problému je množina dvouprvková, standardně chápána jako (či ).
-
U takových problémů je přirozenější a kratší definovat žádaný výstup pomocí otázky (týkající se vstupu), na kterou je odpověď buď nebo .
-
Turingův stroj řeší problém právě tehdy, když ke každému vstupu problému stroj vydá problémem předepsaný výstup.
-
Turingův strom řeší problém problém právě tehdy, když ke každému vstupu problému stroj skončí ve stavu , je-li odpověď na otázku problém ano, či ve stavu , je-li odpověď na otázku problému ne.
Příklad rozhodovacího problému
- Problém prvočíselnosti
- Název: Prvočíselnost
- Vstup: Přirozené číslo (zadané např. dekadickým zápisem).
- Otázka: Je prvočíslo?
-
Množinu všech slov , které TS přijímá, značíme . Jazyk nazýváme jazyk částečně rekurzivní TS a říkáme, že TS částečně rozhoduje jazyk .
-
Pokud navíc platí, že TS zamítá každé slovo, které nepatří do , nazýváme jazyk jazyk rekurzivní TS a říkáme, že TS rozhoduje jazyk .
-
Jazyk nazveme jazyk rekurzivní TS, pokud existuje TS , který jej rozhoduje.
-
Jazyk nazveme jazyk částečně rekurzivní TS, pokud existuje TS , který jej částečně rozhoduje.
Navigace
Předchozí: Church-Turingova teze, varianty TS Následující: Vztah rekurzivních a částečně rekurzivních jazyků Celý okruh: 1. Teoretické základy informatiky