12. Aproximační algoritmy



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

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

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

Tento text je stručným shrnutím těch tvrzení Ramseyovy teorie, která zazněla

Aproximativní algoritmy UIN009 Efektivní algoritmy 1

GRAFY A GRAFOVÉ ALGORITMY

Funkce zadané implicitně

PROBLÉM ČTYŘ BAREV. Lze obarvit jakoukoliv mapu v rovině čtyřmi barvami tak, aby žádné dvě sousedící oblasti neměly stejnou barvu?

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

8. Geometrie vrací úder (sepsal Pavel Klavík)

10 Přednáška ze

DYNAMICKÉ PROGRAMOVÁNÍ A PROBLÉM BATOHU

Univerzita Karlova v Praze Matematicko-fyzikální fakulta. Vedoucí práce: RNDr. Martin Pergel, Ph.D.

3. Středoškolská stereometrie v anaglyfech

1. Minimální kostry Od mìsteèka ke kostøe

13. Třídící algoritmy a násobení matic

Na začátku rozdělíme práci a určíme, které podproblémy je potřeba vyřešit. Tyto

Další NP-úplné problémy

Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech.

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ýpočetní složitost I

2 Spojité modely rozhodování

0. Lineární rekurence Martin Mareš,

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

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

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

Mária Sadloňová. Fajn MATIKA. 150 řešených příkladů (vzorek)

Jarníkův algoritmus. Obsah. Popis

Často potřebujeme hledat mezi dvěma vrcholy grafu cestu, která je v nějakém

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.

BAKALÁŘSKÁ PRÁCE. Numerické metody jednorozměrné minimalizace

Determinant. Definice determinantu. Permutace. Permutace, vlastnosti. Definice: Necht A = (a i,j ) R n,n je čtvercová matice.

Výpočetní složitost algoritmů

TVORBA VÝROBNÍ DOKUMENTACE CV

8 Přednáška z

FAKULTA STAVEBNÍ MATEMATIKA II MODUL 2 STUDIJNÍ OPORY PRO STUDIJNÍ PROGRAMY S KOMBINOVANOU FORMOU STUDIA

Vrcholová barevnost grafu

Jak pracovat s absolutními hodnotami

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

a jiné elektronické přístroje včetně mobilů. Pracujte samostatně. Povolen je 1 list A4 vlastnoručně psaných poznámek k předmětu...

Téma je podrobně zpracováno ve skriptech [1], kapitola

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

Umělá inteligence I. Roman Barták, KTIML.

Cvičení 5 z předmětu CAD I PARAMETRICKÉ 3D MODELOVÁNÍ ODLITKU - OBROBKU

Euklidovský prostor Stručnější verze

a jiné elektronické přístroje včetně mobilů. Pracujte samostatně. Povolen je 1 list A4 vlastnoručně psaných poznámek k předmětu...

Binární vyhledávací stromy II

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů

2. RBF neuronové sítě

Jan Pavĺık. FSI VUT v Brně

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

13. Lineární programování

STATISTICA Téma 8. Regresní a korelační analýza, regrese prostá

Definice 1 eulerovský Definice 2 poloeulerovský

Jan Březina. 7. března 2017

Anotace. Dynamické programování, diskrétní simulace.

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:

(ne)závislost. α 1 x 1 + α 2 x α n x n. x + ( 1) x Vektoru y = ( 1) y říkáme opačný vektor k vektoru y. x x = 1. x = x = 0.

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

TGH12 - Problém za milion dolarů

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

(Auto)korelační funkce Statistické vyhodnocování exp. dat M. Čada ~ cada

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

Přijímací zkouška - matematika

ROTAČNÍ KVADRIKY. Definice, základní vlastnosti, tečné roviny a řezy, průsečíky přímky s rotační kvadrikou

Kombinatorický předpis

Teoretická rozdělení

4 Pojem grafu, ve zkratce

Západočeská univerzita v Plzni. Fakulta aplikovaných věd Katedra matematiky. Geometrie pro FST 1. Pomocný učební text

Matice se v některých publikacích uvádějí v hranatých závorkách, v jiných v kulatých závorkách. My se budeme držet zápisu s kulatými závorkami.

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov

5 Rekurze a zásobník. Rekurzivní volání metody

Semestrální práce z předmětu KMA/MM. Voroneho diagramy

5.3. Implicitní funkce a její derivace

