Další partie teorie složitosti. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května / 51

Podobné dokumenty
Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy.

Z. Sawa (VŠB-TUO) Teoretická informatika 18. prosince / 67

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

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

Složitost a moderní kryptografie

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

Problémy třídy Pa N P, převody problémů

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

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

Další NP-úplné problémy

19. a 20. přednáška z kryptografie

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

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

10 Přednáška ze

Výpočetní složitost algoritmů

NP-úplnost problému SAT

Testování prvočíselnosti

TGH12 - Problém za milion dolarů

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

Grafové algoritmy. Programovací techniky

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

YZTI - poznámky ke složitosti

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

H {{u, v} : u,v U u v }

Přijímací zkouška - matematika

5 Orientované grafy, Toky v sítích

Úvod do informatiky. Miroslav Kolařík

Vzdálenost uzlů v neorientovaném grafu

Algoritmy na ohodnoceném grafu

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

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

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

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

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Vrcholová barevnost grafu

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

Jak funguje asymetrické šifrování?

PŘEDNÁŠKA 2 POSLOUPNOSTI

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

1 Linearní prostory nad komplexními čísly

Diskrétní matematika 1. týden

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

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

Matematická logika. Rostislav Horčík. horcik

Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť.

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

10. Složitost a výkon

Složitost Filip Hlásek

Grafové algoritmy. Programovací techniky

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019

12. Aproximační algoritmy

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

Převoditelnost problémů nezávislé množiny na problém hamiltonovského cyklu () IS HC 1/10

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

Definice 1 eulerovský Definice 2 poloeulerovský

Dynamické programování

Algoritmy a výpočetní složitost

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

12. Globální metody MI-PAA

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2015

8 Přednáška z

1 Lineární prostory a podprostory

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

Základy elementární teorie čísel

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

VLASTNOSTI GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze. BI-GRA, LS 2010/2011, Lekce 5

Pravděpodobnostní algoritmy

4EK311 Operační výzkum. 5. Teorie grafů

Markov Chain Monte Carlo. Jan Kracík.

Základy elementární teorie čísel

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML

8. RSA, kryptografie s veřejným klíčem. doc. Ing. Róbert Lórencz, CSc.

+ 2y. a y = 1 x 2. du x = nxn 1 f(u) 2x n 3 yf (u)

Principy indukce a rekursivní algoritmy

Od Turingových strojů k P=NP

7 Ortogonální a ortonormální vektory

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

1. Toky, řezy a Fordův-Fulkersonův algoritmus

Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie

Dnešní látka Variačně formulované okrajové úlohy zúplnění prostoru funkcí. Lineární zobrazení.

Necht L je lineární prostor nad R. Operaci : L L R nazýváme

Použití dalších heuristik

Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča

HEURISTICKÉ ALGORITMY PRO ŘEŠENÍ ÚLOH OBCHODNÍHO CESTUJÍCÍHO

Dijkstrův algoritmus

Úvod do informatiky. Miroslav Kolařík

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2014

Usuzování za neurčitosti

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

Paralelní grafové algoritmy

Úvod do kryptologie. 6. března L. Balková (FJFI ČVUT v Praze) Primality Testing and Factorization 6. března / 41

Úvod. Karel Klouda c KTI, FIT, ČVUT v Praze 18. dubna, letní semestr 2010/2011

9.Cosipočítstěžkýmproblémem

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

Úvod do teorie grafů

TGH08 - Optimální kostry

Transkript:

Další partie teorie složitosti M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 1/ 51

Řešení těžkých problémů Pro mnoho důležitých problémů nejsou známy efektivní algoritmy. Řada těchto problémů je například NP-úplných. Je možné, že pro tyto problémy ani polynomiální algoritmy neexistují amytozatímjenomneumímedokázat. Přesto potřebujeme tyto problémy řešit. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 / 51

