知乎:Latex-算法伪代码
IEEE的Latex模板中伪代码和画图
论文参考
伪代码
\usepackage{algorithmic}
\makeatletter
\newcommand{\removelatexerror}{\let\@latex@error\@gobble}
\makeatother
\begin{figure}[!t]
\label{alg:LSB}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\removelatexerror
\begin{algorithm}[H]
\caption{Local Search Based Algorithm}
\begin{algorithmic}[1]
\REQUIRE Candidate set $\mathbb{S}$, Initial set $\mathbb{X} = \varnothing$ %%input
\ENSURE Optimum set $\mathbb{X}$ %%output
\STATE {set $r(t)=x(t)$}
\end{algorithmic}
\end{algorithm}
\end{figure}
\begin{figure}[!t]
\label{alg:LSB}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\removelatexerror
\begin{algorithm}[H]
\caption{Local Search Based Algorithm}
\begin{algorithmic}[1]
\REQUIRE Candidate set $\mathbb{S}$, Initial set $\mathbb{X} = \varnothing$ %%input
\ENSURE Optimum set $\mathbb{X}$ %%output
\STATE Let $\mathbb{X} \leftarrow r$, if $\widetilde u({v})$ is the maximum over all singletons $r \in \mathbb{S}$.
\WHILE {there exists an element $a \in R\backslash S$ such that $\widetilde u(S \cup \left\{ a \right\}) > \left( {1 + \frac{\varepsilon }{{{n^2}}}} \right)\widetilde u(S)$}
\STATE let $S \leftarrow S \cup \left\{ a \right\}$.
\ENDWHILE
\WHILE{there exists an element $a \in S$ such that $\widetilde u(S\backslash \left\{ a \right\}) > \left( {1 + \frac{\varepsilon }{{{n^2}}}} \right)\widetilde u(S)$}
\STATE let $S \leftarrow S\backslash \left\{ a \right\}$.
\ENDWHILE
\STATE Return the maximum of $\widetilde u(S)$ and $\widetilde u(R\backslash S)$, where the local optimal set is $S$ or $R\backslash S$.
\end{algorithmic}
\end{algorithm}
\end{figure}
\begin{figure}[!t]
\label{alg:LSB}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\removelatexerror
\begin{algorithm}[H]
\caption{algorithm caption}%算法名字
\LinesNumbered %要求显示行号
\KwIn{input parameters A, B, C}%输入参数
\KwOut{output result}%输出
some description\; %\;用于换行
\For{condition}{
only if\;
\If{condition}{
1\;
}
}
\While{not at end of this document}{
if and else\;
\eIf{condition}{
1\;
}{
2\;
}
}
\ForEach{condition}{
\If{condition}{
1\;
}
}
\end{algorithm}
\end{figure}
\begin{figure}[!t]
\label{alg:LSB}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\removelatexerror
\begin{algorithm}[H]
\caption{Algorithm for ...}
\begin{algorithmic}[1]
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\REQUIRE in
\ENSURE out
\\ \textit{Initialisation} :
\STATE first statement
\\ \textit{LOOP Process}
\FOR {$i = l-2$ to $0$}
\STATE statements..
\IF {($i \ne 0$)}
\STATE statement..
\ENDIF
\ENDFOR
\RETURN $P$
\end{algorithmic}
\end{algorithm}
\end{figure}
下面是algorithmic的基本命令
\STATE <text>
\IF{<condition>} \STATE{<text>} \ENDIF
\FOR{<condition>} \STATE{<text>} \ENDFOR
\FOR{<condition> \TO <condition> } \STATE{<text>} \ENDFOR
\FORALL{<condition>} \STATE{<text>} \ENDFOR
\WHILE{<condition>} \STATE{<text>} \ENDWHILE
\REPEAT \STATE{<text>} \UNTIL{<condition>}
\LOOP \STATE{<text>} \ENDLOOP
\REQUIRE <text>
\ENSURE <text>
\RETURN <text>
\PRINT <text>
\COMMENT{<text>}
\AND, \OR, \XOR, \NOT, \TO, \TRUE, \FALSE