Replaced splicing with tuple

This commit is contained in:
Andreas Tsouchlos 2023-04-19 11:08:12 +02:00
parent 98c5761fa0
commit 5b7c0454bb
2 changed files with 20 additions and 19 deletions

View File

@ -562,7 +562,7 @@ complexity has been demonstrated to compare favorably to \ac{BP} \cite{original_
The \ac{LP} decoding problem in (\ref{eq:lp:relaxed_formulation}) can be
slightly rewritten using the auxiliary variables
$\boldsymbol{z}_{[1:m]}$:%
$\boldsymbol{z}_1, \ldots, \boldsymbol{z}_m$:%
%
\begin{align}
\begin{aligned}
@ -592,8 +592,8 @@ The multiple constraints can be addressed by introducing additional terms in the
augmented lagrangian:%
%
\begin{align*}
\mathcal{L}_{\mu}\left( \tilde{\boldsymbol{c}}, \boldsymbol{z}_{[1:m]},
\boldsymbol{\lambda}_{[1:m]} \right)
\mathcal{L}_{\mu}\left( \tilde{\boldsymbol{c}}, \left( \boldsymbol{z} \right)_{j=1}^m,
\left( \boldsymbol{\lambda} \right)_{j=1}^m \right)
= \boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}}
+ \sum_{j\in\mathcal{J}} \boldsymbol{\lambda}^\text{T}_j
\left( \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \boldsymbol{z}_j \right)
@ -606,18 +606,21 @@ The additional constraints remain in the dual optimization problem:%
\begin{align*}
\text{maximize } \min_{\substack{\tilde{\boldsymbol{c}} \\
\boldsymbol{z}_j \in \mathcal{P}_{d_j}\,\forall\,j\in\mathcal{J}}}
\mathcal{L}_{\mu}\left( \tilde{\boldsymbol{c}}, \boldsymbol{z}_{[1:m]},
\boldsymbol{\lambda}_{[1:m]} \right)
\mathcal{L}_{\mu}\left( \tilde{\boldsymbol{c}}, \left( \boldsymbol{z} \right)_{j=1}^m,
\left( \boldsymbol{\lambda} \right)_{j=1}^m \right)
.\end{align*}%
%
The steps to solve the dual problem then become:
%
\begin{alignat*}{3}
\tilde{\boldsymbol{c}} &\leftarrow \argmin_{\tilde{\boldsymbol{c}}} \mathcal{L}_{\mu} \left(
\tilde{\boldsymbol{c}}, \boldsymbol{z}_{[1:m]}, \boldsymbol{\lambda}_{[1:m]} \right) \\
\tilde{\boldsymbol{c}} &\leftarrow \argmin_{\tilde{\boldsymbol{c}}}
\mathcal{L}_{\mu} \left(
\tilde{\boldsymbol{c}}, \left( \boldsymbol{z} \right)_{j=1}^m,
\left( \boldsymbol{\lambda}\right)_{j=1}^m \right) \\
\boldsymbol{z}_j &\leftarrow \argmin_{\boldsymbol{z}_j \in \mathcal{P}_{d_j}}
\mathcal{L}_{\mu} \left(
\tilde{\boldsymbol{c}}, \boldsymbol{z}_{[1:m]}, \boldsymbol{\lambda}_{[1:m]} \right)
\tilde{\boldsymbol{c}}, \left( \boldsymbol{z} \right)_{j=1}^m,
\left( \boldsymbol{\lambda} \right)_{j=1}^m \right)
\hspace{3mm} &&\forall j\in\mathcal{J} \\
\boldsymbol{\lambda}_j &\leftarrow \boldsymbol{\lambda}_j
+ \mu\left( \boldsymbol{T}_j\tilde{\boldsymbol{c}}
@ -794,7 +797,7 @@ Defining%
the $\tilde{\boldsymbol{c}}$ update can then be rewritten as%
%
\begin{align*}
\tilde{\boldsymbol{c}} \leftarrow \boldsymbol{D}^{\circ -1} \circ
\tilde{\boldsymbol{c}} \leftarrow \boldsymbol{D}^{\circ \left(-1\right)} \circ
\left( \boldsymbol{s} - \frac{1}{\mu}\boldsymbol{\gamma} \right)
.\end{align*}
%
@ -820,7 +823,7 @@ while $\sum_{j\in\mathcal{J}} \lVert \boldsymbol{T}_j\tilde{\boldsymbol{c}}
\left( \boldsymbol{z}_j - \boldsymbol{u}_j \right) $
end for
for $i$ in $\mathcal{I}$ do
$\tilde{\boldsymbol{c}} \leftarrow \boldsymbol{D}^{\circ -1} \circ
$\tilde{\boldsymbol{c}} \leftarrow \boldsymbol{D}^{\circ \left( -1\right)} \circ
\left( \boldsymbol{s} - \frac{1}{\mu}\boldsymbol{\gamma} \right) $
end for
end while

View File

@ -24,13 +24,11 @@ For example:%
c \in \mathbb{F}_2 &\to \tilde{c} \in \left[ 0, 1 \right] \subseteq \mathbb{R}
.\end{align*}
%
Additionally, a shorthand notation will be used to denote series of indices and series
of indexed variables:%
Additionally, a shorthand notation will be used to denote a set of indices:%
%
\begin{align*}
\left[ m:n \right] &:= \left\{ m, m+1, \ldots, n-1, n \right\},
\hspace{5mm} m < n, \hspace{2mm} m,n\in\mathbb{Z}\\
x_{\left[ m:n \right] } &:= \left\{ x_m, x_{m+1}, \ldots, x_{n-1}, x_n \right\}
\hspace{5mm} m < n, \hspace{2mm} m,n\in\mathbb{Z}
.\end{align*}
\todo{Not really slicing. How should it be denoted?}
%
@ -619,7 +617,7 @@ $\boldsymbol{x}$, the Lagrangian is as well:
= \boldsymbol{b}
\end{align*}
\begin{align*}
\mathcal{L}\left( \boldsymbol{x}_{[1:N]}, \boldsymbol{\lambda} \right)
\mathcal{L}\left( \left( \boldsymbol{x}_i \right)_{i=1}^N, \boldsymbol{\lambda} \right)
= \sum_{i=1}^{N} g_i\left( \boldsymbol{x}_i \right)
+ \boldsymbol{\lambda}^\text{T} \left( \boldsymbol{b}
- \sum_{i=1}^{N} \boldsymbol{A}_i\boldsymbol{x_i} \right)
@ -641,7 +639,7 @@ This modified version of dual ascent is called \textit{dual decomposition}:
%
\begin{align*}
\boldsymbol{x}_i &\leftarrow \argmin_{\boldsymbol{x}_i}\mathcal{L}\left(
\boldsymbol{x}_{[1:N]}, \boldsymbol{\lambda}\right)
\left( \boldsymbol{x}_i \right)_{i=1}^N, \boldsymbol{\lambda}\right)
\hspace{5mm} \forall i \in [1:N]\\
\boldsymbol{\lambda} &\leftarrow \boldsymbol{\lambda}
+ \alpha\left( \sum_{i=1}^{N} \boldsymbol{A}_i\boldsymbol{x}_i
@ -652,13 +650,13 @@ This modified version of dual ascent is called \textit{dual decomposition}:
\ac{ADMM} works the same way as dual decomposition.
It only differs in the use of an \textit{augmented Lagrangian}
$\mathcal{L}_\mu\left( \boldsymbol{x}_{[1:N]}, \boldsymbol{\lambda} \right)$
$\mathcal{L}_\mu\left( \left( \boldsymbol{x} \right)_{i=1}^N, \boldsymbol{\lambda} \right)$
in order to strengthen the convergence properties.
The augmented Lagrangian extends the ordinary one with an additional penalty term
with the penaly parameter $\mu$:
%
\begin{align*}
\mathcal{L}_\mu \left( \boldsymbol{x}_{[1:N]}, \boldsymbol{\lambda} \right)
\mathcal{L}_\mu \left( \left( \boldsymbol{x} \right)_{i=1}^N, \boldsymbol{\lambda} \right)
= \underbrace{\sum_{i=1}^{N} g_i\left( \boldsymbol{x_i} \right)
+ \boldsymbol{\lambda}^\text{T}\left( \boldsymbol{b}
- \sum_{i=1}^{N} \boldsymbol{A}_i\boldsymbol{x}_i \right)}_{\text{Ordinary Lagrangian}}
@ -672,7 +670,7 @@ condition that the step size be $\mu$:%
%
\begin{align*}
\boldsymbol{x}_i &\leftarrow \argmin_{\boldsymbol{x}_i}\mathcal{L}_\mu\left(
\boldsymbol{x}_{[1:N]}, \boldsymbol{\lambda}\right)
\left( \boldsymbol{x} \right)_{i=1}^N, \boldsymbol{\lambda}\right)
\hspace{5mm} \forall i \in [1:N]\\
\boldsymbol{\lambda} &\leftarrow \boldsymbol{\lambda}
+ \mu\left( \sum_{i=1}^{N} \boldsymbol{A}_i\boldsymbol{x}_i