Given a matrix $\boldsymbol{Y} \in \mathbb{R}^{m \times n}$ where $n \leq m$.
I want to find its projection onto the Convex Hull of Permutation Matrices:
$$ \mathcal{P} = \left\{ \boldsymbol{P} \mid \boldsymbol{P} \boldsymbol{1} \leq \boldsymbol{1}, \boldsymbol{1}^{T} \boldsymbol{P} = \boldsymbol{1}, \boldsymbol{P} \geq 0 \right\} $$
Namely, each matrix is a set of columns of a Permutation Matrix (More accurately, from the convex hull of the permutation matrices).
The actual projection is given by:
$$\begin{align*} \arg \min_{\boldsymbol{X}} \quad & \frac{1}{2} {\left\| \boldsymbol{X} - \boldsymbol{Y} \right\|}_{F}^{2} \\ \text{subject to} \quad & \begin{aligned} \boldsymbol{X} & \in \mathcal{P} \end{aligned} \end{align*}$$
Is there an efficient algorithm to find such $\boldsymbol{X}$?
I thought about 2 approaches:
- Least Squares with Linear Constraints (See MATLAB's
lsqlin()). - Projection onto an intersection of convex sets (See Orthogonal Projection onto the Intersection of Convex Sets).
Yet, it seems to me there should be something more efficient to take advantage of the structure of the set.
There is the Sinkhorn Algorithm which solve the problem in the case of a square matrix and equality $\boldsymbol{P} \boldsymbol{1} = \boldsymbol{1}$.