KYBERNETIKA A UMĚLÁ INTELIGENCE

Podobné dokumenty
Výroková logika. Teoretická informatika Tomáš Foltýnek

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

Logika. 6. Axiomatický systém výrokové logiky

Výroková logika dokazatelnost

Třída PTIME a třída NPTIME. NP-úplnost.

Matematická logika. Miroslav Kolařík

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Systém přirozené dedukce výrokové logiky

Gödelovy věty o neúplnosti

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16

1. Matematická logika

Statistická teorie učení

Výroková a predikátová logika - XIII

Výroková a predikátová logika - V

KOMPRESE OBRAZŮ. Václav Hlaváč. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání. hlavac@fel.cvut.

Výroková a predikátová logika - III

Základy logiky a teorie množin

Výroková a predikátová logika - IX

KOMPRESE OBRAZŮ. Václav Hlaváč, Jan Kybic. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání.

10. Techniky formální verifikace a validace

Složitost Filip Hlásek

1 Výroková logika 1. 2 Predikátová logika 3. 3 Důkazy matematických vět 4. 4 Doporučená literatura 7

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

Formální systém výrokové logiky

Úvod do informatiky. Miroslav Kolařík

Výroková a predikátová logika - XII

1. Predikátová logika jako prostedek reprezentace znalostí

Výroková a predikátová logika - XII

Třída PTIME a třída NPTIME. NP-úplnost.

11 VYPOČITATELNOST A VÝPOČTOVÁ SLOŽITOST

Matematická logika. Lekce 1: Motivace a seznámení s klasickou výrokovou logikou. Petr Cintula. Ústav informatiky Akademie věd České republiky

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

PŘEDNÁŠKA 2 POSLOUPNOSTI

Logika a logické programování

Matematická indukce, sumy a produkty, matematická logika

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Usuzování za neurčitosti

2 Důkazové techniky, Indukce

Výroková a predikátová logika - XIV

Výroková a predikátová logika - IV

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

1 Linearní prostory nad komplexními čísly

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Matematika B101MA1, B101MA2

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

Teoretická informatika průběh výuky v semestru 1

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

Dijkstrův algoritmus

teorie logických spojek chápaných jako pravdivostní funkce

Algoritmy komprese dat

Pravděpodobnost a statistika

Matematická logika. Miroslav Kolařík

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Algoritmus pro hledání nejkratší cesty orientovaným grafem

LOGIKA VÝROKOVÁ LOGIKA

Predikátová logika. Z minula: 1. jazyk logiky 1. řádu. 2. term a formule. 3. interpretace jazyka (relační struktura) 4. Tarského definice pravdy

Generující kořeny cyklických kódů. Generující kořeny. Alena Gollová, TIK Generující kořeny 1/30

0. ÚVOD - matematické symboly, značení,

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Rezoluční kalkulus pro výrokovou logiku

Vzdálenost jednoznačnosti a absolutně

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

1. Matematická logika

Hilbertovský axiomatický systém

Výroková a predikátová logika - IX

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

Formální jazyky a gramatiky Teorie programovacích jazyků

Převyprávění Gödelova důkazu nutné existence Boha

Matematické důkazy Struktura matematiky a typy důkazů

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Predikátová logika. Teoretická informatika Tomáš Foltýnek

Výroková a predikátová logika - III

Teorie informace: řešené příklady 2014 Tomáš Kroupa

Složitost algoritmů. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Teoretická informatika Tomáš Foltýnek Úvod do předmětu Formalismus a jeho užití Teorie a axiomy

Třídy složitosti P a NP, NP-úplnost

Unbounded Model Checking

Dynamické programování

Výroková a predikátová logika - VII

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Matematická analýza pro informatiky I. Limita posloupnosti (I)

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Teoretická informatika Tomáš Foltýnek Teorie čísel Nekonečno

Výroková a predikátová logika - II

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

1 Základní pojmy. 1.1 Množiny

Matematická logika. Miroslav Kolařík

Výroková a predikátová logika - VIII

Obsah. I. Objektivní pravděpodobnosti. 1. Pravděpodobnost a relativní četnosti... 23

Úvod do teorie informace

Sémantika predikátové logiky

Organizace. Zápočet: test týden semestru (pátek) bodů souhrnný test (1 pokus) Zkouška: písemná část ( 50 bodů), ústní část

NP-úplnost problému SAT

Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu odhaduje, jak se svět může vyvíjet.

Od Turingových strojů k P=NP

Transkript:

