Set Cover Problem
Given a universe U of n elements, a
collection of subsets of U say S = {S1, S2…,Sm}
where every subset Si has an associated cost. Find a minimum
cost subcollection of S that covers all elements of U.
There is no polynomial time
solution available for this problem as the problem is a known NP-Hard problem.
There is a polynomial time Greedy approximate algorithm, the greedy algorithm
provides a Log n approximate algorithm.
2-Approximate Greedy
Algorithm:
Let U be the universe of elements, {S1, S2, … Sm} be collection of subsets of U and Cost(S1), C(S2), … Cost(Sm) be costs of subsets.
1) Let I represents set of elements
included so far. Initialize I = {}
2) Do following while I is not same
as U.
a) Find the set Si in {S1, S2, ... Sm}
whose cost effectiveness is
smallest, i.e., the ratio of cost C(Si)
and number of newly added
elements is minimum.
Basically we pick the set for which
following value is minimum.
Cost(Si) / |Si
- I|
b) Add elements of above picked Si to I, i.e., I = I U Si
Example:
U = {1,2,3,4,5}
S = {S1,S2,S3}
S1 = {4,1,3}, Cost(S1)
= 5
S2 = {2,5}, Cost(S2)
= 10
S3 = {1,4,3,2}, Cost(S3)
= 3
Output: Minimum cost of set cover
is 13 and set cover is {S2, S3}
No comments:
Post a Comment