c/mávnějakémpřípaděvýpočetstroje Mvícekrokůnežtisícinásobekdélkyvstupu?

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

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

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

Poznámka. Kezkoušcejemožnojítjenposplněnípožadavkůkzápočtu. Kromě čistého papíru a psacích potřeb není povoleno používat žádné další pomůcky.

PŘÍJMENÍ a JMÉNO: Login studenta: DATUM:

(viztakéslidyktétopřednášce...) Poznámka. Neudělali jsme vše tak podrobně, jak je to v zápisu.

Poznámka. Kezkoušcejemožnojítjenposplněnípožadavkůkzápočtu. Kromě čistého papíru a psacích potřeb není povoleno používat žádné další pomůcky.

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

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

Dynamické programování

Týden 11. Přednáška. Teoretická informatika průběh výuky v semestru 1. Nejprve jsme dokončili témata zapsaná u minulé přednášky.

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

Popište a na příkladu ilustrujte(rychlý) algoritmus testující, zda dané dva automaty jsou izomorfní.

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Složitost Filip Hlásek

Týden 14. Přednáška. Teoretická informatika průběh výuky v semestru 1. PSPACE, NPSPACE, PSPACE-úplnost

FEI, VŠB-TUO, Teoretická informatika( /01) zadání referátů 1

Turingovy stroje. Teoretická informatika Tomáš Foltýnek

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

Složitost. Teoretická informatika Tomáš Foltýnek

Pozn.MinulejsmesekPSPACEnedostali,protojezdepřekryvstextemzminula.

Složitost problémů. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 25. dubna / 23

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

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

Fakulta informačních technologií. Teoretická informatika

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

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

10. Složitost a výkon

Postův korespondenční problém. Meze rozhodnutelnosti 2 p.1/13

DMA Přednáška Rekurentní rovnice. takovou, že po dosazení odpovídajících členů do dané rovnice dostáváme pro všechna n n 0 + m pravdivý výrok.

Mimo samotné správnosti výsledku vypočteného zapsaným algoritmem je ještě jedno

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

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

Výpočetní složitost algoritmů

5.6.3 Rekursivní indexace složitostních tříd Uniformní diagonalizace Konstrukce rekursivních indexací a aplikace uniformní diagonalizace

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

ALGORITMY A DATOVÉ STRUKTURY

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

Od Turingových strojů k P=NP

Rekurzivní algoritmy

Algoritmizace složitost rekurzivních algoritmů. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

2. Složitost, grafové algoritmy (zapsal Martin Koutecký)

Úvod do informatiky. Miroslav Kolařík

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

Vyčíslitelnost a složitost

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

YZTI - poznámky ke složitosti

Úvod do problematiky

Časová složitost / Time complexity

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Formální jazyky a automaty Petr Šimeček

Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63

COMPLEXITY

Vztah jazyků Chomskeho hierarchie a jazyků TS

NP-úplnost problému SAT

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

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

Lineární algebra : Násobení matic a inverzní matice

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

Zimní semestr akademického roku 2014/ prosince 2014

Stromy, haldy, prioritní fronty

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

Odpřednesenou látku naleznete v kapitole 3.1 skript Abstraktní a konkrétní lineární algebra.

Příklady z Kombinatoriky a grafů I - LS 2015/2016

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

Matematika pro informatiky

Lineární algebra : Násobení matic a inverzní matice

Cvičení ke kursu Vyčíslitelnost

Rozhodnutelné a nerozhodnutelné problémy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 24. dubna / 49

Matematika B101MA1, B101MA2

Databáze, sítě a techniky programování X33DSP

3. ledna list a odevzdejte tento zvláštní list (listy) i všechny ostatní listy, které jste při řešení

Řešení rekurentních rovnic 2. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 11

Základy algoritmizace

NALG 001 Lineární algebra a geometrie 1, zimní semestr MFF UK Doba řešení: 3 hodiny

Binární vyhledávací stromy pokročilé partie

Kapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.

NP-úplnost. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 23. května / 32

Digitální učební materiál

Úvod do složitosti. Jan Konečný. 12. listopadu Jan Konečný Úvod do složitosti 12. listopadu / 27

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

Posloupnosti a jejich konvergence POSLOUPNOSTI

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

Přednáška 6, 7. listopadu 2014

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů

Základní datové struktury III: Stromy, haldy

