rozhodovací problémy
Rozhodovací problémy jsou nejjednodušší a nejzákladnější typ výpočetních problémů.
Jejich cílem je odpovědět na otázku:
ANO, nebo NE?
Tedy nevrací hodnotu, strukturu ani slovo — jen informaci, zda vstup splňuje určitou vlastnost.
Jak se rozhodovací problémy formalizují?
Rozhodovací problém popisujeme jako jazyk $L \subseteq \Sigma^*$.
Každé slovo $w \in \Sigma^*$ je možný vstup. Potom:
- pokud $w \in L$, odpověď je ANO
- pokud $w \not \in L$, odpověď je NE
Jazyk je tedy množina všech vstupů, na které má být odpověď ANO.
Proč právě jazyky?
Protože univerzální turingův stroj pracuje se slovy. Když tedy chceme popsat, které vstupy má přijmout, nejpřirozenějším modelem je právě „množina slov“.
Příklady
IsPrime
Vstup: číslo $n$ Otázka: „Je $n$ prvočíslo?“ Jazyk: \(L = \{w \mid w \text{ je kód prvočísla}\}\)
HALT
Vstup: $\langle M, w\rangle$