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 The \ac{LP} decoding problem in (\ref{eq:lp:relaxed_formulation}) can be
slightly rewritten using the auxiliary variables slightly rewritten using the auxiliary variables
$\boldsymbol{z}_{[1:m]}$:% $\boldsymbol{z}_1, \ldots, \boldsymbol{z}_m$:%
% %
\begin{align} \begin{align}
\begin{aligned} \begin{aligned}
@ -592,8 +592,8 @@ The multiple constraints can be addressed by introducing additional terms in the
augmented lagrangian:% augmented lagrangian:%
% %
\begin{align*} \begin{align*}
\mathcal{L}_{\mu}\left( \tilde{\boldsymbol{c}}, \boldsymbol{z}_{[1:m]}, \mathcal{L}_{\mu}\left( \tilde{\boldsymbol{c}}, \left( \boldsymbol{z} \right)_{j=1}^m,
\boldsymbol{\lambda}_{[1:m]} \right) \left( \boldsymbol{\lambda} \right)_{j=1}^m \right)
= \boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}} = \boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}}
+ \sum_{j\in\mathcal{J}} \boldsymbol{\lambda}^\text{T}_j + \sum_{j\in\mathcal{J}} \boldsymbol{\lambda}^\text{T}_j
\left( \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \boldsymbol{z}_j \right) \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*} \begin{align*}
\text{maximize } \min_{\substack{\tilde{\boldsymbol{c}} \\ \text{maximize } \min_{\substack{\tilde{\boldsymbol{c}} \\
\boldsymbol{z}_j \in \mathcal{P}_{d_j}\,\forall\,j\in\mathcal{J}}} \boldsymbol{z}_j \in \mathcal{P}_{d_j}\,\forall\,j\in\mathcal{J}}}
\mathcal{L}_{\mu}\left( \tilde{\boldsymbol{c}}, \boldsymbol{z}_{[1:m]}, \mathcal{L}_{\mu}\left( \tilde{\boldsymbol{c}}, \left( \boldsymbol{z} \right)_{j=1}^m,
\boldsymbol{\lambda}_{[1:m]} \right) \left( \boldsymbol{\lambda} \right)_{j=1}^m \right)
.\end{align*}% .\end{align*}%
% %
The steps to solve the dual problem then become: The steps to solve the dual problem then become:
% %
\begin{alignat*}{3} \begin{alignat*}{3}
\tilde{\boldsymbol{c}} &\leftarrow \argmin_{\tilde{\boldsymbol{c}}} \mathcal{L}_{\mu} \left( \tilde{\boldsymbol{c}} &\leftarrow \argmin_{\tilde{\boldsymbol{c}}}
\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{z}_j &\leftarrow \argmin_{\boldsymbol{z}_j \in \mathcal{P}_{d_j}} \boldsymbol{z}_j &\leftarrow \argmin_{\boldsymbol{z}_j \in \mathcal{P}_{d_j}}
\mathcal{L}_{\mu} \left( \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} \\ \hspace{3mm} &&\forall j\in\mathcal{J} \\
\boldsymbol{\lambda}_j &\leftarrow \boldsymbol{\lambda}_j \boldsymbol{\lambda}_j &\leftarrow \boldsymbol{\lambda}_j
+ \mu\left( \boldsymbol{T}_j\tilde{\boldsymbol{c}} + \mu\left( \boldsymbol{T}_j\tilde{\boldsymbol{c}}
@ -794,7 +797,7 @@ Defining%
the $\tilde{\boldsymbol{c}}$ update can then be rewritten as% the $\tilde{\boldsymbol{c}}$ update can then be rewritten as%
% %
\begin{align*} \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) \left( \boldsymbol{s} - \frac{1}{\mu}\boldsymbol{\gamma} \right)
.\end{align*} .\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) $ \left( \boldsymbol{z}_j - \boldsymbol{u}_j \right) $
end for end for
for $i$ in $\mathcal{I}$ do 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) $ \left( \boldsymbol{s} - \frac{1}{\mu}\boldsymbol{\gamma} \right) $
end for end for
end while 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} c \in \mathbb{F}_2 &\to \tilde{c} \in \left[ 0, 1 \right] \subseteq \mathbb{R}
.\end{align*} .\end{align*}
% %
Additionally, a shorthand notation will be used to denote series of indices and series Additionally, a shorthand notation will be used to denote a set of indices:%
of indexed variables:%
% %
\begin{align*} \begin{align*}
\left[ m:n \right] &:= \left\{ m, m+1, \ldots, n-1, n \right\}, \left[ m:n \right] &:= \left\{ m, m+1, \ldots, n-1, n \right\},
\hspace{5mm} m < n, \hspace{2mm} m,n\in\mathbb{Z}\\ \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\}
.\end{align*} .\end{align*}
\todo{Not really slicing. How should it be denoted?} \todo{Not really slicing. How should it be denoted?}
% %
@ -619,7 +617,7 @@ $\boldsymbol{x}$, the Lagrangian is as well:
= \boldsymbol{b} = \boldsymbol{b}
\end{align*} \end{align*}
\begin{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) = \sum_{i=1}^{N} g_i\left( \boldsymbol{x}_i \right)
+ \boldsymbol{\lambda}^\text{T} \left( \boldsymbol{b} + \boldsymbol{\lambda}^\text{T} \left( \boldsymbol{b}
- \sum_{i=1}^{N} \boldsymbol{A}_i\boldsymbol{x_i} \right) - \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*} \begin{align*}
\boldsymbol{x}_i &\leftarrow \argmin_{\boldsymbol{x}_i}\mathcal{L}\left( \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]\\ \hspace{5mm} \forall i \in [1:N]\\
\boldsymbol{\lambda} &\leftarrow \boldsymbol{\lambda} \boldsymbol{\lambda} &\leftarrow \boldsymbol{\lambda}
+ \alpha\left( \sum_{i=1}^{N} \boldsymbol{A}_i\boldsymbol{x}_i + \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. \ac{ADMM} works the same way as dual decomposition.
It only differs in the use of an \textit{augmented Lagrangian} 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. in order to strengthen the convergence properties.
The augmented Lagrangian extends the ordinary one with an additional penalty term The augmented Lagrangian extends the ordinary one with an additional penalty term
with the penaly parameter $\mu$: with the penaly parameter $\mu$:
% %
\begin{align*} \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) = \underbrace{\sum_{i=1}^{N} g_i\left( \boldsymbol{x_i} \right)
+ \boldsymbol{\lambda}^\text{T}\left( \boldsymbol{b} + \boldsymbol{\lambda}^\text{T}\left( \boldsymbol{b}
- \sum_{i=1}^{N} \boldsymbol{A}_i\boldsymbol{x}_i \right)}_{\text{Ordinary Lagrangian}} - \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*} \begin{align*}
\boldsymbol{x}_i &\leftarrow \argmin_{\boldsymbol{x}_i}\mathcal{L}_\mu\left( \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]\\ \hspace{5mm} \forall i \in [1:N]\\
\boldsymbol{\lambda} &\leftarrow \boldsymbol{\lambda} \boldsymbol{\lambda} &\leftarrow \boldsymbol{\lambda}
+ \mu\left( \sum_{i=1}^{N} \boldsymbol{A}_i\boldsymbol{x}_i + \mu\left( \sum_{i=1}^{N} \boldsymbol{A}_i\boldsymbol{x}_i