Návrh Designu: Radek Mařík

Referáty budou přiděleny v zásadě na prvním cvičení. Studenti, kteří to nestihnou, se musí urychleně přihlásit cvičícímu(třeba em).

Polynomy nad Z p Konstrukce faktorových okruhů modulo polynom. Alena Gollová, TIK Počítání modulo polynom 1/30

TGH12 - Problém za milion dolarů

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

Základy aritmetiky a algebry II

Úvod do informatiky. Miroslav Kolařík

Jednoznačné a nejednoznačné gramatiky

Binární soubory (datové, typované)

Složitost a moderní kryptografie

Transkript:

Teoretická informatika průběh výuky v semestru 1 Týden 9 Přednáška Nerozhodnutelné problémy pro bezkontextové gramatiky Uvedli jsme myšlenku redukce problému zastavení na ekvivalenci dvou bezkontextových gramatik(či nedeterministických zásobníkových automatů). Také jsme načrtli tzv. Postův korespondenční problém, myšlenku důkazu jeho nerozhodnutelnosti a využití k důkazu nerozhodnutelnosti jednoznačnosti bezkontextových gramatik. Riceova věta Uvědomili jsme si, že každá vlastnost V Turingových strojů(např. stroj M má více než100stavů, výpočetstroje Mjeprokaždývstupkonečný,apod.)rozdělímnožinu všech Turingových strojů na dvě disjunktní podmnožiny: jedna je množina strojů, které vlastnost V mají, a druhá je množina strojů, které vlastnost V nemají. Vlastnost V je triviální, jestliže je jedna z oněch dvou příslušných množin prázdná(tedy buď všechny stroje vlastnost V mají nebo ji nemá ani jeden). Vlastnost V je netriviální, jestliže ji alespoň jeden stroj má a alespoň jeden stroj nemá. Důkladně jsme si promysleli, co to je vstupně/výstupní vlastnost, zkráceně též I/O vlastnost, Turingovýchstrojů(čiobecně programů ). Speciálně jsme si uvědomili, že vlastnost V není I/O vlastností právě tehdy, když existují dvastroje M 1, M 2,kterémajístejnouI/Otabulku(tedystejnévstupně/výstupníchování), alejedenznichvlastnost V máadruhýjinemá. Probrali jsme si pak(níže uvedené) vlastnosti v řešeném příkladu 7.1. a uvědomili si, které jsou I/O vlastnostmi. Speciálně jsme si všimli, že podle definice je každá triviální vlastnost I/O vlastností. a/zastavíse Mnařetězec001? b/má Mvícenežstostavů? c/mávnějakémpřípaděvýpočetstroje Mvícekrokůnežtisícinásobekdélkyvstupu? d/platí,žeprolibovolné nse M navstupechdélkynejvýše nvícekrátzastavínež nezastaví? e/zastavíse Mnakaždémvstupu wzaméněnež w 2 kroků? f/jepravda,žeprolib.vstupníslovo Mrealizujejehozdvojení? g/jepravda,že Mmánejvýšestostavůnebovícenežstostavů? Pak jsme se zamysleli nad Riceovou větou:

