Rozhodnutelnost.

Slides:



Advertisements
Podobné prezentace
Grafové algoritmy.
Advertisements

DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
Přednáška 10 Určitý integrál
Deduktivní soustava výrokové logiky
DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
Fakulta životního prostředí Katedra informatiky a geoinformatiky
J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK Odpřednášeno
Dualita úloh lineárního programování a analýza citlivosti
MARKOVSKÉ ŘETĚZCE.
1 Projektová dynamika II RNDr. Jiří Weinberger, TIMING Praha 28. Března 2008.
Teorie vyčíslitelnosti – věta o rekurzi
Limita funkce. Koncentrace 137Cs v odpadním kanálu jaderné elektrárny se v časovém intervalu (t1, t2) řídí rovnicí c (t) = c0e -(t-t0). V čase t1 dojde.
Aplikace teorie grafů Základní pojmy teorie grafů
Algebra.
Teorie čísel Nekonečno
Základy informatiky přednášky Kódování.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Varianty Turingova stroje Výpočet funkcí pomocí TS
Lineární algebra.
Úvod do Teorie množin.
ARITMETICKÁ POSLOUPNOST I
Informatika pro ekonomy II přednáška 1
Základní číselné množiny
Projekt PŘEDPOVĚĎ POČASÍ. projekt PŘEDPOVĚĎ POČASÍ.
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Projekt PŘEDPOVĚĎ POČASÍ. Předpověď počasí na
Fakulta životního prostředí Katedra informatiky a geoinformatiky
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Statistické metody komprese dat a Shannon-Fanův kód.
REDUKCE DAT Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z:  některé fráze nebo slova se opakují  existuje.
Church-Turingova teze Univerzální Turingův stroj Diagonalizace
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Projekt PŘEDPOVĚĎ POČASÍ. projekt PŘEDPOVĚĎ POČASÍ.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Tento Digitální učební materiál vznikl díky finanční podpoře EU- OP Vzdělávání pro konkurenceschopnost. Není – li uvedeno jinak, je tento materiál zpracován.
Příklady jazyků Příklad 1: G=({S}, {0,1}, P, S)
Gramatiky a jazyky Přednáška z předmětu Řízení v komplexních systémech
Složitost.
Teorie vyčíslitelnosti
Stromy.
Jazyk vývojových diagramů
Predikátová logika.
V matematice existují i seskupení objektů, které nejsou množinami.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Algebra II..
Úvod do předmětu Opakování
Vztah bezkontextových jazyků a ZA
Regulární výrazy Regulární výrazy představují další možnost popisu regulárních jazyků (právě od nich dostaly své jméno). Definice: Množina všech regulárních.
Složitost II TIN063 Ondřej Čepek. 2 Sylabus 1.Výpočetní model – DTS a NTS 2.Časová a prostorová složitost výpočtu 3.Technické pomůcky: lineární komprese,
P-těžké, np-těžké a np-úplné problémy
Turingův stroj.
Výpočetní složitost Odhlédneme-li od realizace algoritmu na konkrétním hardwaru a v konkrétním prostředí informačního systému, lze časovou složitost hodnotit.
Automaty a gramatiky.
Barvení grafů Platónská tělesa
Churchova (Turingova) teze
Mlhavost Fuzzy logika, fuzzy množiny, fuzzy čísla
Konečné automaty a vyhledávání
Jak může Turingův stroj řešit úlohu? Mám rozhodnout, zda posloupnost znaků 0 a 1 obsahuje dvě 0 za sebou.
Algoritmicky nerozhodnutelný problém Věta: Problém přijetí prázdného slova Turingovým strojem je algoritmicky nerozhodnutelný. A TM ={  M,e  | M je TS.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)Turingovy strojeGRA, LS 2012/13, Lekce 12 1 / 21 TURINGOVY.
Doc. Josef Kolář (ČVUT)Prohledávání grafůGRA, LS 2010/11, Lekce 4 1 / 15Doc. Josef Kolář (ČVUT)NP-úplné problémyGRA, LS 2012/13, Lekce 13 1 / 14 NP-ÚPLNÉ.
Churchova (Turingova) teze
Úvod do databázových systémů
Základní pojmy v automatizační technice
Teorie vyčíslitelnosti – věta o rekurzi
Informatika pro ekonomy přednáška 3
Informatika pro ekonomy přednáška 3
Matematická logika 5. přednáška
Gödelova(y) věta(y).
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

Rozhodnutelnost