Kreslení grafů na plochy Tomáš Novotný

Složitost a NP-úplnost

10 Podgrafy, isomorfismus grafů

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

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky

Edita Kolářová ÚSTAV MATEMATIKY

Úvod do informatiky. Miroslav Kolařík

Spojitost funkcí více proměnných

Algoritmizace I. Ak. rok 2015/2016 vbp 1. ze 132

Přehled učiva matematiky 7. ročník ZŠ

Problém batohu. Zdeněk Hanzálek ČVUT FEL Katedra řídicí techniky. 5. dubna 2011

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu

Geometrie v rovině 1

Dynamické programování

= 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

a n (z z 0 ) n, z C, (1) n=0

Plánování úloh na jednom stroji

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

Úvod do mobilní robotiky AIL028

Funkce více proměnných. April 29, 2016

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

Mgr. Karel Pazourek. online prostředí, Operační program Praha Adaptabilita, registrační číslo CZ.2.17/3.1.00/31165.

které je z různých pohledů charakterizují. Několik z nich dokážeme v této kapitole.

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Transkript:

12. Aproximační algoritmy (F.Haško,J.enda,.areš, ichal Kozák, Vojta Tůma) Na minulých přednáškách jsme se zabývali různými těžkými rozhodovacími problémy. Tato se zabývá postupy, jak se v praxi vypořádat s řešením těchto problémů. Co dělat, když potkáme NP-úplný problém 1. Nepanikařit. 2.Spokojitsesmálem. 3. Rozmyslet, jestli opravdu potřebujeme obecný algoritmus. nohdy potřebujeme pouze speciálnější případy, které mohou být řešitelné v polynomiálním čase. 4. Spokojit se s přibližným řešením,(použít aproximační algoritmus). 5. Použít heuristiku například genetické algoritmy nebo randomizované algoritmy. Velmi pomoci může i jen výhodnější pořadí při prohledávání či ořezávání některých napohled nesmyslných větví výpočtu. První způsob: Speciální případ Často si vystačíme s vyřešením speciálního případu NP-úplného problému, který leží v P.Napříkladpřiřešenígrafovéúlohynámmůžestačitřešeníprospeciálnídruh grafů(stromy,bipartitnígrafy,...).barvenígrafujelehkénapř.prodvěbarvyči pro intervalové grafy. 2-SAT, jako speciální případ SATu, se dá řešit v lineárním čase. Ukážeme si dva takové případy(budeme řešení hledat, nejen rozhodovat, zda existuje) Problém: aximální nezávislá množina ve stromě(ne rozhodovací) Vstup: Zakořeněný strom T. Výstup: aximální(co do počtu vrcholů) nezávislá množina vrcholů v T. BÚNOmůžemepředpokládat,ževjsouvšechnylisty T.Pokudbyněkterýlist l v nebyl,taksepodívámenajehootce: Pokudotecnenív,taklist lpřidámedo,čímžsenezávislostmnožiny zachovala a velikost stoupla o 1. Pokudtamotecje,takhoz vyjmemeanamístoněhovložíme l. Nezávislost ani velikost se nezměnily. NynílistyspolusjejichotcizTodeberemeapostupopakujeme. Tsemůžerozpadnoutnales,aletonevadí tentýžpostupaplikujemenavšechnystromyvlese. Algoritmus: axnz(t) 1. Položíme L:={listy stromu T }. 2. Položíme O:={otcové vrcholů z L}. 3.Vrátíme L axnz(t \(O L)). Poznámka: Toto dokážeme naprogramovat v O(n)(udržujeme si frontu listů). 1 2010-02-12

