复杂系统可靠性优化的混合万有引力搜索算法求解
2012-03-22刘勇,马良
刘 勇, 马 良
(1.上海理工大学管理学院,上海 200093;2.盐城工学院基础教学部,盐城 224051)
可靠性问题是系统设计、研究和运行过程中的一个重要因素,可靠性的高低直接影响系统的性能.若可靠性达不到相应的指标要求,系统越复杂出故障的可能性越大,造成的损失也越大[1].因此,如何对复杂系统可靠性进行优化已成为一个重要的研究课题.所谓复杂系统可靠性优化是指在满足一定的可靠性指标要求下使投资费用最小或在一定的资源约束条件下使系统的可靠度达到最大.由于其目标函数和约束条件都是非线性的,而且目标函数通常都是具有多个局部极值的函数,这些给问题的求解带来了一定的困难.采用传统的优化算法求解往往达不到全局最优,解决此类问题难度较大.近年来,智能算法在求解很多复杂困难的优化问题中表现出良好的性能,已成为一个研究热点[2-3].目前用于复杂系统可靠性优化的智能算法有模拟退火算法[4]、遗传算法[5]、蚁群算法[6]等.这些算法在一定程度上可求解复杂系统可靠性优化问题,但算法都存在着各自的局限性,求解质量有待进一步改进.因此,探寻有效的求解方法颇为重要.
基本万有引力搜索算法是一种新的基于群体智能的优化算法,由Rashedi等[7]在2009年提出.算法具有操作简单,参数设置少等特点,并在优化benchmark函数时表现出较好的性能.但研究表明,万有引力搜索算法全局搜索能力较强,可局部搜索优化能力较弱,易早熟收敛.为解决这一不足,本文将序列二次规划算法引入算法中,提出一种混合万有引力搜索算法.利用万有引力搜索算法寻找全局最优解,并利用序列二次规划算法进行局部搜索,实现全局探索和局部开发能力的平衡,避免基本万有引力搜索算法陷入局部极值.将算法用于求解复杂系统可靠性优化问题,通过数值实验和与现有智能算法的比较,表明算法可行有效.
1 数学模型
考虑一类典型的复杂系统可靠性优化问题[4-6],对于一个给定的系统,在满足一定的可靠性约束条件下,通过为每一个子系统或部件选择合适的可靠性,使系统费用最小.
式中,Cs为系统费用;Ri,Ri,min为部件可靠性和部件可靠性下界;Rs,Rs,min为系统可靠性和系统可靠性下界.
上述模型中,目标函数和约束函数均为非线性,而且目标函数具有多个局部极值,给寻找全局最优解带来了困难.解决这类问题,智能优化算法效果显著.因此,本文设计了一种混合万有引力搜索算法的求解方法.
2 求解方法
2.1 万有引力搜索算法
万有引力搜索算法(gravitational search algorithm,GSA)是由Rashedi等提出的,是一种模拟万有引力规律的智能优化算法.算法将优化问题的解视为一组在空间运行的物体,物体之间通过万有引力作用相互吸引,物体运动遵循动力学规律,万有引力的作用使得物体朝着质量最大的物体移动,而最大质量的物体占据最优位置,从而可求出优化问题的最优解.算法通过个体间的万有引力相互作用实现优化信息的共享,引导群体向最优解区域搜索.进一步研究发现,在迭代的早期,算法具有较好的寻优性能,但在后期算法会出现在局部最优解附近“振荡”的现象,趋同化严重,易早熟收敛.
2.2 序列二次规划
序列二次规划(sequential quadratic programming,SQP)最初由Wilson于1963年提出,是解无约束优化问题的牛顿法和拟牛顿法对约束优化问题的推广,具体是通过求解一系列二次规划的子问题逐步得到原问题的最优解[8].目前SQP算法是非线性约束优化研究中一个十分活跃的领域.SQP具有保持局部超一次收敛等特性,但不足之处是在优化有多个局部极值的目标函数时,对初始点的选取非常敏感,若选择不当会极大影响算法的性能[9-10].
2.3 混合算法
基于万有引力搜索算法和序列二次规划各自的特点,提出一种混合万有引力搜索算法(hybrid gravitational search algorithm,HGSA).算法首先利用万有引力搜索算法进行全局搜索,保存当前的最优位置,利用该最优位置作为SQP算法迭代的初始点,利用SQP进行局部搜索,有利于算法跳出局部极值,使算法全局搜索和局部开发的能力达到平衡.同时在当前最好位置附近进行局部搜索,找到全局最优点的可能性增大,加快算法寻优速度.
算法具体步骤如下:
第1步 初始化
考虑由N个物体组成的系统,每个物体定义在D维搜索空间中,物体的位置代表优化问题的解.第i个物体的位置定义为
第2步 计算物体的质量
在时刻t时,物体的质量定义为
式中,fiti(t),Mi(t)分别为在时刻t时第i个物体的函数值和质量;best(t),worst(t)分别为在时刻t时所有物体中最优函数值和最差函数值,对最小化问题其定义为
第3步 计算万有引力
物体i和j之间的万有引力定义为
式中,G(t)为在时刻t时万有引力常数,在算法中随着t逐渐减小;Rij(t)为物体i和j之间欧式距离;ε为一常数,防止分母为零.
第4步 计算合力
物体i所受的合力为
式中,randj为在[0,1]之间的一个随机数.
第5步 计算加速度
根据牛顿运动定律,在时刻t物体i在第d维的加速度为
第6步 更新速度和位置
物体i速度和位置的更新方程为
式中,randi表示在[0,1]之间的一个随机数.
第7步 以当前群体的最优位置Lbest作为初始点,利用SQP方法进行搜索.
第8步 如果没有达到最大迭代次数,转第2步;否则,停止计算,输出当前的最优解.
由上述算法步骤很容易得到算法的时间复杂度,设群体规模为N,问题规模为D,最大迭代次数为T.基本万有引力搜索算法的主要操作是计算质量、计算引力、更新加速度及速度和位置,时间复杂度为O(T×N×D).混合万有引力搜索算法增加的操作是利用SQP进行局部搜索,设其最大迭代次数为Maxiter,则混合算法的时间复杂度为O(T×N ×D)+O(T×Maxiter),第2项的时间复杂度比第1项小的多,因此在计算时间方面混合算法不会比基本万有引力搜索算法有显著增加.
3 数值实验
采用一种典型的复杂系统——非串联-并联系统[4-6]进行分析,系统结构如图1所示.
图1 非串联-并联系统Fig.1 Non-Series-Parallel Systems
系统可靠性
系统费用Cs有两种形式:
其中,k1=1,k2=100,k3=200,k4=150,α1=α2=α3=α4=0.6,Ri,min=0.5,Rs,min=0.9.
其中,k1=25,k2=25,k3=50,k4=37.5,α1=α2=α3=α4=1,Ri,min=0.5,Rs,min=0.99.
在求解上述模型时,先将问题转换为无约束优化问题的形式.罚函数的形式一般为和的形式、和的平方形式及乘积形式等.为方便起见,本文采用和的形式,这样在计算过程中可直接考虑对目标函数的优化,可行性的要求由罚函数的作用来强制其满足.
采用混合万有引力搜索算法(hybrid gravitational search algorithm,HGSA)进行求解,并与蚁群优化算法[11-12](ant colony optimization algorithm,ACO)、微粒群算法[13](particle swarm optimization algorithm,PSO)、人工蜂群算法[14-15](artificial bee colony algorithm,ABC)的求解性能进行比较.ACO和PSO属于经典的智能优化算法,ABC是最近提出的一种新的智能算法,这3种算法已成功用于求解很多复杂困难的优化问题,有关这3种算法的详细信息可参考文献[11-15].
本文算法采用Matlab 7.1语言编程实现,在Windows XP操作系统中,CPU为P4 2.4GHz和内存为1G的计算机上运行.为方便起见,5种算法设置相同的群体规模和最大迭代次数,群体规模和最大迭代次数均为50.在ACO算法中,信息启发因子α=1,能见度因子β=1,轨迹的持久性参数ρ=0.7,信息素常数Q=1;在PSO算法中,学习因子c1=c2=2,惯性权重w从0.9线性递减到0.2;在ABC算法中,引领蜂规模和跟随蜂的规模均为25,侦察蜂规模为1,阈值limit=100,采用轮盘赌的选择机制;GSA算法和HGSA算法参数设置相同:万有引力常数G随迭代次数递减,即G(t)=其中G0=100,α=1,t表示当前迭代次数.每个算例独立运行20次并统计最优结果,具体结果如表1和表2所示.
表1 模型1的实验结果Tab.1 Computing results for model 1
表2 模型2的实验结果Tab.2 Computing results for model 2
由表1和表2可知,对模型1而言,HGSA算法的最优结果小于ABC算法结果,远小于GSA算法、PSO算法及ACO算法的结果;对模型2而言,HGSA算法的最好结果小于PSO算法的结果,比GSA算法、ABC算法及ACO算法的结果小的多.HGSA算法表现出较高的优化精度,为进一步分析算法的性能,图2给出了5种算法的寻优曲线图.
图2 寻优曲线图Fig.2 The varying curves
由图2可知,在这5种算法中,HGSA算法具有最快的优化速度,算法只需很少的迭代次数就能达到最优并趋向稳定,算法具有较好的稳定性.HGSA算法在优化精度和寻优速度两方面均表现优异.分析原因,基本GSA算法全局搜索能力强,局部搜索能力弱,HGSA算法中嵌入了SQP算法,改善局部搜索能力,能避免算法早熟收敛,实现全局探索和局部开发能力的平衡,提高优化性能.
4 结 语
复杂系统可靠性优化是一个复杂的优化问题,将万有引力搜索算法和SQP算法结合,提出一种求解系统可靠性优化问题的混合算法.将算法用于求解一类典型的复杂系统可靠性优化模型,并与蚁群算法、微粒群算法、人工蜂群算法、基本万有引力搜索算法进行比较.实验结果表明,本文提出的算法具有较高的求解精度和较快的优化速度,为该类问题的求解提供了一个新的有竞争力的方法.将算法用于可靠性网络优化是下一阶段的研究工作.
[1] 宋何维.系统可靠性设计与分析[M].西安:西北工业大学出版社,2008.
[2] 邢文训,谢金星.现代优化计算方法[M].北京:清华大学出版社,2005.
[3] 肖人彬,陶振武.群集智能研究进展[J].管理科学学报,2007,10(3):80-96.
[4] Ravi V,Murty B S N,Reddy P J.Nonequilibrium simulated annealing algorithm applied to reliability optimization of complex systems[J].IEEE Transactions on Reliability,1997,46:233-239.
[5] 许传玉,朱若男,梁颖虹,等.遗传算法在复杂系统可靠性优化中的应用[J].哈尔滨理工大学学报,2000,5(3):90-93.
[6] Shelokar P S,Jayaraman V K,Kulkarni B D.Ant algorithm for single and multiobjective reliability optimization problems[J].Quality and Engineering International,2002,18:497-514.
[7] Rashedi E,Nezamabadi-pour H,Saryazdi S.GSA:a gravitational search algorithm[J].Information Sciences,2009,179(13):2232-2248.
[8] Fletcher R.Practical methods of optimization[M].New York:Wiley,1987.
[9] Boggs P T,Tolle J W.Sequential quadratic programming[J].Acta Numerica,1995,4:1-51.
[10] Michael B B.Sequential quadratic programming[J].Springer Optimization and Its Application,2008,19:1-14.
[11] 马良,朱刚,宁爱兵.蚁群优化算法[M].北京:科学出版社,2008.
[12] 刘士新,宋健海,唐加福.蚁群最优化——模型、算法及应用综述[J].系统工程学报,2004,19(5):496-502.
[13] 曾建潮,介婧,崔志华.微粒群算法[M].北京:科学出版社,2004.
[14] Karaboga D,Basturk B.A powerful and efficient algorithm for numerical function optimization:artificial bee colony(ABC)algorithm[J].Journal of Global Optimization,2007,39(3):459-471.
[15] Karaboga D,Basturk B.On the performance of artificial bee colony(ABC)algorithm[J].Applied Soft Computing,2008,8(1):687-697.