Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Churchova (Turingova) teze

Podobné prezentace


Prezentace na téma: "Churchova (Turingova) teze"— Transkript prezentace:

1 Churchova (Turingova) teze
Každý Turingův stroj reprezentuje nějaký algoritmus a každý algoritmus lze realizovat nějakým Turingovým strojem. Přijetí této teze umožňuje rozlišit dva případy: Řešení problému algoritmem, kdy Turingův stroj rozhoduje daný problém (odpoví ANO i NE v konečném čase). Řešení problému procedurou, kdy Turingův stroj daný problém pouze rozpoznává (v konečném čase dá pouze kladnou odpověď).

2 Univerzální Turingův stroj
Každý Turingův stroj lze popsat konečným počtem symbolů nějaké abecedy. Stačí zakódovat vhodně jeho stavy, páskovou abecedu a přechodovou funkci. Množina všech Turingových strojů je tedy nekonečná, spočetná. Kódy všech Turingových strojů lze uspořádat do posloupnosti T1, T2, …. Lze sestrojit univerzální Turingův stroj, který na základě čísla daného Turingova stroje a jeho vstupních dat bude simulovat práci libovolného Turingova stroje.

3 Algorotmicky nerozhodnutelné problémy
Všechna zadání rozhodovacích problémů zapsaná pomocí konečné abecedy lze lze též seřadit do nekonečné posloupnosti. Postupujme nyní diagonální metodou. Sestrojme jazyk L tak, že do něj zařadíme ta a jen ta zadání Zi, pro které se Turingův stroj Ti při své práci nezastaví. Tento jazyk není žádným Turingovým strojem rozpoznatelný. Kdyby byl, musel by být umístěn na nějakém místě posloupnosti a musel by dané slovo přijmout. Existují tedy jazyky, které nelze žádným Turingovým strojem rozpoznat. Ty představují nerozhodnutelné problémy.

4 Problém zastavení Turingova stroje
Je dán Turingův stroj v nějaké své konfiguraci. Existuje algoritmus, který rozhoduje zda se tento stroj zastaví či nikoliv? Odpověď na tuto otázku je negativní. Lze to dokázat opět postupem v které se užije diagonální metoda. Tento poznatek je důležitý pro prokázání nemožnosti algoritmicky prověřit v obecném případě úplnou korektnost programů.

5 Postův korespondenční problém
Mějme dvě stejně dlouhé posloupnosti neprázdných slov nad danou abecedou : Řekneme, že tento problém má řešení, pokud „lze z obou těchto posloupností slov sestavit stejné slovo“

6 Postův korespondenční problém

7 Postův korespondenční problém

8 Typické třídy výpočetní složitosti
Θ (1) – růst nezáleží na rozměru vstupu Θ (n) – lineární růst (složitost je přímo úměrná rozměru dat) Θ (n × log n) – tento růst dosahují „chytré“ algoritmy řazení („třídění“) Θ (n2) – kvadratický růst, například Dijskrův algoritmus Θ (n3) – kubický růst typický pro některé operace s maticemi a algoritmy řešení soustav lineárních rovnic Θ (nk) pro nějaké přirozené číslo k z N – polynomiální růst Θ (2n), exponenciální růst Θ (n!) – faktoriální růst. 8

9 Srovnání doby výpočtu log2 n N N × log2 n n2 n3 n4 2n n! 2 10ms 20ms
5 23,1ms 50ms 116ms 250ms 1,25ms 6,25ms 320ms 1,2ms 10 33,2ms 100ms 332ms 1ms 10,2 ms 1,17s 15 39,1ms 150ms 587ms 2,25ms 33,8ms 507ms 328ms 15,1 days 20 43,2ms 200ms 864ms 4ms 1,6s 10,5s years 25 46,4ms 1,16ms 156ms 3,91s 5,59min 30 19,1ms 300ms 5,73ms 9ms 270ms 37,5s 2,98h 50 56,4ms 500ms 28,2ms 25ms 1,25s 1,04min 357years 100 66,4ms 6,64ms 10s 16,7min 200 76,4ms 2ms 15,3ms 400ms 1,34min 4,47h 500 89,4ms 5ms 44,4ms 2,5s 4,17min 13,9h 9

