这是我拥有的代码。
\documentclass[runningheads]{elsarticle}
%
\setlength{\belowdisplayskip}{3pt}
\usepackage{algorithm}
\usepackage{algpseudocode}
\renewcommand{\algorithmicrequire}{\textbf{Input:}} % Use Input in the format of Algorithm
\renewcommand{\algorithmicensure}{\textbf{Output:}} % Use Output in the format of Algorithm
\newcommand{\tabincell}[2]{\begin{tabular}{@{}#1@{}}#2\end{tabular}}
%\usepackage[table]{xcolor}
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
{\centering
\begin{minipage}{.8\linewidth}
\begin{algorithm}[H]
\caption{GraphSAGE embedding generation (i.e., forward propagation) algorithm}
\label{alg:algorithm1}
\begin{algorithmic}[1]
\Require Graph $\mathcal{G}$ ($\mathcal{V}$, $\mathcal{E}$); input features $\{x_v, \forall{v} \in \mathcal{V}\}$; depth $\mathcal{K}$; weight matrices $W^k, \forall{$\textit{\mathcal{k}}$} \in \{1, ...,\mathcal{K}\}$; non-linearity $\sigma$; differentiable aggregator functions $AGGREGATE_k$, $x_v, \forall{k} \in \{1, ...,\mathcal{K}\}$; neighborhood function $\mathcal{N}: v \leftarrow 2^\mathcal{V}$
\Ensure
Vector representations $z_v$ for all ${v} \in \mathcal{V}$;
\State $h^0_v \leftarrow x_v, \forall v \in \mathcal{V}$;
\For{$k = 1...\mathcal{K}$}
\For{$v \in \mathcal{V}$}
\State $h^k_\mathcal{N}_(v)$
\leftarrow AGGREGATE_k $(\{h^{k}_u, \forall{u} \in \mathcal{N}_(v)\})$;
\State $h^{k}_v \leftarrow \sigma (W^k \cdot CONCAT(h^{k-1}_v, $h^k_\mathcal{N}__(v)$};
\EndFor
\State $h^k_v \leftarrow h^k_v / \mid\mid h^k_v \mid\mid_2,\forall{v} \in \mathcal{V}$;
\EndFor
\State $z_v \leftarrow h_v^K, \forall{v} \in \mathcal{V}$;
\end{algorithmic}
\end{algorithm}
\end{minipage}
\par
}
\end{document}
答案1
这是一个可能的解决方案:
\documentclass[runningheads]{elsarticle}
\setlength{\belowdisplayskip}{3pt}
\usepackage{bm}
\usepackage{mathtools}
\usepackage{algorithm}
\usepackage{algpseudocode}
\renewcommand{\algorithmicrequire}{\textbf{Input:}} % Use Input in the format of Algorithm
\renewcommand{\algorithmicensure}{\textbf{Output:}} % Use Output in the format of Algorithm
\begin{document}
\begin{center}
\begin{minipage}{.8\textwidth}
\begin{algorithm}[H]
\caption{GraphSAGE embedding generation (i.e., forward propagation) algorithm}
\label{alg:algorithm1}
\begin{algorithmic}[1]
\Require Graph $\mathcal{G}$ ($\mathcal{V}$, $\mathcal{E}$); input features $\{x_v, \forall{v} \in \mathcal{V}\}$; depth $K$; weight matrices $W^k, \forall{\mathcal{\textit{k}}} \in \{1, ...,K\}$; non-linearity $\sigma$; differentiable aggregator functions AGGREGATE$_k$, $x_v, \forall{k} \in \{1, ...,K\}$; neighborhood function $\mathcal{N}: v \leftarrow 2^\mathcal{V}$
\Ensure Vector representations $z_v$ for all ${v} \in \mathcal{V}$
\State $h^0_v \leftarrow x_v, \forall v \in \mathcal{V}$;
\For{$k = 1...\mathcal{K}$}
\For{$v \in \mathcal{V}$}
\State $h^k_{\mathcal{N}(v)} \leftarrow\text{AGGREGATE}_k \left(\{h^{k-1}_u, \forall{u} \in \mathcal{N}(v)\}\right)$
\State $h^k_v \leftarrow \sigma \left(W^k \cdot \text{CONCAT}(h^{k-1}_v, h^k_{\mathcal{N}(v)})\right)$
\EndFor
\State $h^k_v \leftarrow h^k_v / \mid\mid h^k_v \mid\mid_2,\forall{v} \in \mathcal{V}$
\EndFor
\State $z_v \leftarrow h_v^K, \forall{v} \in \mathcal{V}$;
\end{algorithmic}
\end{algorithm}
\end{minipage}
\par
\end{center}
\end{document}
以下是观察结果:
\mathcal
您在不需要的地方使用了它(根据给出的示例)。例如在\mathcal{K}
;- 突出显示的术语是错误的。只有
_
当您有下标时才应使用。也就是说,\mathcal{N}_(v)
正确的应该是 ,而不是\mathcal{N}(v)
; - 如果一个下标里面有一个下标,则必须使用
_{_{}}
。例如,h^k_{\mathcal{N}_{(v)}}
; - “CONCAT” 和 “AGGREGATE” 这两个词不是数学术语。因此您必须将它们放在文本格式中。您可以通过关闭数学环境(
$
例如)或使用 来实现这一点\text{}
。不过,最后一个选项需要mathtools
包。我用展台做了一个例子,所以您可以根据情况选择其中任何一个; - 在您给出的示例中,有些变量对我来说似乎是粗体。我建议您看一下这个,如果是这种情况,您可以使用
bm
包正确地将变量加粗。例如,\bm{z}
。