Projection of a point onto the intersection of 5 polyhedra

26 Views Asked by At

I'm trying to write an algorithm to project a point $x\in \mathbb{R}^n$ onto the intersection of 5 polyhedra, namely $C_i, i=1,\cdots,5$. Each of the polyhedra satisfies the following condition:

$$ C_i = \{x\in \mathbb{R}^n|x_k\in [0,1],k=1,\cdots,n;\sum_{k\in S_{ij}}x_k\le1,j=1,\cdots,m_i\} $$

where $S_{ij}\in \{1,\cdots,n\}$ are disjoint sets for any fixed $i$, i.e. $S_{ij_1}\cap S_{ij_2}=\emptyset$ if $j_1\ne j_2$.

The projection $P_{\cap_i C_i}(x)$ can be done iteratively by Dykstra's projection algorithm, or it can be reduced to a 0-1 quadratic knapsack problem and solved by quaduatic programming. But I wonder if there is a way to exploit the structure of the polyhedra to get a faster algorithm.

The constraint $x_k\in [0,1]$ is not important and can be removed, if that makes the problem easier.