  The most well known and ubiquitous clustering problem encountered in nearly
every branch of science is undoubtedly $k$-means: given a set of data points
and a parameter $k$, select $k$ centres and partition the data points into $k$
clusters around these centres so that the sum of squares of distances of the
points to their cluster centre is minimized. Typically these data points lie
$\mathbb{R}^d$ for some $d\geq 2$.
  $k$-means and the first algorithms for it were introduced in the 1950's.
Since then, hundreds of papers have studied this problem and many algorithms
have been proposed for it. The most commonly used algorithm is known as
Lloyd-Forgy, which is also referred to as "the" $k$-means algorithm, and
various extensions of it often work very well in practice. However, they may
produce solutions whose cost is arbitrarily large compared to the optimum
solution. Kanungo et al. [2004] analyzed a simple local search heuristic to get
a polynomial-time algorithm with approximation ratio $9+\epsilon$ for any fixed
$\epsilon>0$ for $k$-means in Euclidean space.
  Finding an algorithm with a better approximation guarantee has remained one
of the biggest open questions in this area, in particular whether one can get a
true PTAS for fixed dimension Euclidean space. We settle this problem by
showing that a simple local search algorithm provides a PTAS for $k$-means in
$\mathbb{R}^d$ for any fixed $d$. More precisely, for any error parameter
$\epsilon>0$, the local search algorithm that considers swaps of up to
$\rho=d^{O(d)}\cdot{\epsilon}^{-O(d/\epsilon)}$ centres at a time finds a
solution using exactly $k$ centres whose cost is at most a
$(1+\epsilon)$-factor greater than the optimum.
  Finally, we provide the first demonstration that local search yields a PTAS
for the uncapacitated facility location problem and $k$-median with non-uniform
opening costs in doubling metrics.
