I am trying to write a pseudo code in MiKTeX. I have used \usepackage{algorithm}
\usepackage{algorithmic}
but I get:
Undefined control sequence' for every structure (\State, \While, \For, \If).
\begin{algorithm}
\caption{PSO}
\label{pseudoPSO}
\begin{algorithmic}[1]
\State Initialize a population of particles with random values positions and velocities from \textit{D} dimensions in the search space
\WHILE{Termination condition not reached}
\For{ Each particle \textit{i}}
\State Adapt velocity of the particle using Equation \ref{eq:1}
\State Update the position of the particle using Equation \ref{eq:2}
\State Evaluate the fitness {$f(\overrightarrow{X}_i)$}
\If{\begin{equation}f(\overrightarrow{X}_i)<f(\overrightarrow{P}_i)\end {equation}
\begin{equation}\overrightarrow{P}_i \gets \overrightarrow{X}_i\end{equation}
\EndIf
\If{\begin{equation}f(\overrightarrow{X}_i)<f(\overrightarrow{P}_g)\end{equation}
\begin{equation}\overrightarrow{P}_g \gets \overrightarrow{X}_i\end{equation}
\EndIf
\EndFor
\ENDWHILE
\end{algorithmic}
\end{algorithm}
Best Answer
You're loading
algorithmic
, but using the syntax ofalgpseudocode
.It doesn't make much sense using
equation
inside an algorithm, especially in the argument of\If
. Note that\WHILE
and\ENDWHILE
should be\While
and\EndWhile
.