Opakování z minulé přednášky Co je to Turingův stroj? Jak je Turingův stroj formálně definován? Co je to konfigurace, krok výpočtu a výpočet TS? Jaký je rozdíl mezi jazykem akceptovaným a rozhodovaným TS? Co je to rekursivní a rekursivně spočetný jazyk? Jak lze použít TS pro výpočet hodnot funkcí? Co je to rozhodnutelný, částečně rozhodnutelný a nerozhodnutelný problém? Jaké varianty TS znáte? Jaké jsou uzávěrové vlastnosti rekurzivních a rekurzivně spočetných jazyků?

Otázky pro dnešní přednášku Existují jazyky (problémy), které nejsou rekursivně spočetné (částečně rozhodnutelné)? Existují jazyky (problémy), které jsou rekursivně spočetné (částečně rozhodnutelné), ale nejsou rekursivní (rozhodnutelné)? Pokud ano, které to jsou?

Osnova přednášky Formalizace pojmu algoritmus Problém příslušnosti Churchova teze Další formalizace algoritmu Kódování strojů a slov Univerzální TS Problém příslušnosti Diagonalizace Problém zastavení Redukce Důsledky nerozhodnutelnosti

Churchova teze Algoritmus = postup řešení určitého problému Obecný Konečný Deterministický Srozumitelný Opakovatelný Jak pojem algoritmus formalizovat? Church-Turingova teze: „Každý proces, který lze intuitivně nazvat algoritmem, lze ralizovat pomocí Turingova stroje“ Ztotožnění pojmů „algoritmicky řešitelný“ a „řešitelný pomocí TS“

Další formalizace algoritmu Postovy systémy Minského stroje -rekursivní funkce -kalkul while programy Všechny jsou výpočetně ekvivalentní Turingově stroji

Kódování Turingova stroje Je dán TS M = (Q, , , , , , q0, qA, qR). Předpokládejme seřazení a očíslování prvků množin Q, ,  takové, že Q = {q0, qA, qR, …},  = {, , …} Dále označme s1 = L a s2 = R Pak hodnotu přechodové funkce (qi,xj) = (qk,xl,sm) lze jednoznačně zakódovat binárním řetězcem 0i10j10k10l10m Binárním kódem TS M je pak řetězec 111<KÓD1>11 <KÓD2>11…11 <KÓDr>111 Analogicky lze kódvat i vstupní slova stroje M Kód stroje M označíme <M>, kód slova w označíme <w>