Řešení těžkých problémů Pokud chceme řešit nějaký problém, tak v ideálním případě chceme použít k jeho řešení algoritmus, který: Bude polynomiální, tj. rychle skončí pro libovolnou vstupní instanci. Bude korektní, tj. pro libovolnou vstupní instanci najde správnou odpověď. Pokud nevíme, jak takový algoritmus najít, musíme trochu slevit ze svých požadavků. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 3/ 51

Řešení těžkých problémů Obtížné instance versus typické instance Při studiu složitosti problémů zkoumáme většinou složitost v nejhorším případě. Instance, kvůli kterým je problém těžký, mohou být dost odlišné od typických instancí,prokteréchcemeproblémřešit. Při podrobnějším zkoumání problému můžeme nalézt určitou podmnožinu instancí, pro které je možné problém rychle řešit. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 4/ 51

Řešení těžkých problémů Problém batohu Vstup:Číslaa 1,a,...,a m ačíslos. Otázka:Existujepodmnožinamnožinyčísela 1,a,...,a m taková,že součetčíselvtétopodmnožinějes? Poznámka: Jako velikost instance bereme celkový počet bitů v zápisu čísela 1,a,...,a m as. Tento problém je NP-úplný. Neumíme ho v rozumném čase řešit, pokud číslavinstancibudou velká (např.1000-bitová). Pokudjevšakhodnotasmalá(např.do1000000,tj.asi0bitů),je možné tento problém vyřešit během několika sekund i pro relativně velké hodnotym(např.m=10000). M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 5/ 51

Řešení těžkých problémů Problém HORN-SAT Vstup: Booleovská formule ϕ v KNF obsahující pouze Hornovy klauzule. Otázka: Je ϕ splnitelná? Problém HORN-SAT se dá(narozdíl od obecného problému SAT) řešit v polynomiálním čase. Poznámka: Hornova klauzule je klauzule, ve které se nachází nejvýše jeden pozitivní literál. Například( x 1 x x 3 x 4 x 5 )jehornovaklauzule. Všimněte si, že tato klauzule je ekvivalentní formuli (x 1 x x 3 x 4 ) x 5 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 6/ 51

Řešení těžkých problémů Následující problém je rovněž možné řešit v polynomiálním čase: Problém -SAT Vstup: Booleovská formule ϕ v KNF, kde každá klauzule obsahuje nejvýše literály. Otázka: Je ϕ splnitelná? Příklad: (x 1 x ) ( x 1 x ) ( x x 3 ) (x 3 x 4 ) (x x 4 ) M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 7/ 51

Řešení těžkých problémů Exponenciální algoritmy I exponenciální algoritmus může být prakticky použitelný, pokud: Instance, pro které problém chceme řešit, jsou poměrně malé. Složitostjesiceexponenciální,alerostepomalejinež n. Algoritmus je co nejoptimálněji naprogramován. Příklad: f(n)=(1.) n pron=100jef(n) 86 10 6. f(n)=10 n pron=300jef(n) 1.64 10 6. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 8/ 51

Řešení těžkých problémů Menší požadavky na korektnost Randomizované algoritmy algoritmy, které využívají při výpočtu generátor náhodných čísel. Existuje určitá nenulová pravděpodobnost, že algoritmus vrátí chybný výsledek. Prolibovolněmalé ε >0jsmevšakschopnizaručit,že pravděpodobnost chyby není větší než ε. Aproximační algoritmy používají se pro řešení optimalizačních problémů. U těchto algoritmů není zaručeno, že naleznou optimální řešení, ale je zaručeno, že naleznou řešení, které nebude o moc horší než optimální řešení(např. nanejvýš horší). M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 9/ 51

Testování prvočíselnosti Prvočíselnost Vstup: Přirozené číslo p. Otázka: Je p prvočíslo? Pro malá p(např.do10 1 )stačívyzkoušetčíslaoddo p,zda některéznichdělíp. Tento problém má velký význam v kryptografii, kde ho potřebujeme řešit pro čísla, která mají délku několik tisíc bitů. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 10/ 51

