proj_simplex

odl.solvers.nonsmooth.proximal_operators.proj_simplex(x, diameter=1, out=None)[source]

Projection onto simplex.

Projection onto:

``{ x \in X | x_i \geq 0, \sum_i x_i = r}``

with r being the diameter. It is computed by the formula proposed in [D+2008].

Parameters
spaceLinearSpace

Space / domain X.

diameterpositive float, optional

Diameter of the simplex.

Returns
prox_factorycallable

Factory for the proximal operator to be initialized.

See also

proj_l1

projection onto l1-norm ball

Notes

The projection onto a simplex is not of closed-form but can be solved by a non-iterative algorithm, see [D+2008] for details.

References

[D+2008] Duchi, J., Shalev-Shwartz, S., Singer, Y., and Chandra, T. Efficient Projections onto the L1-ball for Learning in High dimensions. ICML 2008, pp. 272-279. http://doi.org/10.1145/1390156.1390191