未定义控制序列 \WHILE

未定义控制序列 \WHILE

我的乳胶代码中出现未定义的控制序列 \WHILE 错误。

\documentclass[11pt]{article} 
\usepackage{algorithm} 
\usepackage{algorithmicx}
\begin{document}
\begin{algorithm}
\begin{algorithmic}
$ \bar{w} \leftarrow  w.$

$S = \{u \in V : w(u) = 0 \}$.
$ \WHILE{S is not a hitting set for C} do
  \mathcal{M} $  a collection of cycles returned by a violation oracle Violation(G, C, S).
$c_{ \mathcal{M} (u) } \leftarrow |{M _ M : u _ M}|, for all u _ V $.
 $ \alpha 
\leftarrow min_ {u \in V \backslash S} | w(u) /
c_{M (u) } $
$\bar{
w(u) } \leftarrow  w(u) - \alpha cM (u),$ for all u in V.
$ S \leftarrow \{u _ V : w(u) = 0 \}. 
\ENDWHILE $
%end
return a minimal hitting set $ H \subset S $ of $\mathcal{C}$.
\end{algorithmic}
\end{algorithm}
\end{document}

另外,我对各种算法包以及哪些可以一起使用感到有点困惑

答案1

这个例子有效(不确定我的格式是否正确)。

\documentclass[11pt]{article} 
\usepackage{algorithm}
\usepackage{algorithmic}
\begin{document}
\begin{algorithm}
\begin{algorithmic}
  \STATE $ \bar{w} \leftarrow  w.$
  \STATE $S = \{u \in V : w(u) = 0 \}$.
  \WHILE{$S$ is not a hitting set for $C$} 
  \STATE $\mathcal{M} $  a collection of cycles returned by a violation oracle Violation(G, C, S).
  \STATE $c_{ \mathcal{M} (u) } \leftarrow |{M _ M : u _ M}|, for all u _ V $.
  \STATE $ \alpha \leftarrow min_ {u \in V \backslash S} | w(u) / c_{M (u) } $
  \STATE $\bar{ w(u) } \leftarrow  w(u) - \alpha cM (u),$ for all u in V.
  \STATE $ S \leftarrow \{u _ V : w(u) = 0 \}$. 
\ENDWHILE 
\RETURN a minimal hitting set $ H \subset S $ of $\mathcal{C}$.
\end{algorithmic}
\end{algorithm}
\end{document}

您引用的 WIKI 页面很难阅读,不清楚在哪里使用了哪个伪代码包,并且它们不使用相同的语法(这就是我做出反应\WHILE并认为拼写不同(并非全部大写)的原因)。相同使用的语法来自而algorithmic不是您尝试使用的语法。

相关内容