Testování prvočíselnosti To, zda je možné testovat prvočíselnost v polynomiálním čase, byl dlouho otevřený problém. Vroce00sepodařilonajítpolynomiálníalgoritmussesložitostíO(n 1 ) (N. Saxona, M. Agrawal, N. Kayal). PozdějisehopodařilozlepšitnaO(n 8 ),alepropraktickéúčelyjestále nepoužitelný. VpraxisepoužívajírandomizovanéalgoritmysesložitostíO(n 3 ): Miller-Rabin(1976) Solovay-Strassen(1977) Poznámka: n zde označuje počet bitů čísla p. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 11/ 51

Testování prvočíselnosti S problémem testování prvočíselnosti úzce souvisí následující problém. Faktorizace Vstup: Přirozené číslo p. Výstup: Rozklad čísla p na prvočísla. Na rozdíl od prvočíselnosti není pro problém faktorizace znám žádný efektivní algoritmus, a to ani randomizovaný. Jedna z používaných šifer je tzv. RSA kryptosystém, který je založen na tom, že: Umíme rychle najít velká prvočísla(a rychle je mezi sebou vynásobit). Není známo, jak v rozumném čase z tohoto součinu zjistit původní prvočísla. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 1/ 51

Testování prvočíselnosti Poznámka: Pokud umíme rychle testovat, zda je dané číslo prvočíslem, není problém velké prvočíslo náhodně vygenerovat, neboť je známo, že prvočíslajsoumeziostatnímičíslyrozmístěnapoměrně hustě. π(n) početprvočíselvintervalu1,,...,n Je dokázáno, že lim n π(n) n/lnn =1 nebolijinakřečeno,mezičíslyod1donjezhruban/lnnprvočísel. Pokud tedy chceme náhodně vygenerovat k-bitové prvočíslo, stačí zhruba kpokusů. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 13/ 51

Randomizované algoritmy Randomizovaný algoritmus: používá během výpočtu generátor náhodných čísel může pro tentýž vstup skončit s různým výsledkem existuje určitá pravděpodobnost, že vrátí chybný výsledek Aby měl randomizovaný algoritmus praktický smysl, musíme mít možnost regulovat pravděpodobnost chyby: Prolibovolněmalé ε >0musímebýtschopnizaručit,že pravděpodobnost chyby nebude větší než ε. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 14/ 51

Randomizované algoritmy Vezměme si například algoritmus Miller-Rabin pro testování prvočíselnosti. Prolibovolnénvracíbuďodpověď Prvočíslo neboodpověď Složené. Pokudnjeprvočíslo,vrátívždyodpověď Prvočíslo. Pokud n je číslo složené, je pravděpodobnost toho, že vrátí odpověď Složené nejméně50%. Můževšakvrátit(chybnou)odpověď Prvočíslo. Algoritmus můžeme spouštět opakovaně. Výsledek při dalším spuštění je nezávislý na výsledcích z předchozích spuštění. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 15/ 51

Randomizované algoritmy Řekněme, že algoritmus spustíme m krát(pro tentýž vstup n). Pokudalespoňjednoudostanemeodpověď Složené,pakvíme sjistotou,ženječíslosložené. Pokudpokaždédostanemeodpověď Prvočíslo,pak pravděpodobnost toho, že n není prvočíslo je maximálně ( ) 1 m = m Například pro m = 100 je pravděpodobnost chyby zanedbatelně malá. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 16/ 51

Randomizované algoritmy Poznámka: Lze například odvodit, že pravděpodobnost toho, že počítač budezasaženběhemdanémikrosekundymeteoritem,jenejméně 100 za předpokladu,žekaždých1000letjemeteoritemzničenoalespoň100m zemského povrchu. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 17/ 51

