If D contains a large number of vectors, searching for the
most sparse representation of f is computationally unacceptable for practical applications. In 1993,
Mallat and Zhang proposed a
greedy solution that they named "Matching Pursuit." For any signal f and any dictionary D, the algorithm iteratively generates a sorted list of atom indices and weighting scalars, which form the sub-optimal solution to the problem of sparse signal representation. Input: Signal: f(t), dictionary D with normalized columns g_i . Output: List of coefficients (a_n)_{n=1}^N and indices for corresponding atoms (\gamma_n)_{n=1}^N . Initialization: R_1\,\leftarrow\,f(t); n\,\leftarrow\,1; Repeat: Find g_{\gamma_n} \in D with maximum inner product | \langle R_n, g_{\gamma_n} \rangle | ; a_n\,\leftarrow\,\langle R_n, g_{\gamma_n}\rangle ; R_{n+1}\,\leftarrow\,R_n - a_n g_{\gamma_n}; n\,\leftarrow\,n + 1; Until stop condition (for example: \|R_n\| ) return In signal processing, the concept of matching pursuit is related to statistical
projection pursuit, in which "interesting" projections are found; ones that deviate more from a
normal distribution are considered to be more interesting. == Properties ==