Let G=⟨V,E⟩ be an undirected and complete graph, with a distance d(v,u)∈R+ between each pair of v,u∈V.
Assume that
d(v,v)=0 for each v∈V;
d(v,u)=d(u,v) for each v,u∈V;
The distances satisfy triangle inequality:
d(v,w)≤d(v,u)+d(u,w),∀v,u,w∈V.
The goal is to find a set S⊂V with size ∣S∣=k, for given input parameter k∈N, to minimize
v∈Vmaxd(v,S),
where d(v,S)≐minj∈Sd(v,u) is the distance between i and its nearest point in S.
Approximation Algorithm
Algorithm A
Pick arbitrary point v1 from V
S←{v1}
For t←2 to k do
let vt≐v∈Vargmaxd(v,S)
S←S∪{vt}
Denote the optimal solution as S∗≐{v1∗,…,vk∗}:
S∗≐S⊆V,∣S∣=kargmin(v∈Vmaxd(v,S)).
We claim that the algorithm outputs a 2-approximate solution to S∗.
Theorem. Algorithm A outputs a 2-approximate solution:
v∈Vmaxd(v,S)≤2⋅v∈Vmaxd(v,S∗).
Proof.
We can partition the vertices in V into k subsets V1∗,…Vk∗, such that
Vi∗≐{v∈V:v∗∈S∗argmind(v,v∗)=vi∗},∀i∈[k].
Lemma. If u,w belongs to the same subset Vi∗, then
d(u,w)≤d(u,vi∗)+d(vi∗,w)≤2⋅v∈Vmaxd(v,S∗).
We consider the following two cases:
Case One. For each i∈[k], ∣Vi∗∩S∣=1.
Fix an i∈[k], and let vt∈Vi∗∩S.
Then for each u∈Vi∗, via the lemma,
d(u,S)≤d(u,vt)≤2⋅v∈Vmaxd(v,S∗).
Since Vi∗,i∈[k] is a partition of V, this holds for all u∈V.
Case Two. There exists some Vi∗ contains more than one points in S.
This implies that at some iteration, the algorithm A selects a point vt∈Vi∗, even though it has selected a point vt′∈Vi∗ in an earlier iteration.
When vt is selected, via the lemma, it holds that
d(vt,S)≤d(vt,vt′)≤2⋅v∈Vmaxd(v,S∗).
Since vt is the farthest point from S when it is selected, all points are within a distance of 2⋅maxv∈Vd(v,S∗) from S.
This remains true as the algorithm A adds more points.
□
Reference
[1] D. P. Williamson and D. B. Shmoys, The Design of Approximation Algorithms. Cambridge: Cambridge University Press, 2011.