MaxCoverageByGreedy

Top | recent changes | Preferences

Showing revision 11

LP:

 max e y[e] ce
  y[e] ≤ 1
  y[e] ≤ S∋ e x[S]
  S x[S] cS ≤ k.


Greedy algorithm:

 1. repeat until cost of chosen sets reaches k or more:
 2.   choose set S maximizing e∈ S, e n.y.c. ce / cS.
       In the sum e ranges over the elements in S that are not yet covered by a chosen set.
 3. return the chosen sets.


analysis:

The algorithm maintains the invariant that

cost(sets chosen so far)/k + ln(1 - cost(elts covered so far)/OPT) ≤ 0.

The invariant is initially true. If you choose a set S, then the LHS above increases by at most

cost(S)/k - cost(elts newly covered by S)/[OPT - cost(elts covered so far)].
(Use ln(X) ≤ X-1 to prove it.)

Claim: If S is chosen randomly according to distribution defined by OPT, then the expectation of the above quantity is non-positive.

Assume for now the claim is true. Thus, there exists a set S that makes the quantity above non-positive. Rewriting, the above is non-positive iff

cost(S)/cost(elts newly covered by S) ≤ k/[OPT - cost(elts covered so far)].

From the invariant it follows that when cost(sets chosen so far) > k, cost(elements covered so far)/OPT > 1-1/e.


proving the claim:

let (x*,y*) be an optimal solution. choose a set S from the distribution defined by x*(S)/|x*|.

Then E[cost(S)] = S cS x*[S]/|x*| ≤ k/|x*|.

The probability that a given element e is in S is at least y*[e]/|x*|, so E[cost of elements newly covered by S] is at least

e n.y.c. y*[e]ce / |x*|.
Letting y[e] be 1 if e is covered so far and 0 otherwise, this is
[e y*[e]ce - e:y[e]=1 y*[e]ce] / |x*| ≤ [OPT - e y[e]ce] / |x*|.


Top | recent changes | Preferences
This page is read-only | View other revisions | View current revision
Edited June 9, 2004 7:37 pm by Neal (diff)
Search: