Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdBarbara Goossens Laatst gewijzigd meer dan 9 jaar geleden
1
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen
2
T U Delft Parallel and Distributed Systems group PGS van vorige week: Relevantie PH NP-problemen: oplosbaar met backtracking algoritmen. NP NP - problemen: oplosbaar met double-backtracking algoritmen. Voorbeeld: Minimale Boolese Expressie Gegeven een formule F, is F een kortste formule onder alle formules equivalent met F? is in 2 = co-NP NP.
3
T U Delft Parallel and Distributed Systems group PGS Vb: Minimale Boolese Expressie (MBE) in 2 MBE: Gegeven een boolese formule F, is F een kortste formule onder alle formules die equivalent zijn met F? 2 = co-NP NP. We moeten derhalve laten zien dat no - instanties van MBE efficient te verifieren zijn met een NP-orakel: Neem nu een instantie F van MBE en gok een kortere boolese formule E. Verifieer nu of F equivalent is aan E, dwz. of E F. Dit kan door met een SAT-orakel na te gaan of ((E F) (F E)) vervulbaar is. Als het antwoord “no” is, is E equivalent aan F.
4
T U Delft Parallel and Distributed Systems group PGS Voor deze week: zijn sommige NPC-problemen toch doenlijk? over pseudo-polynomiale algoritmen benaderingen: iets is altijd beter dan niets (of toch niet altijd). een O(1)-algoritme voor een langste pad probleem. (met prijs voor de beste verklaring)
5
T U Delft Parallel and Distributed Systems group PGS Een algoritme voor SubSet Sum Subset Sum: (SubSum) Gegeven: een multi-set S = { s 1,..., s k } van objecten en een integer t. Vraag: Is er een subset S’ van S waarvoor geldt s S’ s = t. Aangetoond: SubSum NPC Aan te tonen: Is er misschien toch een P- algoritme voor SubSum ?
6
T U Delft Parallel and Distributed Systems group PGS SubSetSum : een algoritme Gegeven: S = {s 1,..., s n } en t Definieer f( i, w ) = 1 alss er is een S’ {s 1,..., s i } met s S’ s = w. Merk op: f( 0, w ) = 1 alss w = 0 f( i+1, w ) = 1alss f( i,w ) = 1 of f( i, w - s i+1 ) = 1 f(n, t) = 1alss (S,t) is een yes-instantie is van SubSum
7
T U Delft Parallel and Distributed Systems group PGS O(t) O(1) O(n. t) Iteratieve berekening f(n,w) iter-SubSetSum input: S ={s 1,..., s n ], n, t output: “yes” als (S,t) yes-instantie, “no” anders begin for k = 0 to t f(0,k) = 0 for i = 1 to n for k = 0 to t if { f(i-1,k) = 0 or f(i-1,k - s i ) =1 } then f(i,k) =1 if f(n,t) = 1 then return “yes” else return “no” end totaal: O(n. t) = O(|S|. t) O(t.)
8
T U Delft Parallel and Distributed Systems group PGS Vb :subsetsum Stel S = { 2, 5, 7, 1, 9} en t = 11 0 1 2 3 4 5 6 7 8 9 10 11 012345012345 1 2 3 4 5 1 1 11 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1111111111 1 1 1 1 Berekening kost O(|S|x t)
9
T U Delft Parallel and Distributed Systems group PGS Geldt nu SubsetSum in P? Bedenk dat O(|S|x t ) niet polynomiaal is in |I| = |S| x log s max + log t = O( |S| x log t) ! waarom niet? neem instanties I met |S| x log s max = O(log t) dan geldt: |I| = O(log t) en O( |S|. t ) O( t ) = O ( 2 log t ) = O( 2 |I| ) O(|S|.log s max. t ) is exponentieel in |I|
10
T U Delft Parallel and Distributed Systems group PGS Getalproblemen Notatie I A :instantie van probleem A |I A | :grootte van instantie I A max(I A ):grootte van unaire codering van I A A is een getalprobleem: er is geen enkele polynoom p zodat voor alle instanties I A geldt: max(I A ) p(|I A |) A heeft een pseudo-polynomiaal algoritme: er is een algoritme X A voor A met tijdcomplexiteit O( p( |I A |, max(I A ) ) ) voor een polynoom p.
11
T U Delft Parallel and Distributed Systems group PGS Sterk-NPC problemen Notatie A p : het subprobleem van A bestaande uit instanties I A met max(I A ) p( |I A | ). A is sterk NP-volledig: A NP en er bestaat een polynoom p met A p NPC Gevolg: sterk NP-volledige problemen hebben een pseudo-polynomiaal algoritme alss P = NP
12
T U Delft Parallel and Distributed Systems group PGS S-NPC: voorbeelden TSP is een sterk NP-volledig probleem: Neem transformatie R van HAMC naar TSP: voor alle instanties in R(I), I HAMC geldt: max(R(I)) |R(I)|. CLIQUE en VC zijn sterk NP-volledige getalproblemen! (ga na) SAT is een sterk NP-volledig probleem
13
T U Delft Parallel and Distributed Systems group PGS Benaderingsalgoritmen: vb MINCOVER: gegeven G = (V,E), geef een minimale vertex cover voor G. input :G = (V, E) output:cover C voor G begin C := ; while E do kies een {u,v} E; C := C {u,v}; E : = E - { {x,y} E : {u,v} {x,y} } end
14
T U Delft Parallel and Distributed Systems group PGS Prestatie MinCover benaderingsalgoritme begin C := ; while E do kies een {u,v} E; C := C {u,v}; E : = E - { {x,y} E : {u,v} {x,y} } end C bevat kanten {u,v}. C E verzameling geselecteerde kanten => |C E | = 0.5 x |C| als e,e’ C E dan e e’ = |C E | |Mincover| |C| 2 x |Mincover| Conclusie: dit benaderingsalgoritme garandeert dat de gevonden nodecover C nooit meer dan 2 maal zo groot is als de optimale
15
T U Delft Parallel and Distributed Systems group PGS Verbetering voor VC (i) ? MINCOVER garandeert een bovengrens op de ratio (gevonden oplossing)/ (optimale oplossing) Mooier zou zijn een bovengrens op het verschil: (gevonden oplossing - optimale oplossing) Het vinden van een polynomiaal constant verschil benaderingsalgoritme is net zo moeilijk als het oplossen van P = NP! Kijk maar:
16
T U Delft Parallel and Distributed Systems group PGS Verbetering voor VC (ii) Stelling: Tenzij P = NP bestaat er geen k > 0 en een polynomiaal approximatie algoritme A zodat voor alle instanties I van VC geldtt A (I) - opt(I) k Stel wel en kies een k.Laat I = (G = (V,E)) Stel opt(G) = m. Maak nieuwe graaf G k+1 : bestaat uit k+1 copieen van G: opt(G k+1 ) = (k+1)m. Gebruik A voor G k+1 : geeft cover met (k+1)m +k knopen. iedere copie van G moet m knopen bevatten. er moeten derhalve nog k takken verdeeld worden over k+1 grafen: er is een kopie van graaf G met exact m knopen => dit benaderingsalgoritme lost VC op!
17
T U Delft Parallel and Distributed Systems group PGS Optimaliseringsproblemen A is een optimaliseringsprobleem: - voor iedere I D A :F(I) de verzameling mogelijke oplossingen van I - voor iedere s F(I) :c(s) Z + : de kosten van s A maximaliseringsprobleem: Opt A (I) = max s F(I) c(s) A minimaliseringsprobleem: Opt A (I) = min s F(I) c(s)
18
T U Delft Parallel and Distributed Systems group PGS Optimaliseringsproblemen en de klasse NP NP-Optimalisering: NPO A NPO alss er een polynoom p bestaat waarvoor - I A s F(I A ): |s| p(|I A |) - I A y [ |y| p(|I A |) ] is het probleem “behoort y tot F(I A )” een P-probleem - c FP A d beslissingsvariant van A: Gegeven I A is er een s F(I A ) met c(s) > (<) d ? Stellingen: als A NPO dan A d NP NPO = PO alss P = NP
19
T U Delft Parallel and Distributed Systems group PGS Approximatie-algoritmen Stel A NPO en A is een algoritme voor A De approximatie ratio van A voor I A is de ratio R A (I A ) R A (I A ) = c(opt(I A )) : kosten optimale oplossing van I A c(A (I A )) : kosten oplossing gevonden door A M I A D A A(I A ) F(I A ) | c(A (I A ) ) - opt(I A ) | max { opt(I A ), c(A (I A )) }
20
T U Delft Parallel and Distributed Systems group PGS Approximatiekwaliteit absolute afstand van A : D A = sup I A D { | A(I A ) - opt(I A ) | } absolute approximatie ratio van A : R A = inf I A D { r 0 | R A (I A ) r } Voorbeeld: Voor MINCOVER geldt R A 0.5 en D A = voor ieder apparoximatie algoritme voor VC. (tenzij P = NP)
21
T U Delft Parallel and Distributed Systems group PGS Approximatieklassen APX Er bestaat een < 1 en een approximatie algoritme A zodat A een polynomiaal algoritme voor A is met R A PTAS Voor iedere 0 bestaat er een approximatie algoritme A( ), zodat A( ) een polynomiaal algoritme voor A is met R A FTPAS Voor iedere 0 bestaat er een approximatie algoritme A( ), zodat A( ) polynomiaal gebonden is in |I| en -1 en R A
22
T U Delft Parallel and Distributed Systems group PGS Approximatie hierarchie NPO APX PTAS FPTAS PO NPO - APX: problemen waarvoor geen efficient approximatie algoritme bestaat tenzij P = NP Polynomiaal optimaliseerbare problemen MINCOVER, ETSP, MAXSAT BINPACKING KNAPSACK TSP-opt !
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.