  We address the problem of tracking and detecting interactions between the
different groups of runners that form during a race. In athletic races control
points are set to monitor the progress of athletes over the course.
Intuitively, a {\it group} is a sufficiently large set of athletes that cross a
control point together. After adapting an existing definition of group to our
setting we go on to study two types of group evolution patterns. The primary
focus of this work are {\it evolution patterns}, i.e. the transformation and
interaction of groups of athletes between two consecutive control points. We
provide an accurate geometric model of the following evolution patterns:
survives, appears, disappears, expands, shrinks, merges, splits, coheres and
disbands, and present algorithms to efficiently compute these patterns. Next,
based on the algorithms introduced for identifying evolution patterns,
algorithms to detect {\it long-term patterns} are introduced. These patterns
track global properties over several control points: surviving, traceable
forward, traceable backward and related forward and backward. Experimental
evaluation of the algorithms provided is presented using real and synthetic
data. Using the data currently available, our experiments show how our
algorithms can provide valuable insight into how running races develop.
Moreover, we also show how, even if dense (synthetic) data is considered, our
algorithms are also able to process it in real time.
