In-crowd algorithm
The in-crowd algorithm is a numerical method for solving basis pursuit denoising quickly; faster than any other algorithm for large, sparse problems. This algorithm is an active set method, which minimizes iteratively sub-problems of the global basis pursuit denoising:

where  is the observed signal,  is the sparse signal to be recovered,  is the expected signal under , and  is the regularization parameter trading off signal fidelity and simplicity. The simplicity is here measured using the sparsity of the solution , measure through its -norm. The active set strategies are very efficient in this context as only few coefficient are expected to be non-zero. Thus, if they can be identified, solving the problem restricted to these coefficients yield the solution. Here, the features are greedily selected based on the absolute value of their gradient at the current estimate.

Other active-set methods for the basis pursuit denoising includes BLITZ, where the selection of the active set is performed using the duality gap of the problem, and The Feature Sign Search, where the features are included based on the estimate of their sign.

Algorithm

It consists of the following:

 Declare  to be 0, so the unexplained residual 
 Declare the active set  to be the empty set, and  to be its complement (the inactive set)
 Calculate the usefulness  for each component in 
 If on , no , terminate
 Otherwise, add  components to  based on their usefulness
 Solve basis pursuit denoising exactly on , and throw out any component of  whose value attains exactly 0.  This problem is dense, so quadratic programming techniques work very well for this sub problem.
 Update  - n.b. can be computed in the subproblem as all elements outside of  are 0
 Go to step 3.

Since every time the in-crowd algorithm performs a global search it adds up to  components to the active set, it can be a factor of  faster than the best alternative algorithms when this search is computationally expensive.  A theorem guarantees that the global optimum is reached in spite of the many-at-a-time nature of the in-crowd algorithm.

Notes

Optimization algorithms and methods