  This article presents a selective survey of algorithms for the offline
detection of multiple change points in multivariate time series. A general yet
structuring methodological strategy is adopted to organize this vast body of
work. More precisely, detection algorithms considered in this review are
characterized by three elements: a cost function, a search method and a
constraint on the number of changes. Each of those elements is described,
reviewed and discussed separately. Implementations of the main algorithms
described in this article are provided within a Python package called ruptures.
