Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS4234 Optimiz(s)ation Algorithms

Similar presentations


Presentation on theme: "CS4234 Optimiz(s)ation Algorithms"— Presentation transcript:

1 CS4234 Optimiz(s)ation Algorithms
L1 – Min-Vertex-Cover

2 Vertex Cover Definition:
A vertex cover for a graph G = (V, E) is a set S  V such that for every edge e = (u, v)  E, either u  S or v  S

3 Min-Vertex-Cover (MVC)
Definition: Given a graph G = (V, E), find a minimum-sized set S that is a vertex cover for G Analogy: Starbucks in Singapore Try Brute Force live at

4 Vertex-Cover is NP-Complete
The decision version Given a graph G = (V, E) and a parameter k, does there exist a Vertex-Cover of G of size k (vertices)? Proof: Vertex-Cover is in NP Vertex-Cover is NP-hard Clique p Vertex-Cover See revision slides from CS3230 (copied here)

5 1. VERTEX-COVERNP Input: An undirected graph G = (V, E) and an integer k Certificate: A subset V' of size k The O(V+E) verifying algorithm checks if |V'| = k and insert those vertices into a Hash Table in O(V); Then, it scans all edge (u, v)  E in O(E) to check if at least one of u and v belongs to V' (O(1) per Hash Table check) Therefore, Vertex Cover is in NP

6 Agenda for showing more NP-complete problems
Using polynomial time reduction, we can obtain more NP-complete problems

7 2. CLIQUEpVERTEX-COVER
Given an undirected graph G = (V, E) and k (|V| = n), we construct a graph 𝐆 = (V, Ē) where (u, v)  Ē iff (u, v)  E Claim: G has a size-k clique iff 𝐆 has a size-(n-k) vertex cover 6 vertices, 10 edges K6 has 15 edges 6 vertices, 5 edges u0 u0 u1 u4 u4 u1 u5 u5 u2 u3 u2 u3 G G

8 G has a size-k clique  G has a size-(n-k) vertex cover
Suppose V'  V is a size-k clique of G, e.g. V' = {u1, u2, u3, u4} is a size-4 clique of G For any edge (u, v)  Ē in the complement graph G , then (u, v)  E Which implies that at least one of u or v does not belong to a clique V' As every pair of vertices in V' are connected by an edge in E and thus won’t be in Ē Hence, at least one of u and v belongs to V-V' (of size n-k), e.g. V-V' = {u0, u5} is a size-2 vertex cover of G All edge (u, v)  Ē is covered by V-V', so V-V' (of size n-k) is a VC of G u0 G u1 u2 u3 u4 u5 u0 u1 u4 u5 u2 u3 G

9 G has a size-k clique  G has a size-(n-k) vertex cover
Suppose U  V is the size-(n-k) vertex cover of G , e.g. U = {u0, u5} is a size-2 vertex cover of G By definition of vertex cover, for all u, v  V, if (u, v)  Ē, then at least one of u and v belong to U The contrapositive of this statement is for all u, v  V and both u and v do not belong to U  (u, v)  Ē  (u, v)  E Hence, V-U is a clique and has size = n-(n-k) = k, e.g. V' = {u1, u2, u3, u4} is a size-4 clique of G G u0 u1 u2 u3 u4 u5 u0 u4 u1 u5 u2 u3 G

10 VERTEX-COVER is NP-Complete
We have shown that: VERTEX-COVER is in NP VERTEX-COVER is NP-Hard Therefore, VERTEX-COVER is NP-Complete

11 Min-Vertex-Cover is NP-hard
Clearly, if we could efficiently find a MIN-VERTEX-COVER (an optimization problem), then we could also efficiently answer the decision version of VERTEX-COVER Hence finding a MIN-VERTEX-COVER is at least as hard as the decision version, and hence we term it NP-hard

12 Dealing with an NP-hard Problem
Desirable Solution: Fast (i.e., polynomial time) Optimal (i.e., yielding the best solution possible) Universal (i.e., good for all instances/inputs) In reality: Choose 2 out of 3: Deal with the special case (lost universality) Deal with parameterized solution (lost speed) Consider approximate solution (lost optimality)

13 MVC on (Binary) Tree – Special Case
Dynamic Programming solution: in(v) = 1 + min(in(w), out(w)) + min(in(z), out(z)) out(v) = in(w) + in(z) Base case at leaves: in(v) = 1, out(v) = 0 answer = min(in(r), out(r)), computable in O(n) Answer: 3, cover 1, 2, and 6 Try DP on Tree live at

14 MVC with small k – Parameterized Solution
Parameterized Complexity What if you are told that k  2? What if you are told that k is much smaller than n? Naïve O(nkm) algorithm Very not scalable  Better O(2km) algorithm Also not scalable, but much better than the naïve one

15 MVC with small k – Parameterized Solution
Analysis: T(k, m)  2T(k-1, m) + O(m) O(2km) k = 0? No…  The G can be simply EdgeList? k = 1 k = 0? Yes,  (we are done)

16 Approx Algo for MVC – Deterministic 1
Can be very bad: ??-approximation (no bound)

17 Approx Algo for MVC – Deterministic 2
Not that bad? More analysis later

18 Approx Algo for MVC – Deterministic 3
Not that bad? More analysis later

19 Approx Algo for MVC – Deterministic 3
This is log-n factor worse than optimal answer

20 Zoomed-in

21 Approx Algo for MVC – Deterministic 2
This one has 2-approximation proof Let E' be the edges considered by this algorithm, this E' is actually a matching M (revisited in the next few weeks of CS4234, details in the PDF), E' = M |M|  |OPT(G)| (details in the PDF) and C = 2*|E'| So C  2*|OPT(G)| Try Deterministic 2-Opt live at

22 Approx Algo for MVC - Randomized
2-approximation Analysis: Easy version: In line [5-8], the probability that we choose the right z is at least ½ We include z in the cover and remove z (and 'cover' its edges) in line 9-10 So C is at most 2 * OPT when E =  Try Probabilistic 2-Opt live at

23 Summary Re-introducing the MVC problem
Re-proof that VC (decision) is NP-complete 3C2 scenarios Special case of MVC: On Binary Tree, use DP Parameterized MVC: Small k, good brute force Approximation algorithms for MVC Deterministic, 3 variants, but only variant 2 is 2-Approximation Randomized, Expected 2-Approximation

24 Admins PS1 is out today Will not due until Sat, 02 Sep 2017, 07.59am
PS: I still do not want to see this (variant of last year’s) problem posted in StackOverflow, Quora, GitHub, ideone, etc!!


Download ppt "CS4234 Optimiz(s)ation Algorithms"

Similar presentations


Ads by Google