我不确定为什么在 for 循环末尾会出现两个额外的字符。查看 StackExchange 上的其他答案表明我不应该同时使用 algorithm 和 algorithmic,最好只使用其中一种。
但是,删除其中任何一个都不会产生我想要的结果。
这是代码。
\usepackage{setspace}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{multicol}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{subcaption}
\usepackage{colortbl}
\usepackage{xparse}
\usepackage{caption}
\usepackage{fancyhdr}
\usepackage{algpseudocode}
\begin{center}
\begin{minipage}{1\textwidth}
\begin{algorithm}[H]
\caption{Forward calculation for pair HMMs}
\begin{algorithmic}
\REQUIRE Set $f^{\mathrm{M}}(0,0)=1 f^{\mathrm{X}}(0,0)=f^{\mathrm{Y}}(0,0)= f^{*}(i,-1) = f^{*}(-1, j) = 0$
\FOR{$i=0, \ldots, n, j=0, \ldots, m \text { except }(0,0)$}
\begin{aligned}
f^{\mathrm{M}}(i, j) & = p_{I_{i} O_{j}}\left[a_{MM} (f^{\mathrm{M}}(i-1, j-1))+\\
& \quad \quad \left.a_{XM}\left(f^{\mathrm{X}}(i-1, j-1)\right)+a_{YM}(f^{\mathrm{Y}}(i-1, j-1)\right)\right] \\
f^{\mathrm{X}}(i, j) & = q_{I_{i}}\left[a_{MX} f^{\mathrm{M}}(i-1, j)+a_{XX} f^{\mathrm{X}}(i-1, j)\right] \\
f^{\mathrm{Y}}(i, j) & = q_{O_{j}}\left[a_{MY} f^{\mathrm{M}}(i, j-1)+a_{YY} f^{\mathrm{Y}}(i, j-1)\right]\\
\end{aligned}
\ENDFOR
\end{algorithmic}
\end{algorithm}
\end{minipage}
\end{center}
答案1
您不应该同时加载algorithmic
和algpseudocode
。您使用的是与前者相关的语法。
这是修复版本;请注意更改,特别是封闭aligned
和$...$
添加\STATE
。
我还删除了所有\left
和\right
,除了产生错误之外什么也没发生。
\documentclass{article}
\usepackage{amsmath}
\usepackage{algorithm}
\usepackage{algorithmic}
\begin{document}
\begin{algorithm}[H]
\caption{Forward calculation for pair HMMs}
\begin{algorithmic}
\REQUIRE Set $f^{\mathrm{M}}(0,0)=1$, $f^{\mathrm{X}}(0,0)=
f^{\mathrm{Y}}(0,0)= f^{*}(i,-1) = f^{*}(-1, j) = 0$
\FOR{$i=0, \dots, n$, $j=0, \dots, m$ except $(0,0)$}
\STATE $\begin{aligned}
f^{\mathrm{M}}(i, j) & = p_{I_{i} O_{j}}[a_{MM} (f^{\mathrm{M}}(i-1, j-1))+\\
& \quad \quad a_{XM}f^{\mathrm{X}}(i-1, j-1))+a_{YM}(f^{\mathrm{Y}}(i-1, j-1))] \\
f^{\mathrm{X}}(i, j) & = q_{I_{i}}[a_{MX} f^{\mathrm{M}}(i-1, j)+a_{XX} f^{\mathrm{X}}(i-1, j)] \\
f^{\mathrm{Y}}(i, j) & = q_{O_{j}}[a_{MY} f^{\mathrm{M}}(i, j-1)+a_{YY} f^{\mathrm{Y}}(i, j-1)]\\
\end{aligned}$
\ENDFOR
\end{algorithmic}
\end{algorithm}
\end{document}