Problém: Batoh Jedanámnožina npředmětůshmotnostmi h 1,...,h n acenami c 1,...,c n abatoh, který unese hmostnost H. Najděte takovou podmnožinu předmětů, jejichž celková hmotnost je maximálně H a celková cena je maximální možná. Tento problém je zobecněním problému batohu z minulé přednášky dvěma směry: Jednak místo rozhodovacího problému řešíme optimalizační, jednak předměty mají ceny(předchozí verze odpovídala tomu, že ceny jsou rovny hmotnostem). Ukážeme si algoritmus pro řešení tohoto obecného problému, jehož časová složitost bude polynomiálnívpočtupředmětů nasoučtuvšechcen C= i c i. Použijeme dynamické programování. Představme si problém omezený na prvních k předmětů.označmesi A k (c)(kde0 c C)minimálníhmotnostpodmnožiny,jejíž cenajeprávě c.tato A k spočtemeindukcípodle k:pro k=0jeurčitě A 0 (0)=0, A 0 (c)=inftypro c >0.Pokudjižznáme A k 1,spočítáme A k následovně: A k (c) odpovídánějaképodmnožiněpředmětůz1,...,k.vtétopodmnožinějsmebuďto k-týpředmětnepoužili(apakje A k (c) = A k 1 (c)), nebopoužiliatehdybude A k (c)=a k 1 (c c k )+h k (tosamozřejmějenpokud c c k ).Ztěchtodvoumožností si vybereme tu, která dává množinu s menší hmotností. Tedy: A k (c)=min(a k 1 (c), A k 1 (c c k )+h k ). Tímtozpůsobemvčase O(C)spočteme A k (c)profixní kavšechna c,včase O(nC) pakvšechny A k (c). Podle A n snadnonaleznememaximálnícenumnožiny,kterásevejdedobatohu.to budenejvětší c,proněžje A n (c ) H.Jehonalezenínásstojíčas O(C). A jak zjistit, které předměty do nalezené množiny patří? Upravíme algoritmus, aby siprokaždé A k (c)pamatoval B k (c),cožbudeindexposledníhopředmětu,který jsmedopříslušnémnožinypřidali.pronalezené c tedybude i=b n (c )poslední předmětvnalezenémnožině, i = B i 1 (c c i )tenpředposledníatakdále.takto v čase O(n) rekonstruujeme celou množinu od posledního prvku k prvnímu. Ukázali jsme tedy algoritmus s časovou složitostí O(nC), který vyřeší problém batohu. Jeho složitost není polynomem ve velikosti vstupu(c může být až exponenciálně velké vzhledem k velikosti vstupu), ale pouze ve velikosti čísel na vstupu. Takovým algoritmům se říká pseudopolynomiální. Ani takové algoritmy ale nejsou k dispozici pro všechny problémy(např. u problému obchodního cestujícího nám vůbec nepomůže, že váhy hran budou malá čísla). Verzebezcen:Naverziscenamirovnýmihmotnostemsedápoužítijinýalgoritmus založenýnadynamickémprogramování:počítámemnožiny Z k obsahujícívšechny hmotnosti menší než H, kterých nabývá nějaká podmnožina prvních k prvků. Přitom Z 0 = {0}, Z k spočtemeze Z k 1 udržujmesi Z k 1 jakosetříděnýspojovýseznam, výpočetdalšíhoseznamuudělámeslitímdvouseznamů Z k 1 a Z k 1 sevšemiprvky zvýšenýmiohmotnost kzahazujíceduplicitníapřílišvelkéhodnoty aze Z n vyčteme výsledek. Všechny tyto množiny mají nejvýše H prvků, takže celková časová složitost algoritmu je O(nH). 2 2010-02-12

