算法伪代码是论文的核心之一.
* 需要说明输入、输出;
* 方法 (函数) 名可写可不写, 如果被别的方法调用就必须写;
* 需要写出主要步骤的注释;
* 长度控制在 15-30 行;
* 可使用数学式子或对已有数学式子的引用;
* 不重要的步骤可以省略;
* 一般需要进行时间、空间复杂度分析, 并写出配套的 property 以及相应的表格, 以使其更标准.
例子:
以下是该算法的 tex 源码:
\begin{algorithm}[!htb] \renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}} \caption{Multi-label active
learning through serial-parallel neural networks} \label{algorithm: masp}
\begin{algorithmic}[1] \REQUIRE data matrix $\mathbf{X}$, label matrix
$\mathbf{Y}$ for query, query budget $Q$, cold-start query budget $P$, number
of representative instances $R$, instance batch size $B_i$, label batch size
$B_l$ \ENSURE queried instance-label pairs $\mathbf{Q}$, prediction network
$\Theta$. \STATE Initialize the serial-parallel prediction network; \STATE
$\mathbf{Q} = \emptyset$;\\ // Stage 1. Cold start. \STATE Compute instance
representativeness according to Eq. \eqref{equation: dp-representativeness};
\STATE Select the top-$R$ representative instances to reorganize the training
set $\mathbf{X}$; \STATE Update $\mathbf{Q}$ and $\mathbf{Y}'$ by querying
$B_l$ labels for each of the top $\lfloor Q / B_l \rfloor$ representative
instances; \STATE Train the prediction network using $\mathbf{X}$ and
$\mathbf{Y}'$;\\ // Stage 2. Main learning process. \REPEAT \STATE Compute
$\hat{\mathbf{Y}}$ using the prediction network and Eq. \eqref{equation:
label-prediction}; \STATE Compute label uncertainty according to Eq.
\eqref{equation: label-uncertainty}; \STATE Query top-$B_i$ uncertain
instance-label pairs to update $\mathbf{Q}$ and $\mathbf{Y}'$; \STATE Update
the prediction network using $\mathbf{X}$ and $\mathbf{Y}'$;\\
\UNTIL{($|\mathbf{Q}| \geq Q$)} \end{algorithmic} \end{algorithm}