De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.

Verwante presentaties


Presentatie over: "T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen."— Transcript van de presentatie:

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 = 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 !


Download ppt "T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen."

Verwante presentaties


Ads door Google