Algoritmo: comando \end{list} no válido en modo matemático

Algoritmo: comando \end{list} no válido en modo matemático

Acabo de empezar con Latex y tengo un poco de dificultad con el algoritmo. Aquí está el algoritmo que trato de mostrar. Pero en la linea del primer ENDFOR me sale este error

Error de látex: Command \end{list} invalid in math mode no veo qué hay de malo en esto.

Gracias por su ayuda.

\begin{algorithm}
\caption{Algorithme de Dijkstra}
\begin{algorithmic}[1]
\REQUIRE Un graphe $G$
\REQUIRE Un noeud source $s$
\ENSURE Les plus court chemins de s vers tout les autres noeuds de G $A$
\FORALL{$v \in V[G]$}
    \STATE $d[v] \leftarrow +\infty$ 
    \STATE $previous[v] \leftarrow undefined
\ENDFOR
\STATE $d[s] \leftarrow 0
\STATE $S \leftarrow empty set
\STATE $Q \leftarrow $V[G]
\Loop Q is not an empty set 
    \STATE $u \leftarrow  Extract_Min(Q)
    \STATE $S \leftarrow  S union $u
    \ForAll{edge (u,v) outgoing from u}  
    \IF{d[u] + w(u,v) < d[v]}
        \STATE d[v] \leftarrow d[u] + w(u,v)
        \STATE previous[v] := u 
    \ENDIF
    \EndFor
\EndLoop
\end{algorithmic}
\end{algorithm}

Respuesta1

No eres coherente con delimitar fórmulas matemáticas; por ejemplo, en la segunda \STATElínea, abre una fórmula matemática, sin cerrarla.

He intentado hacer que los algoritmos sean más consistentes. Tenga en cuenta que \LOOPy \Loopno son lo mismo (y este último no está definido en algorithmic). Si está utilizando un conjunto diferente de paquetes, infórmelo.

\documentclass{article}
\usepackage{amsmath}
\usepackage{algorithm}
\usepackage{algorithmic}

\newcommand{\kw}[1]{\textrm{#1}}

\begin{document}
\begin{algorithm}
\caption{Algorithme de Dijkstra}
\begin{algorithmic}[1]
\REQUIRE Un graphe $G$
\REQUIRE Un noeud source $s$
\ENSURE Les plus court chemins de $s$ vers tout les autres noeuds de $G$ $A$
\FORALL{$v \in V[G]$}
    \STATE $d[v] \leftarrow +\infty$ 
    \STATE $\kw{previous}[v] \leftarrow \kw{undefined}$
\ENDFOR
\STATE $d[s] \leftarrow 0$
\STATE $S \leftarrow \kw{empty set}$
\STATE $Q \leftarrow V[G]$
\LOOP 
    \STATE $Q$ is not an empty set 
    \STATE $u \leftarrow  \kw{Extract}_{\kw{Min}}(Q)$
    \STATE $S \leftarrow  S \cup \{u\}$
    \FORALL{edge $(u,v)$ outgoing from $u$}  
    \IF{$d[u] + w(u,v) < d[v]$}
        \STATE $d[v] \leftarrow d[u] + w(u,v)$
        \STATE $\kw{previous}[v] := u$ 
    \ENDIF
    \ENDFOR
\ENDLOOP
\end{algorithmic}
\end{algorithm}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada