  A clustering algorithm partitions a set of data points into smaller sets
(clusters) such that each subset is more tightly packed than the whole. Many
approaches to clustering translate the vector data into a graph with edges
reflecting a distance or similarity metric on the points, then look for highly
connected subgraphs. We introduce such an algorithm based on ideas borrowed
from the topological notion of thin position for knots and 3-dimensional
manifolds.
