2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-26 06:48:04 +02:00
LaTeX-examples/source-code/Pseudocode/label-correction/label-correction.tex

57 lines
2.2 KiB
TeX

\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
\setlength\PreviewBorder{2mm}
\usepackage[utf8]{inputenc} % this is needed for umlauts
\usepackage[ngerman]{babel} % this is needed for umlauts
\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf
\usepackage{amssymb,amsmath,amsfonts} % nice math rendering
\usepackage{braket} % needed for \Set
\usepackage{caption}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}
\DeclareCaptionFormat{myformat}{#3}
\captionsetup[algorithm]{format=myformat}
\begin{document}
\begin{preview}
\begin{algorithm}[H]
\begin{algorithmic}
\Require
\Statex Graph $G = (V, E)$
\Statex Weight from node $i$ to node $j$: $g_{ij}$
\Statex Starting node $s \in V$
\Statex End node $t \in V$
\Statex Lower bound to get from node $j$ to $t$: $h_j$ (default: $h_j = 0$)
\Statex Upper bound to get from node $j$ to $t$: $m_j$ (default: $m_j = \infty$)
\Procedure{LabelCorrection}{$G$, $s$, $t$, $h_j$}
\State $d_s \gets 0$
\State $d_i \gets \infty \quad \forall i \neq s$ \Comment{Distance of node $i$ from $s$}
\State $u \gets \infty$ \Comment{Distance from $s$ to $t$}
\State $K \gets \{s\}$ \Comment{Choose some datastructure here}
\While{$K$ is not empty}
\State $v \gets K.pop()$
\For{child $c$ of $v$}
\If{$d_c + m_j < u$}
\State $u \gets d_j + m_j$
\EndIf
\If{$d_v + g_{vc} + h_j < \min(d_c, u)$}
\State $d_c \gets d_v + g_{vc}$
\State $c.parent \gets v$
\If{$c \neq t$ and $c \notin K$}
\State $K.insert(c)$
\EndIf
\If{$c = t$}
\State $u \gets d_v + g_{vt}$
\EndIf
\EndIf
\EndFor
\EndWhile
\EndProcedure
\end{algorithmic}
\caption{Label correction algorithm}
\label{alg:label-correction-algorithm}
\end{algorithm}
\end{preview}
\end{document}