I wrote the following algorithm, however its not compiling and throws a few errors. I am not sure of what I did wrong. Any help would be appreciated.
\begin{algorithm}
\caption{Bridging Score(BRS) Computation}
\begin{algorithmic}
Given: User-Noun Matrix $X$
\FOR {$i = 1 \to n$}
Let $S_i$ = {$s{i,j}$ | $0\le j \le l_i$} be set of nodes which have links to $i$;
\IF $\left({l_i=0$ OR $l_i=1 \right)}$ \THEN
$b_i=0$;
\ELSE
Compute the similarity score vectors $r_{s,1},r_{s,2},...,r_{s,l_i}$ for each $S_i=s_1,s_2,...s_{l_i}$; \\
Construct $l_i \times l_i$ matrix $R_i= \left[r_{s,1},r_{s,2},...,r_{s,l_i}\right]$;
Take the average of all non-diagonal elements in $R_i$ to obtain $\hat{r_s}$;
$b_i= 1/\hat{r_s}$;
\ENDIF
\ENDFOR
\RETURN vector $b$ of bridging scores;
\end{algorithmic}
\end{algorithm}
Best Answer
It is not completely clear to me which algorithm typesetting package are you using, since you did not include the document preamble, and your code is a strange jumble of several different syntaxes, mostly looking like the old
algorithms
package syntax, but not quite. Your tags seem to indicate that you are using thealgorithmicx
bundle, so I assume that you use thealgpseudocode
package. You need to correct some syntax, for examplealgpseudocode
does noy capitalize command, only first letter, so you should have\If ... \Else ... \EndIf
etc.Also, command
\For
and\If
take an argument, so you needThe
\If
does not use\Then
, you should leave that out.Every line must have a command, so you should either define your own commands for things like "Given:", or just use
\State
.The following will hopefully do what you expect it to do:
The
algorithmicx
bundle have pretty good documentation with a number of examples, I suggest you take a look at it.