Randomizované algoritmy Randomizované algoritmy jsou typicky založeny na hledání svědků (witness),kteří dosvědčí určitouodpověďvydanoualgoritmem. Tyto svědky vybíráme z množiny potenciálních svědků: Náhodně vybereme nějakého potenciálního svědka. Ověříme, zda se jedná o skutečného svědka, a podle toho vydáme odpověď. Například v algoritmu Miller-Rabin hledáme svědky složenosti čísla n. Vybírámejezmnožinyčísel {,3,...,n 1}: Pokud n je prvočíslo, žádní svědci složenosti neexistují. Pokud n není prvočíslo, je zaručeno, že alespoň polovina čísel vmnožině {,3,...,n 1}jsousvědcisloženostin. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 18/ 51

Testování prvočíselnosti Malá Fermatova věta: Pokudnjeprvočíslo,pakprokaždéazmnožiny {1,,...,n 1}platí a n 1 1 (modn) Malou Fermatovu větu lze použít k testování prvočíselnosti(tzv. Fermatův test): Prodanénzvolímenějakéa {,3,...,n 1}. Pokuda n 1 1(modn),paknurčitěneníprvočíslo. Pokuda n 1 1(modn),paknjemožnáprvočíslo. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 19/ 51

Testování prvočíselnosti Je překvapivé, že tato procedura vrací chybný výsledek jen poměrně zřídka: Proa=an <10000jejenhodnot,prokterédostaneme chybnou odpověď. Proa=an sepravděpodobnosttoho,žepronáhodně vybrané n dostaneme chybnou odpověď, blíží nule. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 0/ 51

Testování prvočíselnosti Fermatův test není 100% spolehlivý. Existují složená čísla, která splňují podmínkua n 1 1(modn)provšechnaa {1,,...,n 1}nesoudělná sn. Tato čísla se nazývají Carmichaelova čísla a jsou extrémně vzácná. Napříkladmezičíslydo10 8 existujejen55carmichaelovýchčísel. Prvních 15 Carmichaelových čísel: 561, 1105, 179, 465, 81, 6601, 8911, 10585, 15841, 9341, 41041, 46657, 5633, 6745, 63973 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 1/ 51

Umocňování v modulární aritmetice Problém Vstup: Přirozená čísla a, b, n. Výstup:Hodnotaa b modn. Využijemetoho,žea i =a i a i aa i+1 =a i a i a. Modular-Exponentiation(a, b, n) 1 d 1 b k,b k 1,...,b 0 jebinárníreprezentaceb 3 fori kdownto0 4 dod (d d)modn 5 ifb i =1 6 thend (d a)modn 7 returnd M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 / 51

Testování prvočíselnosti(miller-rabin) Na umocňování je založen i následující algoritmus pro testování prvočíselnosti: Miller-Rabin(n,s) 1 forj 1tos doa Random(,n 1) 3 if Witness(a, n) 4 thenreturn Složené njezcelajistěsložené. 5 return Prvočíslo njesvelkoupravděpodobnostíprvočíslo. Využívá malou Fermatovu větu a toho, že platí následující tvrzení: Jestližepjelichéprvočíslo,pakrovnicex 1(modp)máprávědvě řešení:x=1ax=p 1. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 3/ 51

Testování prvočíselnosti(miller-rabin) Witness(a, n) 1 d 1 b k,b k 1,...,b 0 jebinárníreprezentacen 1 3 fori kdownto0 4 dox d 5 d (d d)modn 6 ifd=1andx 1andx n 1 7 then return true 8 ifb i =1 9 thend (d a)modn 10 ifd 1 11 then return true 1 returnfalse M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 4/ 51

Randomizované algoritmy Množina potenciálních svědků bývá obrovská většinou exponenciálně velká Poznámka: Kdyby byla polynomiálně velká mohli bychom systematicky projít všechny potenciální svědky a nepotřebovali bychom randomizovaný algoritmus. Musí být zaručeno, že pokud nějací skuteční svědci existují, pak jich je dostatečně mnoho, čímž je zaručeno, že pravděpodobnost, že na nějakého svědka narazíme, je dostatečně vysoká. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 5/ 51

