TU Delft Groep Parallelle en Gedistribueerde Systemen Voorbeeld uitwerking reductie bewijs in3120 Cees Witteveen
TU Delft Groep Parallelle en Gedistribueerde Systemen Twee beslissingsproblemen Vertex Cover (VC) - instantie: een graaf G = (V,E) en K Z + - 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) en K Z + - 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 ?
TU Delft Groep Parallelle en Gedistribueerde Systemen Poly-tijd reductie Constructie reductie van VERTEX COVER naar 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 ;
TU Delft Groep Parallelle en Gedistribueerde Systemen Hoe correctheid te bewijzen ga na dat transformatie polynomiaal is. ga na dat iedere yes-instantie van VC wordt getransformeerd naar een yes-instantie van CLIQUE; ga na dat een getransformeerde yes-instantie in CLIQUE altijd afkomstig is van een oorspronkelijke yes-instantie van VC.
TU Delft Groep Parallelle en Gedistribueerde Systemen 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 )
TU Delft Groep Parallelle en Gedistribueerde Systemen 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 VC W 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 u v 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 v beide 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’
TU Delft Groep Parallelle en Gedistribueerde Systemen 2. Correctheid (vervolg) b. als I’ 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 voor I = (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.
TU Delft Groep Parallelle en Gedistribueerde Systemen 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 K W V [ |W| = K u,v V [ {u,v} E (u W v W )] W V [ |W| = K u,v V [ (u W v W ) ({u,v} E) ] W V [ |W| = K u,v V [( u W v W ) {u,v} E’ ] W V [ |W| = K u,v V [( u V - W v V - W ) {u,v} E’ ] W V [ W’ = V - W |W’| = |V| - K u,v V [( u W’ v W’ ) {u,v} E’ ] G’ = (V, E’) heeft een clique W’ ter grootte van K’ = |V| - K R(I) = (G’ =(V,E’), K’ ) is een yes-instantie van CLIQUE
TU Delft Groep Parallelle en Gedistribueerde Systemen 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?