KYBERNETIKA A UMĚLÁ INTELIGENCE 4. Algoritmická entropie a složitost laboratory Gerstner Gerstnerova laboratoř katedra kybernetiky fakulta elektrotechnická ČVUT v Praze

Revidujeme pojem entropie Uvažujme zprávu... Informační entropie: P() =.5, P() =.5, H = Zprávu tedy nelze komprimovat?! Evidentně to není pravda. Toto jsme již vyřešili v minulé přednášce. Závěr je nesprávný, protože není splněna podmínka statistické nezávislosti znaků na znacích předchozích. Např: P(,) = > ½ = P() Entropie vyšších řádů N H... n ( Zm Zm, Zm 2,..., Zm N ) = P( zm, zm 2,..., zm N ) H ( Zm zm, zm 2 zm zm 2 z m n jsou již < pro N >. Tím je rozpor vysvětlen.,..., z m N ) Zdá se tedy, že entropie dostatečného řádu je již univerzálním měřítkem neuspořádanosti, množství informace a komprimovatelnosti. Je tomu tak opravdu?

Příklad: zpráva z chaotického zdroje Uvažujme chaotický dynamický systém z. přednášky: logistický model v diskrétním čase. Pro stav S m v čase m nechť platí S =.3 S m+ = 4 S m ( - S m ) Definujme diskrétní stav. veličinu X m = S m.5 X m = S m <.5 Zkoumejme (nekonečnou) zprávu sestávající z posloupnosti stavů X m :... Lze tuto zprávu komprimovat? Zkusme zjistit hodnotu entropie.

Lze komprimovat zprávu chaotického zdroje? Entropie H řádu N vypočítaná ze zprávy délky l choatického modelu. Pravděpodobnosti odhadnuty relativními četnostmi ve zprávě. Tj. např. P(z m = z m =,z m- =,z m-2 = ) # "" # "" Zkuste si naprogramovat sami! Se stoupající délkou zprávy l se četnosti blíží skutečným pravděpodobnostem. Pozorování: H všech řádů konverguje k! (Pro N > nutno věřit ) Zpráva binarizovaného chaotického zdroje tedy podle Shannonovy informační teorie není komprimovatelná. Ve skutečnosti ji ale lze komprimovat zcela jednoduše! JAK?

Algoritmická komprese Stačí vyslat zprávu:.s:=.3; 2.S:=4*S*(-S); 3.print((sign(S-.5)+)/2); 4.goto 2; Tato zpráva obsahuje 6 znaků (CR/LF nepodstatné, jen pro přehlednost) Nese v sobě úplnou informaci o nekonečné posloupnosti stavů zdroje. Dosáhli jsme nekonečné komprese! (6/ = znaků na jeden znak zdroje) (Je-li komunikační kanál binární, program lze dále překódovat do délky max. 7(~ASCII) * 6 binárních znaků) Dekódování u cíle = vykonání programu. Dekódování není problém. Kódování bude obecně obtížnější uvidíme dále Je to švindlování? Srovnejme s principy kódování z minulé přednášky: Vysílající (zdroj) a příjemce (cíl) museli mít před začátkem komunikace k dispozici stejnou kódovou tabulku. V tomto případě musí mít stejný k dispozici překladač stejného programovacího jazyka. Na principu přenosu informace se ale nic nemění.

Algoritmická entropie Zpráva může být algoritmicky komprimovatelná, i když není komprimovatelná z hlediska Shannonovy informační teorie. Obráceně to samozřejmě neplatí, protože klasické kódování lze vždy implementovat algoritmem (vyhledávání v tabulce). Našli jsme tedy silnější (obecnější) měřítko množství informace ve zprávě a její komprimovatelnosti: Andrey N. Kolmogorov 93-987 Algoritmická entropie, též Kolmogorovská složitost K(J,Z) zprávy (posloupnosti) Z délka nejkratšího programu (v jazyce J ), který generuje Z. K( J, Z) = min prg ( J, Z ) prg( J, Z) prg(j,z)... program v jazyce J generující posloupnost znaků Z prg(j,z)... délka programu prg(j,z), tj. počet znaků v programu Systémová interpretace alg. entropie: žádná zpráva (jakkoliv složitá, chaotická) nemůže být složitější než systém, který ji generuje. Definice nepoužívá pojmu pravděpodobnost. Platí, i když pravděpodobnosti znaků v nekonečné zprávě vůbec neexistují (příslušné relativní četnosti nekonvergují). K čemu je ale taková definice, když jedna zpráva má různou A.E. pro různé jazyky J?