Aproximační algoritmy Mnoho důležitých problémů je NP-úplných. U optimalizačních problémů často nepotřebujeme nalézt nejoptimálnější řešení, ale stačí nám řešení, kteréje dostatečnědobré. Algoritmům,kterévracítakováto dostatečnědobrá řešení,seříká aproximační algoritmy. Poznámka: Optimalizační problém je problém, kde pro každý vstup w mámedefinovánumnožinus w všechpřípustnýchřešeníafunkci c:s w R +. Úkolemjenajíttakovéx S w,prokteréjehodnotac(x)minimální (resp. maximální). Příklady: Hledání nejkratší cesty v grafu, určování maximálního toku v síti. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 6/ 51

Aproximační algoritmy Řekněme, že řešíme problém, kde je úkolem hodnotu c(x) minimalizovat. Řekněme, že pro vstup w vydá algoritmus řešení x, přičemž optimálním řešenímjex.zjevněplatíc(x) c(x ). Jako aproximační poměr daného algoritmu označujeme funkci ρ(n), která každémunpřiřazujemaximálníhodnotupoměruc(x)/c(x )provšechny vstupy velikosti n. Poznámka: Naopak u algoritmu, kde je cílem hodnotu c(x) maximalizovat,bychomuvažovalipoměrc(x )/c(x). M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 7/ 51

Aproximační algoritmy O algoritmu, který dosahuje aproximačního poměru ρ(n), říkáme, že je to ρ(n)-aproximační algoritmus. Pro řadu problémů jsou známy polynomiální algoritmy, kde je hodnota ρ(n) omezena: malou konstantou, např. -aproximační algoritmy, nebo pomalu rostoucí funkcí, např. Θ(log n)-aproximační algoritmy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 8/ 51

Vrcholové pokrytí grafu Mějme neorientovaný graf G =(V, E). Vrcholové pokrytí(vertex-cover) grafugjemnožinac Vtaková,žeprokaždouhranu(u,v) Eplatí, žebuďu Cnebov C. Úkolem je najít pro zadaný graf minimální vrcholové pokrytí. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 30/ 51

Vrcholové pokrytí grafu Mějme neorientovaný graf G =(V, E). Vrcholové pokrytí(vertex-cover) grafugjemnožinac Vtaková,žeprokaždouhranu(u,v) Eplatí, žebuďu Cnebov C. Úkolem je najít pro zadaný graf minimální vrcholové pokrytí. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 30/ 51

Vrcholové pokrytí grafu Máme tedy vyřešit následující problém: Minimální vrcholové pokrytí grafu(vertex cover) Vstup:NeorientovanýgrafG=(V,E). Výstup: Minimalní množina C(C V) tvořící vrcholové pokrytí grafug. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 31/ 51

Vrcholové pokrytí grafu Máme tedy vyřešit následující problém: Minimální vrcholové pokrytí grafu(vertex cover) Vstup:NeorientovanýgrafG=(V,E). Výstup: Minimalní množina C(C V) tvořící vrcholové pokrytí grafug. Následující(rozhodovací) varianta tohoto problému je NP-úplná: Vrcholové pokrytí(vertex cover) Vstup:NeorientovanýgrafG=(V,E)apřirozenéčíslok. Otázka: Existuje vrcholové pokrytí grafu G tvořené k vrcholy? Tento problém tedy není možné řešit v polynomiálním čase(leda by platilo PTIME=NPTIME). M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 31/ 51

Vrcholové pokrytí grafu Máme tedy vyřešit následující problém: Minimální vrcholové pokrytí grafu(vertex cover) Vstup:NeorientovanýgrafG=(V,E). Výstup: Minimalní množina C(C V) tvořící vrcholové pokrytí grafug. Existuje však -aproximační algoritmus řešící tento problém: Algoritmus najde pro zadaný graf G vrcholové pokrytí C takové, že C k kde k je velikost minimálního vrcholového pokrytí grafu G. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 31/ 51

