There exist dynamic programming algorithms
which solve the \(\ell _0\) -penalised least squares estimation problem in (REF ).
The segment neighbourhood approach [1]}
requires an upper bound on the number of change points, say \(N\) ,
and solves the constrained minimisation problems for a varying number of change points,
attaining the computational complexity of \(O(N n^2)\) .
The optimal partitioning [2]} approach,
by recursively searching for the optimal partition
conditioning on the latest change point estimator,
achieves the computational complexity of \(O(n^2)\)  for a given choice of the penalty.
There are several methods which aim at speeding up the dynamic programming algorithms
by pruning the search space, such as
the pruned exact linear time method [3]},
the functional pruning technique [4]}
and their extensions [5]}.
[6]} provide a methodology for finding the solution path
for a range of penalty parameters \(\lambda _n \in [\lambda _{\min }, \lambda _{\max }]\) ,
when the penalty increases linearly in the size of \(\mathcal {A}\) 
as \(p_n(\mathcal {A}) = \lambda _n \vert \mathcal {A} \vert \) .
[7]} investigate the parallelisation of dynamic programming-based methods
for fast computation when \(n\)  is very large.