Algoritmická entropie Závislost na konkrétním programovacím jazyku je ve skutečnosti nepodstatná. Uvažujme množinu dostatečně silných jazyků J, kde v každém jazyku J J můžeme naprogramovat intepretr každého jazyka J J. Potom pro každé dva J, J J : c Z : K( J, Z) K( J ', Z) c.... absolutní hodnota, c konstanta nezávislá na Z (viz pořadí kvantifikátorů) Důkaz: stačí ukázat (symetrie), že K(J,Z) K(J,Z) + c. Toto platí: c je déka programu v J intepretujícího jazyk J. Pro dostatečně složité ( zajímavé) zprávy Z příspěvek konstanty c zanedbatelný, volba jazyka J tedy nepodstatná. Nadále tedy vynecháme J ze značení. Alg. entropii zprávy Z označíme K(Z). Úmluva: K(Z) budeme měřit při binárním kódování programů, tj. v bitech. Jaké konkrétní jazyky obsahuje J? Všechny běžné jazyky: JAVA, C, Perl, Prolog,... Neformálně: jakýkoliv jazyk s přístupem k paměti, obsahující větvení na základě podmínek cykly (nebo možnost rekurze) aritmetiku (alespoň inkrementaci a dekrementaci) může implementovat jakýkoliv algoritmus, tj. i interpretovat jiné jazyky.

Turingův stroj Je užitečné definovat jeden referenční, co nejjednodušší prvek J Turingův stroj abstraktní, jednoduchý systém pro vykonání algoritmu konečný automat s přístupem k externí paměti Jeho vlastnosti se snadno matematicky analyzují. Součásti Turingova stroje: Alan M. Turing 92 954 Páska: může uchovat neomezeně dlouhou posloupnost znaků z konečné abecedy. Hlava: může číst a psát na pásku a pohybovat s ní (měnit aktuální místo o krok) Stavový registr: uchovává aktuální stav (jeden z konečné množiny možných stavů) Přechodová tabulka: pro každou dvojici aktuálního stavu a znaku na pásce definuje nový znak na aktuálním místě pásky, nový stav, a směr pohybu pásky (L/P) o krok. Churchova-Turingova teze: jakýkoliv výpočet (obecněji: algoritmus, racionální myšlenkový pochod ) lze implementovat Turingovým strojem. Není matematickou větou! Výpočet je intuitivní pojem. Jazyky schopné implementovat stejné algoritmy jako T.S. (tedy jazyky v naší množině J) v se nazývají turingovsky ekvivalentní. Alonzo Church 93 995

Turingovská ekvivalence dynamických systémů I nelineární dynamické systémy jsou Turingovsky ekvivalentní! Každý výpočet algoritmus lze implementovat nějakým nelineárním dynamickým systémem. Stavové veličiny paměť, přechod mezi stavy vykonání instrukce. Příklad: Paritní funkce vrací, pokud je vstupem sudé číslo, jinak. Program lze překódovat do dynamického systému: kde x je vstupní hodnota, A je matice je jednoduchá nelineární funkce: = A function parity(x). y:=; 2. if x > {x--; y++} else goto 5 3. if x > {x--; y--} else goto 5 4. goto 2 5. return(y) T x s k s A f k s,,,,,,,] [ () )) ( ( ) ( = = + r r r r f r, ) ( ) ( = > = i i i i i s s f s s s f pokud, pokud r r f s

Turingovsky ekvivaletní dynamické systémy Systém se ustálí na řešení, tj. pro ustálený stav systému v čase k u platí s 2 (k u ) = parity(x) Na obrázku: barva úměrná hodnotě s 2 v ustáleném stavu, pro různé počáteční hodnoty s () = x... vstup s 3 ()... jedna z paměťových buněk systému Stavové veličiny reálné. Modré body odpovídají speciálním případům místům, kde je definována tradiční paritní funkce pro celá čísla. Turingovská ekvivalence nelineárních dynamických systémů má zásadní důsledky pro teorii dynamických systémů uvidíme dále. představuje vazbu mezi teorií dynamických systémů a teoretickou informatikou.

Vlastnosti algoritmické entropie Opakování: Zpráva může být algoritmicky komprimovatelná, i když není komprimovatelná z hlediska Shannonovy informační teorie. Existují vůbec nějaké algoritmicky nekoprimovatelné zprávy? Ano! Uvažujme binární zprávy a binárně kódované programy. Existuje právě 2 l zpráv délky l. Najdeme pro každou z nich nějaký program dosahující alespoň minimální komprese tedy kratší alespoň o bit? Programů maximální délky l- je + 2 + 2 2 +... + 2 l l 2 = 2 = 2 l (součet geom. řady). Tedy i kdyby všechny programy maximální délky l- byly použity pro zprávy délky právě l, tak se stejně na jednu nedostane. Důsledek: Neexistuje žádný univerzální (vždy úspěšný) bezeztrátový kompresní algoritmus. Obecně lze ukázat, že zprávy s vysokou algoritmickou entropií (tj. zprávy, které komprimovat nelze, nebo lze jen velmi málo) tvoří většinu všech možných zpráv. Srovnejte s 2. termodynamickou větou: stavy s nejvyšší termodynamickou entropií jsou nejpravděpodobnější.

Souvislosti algoritmické entropie: Ockhamova břitva Libovolnou teorii (např. přírodně-vědeckou) lze formalizovat a převést na algoritmus v nějakém turingovsky ekvivalentním jazyce. Libovolnou posloupnost pozorování (např. přírodního systému) lze formalizovat a převést na posloupnost znaků nějaké abecedy (tj. na zprávu). Přírodní vědy = hledání teorií k pozorováním přírody. V řeči obecné teorie systémů: hledání generativního systému k datovému. Jednu posloupnost pozorování lze obvykle vysvětlit více než jednou teorií. Kterou z nich zvolit? William of Ockham: entia non sunt multiplicanda praeter necessitatem tj. entity se nemají násobit bezdůvodně. Teorie by neměla klást předpoklady zbytečné pro vysvětlení pozorování. Ockamova (též Occamova) břitva: Ze všech teorií vysvětlujících daná pozorování vybrat tu nejjednodušší. Přímá aplikace algoritmické komprese! Tj. hledání programu ( teorie) generujícího ( vysvětlujícího) zprávu ( pozorování) Z, tak, že prg(z) je co nejkratší, ideálně délky K(Z). Varianty alg. komprese se využívají ve strojovém učení a data miningu (přednáška 8). Teoreticky by mohly být základem automatizovaného vědeckého bádání! Má to ale jeden háček... William of Ockham 4. století

Lze vypočítat algoritmickou entropii? Lze vůbec naprogramovat funkci slozitost(z) pro výpočet K(Z)? Předpokládejme, že ano, a využijme ji v následujícím programu generujícím zprávu složitosti alespoň n : function generujzpravu(n) for l = to for z in < všechny zprávy délky l > /* je jich 2 l */ if slozitost(z) >= n {return z; quit} Označme: u = délka tohoto programu v binárním kódování. Nyní naprogramujme funkci: function generujpodivnouzpravu() return generujzpravu(< nějaké číslo >) Funkce ještě není hotová, zbývá doplnit argument v 2. řádce. Označme nejprve c = délka funkce v binárním kódování, když je argument prázdný. Po dosazení nějakého čísla n do argumentu bude délka funkce c + log 2 n. (Pro zakódování čísla n je potřeba log 2 n binárních číslic) Dosaďmě do argumentu takové n, které vyhovuje nerovnici u + c + log 2 n < n Najdeme snadno, neboť n roste rychleji než log 2 n a u, c jsou konstanty.

Nerozhodnutelnost algoritmické entropie Nyní volejme: Z = generujpodivnouzpravu(). Dostaneme zprávu Z, která má algoritmickou entropii nejméně n (viz definici funkcí). Zároveň platí, že zpráva Z je generována programem jehož délka je u + c + log 2 n : function generujpodivnouzpravu() return generujzpravu( < n > ) function generujzpravu(n) délka: log 2 n for l = to for z in < zprávy délky l > /* je jich 2 l */ if slozitost(z) >= n {return z; quit} délka: c + log 2 n délka: u Protože u u + + c + c log + log 2 n< n, : Z má algoritmickou entropii nižší než n. 2 n < n Z předpokladu, že program slozitost(z) existuje, jsme dospěli k logickému sporu! Jediný možný důsledek: předpoklad byl chybný. Algoritmus pro výpočet algoritmické entropie libovolné zprávy neexistuje. Určení hodnoty a.e. je nerozhodnutelný problém. Stále zbývá možnost horního odhadu K(Z). Např. je-li HK(Z) zpráva obdržená Huffmanovým kódováním zprávy Z, tak určitě platí K(Z) HK(Z) + c, kde konstanta c je délka programu pro převod kódu dle kódovací tabulky + počet bitů nutných k uložení tabulky a HK(Z) je délka komprimované zprávy HK(Z).

Problém zastavení algoritmu (Ne)rozhodnutelnost = zásadní vlastnost výpočetních problémů. Existují ještě další nerozhodnutelné problémy? Je jich mnoho. Slavný příklad: Problém zastavení (halting problem): Mějme nějaký program, jehož binární kód je P a jehož vstupem je binární zpráva Z. Problém: prohlédni si P a Z a rozhodni, zda se P na Z zacyklí, nebo zastaví. Lze naprogramovat funkci halt(p,z), která správně rozhodne pro libovolné P a Z? Rozhodnutí v konečném čase, tj. nestačí jen spustit P na Z a čekat, jak to dopadne. Předpokládejme, že halt(p,z) existuje, a využijme ji v tomto programu: function neprijemnost(z) /* vstupem je binární zpráva */. if halt(z,z)= zastavi then goto Nechť NEPRIJEMNOST je binární kód programu neprijemnost. Zastaví se, nebo zacyklí program neprijemnost(neprijemnost)? Pokud se zacyklí, tak podmínka v. řádce byla splněna. Tedy výstupem funkce halt(neprijemnost,neprijemnost) bylo zastavi, z čehož plyne, že neprijemnost se na vstupu NEPRIJEMNOST zastaví. SPOR! Pokud se zastaví, tak podmínka v. řádce nebyla splněna.tedy výstupem funkce halt(neprijemnost,neprijemnost) bylo zacykli, z čehož plyne, že neprijemnost se na vstupu NEPRIJEMNOST zacyklí. SPOR! Funkce tedy nemůže existovat! Problém zastavení je nerozhodnutelný.

Problém zastavení: důsledek pro dynamické systémy Přednáška : z popisu lineárního dynamického systému lze určit jeho stabilitu, tj. zda bude jeho stav při dané počáteční podmínce konvergovat k nějaké ustálené hodnotě. Je něco podobného možné pro obecné dynamické systémy (vč. nelineárních)? Dříve v této přednášce: každý výpočet (algoritmus) lze implementovat nějakým (obecně nelineárním) dynamickým systémem. vstupní data ~ počáteční podmínky, ustálený stav ~ výsledek výpočtu. Předpokládejme, že umíme pro jakýkoliv dynamický systém S určit, zda se ustálí při daných počátečních podmínkách s r (). Je tedy k dispozici funkce odezva(s,s), kde S je popis S (např v binárním kódu) a s je popis s r (). Potom bychom vyřešili problém zastavení: function mazanyhalt(p,z) preved P na popis ekvivalentniho dynamickeho systemu S preved Z na popis evivalentnich pocatecnich podminek s if odezva(s,s)= ustali then return( zastavi ) else return( zacykli ) To ale není možné dokázali jsme, že problém zastavení je nerozhodnutelný. Ze sporu vyplývá, že předpoklad byl nesprávný. Neexistuje tedy postup pro určení (ne)stability z popisu libovolného dynamického systému. Nikdy nebude existovat obecná teorie dynamických systémů s podobnými schopnostmi, jako má teorie lineárních dynamických systémů.

Rozhodnutelnost a dokazování Ukázali jsme nerozhodnutelnost některých problémů. Co vlastně ale přesně znamená rozhodnout problém? Je to totéž, jako najít důkaz nějakého tvrzení. Např. tvrzení algoritmus P se zastaví na vstupu Z Co je tedy důkaz tvrzení T? Posloupnost odvození tvrzení z již odvozených tvrzení, dokud není odvozeno i T. Odvozuje se podle odvozovacích pravidel. Dokud není odvozeno nic, nedá se ani nic odvodit! Je třeba zavést nějaká počáteční tvrzení, považovaná za platná bez důkazu. To jsou tzv. axiomy. Všechna tvrzení vč. axiomů musí být formulována v nějakém jazyce, tj. v nějaké kódové abecedě znaků) jazyk + axiomy + odvozovací pravidla = formální systém Příklad pro formální systém výrokové logiky: jazyk: znaky pro výroky (A, B, C,...), logické spojky (,,, ) příklad axiomu: A (B A) (pro jakákoliv tvrzení A,B.) odvozovací pravidlo modus ponens : je-li již odvozeno A a A B, lze odvodit B. Nejsou nerozhodnutelné problémy (tj. nedokazatelná tvrzení) jen důsledkem špatně nastaveného formálního systému? např. nevhodná volba axiomů v matematické logice

Nerozhodnutelnosti se nezbavíme! Gödelova věta o neúplnosti. Kurt Gödel: V každém bezesporném formálním systému s aritmetikou existují tvrzení, jejichž pravdivost nelze rozhodnout. Bezespornost: nelze odvodit tvrzení i jeho opak. Co je to systém s aritmetikou? Např. systém, v němž lze dokázat tvrzení jako x : x < x +, tedy pro všechna x platí, že x je menší než x +. Pozn.: např. ve výrokové logice to nelze proč? Důkaz neúplnosti: Každé tvrzení lze syntakticky chápat jako zprávu v konečné abecedě znaků (zde, x,...). Můžeme tedy zavést kódování, které libovolnému tvrzení jednoznačně přiřazuje nějaký binární kód (viz přednášku 3). Tento binární kód je zároveň binární reprezentací nějakého přirozeného čísla n. Definujme tedy funkci k(t) kódující tímto způsobem tvrzení T na přirozené číslo n. Dále definujme funkci d(n): d(n) = je-li tvrzení s kódem n v systému dokazatelné, jinak d(n) =. Příklad: v jakémkoliv systému s aritmetikou platí Kurt Gödel 96,Brno 978,Princeton d(k( x : x < x + ) =

Gödelova věta o neúplnosti Gödelův trik: zaveďme substituční funkci s(n) = m tak, že m je kód tvrzení vzniklého tak, že ve tvrzení s kódem s n nahradíme všechny znaky proměnných konstantou n a vymažeme kvantifikace. Příklad: platí-li k( x : x < x + ) = 35 a také k( 35 < 35 + ) = 298 tak platí s(35) = 298 Uvažujme dvě tvrzení T : x : d(s(x)) = ; a nechť m = k(t) T2 : d(s(m)) = ;T2 neobsahuje žádnou proměnnou! Do tvrzení je dosazena konkrétní hodnota m z předchozí řádky. Předpoklad systému s aritmetikou jsme potřebovali proto, aby systém byl schopen počítat funkce s a d prostřednictvím odvozování. Všimněte si, že s(m) je kód tvrzení T2. Teď to přijde! Předpokládejme úplnost, tj. systém dokáže T2, nebo jeho negaci T2. Pokud dokáže T2, tak platí d(s(m)) =, tedy tvrzení s kódem s(m) je nedokazatelné (z definice funkce d). Tvrzení s kódem s(m) je T2, tedy T2 je nedokazatelné! Spor. Pokud dokáže T2, tak platí d(s(m)) = a tvrzení s kódem s(m), tedy T2, je dokazatelné. Vzhledem k bezespornosti je tedy T2 nedokazatelné! Spor. V obou případech spor: T2 nelze dokázat ani vyvrátit. Věta dokázána.

Shrnutí přednášky Algoritmická entropie (= Kolmogorvská složitost) zprávy je délka nejkratšího programu v turingovsky ekvivalentním jazyce, který tuto zprávu generuje. Turingovsky ekvivalentní jazyk = umí implementovat jakýkoliv algoritmus (výpočet). Abstraktním představitelem je Turingův stroj. Pro zprávy dostatečné složitosti má volba konkrétního turingovsky ekvivalentního jazyka zanedbatelný vliv na hodnotu algoritmické entropie. A. E. je mírou neuspořádanosti a komprimovatelnosti zprávy nezávislou na pravděpodobnostní distribuci znaků. A. E. je silnější, než informační entropie: zprávu lze algoritmicky komprimovat, i když není komprimovatelná z hlediska I.E. Hodnotu A. E. lze jen aproximovat, nelze ji obecně vypočítat, jde o nerozhodnutelný problém. Další příklady nerozhodnutelných problémů: problém zastavení algoritmu, či problém stability nelineárního dynamického systému. Gödelova věta: V každém bezesporném formálním systému s aritmetikou existují tvrzení, jejichž pravdivost nelze rozhodnout. Důsledky Gödelovy věty jsou obrovské: nelze alternativně formulovat matematické axiomy tak, aby nevznikaly výše uvedené nerozhodnutelné problémy. Důsledek pro umělou inteligenci: Nelze sestrojit univerzální inteligentní systém schopný logicky odvodit pravdivost jakéhokoliv tvrzení v daném systému, pokud je alespoň natolik silný, aby uměl dokázat aritmetická fakta.