Teoretická informatika průběh výuky v semestru 2 Každá netriviální vstupně/výstupní vlastnost programů je nerozhodnutelná. Důkaz věty. Uvažujme libovolnou netriviální vstupně/výstupní vlastnost V Turingových strojů.nechťstroj M 1,kterýsenezastavínažádnývstup,vlastnost V nemá,anechťjistý stroj M 2 vlastnost V má,nebonaopak;takovédvastroje M 1,M 2 nutněmusíexistovat. Uvažmenyníinstanci M,wproblémuzastavení.Sestrojmeknístroj M,kterýsechová takto: vstup u nejprve ignoruje a simuluje stroj M na w; teprve pokud se tato simulace zastaví(tedy Msezastavína w),tak M pokračujesimulacístroje M 2 navstup u.vidíme: pokud Msezastavína w,tak M mástejnéi/ochování(mástejnoui/otabulku)jako M 2 ;pokudse Mnezastavína w,tak M mástejnéi/ochování(mástejnoui/otabulku) jako M 1.Kdybytedyvlastnost V bylarozhodnutelná,bylbyrozhodnutelnýiproblém zastavení. Složitost algoritmů Připomněli jsme si, že složitostí algoritmů většinou nemyslíme složitost jejich struktury či obtížnost jejich návrhu, ale časovou(či paměťovou) náročnost jimi definovaných výpočtů. Přirozeně jsme navrhli chápat časovousložitostturingovastroje Mjakofunkci T M : N N tak,že T M (n)udávápočetkrokůvýpočtustroje Mnadvstupemvelikosti(tj.délky) nv nejhorším případě(worst-case complexity). Poznámka. O časové složitosti má tedy rozumný smysl hovořit jen u strojů, jejichž(všechny) výpočty jsou konečné. Pakjsmenavrhli(rámcově)Turingůvstroj M 1 přijímající(přechodemdostavu q accept ) právětaslovavabecedě {0,1},kterájsouzjazyka {0 m 1 m m 1}. Jednalo se o standardní jednopáskový Turingův stroj(s jednostranně nekonečnou páskou). Při analýze jeho časové složitosti jsme si připomněli asymptotickounotaci f(n) O(g(n)), f(n) o(g(n)), f(n) Θ(g(n))(včetně běžných funkcí, které se vyskytují při analýze složitosti algoritmů) apřišlinato,žeunašehokonkrétníhostroje M 1 platí T M1 (n) Θ(n 2 ). Pakjsmesezamysleliapřišlinanápad,jaknavrhnout(standardní)stroj M 2 řešícítentýž problém,pronějžjsmeodvodili T M2 (n) Θ(nlogn). Přitom jsme si uvědomili, proč při takové analýze nezáleží na základu logaritmu(který zde bereme jako 2, pokud není řečeno jinak). Pak jsme si ještě všimli, že umíme navrhnout dvoupáskový(či jen dvouhlavý) Turingův stroj M 3,kterýřešívýšeuvedenýproblémapronějžje T M3 (n) Θ(n). Jen letmo jsme zaznamenali jako fakt, že mezi rozumnými výpočetními modely existují(vzájemné) polynomiální simulace,

Teoretická informatika průběh výuky v semestru 3 takže třída PTIME, tedy třída problémů řešitelných polynomiálními algoritmy(tedy algoritmy s časovou složitostí omezenou polynomy), je nezávislá na tom, ve kterém(rozumném) výpočetnímmodelu(tedyvekterém programovacímjazyku )algoritmyrealizujeme. Třída PTIME Připomněli jsme si definici třídy PTIME. Přitom jsem zdůraznil, že všechny problémy ve studijním textu(nejen ty, které jsou v PTIME) je třeba důkladně promyslet pak nemůže být pro nikoho problémem u zkoušky nějaký požadovaný problém přesně definovat a uvést příklady instancí s pozitivní odpovědí a instancí s negativní odpovědí. Dále zmíníme několik obecných metod návrhu polynomiálních algoritmů. Dynamické programování Uvažovali jsme o problému nejdelší společné podposloupnosti ze sekce 10.2.4. Nejprve jsme celkem přímočaře sestrojili rekurzivní proceduru LCS(u, v). Analýzou jsme zjistili, že počet volání LCSpřiřešeníinstance u,v,kde u = v =n,můžebýtvětšínež2 n.navržený algoritmus tedy jistě není polynomiální. Kladli jsme si otázku, zda se nedá navrhnout polynomiální algoritmus řešící uvedený problém. Zlepšení nás napadlo, když jsme si uvědomili, že při rekurzivním řešení se mnohé podpřípady mohou zbytečně řešit vícekrát(nezávisle na sobě). Přitom každý podpřípad stačívyřešitjednouařešenípoznamenatdovhodné tabulky (vnašempřípadědvourozměrného pole). Přitom postupujeme od menších podpřípadů k větším. To je princip tzv. metody dynamického programování. Výsledný algoritmus(také ilustrovaný jednou z animací) už polynomiální očividně je. Jako pěkný příklad dynamického programování jsme zmínili také algoritmus Cocke- Younger-Kasami pro rozhodování příslušnosti k jazyku generovanému bezkontextovou gramatikou. Metoda Rozdělapanuj Připomněli jsme si i tuto obecnou metodu návrhu(efektivních) algoritmů. Naznačili jsme si odvození řešení rekurentních rovnic užitečných při analýze složitosti rekurzivních algoritmů,jakjetoprobránovčásti10.2.2.ilustrovánonamergesortu O(nlogn)anásobení matic:klasickyvo(n 3 )(kde njerozměrmatic),zmíněnasložitoststrassenovaalgoritmu v O(n log 2 7 ). Hltavý(greedy) přístup u optimalizačních problémů Ilustrováno na problému minimální kostry v grafu(kde tento přístup funguje).

