latex 中 algorithm2e 的伪代码格式不正确

latex 中 algorithm2e 的伪代码格式不正确

我正在尝试使用 latex 和 algorithm2e 包向我的文章中添加伪代码。

不幸的是,我的一个算法的格式很糟糕。

这是我的乳胶文件:

\documentclass[12pt,a4paper,oneside]

\usepackage{url}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{amssymb,amsmath,amsthm}
%\\usepackage{graphics}
\usepackage{graphicx}
\usepackage[linesnumbered,french]{algorithm2e}
\usepackage{hyperref}
\usepackage{cite}
\usepackage{float}


\begin{document}

\begingroup
    \fontsize{10pt}{12pt}\selectfont
 \begin{algorithm}[H]
 \Entree{Un Graphe G, Ensemble de Sommets X}
 \Sortie{Liste de sommets: ensemble dominant minimum}
 \caption{Algorithme pour tout type de graphe}
 \Si{$taille(X) = 0$}{\State \Retour\{\}}
 \State Choisir v tel que $d(v) =1$ ou $2$\\
 \Si {v est vide}{
   \State X0 = sommets dans X avec degré 0\\
   \Si {taille$(X0)$ = taille$(X)$}{
         \State \Retour X0
        }
   \State X1 = X - X0\\
   \State X2 = ensemble des sous-ensembles de X1 de taille $1$ à $3 *$ taille$(X1)/8$\\
     \State \Retour {l'ensemble de X2 qui est MDS de X1}
    }
\Si{$d(v) = 1$}{
    \Si {v \in V - X}
          {\State \Retour mdsForArbitraryGraph $(G-\{v\}, X-\{v\})$}
    \SinonSi {$v \in X$}
          {\State choisir w tel que w et le voisin unique de v\\
          \State \Retour mdsForArbitraryGraph$(G-\{v, w\}, X-N[w])$}
}
\SinonSi {$d(v) = 2$}{
   \State {u1, u2 = voisins de v}\\ 
   \Si {v \in V-X}{
         \State C1 = mdsForArbitraryGraph $(G-\{u1, v\}, X-N[u1])$\\
         \State C2 = mdsForArbitraryGraph $(G-\{u1, v, u2\}, X-\{u1, u2\})$\\
         \State C3 = mdsForArbitraryGraph $(G-\{v\}, X)$\\
         \State \Retour min (C1, C2, C3)
        }
   \SinonSi {v \in X}{
         \State D1 = mdsForArbitraryGraph $(G-\{u1, v\}, X-N [u1])$\\
         \State D2 = mdsForArbitraryGraph $(G-\{u1, v, u2\}, X-\{u1, v, u2\})$\\
         \State D3 = mdsForArbitraryGraph $(G-\{u2, v\}, X-N[u2])$\\
         \State \Retour min (D1, D2, D3)\\
                }
}

\end{algorithm}
\endgroup
\end{document}

以下是错误的输出:

在此处输入图片描述

有人能检查一下为什么我得到这种错误的格式吗?

我们可以看到伪代码的结尾并没有以结束语句(法语中为 fin)来完成。

谢谢

答案1

中没有\State命令algorithm2e。您还遇到了几个缺少的错误$;我修复了一些,但您应该检查整个内容以对变量进行统一处理。

我也习惯\small将大件物品放在一页纸上。移除后[H],它就可以真正地浮动了。

\documentclass[12pt,a4paper,oneside]{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage{amssymb,amsmath,amsthm}
\usepackage[linesnumbered,french]{algorithm2e}

\begin{document}

 \begin{algorithm}
 \small
 \Entree{Un Graphe G, Ensemble de Sommets X}
 \Sortie{Liste de sommets: ensemble dominant minimum}
 \caption{Algorithme pour tout type de graphe}
 \Si{$taille(X) = 0$}{\Retour\{\}}
 Choisir $v$ tel que $d(v) =1$ ou $2$\\
 \Si {$v$ est vide}{
   X0 = sommets dans X avec degré 0\\
   \Si {taille$(X0)$ = taille$(X)$}{
         \Retour X0
        }
   X1 = X - X0\\
   X2 = ensemble des sous-ensembles de X1 de taille $1$ à $3 *$ taille$(X1)/8$\\
     \Retour {l'ensemble de X2 qui est MDS de X1}
    }
\Si{$d(v) = 1$}{
    \Si {$v \in V - X$}
          {\Retour mdsForArbitraryGraph $(G-\{v\}, X-\{v\})$}
    \SinonSi {$v \in X$}
          {choisir w tel que w et le voisin unique de v\\
          \Retour mdsForArbitraryGraph$(G-\{v, w\}, X-N[w])$}
}
\SinonSi {$d(v) = 2$}{
   {u1, u2 = voisins de v}\\ 
   \Si {$v \in V-X$}{
         C1 = mdsForArbitraryGraph $(G-\{u1, v\}, X-N[u1])$\\
         C2 = mdsForArbitraryGraph $(G-\{u1, v, u2\}, X-\{u1, u2\})$\\
         C3 = mdsForArbitraryGraph $(G-\{v\}, X)$\\
         \Retour min (C1, C2, C3)
        }
   \SinonSi {$v \in X$}{
         D1 = mdsForArbitraryGraph $(G-\{u1, v\}, X-N [u1])$\\
         D2 = mdsForArbitraryGraph $(G-\{u1, v, u2\}, X-\{u1, v, u2\})$\\
         D3 = mdsForArbitraryGraph $(G-\{u2, v\}, X-N[u2])$\\
         \Retour min (D1, D2, D3)\\
                }
}

\end{algorithm}
\end{document}

在此处输入图片描述

相关内容