The best performing (theoretical complexity-wise) algorithm to solve this quadratic program

285 Views Asked by At

Find the best performing (complexity-wise) algorithm to solve the following quadratic program

$$\begin{array}{ll} \text{minimize} & \frac 12\|\mathrm x - \mathrm v\|_2^2\\ \text{subject to} & 1_n^T \mathrm x = \mathrm 1\\ & \mathrm x \geq 0_n\end{array}$$

where $\mathrm v \in \mathbb R^n$ is given.


I have started learning Moreau Yoshida Regularization to try to solve this problem, as I was hinted by my supervisor that the best performing algorithm makes use of that theory.

I will be adding the work that I have done on this question soon.

1

There are 1 best solutions below

3
On BEST ANSWER

Your problem corresponds to orthogonally projecting the point $\textbf{v} \in \mathbb R^n$ onto the unit simplex.

  • The problem can be solved analytically in $\mathcal O(n)$ using Kiwiel's algorithm (e.g see Algorithm 3 of this paper). Needless to say this is the best possible theoretical bound.

  • If you want something a bit simpler (implementation-wise) with essentially the same complexity, then this $\mathcal O(n\log n)$ algorithm will do.