Teoretická informatika průběh výuky v semestru 4 Partie textu k prostudování Riceova věta(v části 7.). Složitost algoritmů(8.1., 8.2.). Dynamické programování(10.2.4.), část10.2.2.(metoda rozdělapanuj ). Cvičení Příklad 9.1 Uveďte alespoň tři vlastnosti Turingových strojů, pro něž plyne nerozhodnutelnost z Riceovy věty, a alespoň tři vlastnosti, pro něž nerozhodnutelnost z Riceovy věty neplyne. (Jiné příklady než byly na přednášce.) Příklad 9.2 Připomeňtesi,jaksepoužíváacovyjadřujeznačení O, o,θapřesnějejzadefinujte. Pak seřaďte následující tři funkce podle rychlosti jejich růstu. a/ n/2005, n 3n, n+n logn b/(logn) n, n n,2 n Příklad 9.3 Nechť a,b >1.Ukažte: c: x:log a x=c log b x(tedylog a n Θ(log b n)) a log b n = n log b a (návod:aplikujtenaoběstranyfunkcilog b ) Příklad 9.4 Připomeňte si definici třídy PTIME. Uveďte precizně příklady alespoň dvou problémů z PTIMEaprokažte,žejsouvPTIME. Příklad 9.5 Demonstrujte hltavý přístup při řešení problému minimální kostry v grafu(na rozumném příkladu s několika vrcholy) a ukažte, že se jedná o polynomiální algoritmus.(ideální by bylo, kdybyste také podali argumenty, proč tento přístup vede k optimálnímu řešení.)

Teoretická informatika průběh výuky v semestru 5 Příklad 9.6 Uvažte následující rozhodovací(neboli Ano/Ne) verzi jistého optimalizačního problému: Název: TSP(problém obchodního cestujícího( Ano/ Ne verze)) Vstup:množina měst {1,2,...,n},přir.čísla( vzdálenosti ) d ij (i = 1,2,...,n, j=1,2,...,n);dálečíslo l( limit ). Otázka:existuje okružníjízda dlouhánejvýše l,tj.existujepermutace {i 1,i 2,...,i n } množiny {1,2,...,n}tž. d(i 1,i 2 )+d(i 2,i 3 )+ +d(i n 1,i n )+d(i n,i 1 ) l? Zformulujte přirozenou metodu hltavého přístupu k tomuto problému a zkuste na malém příkladu prokázat, že nemusí vést k optimu. Příklad 9.7 (Nepovinně;doplněníkmetodě rozdělapanuj ) Větaořešenírekurentníchrovnicsedáúvestitakto(mírněobecnějinežjevučebním textu): Nechť a 1, b >1jsoukonstanty, f jefunkce(typu N N,čialespoňasymptoticky kladná)aprofunkci T: N Nplatírekurentnívztah Pak platí: T(n)=aT(n/b)+f(n). 1.Je-li f(n)=o(n c )ac <log b a,pak T(n)=Θ(n log b a ). 2.Je-li f(n)=θ(n log b a ),pak T(n)=Θ(n log b a logn). Obecněji:je-li f(n)=θ(n log b a log k n), k 0,pak T(n)=Θ(n log b a log k+1 n). 3.Je-li f(n)=ω(n c )ac >log b a a a f(n/b) d f(n)pronějaké d <1askorovšechna n(tedyažnakonečněmnoho výjimek), pak T(n)=Θ(f(n)). Ve3.případulzevyvodit,žekdyž f(n)=θ(n c ),tak T(n)=Θ(n c ).(Můžeteověřit.) Pak zjistěte u následujících příkladů, zda se na ně věta vztahuje, a v kladném případě odvoďte řešení. T(n)=3T(n/2)+n 2 T(n)=4T(n/2)+n 2

Teoretická informatika průběh výuky v semestru 6 T(n)=8T(n/2)+n 2 T(n)=7T(n/2)+n 2 T(n)=2T(n/2)+nlogn T(n)=T(n/2)+2 n T(n)=2 n T(n/2)+n