Vrcholové pokrytí grafu Approx-Vertex-Cover(G) 1 C E E 3 whilee 4 dovyberlibovolnouhranu(u,v)ze 5 C C {u,v} 6 odstraňze hranyincidentnísunebov 7 returnc M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 33/ 51

Vrcholové pokrytí grafu Approx-Vertex-Cover(G) 1 C E E 3 whilee 4 dovyberlibovolnouhranu(u,v)ze 5 C C {u,v} 6 odstraňze hranyincidentnísunebov 7 returnc M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 33/ 51

Vrcholové pokrytí grafu Approx-Vertex-Cover(G) 1 C E E 3 whilee 4 dovyberlibovolnouhranu(u,v)ze 5 C C {u,v} 6 odstraňze hranyincidentnísunebov 7 returnc M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 33/ 51

Vrcholové pokrytí grafu Approx-Vertex-Cover(G) 1 C E E 3 whilee 4 dovyberlibovolnouhranu(u,v)ze 5 C C {u,v} 6 odstraňze hranyincidentnísunebov 7 returnc M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 33/ 51

Vrcholové pokrytí grafu Approx-Vertex-Cover(G) 1 C E E 3 whilee 4 dovyberlibovolnouhranu(u,v)ze 5 C C {u,v} 6 odstraňze hranyincidentnísunebov 7 returnc M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 33/ 51

Vrcholové pokrytí grafu Tvrzení Approx-Vertex-Cover je polynomiální -aproximační algoritmus. Důkaz: Označme A množinu všech hran vybraných v kroku 4, C vrcholové pokrytínalezenéalgoritmemac minimálnívrcholovépokrytígrafug. Jakékoliv vrcholové pokrytí musí obsahovat alespoň jeden z koncových vrcholůkaždéhranyza. ProlibovolnévrcholovépokrytíC tedyplatí A C. SpeciálněproC tedytakémusíplatit A C. Nadruhoustranu,zjevněplatí C = A. Dohromadytedydostáváme C C. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 34/ 51

Problém obchodního cestujícího(tsp) Problém obchodního cestujícího(tsp) Vstup: Množina n měst a vzdálenosti mezi nimi. Výstup: Nejkratší okružní cesta procházející všemi městy. Poznámka:Slovem okružní myslíme,žecestakončívestejnémměstě, kde začíná. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 35/ 51

Problém obchodního cestujícího(tsp) Příklad instance problému: 1 1 3 3 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 36/ 51

Problém obchodního cestujícího(tsp) Příklad instance problému: 1 1 3 3 3 Nejkratší okružní cesta má délku 8. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 36/ 51

Problém obchodního cestujícího(tsp) Můžeme uvažovat dvě různé varianty tohoto problému: Každé město musí být navštíveno právě jednou. Města je možné navštěvovat opakovaně. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 37/ 51

Problém obchodního cestujícího(tsp) V následujícím výkladu se nám bude hodit poněkud formálnější definice problému: Na instanci problému(tj. množinu měst a vzdálenosti mezi nimi) se můžemedívatjakonaúplnýneorientovanýgrafg=(v,e) sohodnocenímhrand(kded:e N). ProlibovolnoumnožinuhranE Edefinujeme d(e )= e E d(e) ProlibovolnýcyklusHpakdefinujemed(H)=d(E ),kdee jemnožina hran ležících na cyklu H. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 38/ 51

Problém obchodního cestujícího(tsp) Problém TSP pak můžeme formulovat následovně: Problém obchodního cestujícího(tsp) Vstup:ÚplnýneorientovanýgrafG=(V,E)sohodnocenímhrand. Výstup: Cyklus H procházející všemi vrcholy grafu G takový, že hodnota d(h) je minimální možná. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 39/ 51

Problém obchodního cestujícího(tsp) Následující problém je NP-úplný(ať už je či není povoleno navštěvovat vrcholy opakovaně): Problém obchodního cestujícího(tsp) rozhodovací varianta Vstup:ÚplnýneorientovanýgrafG=(V,E)sohodnocenímhrand ačíslol. Otázka: Existuje v grafu G cyklus H procházející všemi vrcholy takový,žed(h) L? Poznámka:Nemůžemetedyočekávat,žebyproblémTSP(aťužvtéči onévariantě)bylřešitelnývpolynomiálnímčase,ledažebyplatilop=np. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 40/ 51