10 Třídy nedeterministické složitosti
Jestliže existuje nějaký nedeterministický Turingův stroj, který řeší rozhodovací problém pro všechny přípustné vstupy o rozměru n za čas úměrný f(n) kroků (při vhodné volbě posloupnosti svých po sobě bezprostředně následujících konfigurací), potom říkáme, že tento rozhodovací problém patří do třídy nedeterministické časové složitosti NT(f(n)) . 10

11 Vztah deterministické a nedeterministické složitosti
Třídy deterministické časové složitosti T(f(n)) představují horní odhady složitosti nalezení řešení problémů „bez nápovědy“. Tedy čas pro nalezení dosud neznámého řešení problémů. Třídy nedeterministické časové složitosti NT(f(n)) představují horní odhady složitosti ověření, zda nalezené řešení skutečně řešením je. Tedy třídy složitosti „zkoušky“ správnosti řešení, které již známe. 11

12 Klasifikace problémů Problémy, které mají neakceptovatelnou nedeterministickou časovou složitost nejsou pro praxi příliš zajímavé. U problémů, které mají přijatelnou nedeterministickou časovou složitost můžeme řešení zkontrolovat. Můžeme je tedy využít. U řady důležitých problémů tohoto typu však neznáme algoritmus řešení, který by patřil do přijatelné třídy časové deterministické složitosti. Řešení tedy neumíme při netriviálním rozměru vstupu nalézt v rozumném čase. 12

13 P-těžké problémy Polynomiálně časově těžké nebo je časově P-těžké problémy jsou problémy třídy Jedná se tedy o problémy, jejichž řešení jsme schopni v „rozumném čase nalézt“. Problémy, které do této třídy nepatří je třeba považovat za “prakticky neřešitelné” pro netriviální rozměry vstupních dat. 13

14 NP těžké problémy Podobně lze problémy klasifikovat z hlediska nedeterministické časové složitosti. Třída NP těžkých problémů je definována To jsou problémy, jejichž řešení jsme schopni v rozumném čase zkontrolovat a využít. 14

15 Problém NP vers P Přes velké úsilí lidstva nebyla dosud zodpovězena zásadní otázka, zda 15

16 NP úplné problémy Část NP-těžkých problémů
Není pro ně znám polynomiální deterministický algoritmus řešení . Mají navíc tu vlastnost, že kdybychom aspoň pro jediný z těchto problémů polynomiální algoritmus objevili, dovedli bychom v polynomiálním čase řešit všechny NP-těžké problémy a dokázali tak rovnost PTIME = NPTIME . Proto jsou problémy této třídy tak zajímavé. 16

17 Příklady NP úplných problémů
Problém obchodního cestujícího: Je dána množina míst. Vzdálenosti mezi libovolnými dvěma místy jsou dány jako celá kladná čísla. Existuje hamiltonovská cesta taková, že součet všech vzdáleností mezi sousedními místy je nejvýše roven zadanému kladnému číslu nebo neexistuje? Problém dvou loupežníků: Je dána množina n přirozených čísel. Je možné tuto množinu rozdělit na dvě disjunktní podmnožiny tak, aby součet čísel v obou těchto podmnožinách byl stejný nebo to možné není? 17

18 Příklady NP úplných problémů
Problém řešení kvadratické diofantické rovnice: Jsou dána přirozená čísla a, b a c. Existují přirozená čísla x a y tak, že a ⋅ x2 + b ⋅ y = c nebo neexistují? Problém prvočísel: Pro dané přirozené číslo rozhodnout, zda je prvočíslem, či nikoliv. (je třeba si uvědomit, co je zde rozměrem vstupu) 18

19 Příklady NP úplných problémů
Problém ruksaku: Máme k dispozici n předmětů, každý má stanovenou váhu v a cenu c. Lze vybrat podmnožinu předmětů tak, aby jejich celková váha byla menší nebo rovna V a celková cena větší nebo rovna C? Problém optimalizace programu: Je možné daný algoritmus realizovat pouze užitím k paměťových registrů nebo nelze, je-li k zadané číslo (rozsah paměti, která je k dispozici)? 19

20 Taxonomie problémů, případ NP není P
Všechny rozhodovací problémy Rozhodnutelné problémy Přečíslitelné, ale nerozhodnutelné problémy Nepřečíslitelné problémy NP problémy Nikoli NP problémy Doplňkově přečíslitelné problémy Doplňkově Nepřečíslitelné problémy P problémy NP, ale ne P problémy NP, ale ne NP úplné NP úplné problémy 20