Druhý způsob: Aproximace V předcházejících problémech jsme se zaměřili na speciální případy. Občas však takové štěstí nemáme a musíme vyřešit celý NP-úplný problém. ůžeme si však pomoct tím, že se ho nebudeme snažit vyřešit optimálně namísto optimálního řešení najdeme nějaké, které je nejvýše c-krát horší pro nějakou konstantu c. Problém: Obchodní cestující Vstup:Neorientovanýgraf G,každáhranajeohodnocenáfunkcí w: E(G) Ê+ 0. Výstup: Hamiltonovská kružnice(obsahující všechny vrcholy grafu), a to ta nejkratší (podle ohodnocení). Tento problém je hned na první pohled náročný už sama existence hamiltonovské kružnice je NP-úplná. Najdeme aproximační algoritmus nejprve za předpokladu, že vrcholy splňují trojúhelníkovou nerovnost(tj. x, y, z V : w(xz) w(xy)+w(yz)), potom ukážeme, že v úplně obecném případé by samotná existence aproximačního algoritmu implikovala P = NP. a) trojúhelníková nerovnost: Existuje pěkný algoritmus, který najde hamiltonovskou kružnici o délce 2 opt, kde opt je délka nejkratší hamiltonovské kružnice. Vedle předpokladu trojúhelníkové nerovnosti budeme potřebovat, aby náš graf byl úplný. Souhrnně můžeme předpokládat, že úlohu řešíme v nějakém metrickém protoru, ve kterém jsou obě podmínky podle definice splněny. Najdeme nejmenší kostru grafu a obchodnímu cestujícímu poradíme, ať jde po ní kostru zakořeníme a projdeme jako strom do hloubky, přičemž se zastavíme ažvkořenipoprojitívšechvrcholů.problémvšakje,žeprůchodpokostřeobsahuje některé vrcholy i hrany vícekrát, a proto musíme nahradit nepovolené vracení se. áme-li na nějaký vrchol vstoupit podruhé, prostě ho ignorujeme a přesuneme se rovnounadalšínenavštívený dovolitsitomůžeme,grafjeúplnýaobsahujehrany mezi všemi dvojicemi vrcholů(jinak řečeno, pořadí vrcholů kružnice bude preorder výpis průchodem do hloubky). Pokud platí trojúhelníková nerovnost, tak si těmito zkratkami neuškodíme. Nechť minimální kostra má váhu T. Pokud bychom prošli celoukostru,budemítsledváhu2t(každouhranoukostryjsmešlitamazpátky), a přeskakování vrcholů celkovou váhu nezvětšuje(při přeskoku nahradíme cestu xyz jedinou hranou xz, přičemž z trojúhelníkové nerovnosti máme xz xy + xz), takže váha nalezené hamiltonovské kružnice bude také nanejvýš 2T. Když máme hamiltonovskou kružnici C a z ní vyškrtneme hranu, dostaneme kostrugrafu Gsváhoumenšínež C alekaždákostrajealespoňtaktěžkájako minimální kostra T. Tedy optimální hamiltonovská kružnice je určitě těžší než minimální kostra T. Když tyto dvě nerovnosti složíme dohromady, algoritmus nám vrátíhamiltonovskoukružnici T sváhounanejvýšdvojnásobnouvzhledemkoptimálníhamiltonovskékružnici(t 2T <2C).Takovétoalgoritmysenazývají 2-aproximační,kdyžřešeníjemaximálnědvojnásobnéodoptimálního. 1 1 Hezkýmtrikemsevobecnýchmetrickýchprostorechumí1,5-aproximace.Veně- 3 2010-02-12

b) bez trojúhelníkové nerovnosti: Zde se budeme naopak snažit ukázat, že žádný polynomiální aproximační algoritmus neexistuje. Věta: Pokud pro libovolné ε > 0 existuje polynomiální(1+ε)-aproximační algoritmus pro problém obchodního cestujícího bez trojúhelníkové nerovnosti, tak P = NP. Důkaz: Ukážeme, že v takovém případě dokážeme v polynomiálním čase zjistit, zda v grafu existuje hamiltonovská kružnice. Dostali jsme graf G, ve kterém hledáme hamiltonovskou kružnici. Doplníme G naúplnýgraf G aváhyhran G nastavímetakto: w(e)=1,když e E(G) w(e)=c 1,když e E(G) Konstantu c potřebujeme zvolit tak velkou, abychom jasně poznali, jestli je každá hrana z nalezené hamiltonovské kružnice hranou grafu G(pokud by nebyla, bude kružnice obsahovat aspoň jednu hranu s váhou c, která vyžene součet poznatelně vysoko).pokudexistujehamiltonovskákružnicevg složenájenzhran,kterébyly původněvg,pakoptimálnířešeníbudemítváhu n,jinakbudeurčitěminimálně n 1+ c.kdyžmámeaproximačníalgoritmusspoměrem1+ε,musítedybýt (1+ε) n < n 1+c εn+1 < c Kdyby takový algoritmus existoval, máme polynomiální algoritmus na hamiltonovskou kružnici. Poznámka: O existenci pseudopolynomiálního algoritmu platí analogická věta, a dokáže se analogicky existující hrany budou mít váhu 1, neexistující váhu 2. Aproximační schéma pro problém batohu Již víme, jak optimalizační verzi problému batohu vyřešit v čase O(nC), pokudjsouhmotnostiicenynavstupupřirozenáčíslaacjesoučetvšechcen.jaksi poradit, pokud je C obrovské? Kdybychom měli štěstí a všechny ceny byly dělitelné nějakým číslem p, mohli bychom je tímto číslem vydělit. Tím bychom dostali zadání s menšími čísly, jehož řešením by byla stejná množina předmětů jako u zadání původního. Když nám štěstí přát nebude, můžeme přesto zkusit ceny vydělit a výsledky nějak zaokrouhlit. Řešení nové úlohy pak sice nebude přesně odpovídat optimálnímu řešení té původní, ale když nastavíme parametry správně, bude alespoň jeho dobrou aproximací. Základní myšlenka: kterých metrických prostorech(třeba v euklidovské rovině) se aproximační poměr dá dokonce srazit na libovolně blízko k 1. Zaplatíme ale na čase čím přesnější výsledek po algoritmu chceme, tím déle to bude trvat. 4 2010-02-12

