Rekurzívně enumerable jazyk
formální jazyk L je řekl, aby byl částečně decidable nebo rekurzívně enumerable nebo Turing-rozeznatelný jestliže tam je algoritmus s vyplývajícím chováním:- Definice 1. Daný řetězec w jako vstup, algoritmické zastávky a výstupy ano jestliže a jediný jestliže w patří k jazyku L. Jestliže w nepatří k jazyku L, algoritmus jeden běží navždy, nebo zastávky a výstupy ne.
Další definice ekvivalentu je to jazyk L je rekurzívně enumerable jestliže to je prázdné nebo jestliže tam je algoritmus, který vyčíslí členové jazyka v následujícím smyslu:
- Definice 2. Algoritmus vezme pozitivní celé číslo, říkat n jako argument, a produkuje jako výstup řetězec v jazyce L. Pro každý řetězec s který je v L tam muset být n tak že algoritmus produkuje řetězec s.
Rovnocennost těchto dvou definic může být viděna takto:
1 - > 2 daný algoritmus shodovat se k první definici pro jazyk L (přijal být non-se vyprázdnit), následující algoritmus vyčíslí L shodovat se ke druhé definici: Nechaný E být algoritmus, který vypočítá všechny navleče a tak ten každý řetězec se objeví nekonečně často ve výčtu. My píšeme E (n) naznačovat řetězec produkovaný algoritmem E na vstupu n. Zahrát na fixovanou strunu t v L (možný protože L non-se vyprázdnit). Následující algoritmus vyčíslí L:
- Dané celé číslo n, algoritmus běhu na vstupu E (n) pro n kroky. Jestliže odpověď je ano, výstup řetězec E (n). Jinak, výstupní řetězec t.
2 - > 1 daný algoritmus shodovat se ke druhé definici pro jazyk L, následující algoritmus odpoví na otázku zda daný řetězec s patří k L ve smyslu pro první definici:
- Pro všechna čísla n, začínat 1, a pokračovat po pořádku, test zda řetězec produkoval algoritmem na vstupu n je se rovnat k s. Když první takový n se nalézá, výstup ano. (jinak, pokračovat ve smyčce)
Některé částečně decidable jazyky mají algoritmus, který vždy se zastaví a odpovědi ano nebo ne správně. Ty jazyky jsou nazývány decidable jazyky nebo rekurzivními jazyky. Některé problémy jsou rekurzívně enumerable ale ne rekurzivní. Jeden příklad je váhavý problém, který je problém:
- Daný program a parametry vstupu, ten program nakonec se zastaví když běh s těmi parametry?
Další příklad je:
- Daný polynomial (v několika proměnných) s celočíselnými koeficienty, je to možné najít hodnoty celého čísla pro proměnné tak že polynomial ocení k nule? (toto je Hilbert má desátý problém, více pod Matiyasevich teorémem.)
- Daný program, uložit parametry a předpověď o zda to nakonec se zastaví, je ta předpověď správná?
Další příklad problému, který není rekurzívně enumerable je toto:
- Daný program a parametry vstupu, bude ten program běžet navždy?
Vlastnosti
Jestliže L a P být dva rekurzívně enumerable jazyky pak následující jazyky jsou rekurzívně enumerable také:
- Kleene hvězda L* L
- concatentation LP L a P
- odbor La pohár;P
- křižovatka La čepice;P