Problém obchodního cestujícího Pro problém TSP, kde vyžadujeme aby byl každý vrchol navštíven právě jednou, se dá dokázat následující: Věta PokudP NP,pakprožádnoukonstantu ρ 1neexistujepolynomiální ρ-aproximační algoritmus řešící problém obchodního cestujícího. Důkaz: Předpokládejme, že by pro nějaké ρ takový algoritmus existoval. Ukážeme, že pak by existoval polynomiální algoritmus pro problém Hamiltonovské kružnice. Problém Hamiltonovské kružnice je NP-úplný, nalezení polynomiálního algoritmubyznamenalo,žep=np. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 41/ 51

Problém obchodního cestujícího NechťG=(V,E)jeinstanceproblémuHamiltonovskékružnice. InstanciproblémuobchodníhocestujícíhoG =(V,E )sestrojímetak,že V =VaE obsahujevšechnymožnéhrany,kterýmpřiřadímeohodnocení { 1 pokud(u,v) E d(u,v)= ρ V +1 jinak JestližegrafGobsahujeHamiltonovskoukružnici,pakvG existuje okružní cesta délky V. JakákolivokružnícestavG,kteráobsahujehranu,kteránenívG,má délkuvětšínež ρ V. Pokud v G Hamiltonovská kružnice existuje, ρ-aproximační algoritmus musí nějakou takovou kružnici vrátit jako výslednou okružní cestu. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 4/ 51

Problém obchodního cestujícího(tsp) Není těžké si rozmyslet, že varianta TSP kde je povoleno opakovaně navštěvovat vrcholy se dá snadno převést na variantu, kde musí být každý vrchol navštíven právě jednou: ProdanýgrafGsohodnocenímdsestrojímenovéohodnoceníd, kded (u,v)jedélkanejkratšícestyzudov Poznámka: Pro nalezení nejkratších cest mezi dvojicemi vrcholů existují rychlé polynomiální algoritmy(např. Dijkstrův, Floydův-Warshallův apod.) Grafsohodnocenímd navícsplňujetzv.trojúhelníkovounerovnost. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 43/ 51

Problém obchodního cestujícího(tsp) V grafu G s ohodnocením d je splněna trojúhelníková nerovnost, jestliže prolibovolnoutrojicijehovrcholůu,v,wplatí d(u,w) d(u,v)+d(v,w) v d(u, v) d(v, w) u d(u, w) w Tj.nejkratšícestazudowjevždypohraně(u,w)anemácenujít oklikou přesnějakýjinývrchol. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 44/ 51

Problém obchodního cestujícího(tsp) Variantu TSP, ve které se omezujeme pouze na instance, ve kterých je splněna trojúhelníková nerovnost(a kde musí být každý vrchol navštíven právě jednou), označujeme -TSP. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 45/ 51

Problém obchodního cestujícího(tsp) Variantu TSP, ve které se omezujeme pouze na instance, ve kterých je splněna trojúhelníková nerovnost(a kde musí být každý vrchol navštíven právě jednou), označujeme -TSP. Pro problém -TSP je znám 1.5-aproximační polynomiální algoritmus, tj.algoritmus,kterýprodanýgrafgsohodnocenímdvrátícyklush procházející všemi vrcholy takový, že d(h) 1.5 d(h ) kdeh optimálnířešení(tj.cyklussminimálníhodnotoud(h )). M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 45/ 51

Problém obchodního cestujícího(tsp) Variantu TSP, ve které se omezujeme pouze na instance, ve kterých je splněna trojúhelníková nerovnost(a kde musí být každý vrchol navštíven právě jednou), označujeme -TSP. Pro problém -TSP je znám 1.5-aproximační polynomiální algoritmus, tj.algoritmus,kterýprodanýgrafgsohodnocenímdvrátícyklush procházející všemi vrcholy takový, že d(h) 1.5 d(h ) kdeh optimálnířešení(tj.cyklussminimálníhodnotoud(h )). My si ukážeme poněkud jednodušší -aproximační polynomiální algoritmus pro problém -TSP. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 45/ 51

Problém obchodního cestujícího(tsp) Před vlastním popisem algoritmu si připomeňme některé pojmy: KostragrafuG=(V,E)jelibovolnýsouvislýacyklickýgrafT=(V,E ), kdev=v ae E(tj.TjesouvislýpodgrafgrafuGobsahující všechnyvrcholyzg). Hodnotu d(t) definujeme jako součet hodnot hran v této kostře, tj.d(t)=d(e ). KostraTjeminimální,jestližeprolibovolnoujinoukostruT vgrafug platíd(t) d(t ). Pro problém nalezení minimální kostry v daném ohodnoceném grafu jsou známy rychlé polynomiální algoritmy(např. Kruskalův nebo Jarníkův (Primův)). M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 46/ 51

Problém obchodního cestujícího(tsp) PříkladkostryT,kded(T)=8: 1 1 3 3 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 47/ 51

Problém obchodního cestujícího(tsp) PříkladminimálníkostryT,kded(T)=6: 1 1 3 3 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 47/ 51

Problém obchodního cestujícího(tsp) -aproximační algoritmus pro -TSP pracuje v následujících krocích: Najde minimální kostru grafu G. Vytvoří uzavřený tah podél této kostry. Z vytvořeného tahu odstraní opakující se vrcholy a výsledný cyklus vrátí jako výsledek. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 48/ 51

Problém obchodního cestujícího(tsp) Vezměme si následující instanci -TSP. 1 1 3 3 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 49/ 51

Problém obchodního cestujícího(tsp) Krok 1: Nalezení minimální kostry T 1 1 3 3 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 49/ 51

Problém obchodního cestujícího(tsp) Všimněmesi,žed(T) <d(h ): PokudzH odstranímelibovolnouhranu,dostanemekostrut. Zjevněplatíd(T ) <d(h ). ProlibovolnoukostruT platíd(t) d(t ). M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 50/ 51

Problém obchodního cestujícího(tsp) Příklad: Vezměme si optimální cyklus 1 1 3 3 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 51/ 51

Problém obchodního cestujícího(tsp) Příklad: Odstraněním jedné hrany vznikne kostra 1 1 3 3 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 51/ 51

Problém obchodního cestujícího(tsp) Krok 1: Nalezení minimální kostry 1 1 3 3 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 51/ 51

Problém obchodního cestujícího(tsp) Krok : Vytvoření tahu H podél kostry 1 1 3 3 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 51/ 51

Problém obchodního cestujícího(tsp) Krok : Vytvoření tahu H podél kostry 1 1 3 3 3 Každouhranuprocházímedvakrát,platítedyd(H)=d(T) <d(h ). M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 51/ 51

Problém obchodního cestujícího(tsp) Krok : Vytvoření tahu H podél kostry 1 1 3 3 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 51/ 51

Problém obchodního cestujícího(tsp) Každé vypuštění vrcholu tah leda zkrátí. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 51/ 51 Krok 3: Postupné vypouštění opakujících se vrcholů z tahu H 1 1 3 3 3

Problém obchodního cestujícího(tsp) Každé vypuštění vrcholu tah leda zkrátí. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 51/ 51 Krok 3: Postupné vypouštění opakujících se vrcholů z tahu H 1 1 3 3 3

Problém obchodního cestujícího(tsp) Každé vypuštění vrcholu tah leda zkrátí. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 51/ 51 Krok 3: Postupné vypouštění opakujících se vrcholů z tahu H 1 1 3 3 3

Problém obchodního cestujícího(tsp) Nalezený cyklus: 1 1 3 3 3 M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 30. května 007 51/ 51