IEEE模板伪代码
问题: 格式显示不对,且 \\ 换行后不会自动标序号
解决办法:
在宏包中只保留
\usepackage[algo2e,linesnumbered,lined,boxed,commentsnumbered,ruled]{algorithm2e}
删除其他伪代码宏包:
%\usepackage{algorithmic}
%\usepackage{algorithm}
三者之间的具体区别如下所示:
在 LaTeX 中,algorithm2e、algorithmic 和 algorithm 都是用于插入算法伪代码的包,但它们之间有些区别:
- algorithm2e:这是一个较新的算法包,它提供了更多功能和定制选项,可以自定制编号风格、缩进等。算法float环境可以让算法独立成段。整体来说功能更加强大和灵活。
- algorithmic:这是较早的算法包,提供插入算法伪代码的基本功能,但定制性不如algorithm2e。默认的编号风格也不太理想。
- algorithm:这是一个非常简单的包,只提供了algorithm环境,缺少 numbering 和缩进等额外功能。可定制性很差。
总结它们的关系:- algorithm2e > algorithmic > algorithm
- algorithm2e是最先进和可定制的算法包。
- algorithmic也可以满足基本需求,是比较流行的选择。
- algorithm功能太少,通常不会单独使用。
建议使用algorithm2e来插入算法,如果要跟旧文档保持一致可以使用algorihtmic,尽量避免只用algorithm。
相对应的,在文中使用的时候,全部替换成“algorithm2e ”
算法伪代码:
\begin{algorithm2e}[!htb]
\caption{Hypershpere Neighborhood Rough Set (HNRS)}\label{algorithm1}
\LinesNumbered
\SetKwData{Left}{left}\SetKwData{This}{this}\SetKwData{Up}{up}
\SetKwFunction{Union}{Union}\SetKwFunction{FindCompress}{FindCompress}
\SetKwInOut{Input}{Input}\SetKwInOut{Output}{Output}
\Input{A decision table $\langle U, A, D \rangle$, $A=\{a_1, a_2, \dots, a_m\}$;}
\Output{A reduced attribute set $B$;}
\BlankLine
Initialization: $B = A $;\\
Generate a hyperspheres for each equivalence class on $B$ by FISVDD ;\\
Generate the center and the radius of each hypersphere on $B$ by and , respectively;\\
Generate the positive region of $U$ on $B$ by ;\\
Remove a condition attribute $a_i$ in $B$;\\
Partition each instance into the nearest hypersphere on $B$ by Eq. based on the positive region in step 4;\\
Calculate the purity of the newly generated hyperspheres;\\
\eIf{the purity of each hypersphere is 1}{
Go to step 2;\ \ //\ \ $a_i$ is a relative redundancy attribute of $B$\\
}
{
Add the condition attribute $a_i$ to $B$;\ \ //\ \ $a_i$ should be retained\\
\eIf{all attributes in $B$ have been checked}{
Return $B$;
}
{
Remove a new condition attribute in $B$ and go to step 6;\\
}
}
\end{algorithm2e}
效果图