2. 沈阳理工大学信息科学与工程学院, 辽宁 沈阳 110159
2. School of Information Science and Engineering, Shenyang Ligong University, Shenyang 110159, China
1 引言
随着信息化与工业化深度融合以及物联网的快速发展,工业控制系统产品越来越多地采用通用协议、 通用硬件和通用软件. 网络化浪潮又将诸如嵌入式技术、 多标准工业控制网络互联、 无线技术等新兴技术融合进来,从而拓展了工业控制的发展空间,带来了新的发展机遇,同时也给工业控制系统带来了信息安全等问题.
2010年“震网”病毒事件破坏了伊朗核设施,震惊了全球. 这标志着网络攻击从传统“软攻击”阶段升级为直接攻击电力、 金融、 通信、 核设施等核心要害系统的“硬摧毁”阶段. 应对高级持续性威胁攻击已成为确保国家关键基础设施安全、 保障国家安全的核心问题.
入侵检测系统能在入侵攻击对系统产生危害前检测到攻击,并发出报警,启动防御措施. 目前,入侵检测主要分为2类: 误用检测和异常检测. 误用检测是通过与已知的异常行为间的匹配程度来实现入侵检测,通常也称为基于先验知识的入侵检测[1]; 而异常检测是通过建立正常行为模型来寻找偏离的异常行为,因此也被称为基于行为的入侵检测[1]. 异常检测与误用检测相比,漏报率低,并且可以检测出以前没有出现过的入侵行为,但误报警率较高.
工业控制系统的异常检测方法可以分为3类[2, 3, 4]: 基于统计的方法、 基于知识的方法和基于机器学习的方法. 支持向量机(support vector machine,SVM)就是一种基于机器学习的方法. SVM是在统计学习理论的基础上发展出来的一种新的模式识别方法,在解决小样本问题、 非线性及高维模式识别问题中表现出了许多特有的优势[5]. 传统的SVM适用于多分类问题,即需要正负两类样本训练分类模型,但是数据采集与监视控制系统(supervisory control and data acquisition,SCADA)、 分布式控制系统(distributed control system,DCS)等工业控制系统的数据具有异常样本少、 维度高、 关联性强等特点[6],且多数为正常数据,故障或临界状态的数据较少. 而单类支持向量机(one-class support vector machine,OCSVM)具有较短的计算时间,较少的数据样本即可用于训练的优点,更重要的是OCSVM算法只需要一类样本就可以训练异常检测模型,对噪声样本数据具有鲁棒性,能建立较准确的分类模型. OCSVM已被证实是一种有效的控制系统通信网络入侵检测的机器学习方法.
目前,基于OCSVM算法的工业控制系统入侵检测已经取得了一定的进展. 清华大学肖英超等[7]提出了两种为OCSVM选择高斯核函数的方法,分别为DFN和DTL,并将其应用到故障检测中. 通过此方法训练的OCSVM模型可以有效地检测出不同类型的故障并提高检测的准确性. 黄谦等[8]设计了一种新的基于OCSVM模型的入侵检测系统,通过序列分批提交训练样本的算法,能有效缩短训练时间,十分适用于行为特征经常变化和攻击行为层出不穷的实时入侵检测系统. Winter等[9]设计了一种基于归纳学习的入侵检测系统,将基于流模型的网络数据作为数据源,采用OCSVM训练方法,该研究的创新之处在于采用恶意攻击数据进行训练,而不是采用正常的网络流量数据,从而训练的OCSVM分类模型也可以用于多个网络进行攻击行为分类. 张云贵等[10]从工艺过程角度设计了基于自学习半监督单类支持向量机的SCADA入侵检测系统,通过设计主动学习器,使系统将能够提高分类器性能的典型样本加入训练集,从而提高分类准确性,降低入侵检测系统的误报率和漏报率,但实时性较差.
综上,在工业控制入侵检测中,基于“白名单”规则的异常检测方法能够有效地检测单条通信协议的异常行为,但无法检测同时存在于多个数据包中的通信异常行为,但基于通信模式的异常检测方法能够弥补其不足. 工业控制系统入侵检测的难点是异常样本难以获得、 两类样本不平衡导致的异常检测模型难以建立和检测模型精度低等. 因此,本文提出利用参数优化的OCSVM算法,建立系统正常通信情况的行为轮廓,以此进行入侵检测.
本文首先介绍了工业控制系统入侵检测的现状,分析了OCSVM算法的特点; 然后以Modbus TCP工业通信协议为异常检测对象,通过特征向量提取并进行数据处理,建立OCSVM入侵检测模型及算法流程; 最后,搭建实验环境,进行仿真实验结果对比和分析.
2 OCSVM优化参数选择OCSVM算法是在传统SVM算法的基础上发展起来的,用于解决一些只有一类样本可用于训练分类器的情况. 标准的SVM算法的思路是构造一个广义最优分类面,尽量使训练数据集中分属两类的数据点露在这个分类面的两边,并且两类的分类间隔尽可能大. 同样地,OCSVM算法假设坐标原点为异常的样本,在特征空间中构建一个最优的超平面实现目标数据与坐标原点的最大间隔. 目前的OCSVM算法主要分为两种[11, 12]: 超球法和超平面法. 由Tax提出的超球法旨在找到一个包含所有数据并且体积最小的超球面; 另一种方法是由Scholkopf等于1999年提出的超平面法,其主要思想是在特征空间中找到一个最优的超平面使数据对象与原点以最大距离分开. 实际上,当使用高斯核函数时,即:
这两种方法是相同的,其基本思想都是将输入空间通过核函数映射到高维空间,在高维空间中将它们与原点尽可能地分开. 对于训练数据x,使决策函数f(x)为正的认为是正常类,反之为异常类. 如图 1所示.
![]() |
图 1 单类支持向量机分类问题Fig. 1 The classification problem of OCSVM |
OCSVM解决如下的二次规划问题[13]:
为了使Modbus更好地在TCP/IP和以太网环境下进行传输,Modbus TCP报文格式在保留Modbus全部功能的基础上,扩展了一些数据结构. 如图 2所示,Modbus TCP的报文格式[14]主要包括3个部分: MBAP报文头、 Modbus功能码和数据.
![]() |
图 2 Modbus TCP应用层数据单元结构Fig. 2 The data unit structure of Modbus TCP application layer |
MBAP是Modbus应用协议报文头,用来识别Modbus应用数据单元. Modbus功能码用来通知服务器应执行的操作. Modbus数据区用来存放传输的数据.
当客户机向服务器设备发送报文时,功能码字段是服务器区分读操作、 写操作、 数据类型和数据种类的唯一依据,因此选用Modbus功能码作为特征向量,通过训练建立OCSVM模型进行入侵检测.
由于现场监控设备采集的Modbus TCP流量包含冗余和不重要的特征,为使Modbus功能码作为特征向量,在抓取Modbus TCP流量包后,首先去除冗余或者不重要的特征,只保留有效的关键特征集,即Modbus功能码; 然后将所提取的特征转换成OCSVM能处理的向量型数据,并进行数据预处理,这样不仅有利于提高训练模型的速度,还将大大增加入侵检测的精度.
所获得的Modbus功能码序列可能包含不同数目的Modbus功能码,但OCSVM所处理的数据需要具有相同的维数,选用文[15]中的方法将包含不同数目的Modbus功能码序列转化为相同长度的向量.
首先,根据需要设定短序列的长度为r,以长度为r的滑动窗口循环处理Modbus功能码样本,去除重复的序列,获得短序列集合.
然后,将任意的Modbus功能码序列按照每一个模式短序列出现的频率构造OCSVM特征向量.
最后,对所获得的向量进行归一化处理. 向量中各元素的取值有可能不属于同一个数量级,输入变量差异较大,因此在建立模型之前,先要对输入矩阵进行归一化.
4 OCSVM算法优化如上所述,OCSVM算法优化过程就是求解一个凸约束二次规划问题,即“训练”或“学习”问题. 引入拉格朗日函数:
因为支持向量在超平面上,所以可以从某个支持向量xi及其对应的αi,求出对应的ρ:
最终求出决策函数:
粒子群优化算法是1995年由美国心理学博士Kennedy和从事计算机智能研究的Eberhar提出的一种基于群智能的随机优化算法,该算法是模拟鸟类或鱼类觅食的过程. 实际问题中,将优化问题的搜索空间比作鸟类搜索空间,将最优解看作食物,将寻找问题最优解的过程比作寻找食物的过程[17].
首先,在优化问题的可行解空间内,随机地初始化PSO中每一个粒子的当前位置,并使其具有一定的飞行速度. 用k表示PSO的迭代步数(k=0表示初始状态),D代表优化问题解空间的维数. 根据粒子的位置矢量确定粒子的当前适应度值,通过比较每一代的适应度值确定粒子的当前个体最优值和当前群体最优值. 并根据方程[18, 19]更新粒子的速度与位置:
基于以上算法,设计一种基于PSO-OCSVM对Modbus功能码序列进行异常检测的模型,算法流程如图 3所示. 该算法利用PSO算法对OCSVM模型进行参数寻优与结构优化,从而提升模型分类识别精度. 基于PSO基本思想对OCSVM参数ν以及径向基核函数g寻优的算法流程如下:
![]() |
图 3 PSO-OCSVM异常检测模型Fig. 3 Anomaly detection model of PSO-OCSVM |
Step 1: 获取数据. 提取可用的Modbus功能码,获得训练样本及测试样本.
Step 2: 数据预处理. 将包含不同数目Modbus功能码序列转化为长度为r=3的短序列,然后按照每一个短序列模式出现的频率,构造成OCSVM可处理的样本数据.
Step 3: 数据归一化. 由于输入样本的维数可能不属于一个数量级,输入变量差异过大可能导致训练时间增加,同时可能引起模型无法收敛,因此在建立模型之前,先对输入数据进行归一化处理.
Step 4: 选择适当的核函数和适当的参数ν,这关系到所建立的OCSVM模型的分类正确率及其泛化能力.
Step 4.1: 设置最大迭代次数Kmax.
Step 4.2: 初始化. 在D维的问题空间中随机产生粒子的位置X=(x1,x2,…,xN)和速度V=(V1,V2,…,VN),N为粒子数目,其中Xi=(xig,xiv)表示第i个粒子由2个分量构成,分别代表OCSVM参数ν和径向基核函数参数的位置,设置两个分量的限定范围为[Xgmin,Xgmax]和[Xνmin,Xνmax].
Step 4.3: 进行粒子适应度F(i)计算. 粒子适应度值F(i),选取交叉验证意义下的分类正确率为粒子适应度值.
Step 4.4: 根据适应度值更新个体极值及群体极值: 若适应度值F(Xk+1i)>F(Xki),则Pk=Xk+1,否则Pk=Xk. 若存在j使其成立,且F(Xk+1j)>F(Xkj),则令Gk+1j=Xkj,否则Gk+1j=Gkj.
Step 4.5: 判断是否满足退出迭代条件: 如果超过最大迭代次数或连续50次适应度值的变化没有超过0.01%,则退出迭代过程,并且此时的群体极值即为所要求的最优参数.
Step 4.6: 按照粒子速度与位置更新公式进行更新. 每一轮更新结束后需要判定位置是否限定在规定范围[Xgmin,Xgmax]和[Xνmin,Xνmax]内,对于超过范围的分量需要限定在该范围之内,例如,如果xig<xgmin则设置xig=xgmin,如果xig>xgmax则xig=xgmax.
Step 5: 构造并求解最优化问题式(6)~式(7),得到解αi,从中选取αi的一个正分量αj,并计算ρ. 求得决策函数f(x),建立OCSVM模型,最终得到基于PSO-OCSVM的入侵检测模型.
5 实验数据分析为了验证本文提出的基于PSO-OCSVM的入侵检测方法,搭建实验仿真环境,其拓扑结构如图 4所示.
![]() |
图 4 工业控制系统实验仿真环境Fig. 4 Simulation environment of industrial control system |
该环境模拟了电动机发电机组转速控制,其转速控制通过PLC(programmable logic control)编程得以实现. 其中控制单元层采用施耐德M340 PLC,CPU型号为2020,通过Modbus TCP协议与上位机之间进行通信. 数据采集层选取KingSCADA软件开发监控画面,工程师站选取UnityPro对PLC进行组态编程,攻击模拟源模拟遭受病毒感染的站点对重要控制器PLC发送恶意代码,导致电动机转速发生改变,使现场设备瘫痪.
Modbus标准协议规定了数据通信格式和传送方式,实际上控制设备都有自已的专用协议,包括数据通信格式和传送方式. 图 4在系统运行时,操作人员通过wireshark抓取网络中的Modbus TCP通信流量数据包,通过过滤剔除不包含有Modbus功能码的数据包,得到Modbus TCP客户端和Modbus TCP服务器端的通信流量.
图 5为所抓取的通信流量数据包中的一个数据包,其中function 3: Read multiple registers表示功能码3: 读多个寄存器. 功能码3就是所要提取的特征向量.
![]() |
图 5 Modbus TCP通信流量数据包Fig. 5 Modbus TCP traffic data packet |
本文通过过滤获得600个包含Modbus功能码的数据包,在保持数据包的时间先后顺序不变的情况下,随机将Modbus TCP数据包分割成不同的序列,去除功能码以外的信息,获得不同长度的功能码序列,并按照文[15]的数据处理方法处理不同长度的功能码序列.
经过数据处理后选取出600个Modbus功能码序列,得到libsvm可处理的数据,其中500个+1类样本作为OCSVM模型的训练样本,剩余100个数据中既有+1类样本又有-1类样本作为测试样本,通过测试样本对训练所得模型进行评价.
设置PSO-OCSVM模型中c1=1.7,c2=1.5,种群规模设置为20,进化代数设置为50,采用5折交叉校验方式求取OCSVM分类准确率. 其仿真结果如图 6~图 8所示.
![]() |
图 6 PSO适应度值变化曲线Fig. 6 The curves of PSO fitness values |
![]() |
图 7 PSO-OCSVM测试集结果对比Fig. 7 The results comparison of PSO-OCSVM test set |
![]() |
图 8 PSO-OCSVM训练集合结果对比Fig. 8 The results comparison of PSO-OCSVM train set |
由仿真效果可知,在粒子群迭代寻优过程中,适应度值可以很快地收敛,这说明PSO寻优过程效率较高; 测试样本的分类准确率可以达到94%,具有良好的效果; 训练样本的准确率接近100%,验证了OCSVM学习能力强的特点,并有很好的泛化能力. 为了说明PSO-OCSVM在速度及泛化能力等方面的优点,本文也设计了基于传统网格化参数寻优的OCSVM算法,通过对比仿真效果可知PSO-OCSVM的优点十分明显.
由图 9和图 10可知,传统网格搜索法的训练样本准确率虽然接近100%,但测试样本的准确率为87%,低于粒子群寻优算法. 这充分说明网格搜索法不仅学习能力低于粒子群算法,而且泛化能力也不及粒子群寻优算法. 这在实际应用中,会很大程度地影响入侵检测的漏报率和误报率.
![]() |
图 9 网格搜索测试集结果对比Fig. 9 The results comparison of grid search test set |
![]() |
图 10 网格搜索训练集结果对比Fig. 10 The results comparison of grid search train set |
本文在与传统的网格化优化方法进行对比实验后,还与标准RBF(radial basis function)神经网络和BP(back propagation)神经网络的异常检测模型进行对比实验. 为使实验数据能够更加客观真实反映模型性能,每种模型做了50次的分类实验,得到关键指标的统计数据如表 1所示(νbest为参数的最优值,gbest为参数g的最优值; A测试集为测试集的准确率; A训练集为训练集的准确率; T建模为训练集建立模型的时间,T预测为模型对测试集进行预测的反应时间,单位为s).
PSO-OCSVM | grid-OCSVM | RBF | BP | |
νbest | 0.0001 | 0.01 | / | / |
gbest | 100% | 100% | 100% | 100% |
A测试集 | 94% | 87% | 75% | 72.5% |
A训练集 | 100% | 100% | 100% | 100% |
T建模 | 18.82 | 179.55 | / | / |
T预测 | 0.001 142 | 0.822 741 | 0.210 6 | 0.713 5 |
误报率 | 3% | 10% | 20% | 25% |
由表 1可知,由于样本数目较少,并经过多次实验求平均数,各种模型的训练集分类准确率均能达到100%,显然2种OCSVM方法在测试集合上的分类效果要显著优于RBF神经网络与BP神经网络,这也充分说明了OCSVM方法具有较强的泛化能力.
PSO-OCSVM模型的测试集分类能力要略优于传统的网格化寻优的OCSVM模型,而且训练耗费的时间要远远小于后者,PSO-OCSVM算法的预测时间为0.001 142 s,建模的时间为18.82 s. 事实上,网格化算法调用了100×100=10 000次OCSVM过程,而PSO-OCSVM只调用了20×50=1 000次OCSVM过程,效率上提高了近10倍. 此外搜索到的参数也远少于后者,这意味着该模型具有更少的支持向量、 更加简洁、 泛化能力更强的特点.
对于异常检测来说,将正常的样本判定为异常也就是误报,是一项重要的评价指标,误报率直接影响到异常检测的效果. 本文通过实验对误报率也进行了相应的统计. 从表 1可以很明显的看出,PSO-OCSVM的误报率只有3%,远小于其他几种算法,这在实际应用中,很大程度上降低了入侵检测误报警率,为实际的生产提高了效率,节省了不必要的损耗.
由上述实验对比分析可知,经过PSO算法进行OCSVM参数寻优,虽然在一定程度上增加了检测算法的计算复杂度,但仍能满足工业控制系统对入侵检测实时性、 可靠性、 高效性的需要.
最后,在获取的实验数据基础上建立传统的二分类支持向量机模型(C-SVM),通过仿真实验与OCSVM实验结果进行对比. 实验结果表明,2种支持向量机模型训练样本准确率都能达到100%; 而对于测试样本准确率,2类模型均能达到90%以上,表明SVM模型优于其他模型; 但OCSVM的测试样本准确率略高于传统的C-SVM,表明OCSVM算法能有效地克服SCADA(supervisory control and data acquisition)、 DCS(distributed control system)等工业控制系统中数据异常样本少、 维度高、 关联性强等缺点,更适用于实际应用.
6 结论本文主要针对工业控制系统异常数据少、 维度高、 关联性强等特点,设计了一种利用PSO算法进行参数寻优的PSO-OCSVM模型,即只用一类样本即可训练异常检测模型,用于通信模式的异常检测. 通过对从搭建的实验环境中获得的流量数据进行处理获得OCSVM可处理的数据形式,并设计多组对比实验对各类模型进行比较,充分说明了OCSVM在异常检测中具有速度快、 泛化能力强、 支持向量少、 模型简单等优点,在入侵检测等领域具有较大的实用价值.
本文在数据预处理上只对Modbus功能码进行基本的向量处理,并未对所获得的所有数据进行建模,这在一定程度上会影响入侵检测的可靠性. 未来会在数据降维处理上展开相关工作,提出更适合现场数据的预处理方法,并将在实时数据采集的基础上展开相应的在线入侵检测等相关工作的研究. 在入侵检测模型建立的基础上,未来将着力研究采用异常通信数据进行训练OCSVM算法模型,使训练的模型更加准确、 可靠,具有更大的使用价值.
[1] | 谭爱平, 陈浩, 吴伯桥. 基于SVM的网络入侵检测集成学习算法[J]. 计算机科学, 2014, 41(2): 197-200. Tan A P, Chen H, Wu B Q. Network intrusion intelligent detection algorithm based on SVM[J]. Computer Science, 2014, 41(2): 197-200. |
[2] | Garcia-Teodoro P, Diaz-Verdejo J, Macia-Fernandez G, et al. Anomaly-based network intrusion detection: Techniques, systems and challenges[J]. Computers & Security, 2009, 28(1/2): 18-28. |
[3] | Papa S M. A behavioral intrusion detection system for SCADA systems[D]. Dallas, TX, USA: Southern Methodist University, 2013. |
[4] | Zhu B, Sastry S. SCADA-specific intrusion detection/prevention systems: A survey and taxonomy[C]//Proceedings of the 1st Workshop on Secure Control Systems (SCS). Piscataway, NJ, USA: IEEE, 2010: 1-16. |
[5] | 李昆仑, 赵俊忠, 黄厚宽, 等. 基于SVM技术的入侵检测[J]. 信息与控制, 2003, 32(6): 495-506. Li K L, Zhao J Z, Huang H K, et al. An intrusion detection method based on SVM technology[J]. Information and Control, 2003, 32(6): 495-506. |
[6] | Yasakethu S L P, Jiang J. Intrusion detection via machine learning for SCADA system protection[C]//Proceedings of the 1st International Symposium for ICS & SCADA Cyber Security Research. Leicester, UK: BCS, 2013: 101-105. |
[7] | Xiao Y C, Wang H G, Zhang L, et al. Two methods of selecting Gaussian kernel parameters for one-class SVM and their application to fault detection[J]. Knowledge-Based Systems, 2014, 59: 75-84. |
[8] | 黄谦, 王震, 韦韬, 等. 基于One-class SVM的实时入侵检测系统[J]. 计算机工程, 2006, 32(16): 127-129. Huang Q, Wang Z, Wei T, et al. A real-time intrusion detection system based on One-class SVM[J]. Computer Engineering, 2006, 32(16): 127-129. |
[9] | Winter P, Hermann E, Zeilinger M. Inductive intrusion detection in flow-based network data using one-class support vector machines[C]//Proceedings of the 4th IFIP International Conference on New Technologies, Mobility and Security (NTMS). Piscataway, NJ, USA: IEEE, 2011: 1-5. |
[10] | 张云贵, 张伟, 薛向荣, 等. 基于自学习半监督单类支持向量机的SCADA入侵检测系统[J]. 冶金自动化, 2013, 37(2): 1-5. Zhang Y G, Zhang W, Xue X R, et al. SCADA intrusion detection system based on self-learning semi-supervised one-class support vector machine[J]. Metallurgical Industry Automation, 2013, 37(2): 1-5. |
[11] | 吴定海, 张培林, 任国全, 等. 基于支持向量机的单类分类方法综述[J]. 计算机工程, 2011, 37(5): 187-189. Wu D H, Zhang P L, Ren G Q, et al. Review of one-class classification method based on support vector[J]. Computer Engineering, 2011, 37(5): 187-189. |
[12] | 尹传环, 牟少敏, 田盛丰, 等. 单类支持向量机的研究进展[J]. 计算机工程与应用, 2012, 48(12): 1-5, 91. Yin C H, Mou S M, Tian S F, et al. Survey of recent trends in one-class support vector machine[J]. Computer Engineering and Applications, 2012, 48(12): 1-5, 91. |
[13] | Zhang R, Zhang S Y, Muthuraman S. One class support vector machine for anomaly detection in the communication network performance data[C]//Proceedings of the 5th Conference on Applied Electromagnetics, Wireless and Optical Communications. Tenerife, Canary Islands, Spain: World Scientific and Engineering Academy and Society (WSEAS), 2007: 37-44. |
[14] | 司马莉萍, 贺贵明, 陈明榜. 基于Modbus/TCP协议的工业控制通信[J]. 计算机应用, 2006, 25(B12): 29-31. Sima L P, He G M, Chen M B. Industrial communication control based on Modbus/TCP protocol[J]. Journal of Computer Applications, 2006, 25(B12): 29-31. |
[15] | 尚文利, 张盛山, 万明, 等. 基于PSO-SVM的Modbus TCP通讯的异常检测方法[J]. 电子学报, 2014, 42(11): 2314-2320. Shang W L, Zhang S S, Wan M, et al. Modbus/TCP communication anomaly detection based on PSO-SVM[J]. Acta Electronica Sinica, 2014, 42(11): 2314-2320. |
[16] | Chen Y T, Qian J, Saligrama V. A new one-class SVM for anomaly detection[C]//Proceedings of IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). Piscataway, NJ, USA: IEEE, 2013: 3567-3571. |
[17] | 倪庆剑, 邢汉承, 张志政, 等. 粒子群优化算法研究进展[J]. 模式识别与人工智能, 2007, 20(3): 349-357. Ni Q J, Xing H C, Zhang Z Z, et al. Survey of particle swarm optimization algorithm[J]. Pattern Recognition and Artificial Intelligence, 2007, 20(3): 349-357. |
[18] | Tian J, Gu H. Anomaly detection combining one-class SVMs and particle swarm optimization algorithms[J]. Nonlinear Dynamics, 2010, 61(1/2): 303-310. |
[19] | Onoda T, Kiuchi M. Analysis of intrusion detection in control system communication based on outlier detection with one-class classifiers[J]. Neural Information Processing, 2012, 7667: 275-282. |
[20] | 潘峰, 陈杰, 甘明刚, 等. 粒子群优化算法模型分析[J]. 自动化学报, 2006, 32(3): 368-377. Pan F, Chen J, Gan M G, et al. Model analysis of particle swarm optimizer[J]. Acta Automatica Sinica, 2006, 32(3): 368-377. |