¿Cómo arreglar la numeración de un algoritmo en un entorno algorítmico y algorítmico?

¿Cómo arreglar la numeración de un algoritmo en un entorno algorítmico y algorítmico?

Tengo un pseudocódigo para un algoritmo, que parece estar bien (con algunos errores menores en la compilación). Pero el mayor problema es que la numeración de los pasos no coincide con el número de pasos del algoritmo. Tengo un MWE a continuación.

\documentclass[conference]{IEEEtran}
\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{graphicx}
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{tabulary}
\usepackage{algpseudocode}
\usepackage{booktabs}
\usepackage{cleveref}
\usepackage{enumitem}
\usepackage{subcaption}
\usepackage{amsmath,amssymb,amsthm,bbm,color,psfrag,amsfonts}
\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}
\usepackage{url}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}{Lemma}
\newtheorem{asu}{Assumption}
\newtheorem{remark}{Remark}
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\crefname{lemma}{Lemma}{Lemmas}
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}
\begin{document}
 \begin{algorithm}[H]
 \caption{My Algorithm}\label{alg:greedy}
 \begin{algorithmic}[1]
 \renewcommand{\algorithmicrequire}{\textbf{Input:}}
 \renewcommand{\algorithmicensure}{\textbf{Output:}}
 \Require $M^0=4$.
 \Ensure $V,\text{found}$  
  \WHILE{$P^l \neq \emptyset$}
  \STATE{state}
    \For{$i \in 1....|N|$} 
        \State{Compute }
    \EndFor \label{nio}
    \State Get $\theta$ \%. \label{tre}
    \State $G \gets$ Find vals$) \label{find_vals}
    \State $T,Y^{m+1} \gets $ \Call{Otherfunc}{$I$} \label{p}
 \ENDWHILE
 \end{algorithmic}
 \end{algorithm}
\end{document}

Notarás que el número "2" aparece muchas veces. Se agradecería cualquier ayuda sobre cómo arreglar la numeración. ¿Algunas ideas?

PD: Puede que notes que esta es la plantilla IEEE, en caso de que te ayude.

Respuesta1

Deberías usar uno algorithmico algpseudocodeno ambos. Estás mezclando la sintaxis de ambos paquetes y obviamente obtienes errores.

Aquí hay una versión correcta, donde los paquetes y las definiciones no están duplicados.

Yo señalaría que

  1. caption(y por lo tanto subcaption) no se puede utilizar con IEEEtran. Si necesita subfloats, cargue \usepackage[caption=false]{subfig}y verifique la sintaxis de este paquete;

  2. textcompya no es necesario

  3. psfragno es compatible conpdflatex

\documentclass[conference]{IEEEtran}
\usepackage{cite}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{graphicx}
%\usepackage{textcomp}% no longer necessary
\usepackage{xcolor}
\usepackage{algorithm}
%\usepackage{algorithmic}
\usepackage{algpseudocode}
\usepackage{booktabs}
\usepackage{enumitem}
%\usepackage{subcaption}% not with IEEEtran
\usepackage{url}
\usepackage{cleveref}

\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}

\newtheorem{theorem}{Theorem}
\newtheorem{lemma}{Lemma}
\newtheorem{asu}{Assumption}
\newtheorem{remark}{Remark}
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\crefname{lemma}{Lemma}{Lemmas}


\begin{document}

\begin{algorithm}[H]
\caption{My Algorithm}\label{alg:greedy}
\begin{algorithmic}[1]
\Require $M^0=4$.
\Ensure $V,\text{found}$  
\While{$P^l \neq \emptyset$}
  \State state
  \For{$i \in 1\dots|N|$} 
    \State Compute
  \EndFor \label{nio}
  \State Get $\theta$ \%. \label{tre}
  \State $G \gets$ Find vals \label{find_vals}
  \State $T,Y^{m+1} \gets $ \Call{Otherfunc}{$I$} \label{p}
\EndWhile
\end{algorithmic}
\end{algorithm}

\end{document}

ingrese la descripción de la imagen aquí

También recomendaría cargar \usepackage{newtx}(y eliminar amssymblo que ya está cubierto por el primero). Este es el resultado que obtienes, con matemáticas en fuentes tipo Times. Aquí las primeras líneas para ver cómo se llama el paquete (después amsthm).

\documentclass[conference]{IEEEtran}
\usepackage{cite}
\usepackage{amsmath,amsthm}
\usepackage{newtx}

ingrese la descripción de la imagen aquí

información relacionada