Как определить часто используемые переменные в псевдокоде?

Как определить часто используемые переменные в псевдокоде?

alg_pic

Для генерации вышеуказанного псевдокода я использовал следующий код:

\begin{algorithm}
\caption{sample}\label{sample}
\begin{algorithmic}[1]
\Require $\mathbf{D} \in \mathbb{R}^{M \times N}$
\State $\mathbf{V}^{(0)} \in \mathbb{R}^{K \times N} \gets $ random matrix
\For {$t= 1:T$}
    \State $\mathbf{U}^{(t)} \gets Update\mathbf{U}(\mathbf{D},\mathbf{V}^{t-1})$
    \State $\mathbf{V}^{(t)} \gets Update\mathbf{V}(\mathbf{D},\mathbf{U}^{t})$
\EndFor 
\State \Return $\mathbf{U}^{(T)},\mathbf{V}^{(T)}$
\end{algorithmic}
\end{algorithm}

Проблема в том, что мне нужно использовать for \mathbfall и представлять их как матрицу или вектор. Есть ли другой способ определить эти переменные один раз и не использовать for all?DUV\mathbf

решение1

Да, типичный подход здесь — следовать советам, изложенным вПоследовательная типография. То есть создайте макрос, определяющий концепцию, и используйте его во всем документе.

введите описание изображения здесь

\documentclass{article}

\usepackage{algorithm,algpseudocode,amsfonts}

\newcommand{\sampleset}{\mathbf{D}}
\newcommand{\universe}[1]{\mathbb{R}^{#1}}
\newcommand{\setA}{\mathbf{U}}
\newcommand{\setB}{\mathbf{V}}

\begin{document}

\begin{algorithm}
  \caption{sample}\label{sample}
  \begin{algorithmic}[1]
  \Require $\sampleset \in \universe{M \times N}$
  \State $\setB^{(0)} \in \universe{K \times N} \gets $ random matrix
  \For {$t= 1:T$}
    \State $\setA^{(t)} \gets Update\setA(\mathbf{D},\setA^{t-1})$
    \State $\setB^{(t)} \gets Update\setB(\mathbf{D},\setB^{t})$
  \EndFor 
  \State \Return $\setA^{(T)},\setB^{(T)}$
  \end{algorithmic}
\end{algorithm}

\end{document}

Выше я определил некоторыепеременные, но вы можете сделать то же самое с функциями внутри вашего алгоритма.

Связанный контент