Označímesi maximumzcen c i.zvolímesinějaképřirozenéčíslo < a zobrazímeintervalcen [0, ] na [0, ] (tedy každoucenu znásobíme / ).Jakjsmetímzkreslilivýsledek?Všimněmesi,žeefektjestejný,jako kdybychomjednotlivécenyzaokrouhlilinanásobkyčísla /(prvkyzintervalu [i /,(i+1) /)sezobrazínastejnýprvek).každé c i jsmetímtedyzměnilionejvýše /,celkovoucenulibovolnépodmnožinypředmětůpaknejvýše o n /.Teďsiještěvšimněme,žepokudzezadáníodstranímepředměty,které sesamynevejdoudobatohu,máoptimálnířešenípůvodníúlohycenu OPT, takžechybavsoučtujenejvýše n OPT/.á-litatochybabýtshoraomezena ε OPT,musímezvolit n/ε. 2 Algoritmus: 1. Odstraníme ze vstupu všechny předměty těžší než H. 2.Spočítáme =max i c i azvolíme = n/ε. 3.Kvantujemeceny: i:ĉ i c i /. 4. Vyřešíme dynamickým programováním problém batohu pro upravené ceny ĉ 1,...,ĉ n apůvodníhmotnostiikapacitubatohu. 5. Vybereme stejné předměty, jaké použilo optimální řešení kvantovaného zadání. Kroky1 3a5jistězvládnemevčase O(n).Krok4řešíproblémbatohusesoučtem cen Ĉ n= O(n2 /ε),cožstihnevčase O(nĈ)=O(n3 /ε).zbývádokázat,že výsledek našeho algoritmu má opravdu relativní chybu nejvýše ε. Nejprve si rozmyslíme, jakou cenu budou mít předměty které daly optimální řešenívpůvodnímzadání(tedymajívpůvodnímzadánídohromadycenu OPT), když jejich ceny nakvantujeme(množinu indexů těchto předmětů si označíme Y): OPT= ĉ i = i Y i ( c i i i ) n=opt c i ( c i n. ) 1 Nyní spočítejme, jak dopadne optimální řešení Q nakvantovaného problému při přepočtu na původní ceny(to je výsledek našeho algoritmu): ALG= i Q c i i ( ) ĉ i cmax = ĉ i cmax OPT. i Nerovnost platíproto,že i Q ĉijeoptimálnířešeníkvantovanéúlohy,zatímco i Y ĉijenějakédalšířešenítéžeúlohy,kterénemůžebýtlepší.teďužstačísložit 2 Připoměňme,žetotoještěnenídůkaz,neboťvelkorysepřehlížímechybydané zaokrouhlováním. Důkaz provedeme níže. 5 2010-02-12

oběnerovnostiadosaditza : ( ) OPT ALG n cmax OPT εopt=(1 ε) OPT. OPT n n/ε OPT ε Algoritmus tedy vždy vydá řešení, které je nejvýše(1 ε)-krát horší než optimum, a dokáže to pro libovolné ε v čase polynomiálním v n. Takovému algoritmu říkáme polynomiálníaproximačníschéma(jinaktéžptas 3 ).Vnašempřípadějedokonce složitost polynomiální i v závislosti na 1/ε, takže schéma je plně polynomiální(řečené téžfptas 4 ).Uněkterýchproblémůsestává,žeaproximačníschémazávisína1/ε exponenciálně, což tak příjemné není. Shrňme, co jsme zjistili, do následující věty: Věta: Existuje algoritmus, který pro každé ε > 0 nalezne(1 ε)-aproximaci problému batohusnpředmětyvčase O(n 3 /ε). 3 Polynomial-TimeApproximationScheme 4 FullyPolynomial-TimeApproximationScheme 6 2010-02-12