\mathcal{M}^n$ such that for each channel $E_c$ the difference between forward projection $\vec{W}\mu(\vec{y}^*, E_h)$ and data is minimal with respect to some norm $||\cdot||$:

$$\begin{aligned}
\vec{y}^* = \operatorname*{arg\,min}_{\vec{y} \in \mathcal{M}^n} \sum_{h=1}^C ||\vec{W}\mu(\vec{y}, E_h) - \vec{p}_{E_h} ||. \label{Eq:DiscOptProblemMC}\end{aligned}$$

Note that for one channel the minimization problem is equivalent to where the labeling is given by the attenuation values $\vec{x}$, by setting $\mu(\vec{y}, E_1) = \vec{x}$ and $\mathcal{M}^n = \mathcal{R}^n$ and $\vec{p}_{E_1} = \vec{p}$:

$$\begin{aligned}
\vec{y}^* &= \operatorname*{arg\,min}_{\vec{y} \in \mathcal{M}^n} ||\vec{W}\mu(\vec{y}, E_1) - \vec{p}_{E_1} || \\
          &= \operatorname*{arg\,min}_{\vec{x} \in \mathcal{R}^n} ||\vec{W}\vec{x} - \vec{p} ||.\end{aligned}$$

Algorithms
==========

In this section the Multi-Channel DART (MC-DART) framework for solving the minimization problem of Eq.  is introduced. We first explain the DART algorithm as given in [@DART1] by discussing the overall structure and its building blocks. We then describe each building block of the MC-DART algorithm separately in more detail. Note that ASTRA [@ASTRA2; @ASTRA] provides an implementation for numerically computing all projection matrices in these algorithms, either by storing the full matrix or doing all necessary computation in a matrix-free way.

DART
----

The DART algorithm attempts to solve the optimization problem of Eq. by iteratively alternating between continuous reconstruction steps and discrete segmentation steps. 