https://en.wikipedia.org/wiki/Projections_onto_convex_sets
Algorithm
The POCS algorithm solves the following problem:
find
x
∈
R
n
x \in \mathbb{R}^{n} \quad
x∈Rn such that
x
∈
C
∩
D
x \in C \cap D
x∈C∩D
where
C
C
C and
D
D
D are closed convex sets.
To use the POCS algorithm, one must know how to project onto the sets
C
C
C and
D
D
D separately. The algorithm starts with an arbitrary value for
x
0
x_{0}
x0 and then generates the sequence
x
k
+
1
=
P
C
(
P
D
(
x
k
)
)
x_{k+1}=\mathcal{P}_{C}\left(\mathcal{P}_{D}\left(x_{k}\right)\right)
xk+1=PC(PD(xk))
The simplicity of the algorithm explains some of its popularity. If the intersection of
C
C
C and
D
D
D is non-empty, then the sequence generated by the algorithm will converge to some point in this intersection.
Unlike Dykstra’s projection algorithm, the solution need not be a projection onto the intersection
C
C
C and
D
D
D.
Related algorithms
The method of averaged projections is quite similar. For the case of two closed convex sets
C
C
C and
D
D
D, it proceeds by
x
k
+
1
=
1
2
(
P
C
(
x
k
)
+
P
D
(
x
k
)
)
x_{k+1}=\frac{1}{2}\left(\mathcal{P}_{C}\left(x_{k}\right)+\mathcal{P}_{D}\left(x_{k}\right)\right)
xk+1=21(PC(xk)+PD(xk))
It has long been known to converge globally.
[
8
]
{ }^{[8]}
[8] Furthermore, the method is easy to generalize to more than two sets; some convergence results for this case are in.
[
9
]
^{[9]}
[9]
The averaged projections method can be reformulated as alternating projections method using a standard trick. Consider the set
E
=
{
(
x
,
y
)
:
x
∈
C
,
y
∈
D
}
E=\{(x, y): x \in C, y \in D\}
E={(x,y):x∈C,y∈D}
which is defined in the product space
R
n
×
R
n
\mathbb{R}^{n} \times \mathbb{R}^{n}
Rn×Rn. Then define another set, also in the product
space:
F
=
{
(
x
,
y
)
:
x
∈
R
n
,
y
∈
R
n
,
x
=
y
}
.
F=\left\{(x, y): x \in \mathbb{R}^{n}, y \in \mathbb{R}^{n}, x=y\right\} .
F={(x,y):x∈Rn,y∈Rn,x=y}.
Thus finding
C
∩
D
C \cap D
C∩D is equivalent to finding
E
∩
F
E \cap F
E∩F.
To find a point in
E
∩
F
E \cap F
E∩F, use the alternating projection method. The projection of a vector
(
x
,
y
)
(x, y)
(x,y) onto the set
F
F
F is given by
(
x
+
y
,
x
+
y
)
/
2
(x+y, x+y) / 2
(x+y,x+y)/2. Hence
(
x
k
+
1
,
y
k
+
1
)
=
P
F
(
P
E
(
(
x
k
,
y
k
)
)
)
=
P
F
(
(
P
C
x
k
,
P
D
y
k
)
)
=
1
2
(
P
C
(
x
k
)
+
P
D
(
y
k
)
,
(
P
C
(
x
k
)
+
P
D
(
y
k
)
)
\left(x_{k+1}, y_{k+1}\right)=\mathcal{P}_{F}\left(\mathcal{P}_{E}\left(\left(x_{k}, y_{k}\right)\right)\right)=\mathcal{P}_{F}\left(\left(\mathcal{P}_{C} x_{k}, \mathcal{P}_{D} y_{k}\right)\right)=\frac{1}{2}\left(\mathcal{P}_{C}\left(x_{k}\right)+\mathcal{P}_{D}\left(y_{k}\right),\left(\mathcal{P}_{C}\left(x_{k}\right)+\mathcal{P}_{D}\left(y_{k}\right)\right)\right.
(xk+1,yk+1)=PF(PE((xk,yk)))=PF((PCxk,PDyk))=21(PC(xk)+PD(yk),(PC(xk)+PD(yk))
Since x k + 1 = y k + 1 x_{k+1}=y_{k+1} xk+1=yk+1 and assuming x 0 = y 0 x_{0}=y_{0} x0=y0, then x j = y j x_{j}=y_{j} xj=yj for all j ≥ 0 j \geq 0 j≥0, and hence we can simplify the iteration to x k + 1 = 1 2 ( P C ( x k ) + P D ( x k ) ) x_{k+1}=\frac{1}{2}\left(\mathcal{P}_{C}\left(x_{k}\right)+\mathcal{P}_{D}\left(x_{k}\right)\right) xk+1=21(PC(xk)+PD(xk)).