Univerzální Turingův stroj Díky kódování TS a vstupního slova lze sestrojit Univerzální TS U takový, že L(U) = {<M>#<w> | M akceptuje slovo w} Výpočet stroje U: Ověří, že je slovo požadovaného tvaru (pokud ne, tak zamítá) Simuluje krok po kroku výpočet stroje M nad slovem w. U má 3 pásky: kód stroje M, aktuální obsah pásky stroje M, aktuální stav stroje M U akceptuje (zamítá) právě tehdy, když M nad w akceptuje (zamítá). Pokud M nad w cyklí, pak i U nad <M>#<w> cyklí.

Problém příslušnosti pro TS Problém určit, zda stroj M slovo w akceptuje, nebo neakceptuje (tj. zamítne, nebo bude cyklit). Tedy problém určit, zda w  L(M) Definujeme jazyk odpovídající problému: PP = {<M>#<w> | stroj M akceptuje slovo w} Tedy PP = {<M>#<w> | w  L(M)}

Snadno lze ověřit, že PP je částečně rozhodnutelný Rozhodnutelnost PP Snadno lze ověřit, že PP je částečně rozhodnutelný L(U) = PP U není úplný, proto zatím nevíme, zda je PP rozhodnutelný Může existovat i jiná metoda, než je UTS? Odpověď na otázku za chvíli…

Diagonalizace I. Existuje jazyk, který není rekursivně spočetný Každý řetězec nad abecedou {0,1} lze chápat jako kód nějakého TS, resp. jako kód nějakého slova. Pro dané slovo x  {0,1}* označme Mx Turingův stroj s kódem x a wx slovo s kódem x. Všechna slova nad abecedou lze snadno uspořádat a sestrojit dvourozměrnou tabulku

Diagonalizace II. w w0 w1 w00 w01 w10 … M 1 M0 M1 M00 M01 M10

Diagonalizace III. Zkonstruujeme jazyk D nad abecedou {0,1}. Zařadíme do něj právě taková slova wd, která nejsou akceptována strojem Md. Sestrojili jsme jazyk, který není akceptován žádným Turingovým strojem. Kdyby byl akceptován nějakým strojem Mm, pak by nesměl obsahovat slovo wm právě tehdy, když jej obsahuje, a naopak.

Důkaz ne-rozhodnutelnosti PP Sporem. Předpokládejme existenci úplného TS T akceptujícího jazyk PP Pro vstup <M>#<w> stroj T pracuje takto: T zastaví a akceptuje právě tehdy, když M zastaví a akceptuje T zastaví a zamítne právě tehdy, když M zastaví a zamítne, anebo když cyklí na w. Zkonstruujeme stroj N, který pro vstup x pracuje takto: Na pásku zapíše řetěz x#x Simuluje výpočet stroje T na vstupu x#x N akceptuje právě tehdy, když T zamítne vstup x#x N zamítne právě tehdy, když T akceptuje vstup x#x Stroj N nad vstupem <N> pak nechá stroj T simulovat sebe sama a zamítne právě tehdy, když akceptuje, a akceptuje právě tehdy, když tamítne Dostáváme tedy spor, tudíž stroj T nemůže existovat Jazyk PP tedy není rekursivní

Důsledek ne-rozhodnutelnosti PP Jazyk co-PP = {<M>#<w> | M neakceptuje w} není rekursivně spočetný PP je rekursivně spočetný. Kdyby byl i co-PP rekursivně spočetný, pak by byl PP i co-PP rekursivní Víme, že PP není rekursivní, tudíž co-PP nemůže být ani rekurisvně spočetný Neexistuje tedy (ani neúplný) TS akceptující jazyk co-PP

Problém zastavení I. Problém rozhodnout, zda daný TS M nad daným vstupem w zastaví, není rozhodnutelný Jazyk PZ = {<M>#<w> | výpočet M na w je konečný} není rekursivní Důkaz provedeme sporem. Předpokládáme rozhodnutelnost PZ, tedy existenci TS T, L(T) = PZ Ukážeme, že pak by existoval úplný TS akceptující PP Ten však existovat nemůže, tudíž nemůže existovat ani T.

Problém zastavení II. Sestrojíme stroj N akceptující jazyk PP. Stroj bude pracovat takto: Simuluje výpočet stroje T (PZ) na vstupu <M>#<w> Pokud T akceptuje, pak to znamená, že výpočet M nad w je konečný. N může tedy simulovat výpočet M na w Pokud T zamítne, pak to znamená, že M nad w cyklí. N tedy vstup zamítne. Protože PP není rekursivní, stroj N nemůže existovat. Nemůže tedy existovat stroj T, na němž je výpočet stroje N založen.

Redukce Problém příslušnosti jsme převedli (redukovali) na problém zastavení. Kdybychom měli k dispozici algoritmus PZ (stroj T), pak bychom měli i algoritmus PP (stroj N). Víme-li že neexistuje algoritmus pro PP (stroj N), pak nemůže existovat ani algoritmus PZ (stroj T)

Formální definice redukce Redukce jazyka A  *na jazyk B  * (značíme A  B) je rekursivní funkce r: *  * taková, že w  A  r(w)  B Jedná se tedy o funkci realizovatelnou TS (rekursivní fce) zachovávající příslušnost do jazyka Zobrazení, které všechna slova z jazyka A zobrazí na slova z jazyka B a všechna slova napatřící do jazyka A zobrazí na slova nepatřící do jazyka B.

Využití redukce Nechť A  B. Pak platí: Není-li jazyk A rekursivně spočetný, pak není ani jazyk B rekursivně spočetný Není-li jazyk A rekursivní, pak není ani jazyk B rekursivní Je-li jazyk B rekursivně spočetný, pak je i jazyk A rekursivně spočetný Je-li jazyk B rekursivní, pak je i jazyk A rekursivní

Důsledky pro informatiku Existují problémy, které nelze řešit pomocí počítače Problém zastavení Postův korespondenční problém Problém rozhodnout, zda jazyk generovaný danou CFG je konečný Problém rozhodnout, zda dvě CFG generují stejný jazyk Každá netriviální vlastnost rekursivně spočetných jazyků

Rozhodnutelné problémy Je-li problém rozhodnutelný, ještě to neznamená, že je rozhodnutelný „v rozumném čase“. Za rozumný čas považujeme takový čas, kdy je pro nás výsledek výpočtu ještě využitelný. Rozhodnutelností se zabývá teorie vyčíslitelnosti Časovou (a prostorovou) náročností se zabývá teorie složitosti Můžete se těšit na příští přednášku