21 Taxonomie problémů, případ NP je P
Všechny rozhodovací problémy Rozhodnutelné problémy Přečíslitelné, ale nerozhodnutelné problémy Nepřečíslitelné problémy NP problémy Nikoli NP problémy Doplňkově přečíslitelné problémy Doplňkově Nepřečíslitelné problémy P problémy NP, ale ne P problémy Toto vše je to samé, jako NP NP, ale ne NP úplné NP úplné problémy 21

22 Jak obejít nepřijatelnou časovou složitost
1. Nahradit daný problém jiným problémem, který v polynomiálním čase řešit umíme a jehož řešení „není příliš odlišné“ od řešení původního problému, které nás zajímá, nebo se od něj příliš neliší „v převážné většině případů“. 2. Užít algoritmus pro řešení původního problému, jehož pesimistická časová složitost sice není polynomiální, nalézt však takovou jeho modifikaci, při které k časově neúnosně dlouhému výpočtu dochází spíše výjimečně a ve „většině“ případů je potřebná doba přijatelná. 3. Zpochybnit Churchovu tezi, tedy pokusit se o nalezení takového technického prostředku pro výpočet, který bude „umět více“, než Turingův stroj. To ovšem určitě nemůže být současný počítač založený na von Neumannově architektuře. 22

23 Paraelní systémy Tradiční paralelizmus (výpočetní systémy na principu SIMD, MIMD, multicube, … ) pro řešení úloh, kde není znám polynomiálně složitý algoritmus příliš nepomohou. Je-li K procesorů, zvýší se propustnost systému nejvýše K- krát. Třídu složitosti to neovlivní. 23

24 Algoritmy prořezávání stromu
V každé situaci, kdy musíme vyšetřit více možností se věnujeme pouze těm, které jsou z nějakého důvodu perspektivní. Ty, které se jeví jako málo nadějné pro nalezení řešení vynecháme Typická aplikace metody větví a mezí bývá užit v programech pro hru šachy. 24

25 Gradientní algoritmy V řadě optimalizačních algoritmů je vhodné volit metodu postupného přibližování k optimu tak, že přiblížení volíme „tím směrem“, kde se sledovaná hodnota zlepšuje nejrychleji. Je to jako když horolezec chce dosáhnout vrcholu hory tak, že leze tím směrem, kterým je svah nejpříkřejší. V řadě případů to k cíli vede. Ne však vždy. Může se snadno stát, že horolezec, který si dal za cíl zdolat nejvyšší vrchol pohoří vyleze do sedla mezi dvěma vrcholy a na základě zvoleného principu vyleze na ten nižší z obou. 25

26 Genetické algoritmy 26

27 Neuronové sítě 27

28 Kvantové počítače Foton se může nacházet „současně na více místech“ (s různou pravděpodobností). Nemá deterministicky určenou polohu. To dává šanci elementární částice užít přímo pro modelování nedeterministického Turingova stroje. Ve stádiu předběžných úvah a částečných pokusů 28

29 První úspěšný pokus, 1989 Vzdálenost 37cm 29

30 Přenos volným prostrorem
30

31 Přenos po optickém kabelu
31

32 Praktické využití ? 32

33 Firma MagiQ 33

34 Chemické počítače Data jsou reprezentována různými koncentracemi chemikálií na vstupu. Výpočet je modelován průběhem chemické reakce. Ve stádiu předběžných úvah a neurčitých záměrů 34

35 DNA počítače Myšlenka založena se schopnosti řetězců aminokyselin DNA vytvářet masivně vlastní kopie paralelně. Výpočet by byl realizován jako biologický experiment. Pokud se aminokyseliny spojí do vhodného řetězce, lze jej považovat za řešení úlohy. Ve stádiu předběžných experimretnů 35

36 DNA ČIP Ehud Shapiro (2004) Dokáže vyhodnotit pravdivost jednoduchých formulí výrokové logiky. Například (A and B) or C 36

37 Analogové počítače Jsou starší než číslicové.
Ke škodě věci se na ně poněkud pozapomenulo. Vytvoří se fyzikální, obvykle spojitě pracující model děje (mechanický, hydraulický, elektromagnetický, …), který se řídí stejnými nebo podobnými zákony jako řešený problém. Nechá se proběhnout vývoj na tomto modelu. Výsledek poskytne informaci o řešení původního problému. Dávno známé, dnes možná neprávem poněkud opomíjené 37

