I am trying to understand this paper, in which (k, b)-clusterability is defined like so:
A set $X$ of points in a metric space is (k, b)-diameter clusterable if $X$ can be partitioned into $k$ subsets (clusters) such that the maximum distance between any pair of points in a cluster is $b$.
The paper offers an algorithm that rejects A set $X$ if it is $\epsilon-far$ from (k-2b)-clusterable with probability > $\frac{2}{3}$.
$\epsilon-far$ from (k-2b)-clusterable here means that at least $\epsilon |X|=\epsilon n$ points must be deleted from $X$ in order to make it (k-2b)-clusterable.
Algorithm 1 (in page 4):
Let $rep_1$ be an arbitrary point in $X$ (a representative for the first cluster).
$i=1$ $find\_new\_rep=True$
While $i<k+1$ and $find\_new\_rep==True$
3.1 Uniformly and independently select a sample of size $ln(3k)/\epsilon$
3.2 If there exists a point $x$ in the sample, such that $dist(x, rep_j)>b$ for every $j\le i$, then $i=i+1$; $rep_i=x$
3.3. Else (all points in the sample are at distance at most b from some $rep_j$), $find\_new\_rep = False$
If $i\le k$ Accept, Else Reject.
I am struggling with the very last part of the proof (Theorem 1 in page 4):
... Hence, from now on, assume that $X$ is $\epsilon$-far from $(k, 2b)$ -clusterable ...
Consider any particular iteration. We say that a point $x \in X$ is a candidate representative with respect to $rep_1, ..., rep_i$ if it has distance greater than $b$ from each of these points. We claim that as long as $i \le k$ there must be more than $\epsilon n$ such candidate representatives. Assume in contradiction that there are at most $\epsilon n$ such points. Then we could remove these points from $X$, and for every other point $y \in X$, assign y to a cluster $j$ such that $dist(y, rep_j) \le b$. By the triangle inequality, the diameter of each resulting cluster is at most $2b$, which contradicts out assumption concerning $X$.
What I seem to miss is what is the contradiction?
I can see why every cluster is of diameter $2b$, but I don't see why ignoring all far points, and adding the rest to some valid clusters gives anything not OK.
Would love some direction as I have been staring at this for hours.