90 likes | 230 Views
Voorbeeld uitwerking reductie bewijs. in3120 Cees Witteveen. Twee beslissingsproblemen. Vertex Cover (VC) instantie : een graaf G = (V,E) en K Z +
E N D
Voorbeeld uitwerking reductie bewijs in3120 Cees Witteveen
Twee beslissingsproblemen • Vertex Cover (VC) • instantie:een graaf G = (V,E) enKZ+ • vraag:heeft G een vertex cover ter grootte van K? dwz.bestaat er een V’ V, |V’| = K, zodanig dat voor elke {v,w} E geldt: v V’ of w V’? • Clique • instantie:een graaf G = (V,E) enKZ+ • vraag:bestaat er een clique ter grootte van K in G?dwz: bestaat er een V’ V, |V’| = K, zodanig dat voor elke v,w V’ geldt {v,w} E ?
Poly-tijd reductie • Constructie reductie vanVERTEX COVERnaar CLIQUE: Construuer f zodanig dat geldt: Als I = (G = ( V, E ), K) met K Z+ een instantie van VC is, dan is f(I ) = (G’ = ( V’, E’ ), K’) met V’ = V E’ = { { v,w } | v w V, {v,w} E } K’ = |V | - K ;
Hoe correctheid te bewijzen • ga na dat transformatie polynomiaalis. • ga na dat iedere yes-instantie van VCwordt getransformeerd naar een yes-instantie van CLIQUE; • ga na dat een getransformeerde yes-instantie inCLIQUE altijd afkomstig is van een oorspronkelijke yes-instantie van VC.
1. polynomialiteit transf’tie • Laat I = (G =(V,E),K) een VC-instantie zijn. We tonen aan dat de geconstrueerde CLIQUE-instantie I’ = f(I) = (G’ = (V’, E’), K’)in een tijd polynomiaal in |I| (de lengte van I) kan worden geconstrueerd. • V’ wordt verkregen door V te copieren: kost O(|V|) O(|I|)-tijd. • E’ wordt verkregen door voor alle paren v,w uit V na te gaan of (i) v w en (ii) {v,w} E; als aan beide condities voldaan is, wordt {v,w} opgenomen in E’; dit kost per paar v,w uit V, O(|E|)-tijd; dus totaal: O(|E|x|V|2) O(|I|3)-tijd • Tenslotte moeten om K’ te berekenen |V| en K’ = |V| - K worden berekend: kost O(|V|) + O(max(log K, log |V |)) O(|I|)-tijd Totale tijd kosten transformatie:O(|I|) + O(|I|3)+O(|I|) = O(|I|3)
2. Correctheid transformatie • a.yes-instanties I van VC worden afgebeeld op yes-instanties van f(I) van CLIQUE • Stel I = (G =(V,E),K) yes-instantie van VC; dan is er een VCW ter grootte van K in G. We tonen aan dat W’ = V - W een clique is in f(I) = (G’ = (V’,E’), K’) en derhalve dat f(I) een yes-instantie van CLIQUE is. • Neem twee willekeurige knopen uv in W’; stel {u,v} E’; dan moet volgens de constructie gelden: {u,v} E. Maar omdat W een vertex cover is, zou dan u W of v W. Er geldt echter:u en vbeide niet in W!. Dus kan de veronderstelling {u,v} E’ niet waar zijn, dwz. {u,v} E’.Maar dan geldt W’ is een clique ter grootte van |V| - K = K’
2. Correctheid (vervolg) • b.alsI’ een yes-instantie is van CLIQUE dan is iedere I waarvoor f(I) = I’ een yes-instantie van VC.Stel I’ = (G’ =(V’,E’),K’) is een yes-instantie van CLIQUE en voorI = (G =(V ,E),K ) geldt: I’ = f(I). We tonen aan, dat I een yes-instantie is van VC.Omdat I’ = (G’ =(V’,E’),K’) een yes-instantie is van CLIQUE , bestaat er een clique W’ met |W’| = K’ in G’.We laten nu zien dat W = V - W een vertex cover is van G. dwz I is een yes-instantie van VC. Neem een kant {u,v} E. Dan geldt:{u,v} E’ en derhalve u W’ of v W’. En dit betekent:u V- W’ = W of v V-W’ = W. M.a.w. W is een vertex cover ter grootte van |V| - K’ = K in G.
2. Correctheid (anders) • Met behulp van een beetje logica kunnen we het bewijs veel korter opschrijven:I = (G =(V ,E),K ) is een yes-instantie van VC G heeft een vertex cover W ter grootte van KW V [ |W| = K u,vV [ {u,v} E (u W v W )] W V [ |W| = K u,vV [ (u W v W ) ({u,v} E) ] W V [ |W| = K u,vV [( u W v W ) {u,v} E’ ] W V [ |W| = K u,vV [( u V - W v V - W ) {u,v} E’ ] W V [ W’ = V - W |W’| = |V| - K u,vV [( u W’ v W’) {u,v} E’ ] G’ = (V, E’) heeft een clique W’ ter grootte vanK’ = |V| - KR(I) = (G’ =(V ,E’), K’ )is een yes-instantie vanCLIQUE
Een opgave om zelf te doen • W V is een Dominating Set van G = (V,E) ter grootte van K als • |W| = K en • voor geen enkel tweetal knopen u,v in W geldt: {u,v} E. • Opgave:Geef een reductie van het vertex cover probleem naar het Dominating Set probleem:Gegeven graaf G= (V,E) en pos. integer K, heeft G een dominating set ter grootte van K?