38 Komponenty grafu Nechť ´G=(V,E) je graf.
Podmnožinu V’ množiny vrcholů V nazveme souvislou, pokud existuje cesta mezi jakoukoliv dvojicí vrcholů v a w z množiny V Maximální souvislou množinu vrcholů V nazveme komponenta grafu G

39 Silné komponenty grafu
Nechť ´G=(V,E) je orientovaný graf. Podmnožinu V’ množiny vrcholů V nazveme silně souvislou, pokud pro jakoukoliv dvojicí vrcholů v a w z množiny V existuje cesta z v do w i cesta z w do w. Maximální silně souvislou množinu vrcholů V nazveme silná komponenta grafu G

40 Jak hledat silné komponenty?
Najdete silne souvisle komponenty v orientovanem grafu s vrcholy , ktery je dan timto seznamem hran: Nakreslete kondensaci tohoto grafu. 4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3

41 Hledám komponentu K1 Hledám komponentu K1 obsahující vrchol 1. Nejprve hledám množinu K1+ všech vrcholů dostupných z vrcholu 1. Určitě do ní patří vrchol 1 sám. 4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3 K1+={1,…}

42 Hledám komponentu K1 Dále všechny vrcholy následující po vrcholu 1, tedy vrcholy 2,6,7 a 12. 4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3 K1+={1,2,6,7,12…}

43 Hledám komponentu K1 A dále všichni následovníci vrcholu 2. 1 2 6 7 12
4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3 K1+={1,2,6,7,12,4,5…}

44 Hledám komponentu K1 A následovníci vrcholu 6 (ten není žádný) a 7. 1
4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3 K1+={1,2,6,7,12,4,5,11…}

45 Hledám komponentu K1 A následovníci vrcholu 12 a 4 (žádný nový). 1 2 6
11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3 K1+={1,2,6,7,12,4,5,11,3…}

46 Hledám komponentu K1 A následovníci vrcholu 5.
4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3

47 Hledám komponentu K1 Mezi následovníky vrcholů 11,3a 9 už není žádný nový, množina K1+ je tedy kompletní. 4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3 K1+={1,2,6,7,12,4,5,11,3,9}

48 Hledám komponentu K1 Obdobným způsobem sestrojím množinu K1- všech vrcholů, ze kterých je dostupný vrchol 1. 4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3 K1+={1,2,6,7,12,4,5,11,3,9} K1-={1,5,2,10,4,11,7,9}

49 Hledám komponentu K1 Komponenta K1 je průnikem množin K1+ a K1- 1 2 6
4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3 K1+={1,2,6,7,12,4,5,11,3,9} K1-={1,5,2,10,4,11,7,9} K1={1,2,4,5,7,9,11}

50 Hledám další komponenty
Podobným způsobem budu hledat komponentu pro první další dosud nezařazený vrchol, tedy pro vrchol 3. Předtím ale mohu situaci zjednodušit tím, že z tabulky hran vynechám všechny hrany, které mají počátek, nebo konec v některém z vrcholů komponenty K1. K1={1,2,4,5,7,9,11} 4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3

51 Hledám komponentu K3 Najdu množinu K3+ a K3- a najdu jejich průnik.
4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3 K3+={3,12} K3-={3,12} K3={3,12}

52 Hledám další komponenty
Po vyřazení všech hran incidujících s vrcholy 3 a 12 je zřejmé, že všechy další komponenty budou tvořeny jen jedním vrcholem. Každý vrchol ale musí být někde zařazen. K1={1,2,4,5,7,9,11} 4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3 K3={3,12} K6={6} K8={8} K10={10}

53 Konstrukce kondenzace grafu
Vrcholy kondenzace budou tvořeny jednotlivými komponentami. Ze seznamu hran vynechám hrany vedoucí uvnitř komponent. K1={1,2,4,5,7,9,11} 4 2 11 12 5 1 9 7 11 9 10 4 5 8 12 3 1 2 6 7 12 4 5 3 K3={3,12} K6={6} K8={8} K10={10}

54 Konstrukce kondenzace grafu
Hrana mezi komponentami povede tehdy, pokud v původním grafu vedla hrana mezi některými vrcholy těchto komponent. K1={1,2,4,5,7,9,11} 1 6 12 4 10 5 7 8 K3={3,12} K6={6} K10={10} Kondenzace grafu nesmí obsahovat cyklus K8={8}


Stáhnout ppt "Churchova (Turingova) teze"

Podobné prezentace


Reklamy Google