作者:金良([email protected]) csdn博客:http://blog.csdn.net/u012176591
\documentclass[11pt]{ctexart} \usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry} \usepackage{algorithm} \usepackage{algorithmicx} \usepackage{algpseudocode} \usepackage{amsmath} \floatname{algorithm}{算法} \renewcommand{\algorithmicrequire}{\textbf{输入:}} \renewcommand{\algorithmicensure}{\textbf{输出:}} \begin{document} \begin{algorithm} \caption{用归并排序求逆序数} \begin{algorithmic}[1] %每行显示行号 \Require $Array$数组,$n$数组大小 \Ensure 逆序数 \Function {MergerSort}{$Array, left, right$} \State $result \gets 0$ \If {$left < right$} \State $middle \gets (left + right) / 2$ \State $result \gets result +$ \Call{MergerSort}{$Array, left, middle$} \State $result \gets result +$ \Call{MergerSort}{$Array, middle, right$} \State $result \gets result +$ \Call{Merger}{$Array,left,middle,right$} \EndIf \State \Return{$result$} \EndFunction \State \Function{Merger}{$Array, left, middle, right$} \State $i\gets left$ \State $j\gets middle$ \State $k\gets 0$ \State $result \gets 0$ \While{$i<middle$ \textbf{and} $j<right$} \If{$Array[i]<Array[j]$} \State $B[k++]\gets Array[i++]$ \Else \State $B[k++] \gets Array[j++]$ \State $result \gets result + (middle - i)$ \EndIf \EndWhile \While{$i<middle$} \State $B[k++] \gets Array[i++]$ \EndWhile \While{$j<right$} \State $B[k++] \gets Array[j++]$ \EndWhile \For{$i = 0 \to k-1$} \State $Array[left + i] \gets B[i]$ \EndFor \State \Return{$result$} \EndFunction \end{algorithmic} \end{algorithm} \end{document}
\usepackage{algorithm} \usepackage{algpseudocode} \usepackage{amsmath} \renewcommand{\algorithmicrequire}{\textbf{Input:}} % Use Input in the format of Algorithm \renewcommand{\algorithmicensure}{\textbf{Output:}} % Use Output in the format of Algorithm
\begin{algorithm}[htb] \caption{ Framework of ensemble learning for our system.} \label{alg:Framwork} \begin{algorithmic}[1] \Require The set of positive samples for current batch, $P_n$; The set of unlabelled samples for current batch, $U_n$; Ensemble of classifiers on former batches, $E_{n-1}$; \Ensure Ensemble of classifiers on the current batch, $E_n$; \State Extracting the set of reliable negative and/or positive samples $T_n$ from $U_n$ with help of $P_n$; \label{code:fram:extract} \State Training ensemble of classifiers $E$ on $T_n \cup P_n$, with help of data in former batches; \label{code:fram:trainbase} \State $E_n=E_{n-1}cup E$; \label{code:fram:add} \State Classifying samples in $U_n-T_n$ by $E_n$; \label{code:fram:classify} \State Deleting some weak classifiers in $E_n$ so as to keep the capacity of $E_n$; \label{code:fram:select} \\ \Return $E_n$; \end{algorithmic} \end{algorithm}
\begin{algorithm}[h] \caption{An example for format For \& While Loop in Algorithm} \begin{algorithmic}[1] \For{each $i\in [1,9]$} \State initialize a tree $T_{i}$ with only a leaf (the root); \State $T=T\cup T_{i};$ \EndFor \ForAll {$c$ such that $c\in RecentMBatch(E_{n-1})$} \label{code:TrainBase:getc} \State $T=T\cup PosSample(c)$; \label{code:TrainBase:pos} \EndFor; \For{$i=1$; $i<n$; $i++$ } \State $//$ Your source here; \EndFor \For{$i=1$ to $n$} \State $//$ Your source here; \EndFor \State $//$ Reusing recent base classifiers. \label{code:recentStart} \While {$(|E_n| \leq L_1 )and( D \neq \phi)$} \State Selecting the most recent classifier $c_i$ from $D$; \State $D=D-c_i$; \State $E_n=E_n+c_i$; \EndWhile \label{code:recentEnd} \end{algorithmic} \end{algorithm}
\begin{algorithm}[h] \caption{Conjugate Gradient Algorithm with Dynamic Step-Size Control} \label{alg::conjugateGradient} \begin{algorithmic}[1] \Require $f(x)$: objective funtion; $x_0$: initial solution; $s$: step size; \Ensure optimal $x^{*}$ \State initial $g_0=0$ and $d_0=0$; \Repeat \State compute gradient directions $g_k=\bigtriangledown f(x_k)$; \State compute Polak-Ribiere parameter $\beta_k=\frac{g_k^{T}(g_k-g_{k-1})}{\parallel g_{k-1} \parallel^{2}}$; \State compute the conjugate directions $d_k=-g_k+\beta_k d_{k-1}$; \State compute the step size $\alpha_k=s/\parallel d_k \parallel_{2}$; \Until{($f(x_k)>f(x_{k-1})$)} \end{algorithmic} \end{algorithm}
\makeatletter \def\BState{\State\hskip-\ALG@thistlm} \makeatother \begin{algorithm} \caption{My algorithm}\label{euclid} \begin{algorithmic}[1] \Procedure{MyProcedure}{} \State $\textit{stringlen} \gets \text{length of }\textit{string}$ \State $i \gets \textit{patlen}$ \BState \emph{top}: \If {$i > \textit{stringlen}$} \Return false \EndIf \State $j \gets \textit{patlen}$ \BState \emph{loop}: \If {$\textit{string}(i) = \textit{path}(j)$} \State $j \gets j-1$. \State $i \gets i-1$. \State \textbf{goto} \emph{loop}. \State \textbf{close}; \EndIf \State $i \gets i+\max(\textit{delta}_1(\textit{string}(i)),\textit{delta}_2(j))$. \State \textbf{goto} \emph{top}. \EndProcedure \end{algorithmic} \end{algorithm}
\makeatletter \newif\if@restonecol \makeatother \let\algorithm\relax \let\endalgorithm\relax
\makeatletter \newif\if@restonecol \makeatother \let\algorithm\relax \let\endalgorithm\relax \usepackage[linesnumbered,ruled,vlined]{algorithm2e}%[ruled,vlined]{ \usepackage{algpseudocode} \usepackage{amsmath} \renewcommand{\algorithmicrequire}{\textbf{Input:}} % Use Input in the format of Algorithm \renewcommand{\algorithmicensure}{\textbf{Output:}} % Use Output in the format of Algorithm
\begin{algorithm} \caption{identify Row Context} \KwIn{$r_i$, $Backgrd(T_i)$=${T_1,T_2,\ldots ,T_n}$ and similarity threshold $\theta_r$} \KwOut{$con(r_i)$} $con(r_i)= \Phi$\; \For{$j=1;j \le n;j \ne i$} { float $maxSim=0$\; $r^{maxSim}=null$\; \While{not end of $T_j$} { compute Jaro($r_i,r_m$)($r_m\in T_j$)\; \If{$(Jaro(r_i,r_m) \ge \theta_r)\wedge (Jaro(r_i,r_m)\ge r^{maxSim})$} { replace $r^{maxSim}$ with $r_m$\; } } $con(r_i)=con(r_i)\cup {r^{maxSim}}$\; } return $con(r_i)$\; \end{algorithm}
\begin{algorithm} \caption{Service checkpoint image storage node and routing path selection} \LinesNumbered \KwIn{host server $PM_s$ that $SerImg_k$ is fetched from, $subnet_s$ that $PM_s$ belongs to, $pod_s$ that $PM_s$ belongs to} \KwOut{Service image storage server $storageserver$,and the image transfer path $path$} $storageserver$ = Storage node selection($PM_s$, $SerImg_k$,$subnet_s$,$pod_s$)\; \If{ $storageserver$ $\neq$ null} { select a path from $storageserver$ to $PM_s$ and assign the path to $path$\; } \textbf{final} \; \textbf{return} $storageserver$ and $path$; \end{algorithm}
\begin{algorithm} \caption{Storage node selection} \LinesNumbered \KwIn{host server $PM_s$ that the checkpoint image $Img$ is fetched from, $subnet_s$ that $PM_s$ belongs to, $pod_s$ that $PM_s$ belongs to} \KwOut{Image storage server $storageserver$} \For{ each host server $PM_i$ in the same subnet with $PM_s$ } { \If{ $PM_i$ is not a service providing node or checkpoint image storage node of $S_k$ } { add $PM_i$ to $candidateList$ \; } } sort $candidateList$ by reliability desc\; init $storageserver$ ; \For{ each $PM_k$ in $candidateList$} { \If{ $SP(PM_k)$ $\geq$ $E(SP)$ of $pod_i$ and $BM_k$ $\le$ size of $Img$ } { assign $PM_k$ to $storageserver$\; goto final\; } } clear $candidateList$\; add all other subnets in $pod_s$ to $netList$\; \For{ each subnet $subnet_j$ in $netList$} { clear $candidateList$\; \For {each $PM_i$ in $subnet_j$ } { \If{ $PM_i$ is not a service providing node or checkpoint image storage node of $S_k$ } { add $PM_i$ to $candidateList$\; } } sort all host in $candidateList$ by reliability desc\; \For{ each $PM_k$ in $candidateList$} { \If{$SP(PM_k)$ $\geq$ $E(SP)$ of $pod_i$ and $BM_k$ $\le$ size of $Img$} { assign $PM_k$ to $storageserver$ \; goto final\; } } } \textbf{final} \; \textbf{return} $storageserver$; \end{algorithm}
\begin{algorithm} \caption{Delta checkpoint image storage node and routing path selection} \LinesNumbered \KwIn{host server $PM_s$ that generates the delta checkpoint image $DImg_{kt}$, $subnet_s$ that $PM_s$ belongs to, $pod_s$ that $PM_s$ belongs to} \KwOut{Delta image storage server $storageserver$,and the image transfer path $Path$} $storageserver$ = Storage node selection($PM_s$, $DImg_{kt}$,$subnet_s$,$pod_s$)\; \If{ $storageserver$ $\equiv$ null} { the delta checkpoint image is stored in the central storage server\; goto final\; } construct weighted topological graph $graph_s$ of $pod_s$\; calculate the shortest path from $storageserver$ to $PM_s$ in $graph_s$ by using the Dijkstra algorithm\; \textbf{final} \; \textbf{return} $storageserver$ and $path$; \end{algorithm}
\documentclass[8pt,twocolumn]{ctexart} \usepackage{amssymb} \usepackage{bm} \usepackage{textcomp} %命令\textacutedbl的包,二阶导符号 % Page length commands go here in the preamble \setlength{\oddsidemargin}{-0.25in} % Left margin of 1 in + 0 in = 1 in \setlength{\textwidth}{9in} % 纸张宽度Right margin of 8.5 in - 1 in - 6.5 in = 1 in \setlength{\topmargin}{-.75in} % Top margin of 2 in -0.75 in = 1 in \setlength{\textheight}{9.2in} % Lower margin of 11 in - 9 in - 1 in = 1 in \setlength{\parindent}{0in} \makeatletter \newif\if@restonecol \makeatother \let\algorithm\relax \let\endalgorithm\relax \usepackage[linesnumbered,ruled,vlined]{algorithm2e}%[ruled,vlined]{ \usepackage{algpseudocode} \renewcommand{\algorithmicrequire}{\textbf{Input:}} \renewcommand{\algorithmicensure}{\textbf{Output:}} \begin{document} \begin{algorithm} \caption{component matrices computing} \LinesNumbered \KwIn{$\mathcal{X}\in\mathbb{R}^{l_1\times l_2\times\cdots\times l_N},\varepsilon,\lambda,\delta,R$} \KwOut{$A^{(j)}s$ for $j=1$ to $N$} \textbf{Initialize} all $A^{(j)}s$ //which can be seen as the $0^{th}$ round iterations\; {$l$\hspace*{-1pt}\textacutedbl}$=L$ //if we need to judge whether $(11)$ is true then {$l$\hspace*{-1pt}\textacutedbl} denotes $L|_{t-1}$\; \For{ each $A_{i_jr}^{{j}}(1\le j\le N,1\le i_j\le I_j,1\le r\le R)$ } {//$1^{st}$ round iterations\; $g_{i_jr}^{(j)'}=g_{i_jr}^{(j)}$\; $A_{i_jr}^{(j)'}=A_{i_jr}^{(j)}$//if the rollback shown as $(12)$ is needed,$A_{i_jr}^{(j)'}$ denotes $A_{i_jr}^{(j)}|_{t-1}$\; $A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\; } \Repeat(//other rounds of iterations for computing component matrices){$\bm{L\le \varepsilon}$ or maximum iterations exhausted} { $l'=L$ //if we need to judge whether $(11)$ is true then $l'$ denotes $L|_t$\; \For{ each $A_{i_jr}^{{j}}(1\le j\le N,1\le i_j\le I_j,1\le r\le R)$} { \If{$g_{i_jr}^{(j)}\cdot g_{i_jr}^{(j)'}>0$} { $A_{i_jr}^{(j)'}=A_{i_jr}^{(j)} $\; $g_{i_jr}^{(j)'}=g_{i_jr}^{(j)} $\; $\delta_{i_jr}^{(j)}=\bm{\min}\left(\delta_{i_jr}^{(j)}\cdot\eta^{+},Max\_Step\_Size\right)$\; $A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\; } \ElseIf{$g_{i_jr}^{(j)}\cdot g_{i_jr}^{(j)'}<0$} { \If{$l'>l$\hspace*{-1pt}\textacutedbl} { $g_{i_jr}^{(j)'}=g_{i_jr}^{(j)}$\; $A_{i_jr}^{(j)}=A_{i_jr}^{(j)'}$// if $(11)$ is true then rollback as $(12)$\; $\delta_{i_jr}^{(j)}=\bm{\max}\left(\delta_{i_jr}^{(j)}\times\eta^{-},Min\_Step\_Size\right)$\; } \Else { $A_{i_jr}^{(j)'}=A_{i_jr}^{(j)} $\; $g_{i_jr}^{(j)'}=g_{i_jr}^{(j)} $\; $\delta_{i_jr}^{(j)}=\bm{\max}\left(\delta_{i_jr}^{(j)}\cdot\eta^{-},Min\_Step\_Size\right)$\; $A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\; } } \Else { $A_{i_jr}^{(j)'}=A_{i_jr}^{(j)} $\; $g_{i_jr}^{(j)'}=g_{i_jr}^{(j)} $\; $A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\; } } $l$\hspace*{-1pt}\textacutedbl$=l'$\; } \end{algorithm} \end{document}