5

As you see in my latex it shows end after If statement which supposes to end after Else. I tried removing the curly braces of the IF but it does not work.

\documentclass[journal]{IEEEtran}
\ifCLASSINFOpdf
\usepackage[pdftex]{graphicx}
\usepackage[dvips]{graphicx}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{amsfonts}
\usepackage{amssymb,mathtools}
\usepackage[linesnumbered,ruled,vlined] {algorithm2e}
\usepackage{nomencl}
\usepackage{algpseudocode}
\usepackage{algorithm}
\hyphenation{op-tical net-works semi-conduc-tor}

\begin{document}


\begin{algorithm}
    \caption{PEC, \texttt{PEC}}
    \SetAlgoLined
    \DontPrintSemicolon
    \textbf{Input:} I, P, C.
    
    
    \textbf{Output:} Set of $PS^*$= $\{{PS_{1},PS_{2}, ...,PS_{n}}\}$ 
    
    //Initialization
    
    \quad \quad \quad $PS^* \gets \emptyset$
    
    
    \For  {each, $i \in I$} {
        // Calculate
        
        $PS^{temp}_{i} \gets P$
        
        $PS^{loss}_{i} \gets C)$
        
        \If { $ C_{i}- P_{i} > 0$}{
            
            $PS_{i} \gets $($PS^{temp}_{i} - PS^{loss}_{i}$)
            
        }
        \Else {
            $PS_{i} \gets 0$
        }
    }

    
    return ($PS^*$)
    
    \label{alg:PoEG}
\end{algorithm}


\end{document}

The output for this problem is as follows, as you see the highlighted end, which I need to eliminate.

enter image description here

monir zaman
  • 309
  • 1
  • 3
  • 13

1 Answers1

5

Your code does not compile due to two major problems:

  • you must not load the graphicx package multiple times with conflicting options. If your tex distribution has been updated at least once since the Stone Age, then best load it without option and let latex determine the necessary driver itself.

  • you must not load conflicting packages for algorithms. Decide which one you want to use and load this. Latex very clearly gives you error messages about commands already defined, DON'T ignore errors!!!!!


... and then there is minor inconvenience of the additional end: simply use the \eIf macro instead of \If if you have an in-else statement

And finally a suggestion: if you you wouldn't manually mess with \quads and use appropriate keywords instead, things would align automatically

\documentclass[journal]{IEEEtran}
\ifCLASSINFOpdf
%\usepackage[pdftex]{graphicx}
%\usepackage[dvips]{graphicx}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{amsfonts}
\usepackage{amssymb,mathtools}
\usepackage{algpseudocode}
%\usepackage{algorithm}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
\usepackage{nomencl}

\hyphenation{op-tical net-works semi-conduc-tor}

\begin{document}

\begin{algorithm}
    \caption{Proof of Energy Generation, \texttt{PoEG}}
    \SetAlgoLined
    \SetKwInOut{Input}{input}
    \SetKwInOut{Output}{output}
    \DontPrintSemicolon
    \Input{Prosumer Set, $\textit{I}=\{{\textit{I}_{1},\textit{I}_{2},...,\textit{I}_{n}}$\},\linebreak
    Predicted energy production, $\textit{P}= \{{\textit{P}_{1},\textit{P}_{2},...,\textit{P}_{n}}$\}, \linebreak
    Predicted energy consumption, $\textit{C}= \{{\textit{C}_{1},\textit{C}_{2},...,\textit{C}_{n}}.$\},\linebreak
    Distance from DS, $\textit{D}= \{{\textit{d}_{1},\textit{d}_{2},...,\textit{d}_{n}}$\}.}
    
    \Output{Set of $PS^*$= $\{{PS_{1},PS_{2}, ...,PS_{n}}\}$ }
    
    //Initialization
    
    \quad \quad \quad $PS^* \gets \emptyset$
    
    
    \For  {each prosumers, $i \in I$} {
        // Calculate proof score for energy balance and loss,
        
        $PS^{temp}_{i} \gets \log(1/e^{C_i-P_i})$
        
        $PS^{loss}_{i} \gets \log(e^{E_{d_i}})$
        
        \eIf { $ C_{i}- P_{i} > 0$}{
            
            $PS_{i} \gets $($PS^{temp}_{i} - PS^{loss}_{i}$)
            
        }{
            $PS_{i} \gets 0$
        }
        $PS^* \gets$ $PS^* \cup   \{PS_{i}\}$
    }
    
    
    return ($PS^*$)
    
    \label{alg:PoEG}
\end{algorithm}


\end{document}

enter image description here

  • 1
    I made a mistake. Could you please change the code with the newly edited code because the solution will mislead people who seek answers as my previous code and the image were a bit different? Thanks in advance. – monir zaman Nov 10 '20 at 20:33