APP下载

求解复杂系统可靠性冗余问题的量子萤火虫算法

2016-08-17王成亮程凤农

系统管理学报 2016年4期
关键词:旋转门系统可靠性萤火虫

王成亮,程凤农

(1.上海理工大学 管理学院,上海 200093;2.山东师范大学 商学院,济南 250014;3.山东女子学院 教育学院,济南 250300)

在机械制造、土木建筑与集成电路等现代工程系统设计中,通常采用冗余优化技术来提高复杂系统的可靠性,以降低系统的故障率[1]。对复杂系统可靠性冗余问题的优化可有效利用资源,提高系统效率,使系统在一定资源约束条件下,达到经济效益最大化的目的。复杂系统单元众多,其可靠度函数和约束函数具有非线性的特点,通常是非凸和不连续的,因此,采用传统方法对复杂系统可靠性冗余优化问题进行求解很难达到理想效果[2-3]。

目前,求解复杂系统可靠性冗余问题主要有动态规划、启发式算法和智能优化算法等。文献[4]中分析了异构并行复杂系统的性能和可靠性,探讨了异构系统可靠性的求解策略,并利用近似算法和启发式算法对异构并行复杂系统可靠性冗余问题进行了求解。文献[5]中提出了复杂系统可靠性冗余问题模型,并采用动态规划的方法对此模型进行求解,实验结果表明,复杂系统可靠性冗余问题的计算复杂度随着约束条件的增加呈指数增长。文献[6]中利用遗传算法对复杂系统可靠度和冗余数分配问题进行了求解,并设计了复杂系统可靠度分配模型。文献[7]中研究了具有冗余策略的串并联复杂系统,并根据复杂系统的特点建立了相应的可靠度模型。最后,利用改进的遗传算法对该模型进行求解。文献[8]中利用直觉模糊集和粒子群算法对复杂系统的可靠度进行了分析和求解,在仿真实验中将实验结果与传统方法进行了对比。

萤火虫算法(Firefly Algorithm,FA)是通过模拟自然界萤火虫求偶和觅食行为而来的一种新兴仿生智能优化算法,具有通用性强、收敛速度快等特点,为解决复杂系统可靠性冗余问题提供了新的思路和方法。当前,萤火虫算法已经成功应用于函数优化[9]、物流生产[10]和电力控制等领域[11-12],在复杂系统可靠性冗余优化问题中的应用还不多见。本文将量子理论融入萤火虫算法中,提出了一种解决复杂系统可靠性冗余优化问题的量子萤火虫算法,该算法利用量子计算中的量子位编码表示萤火虫个体,通过量子旋转门对萤火虫进行变异和位置更新操作,防止了算法过早陷入局部最优值,使算法的全局搜索能力和搜索效率得到提高。仿真实验表明,该算法是解决复杂系统可靠性冗余问题的一种有效方法。

1 模 型

复杂系统可靠性的优化设计应该在当前限定的条件下尽量使复杂系统的可靠度最大化。假设复杂系统由N个子系统组成,xi为第i个子系统,则整个复杂系统X={x1,x2,…,xi,…,xN};设第i个子系统xi对应的冗余数为pi,则各子系统的冗余数集合P={p1,p2,…,pi,…,pN};设第i个子系统xi对应的实施方案为qi,则各子系统的实施方案集合Q={q1,q2,…,qi,…,qN}。因此,复杂系统可靠性的优化设计可以转化为寻找最优冗余数P和实施方案Q,以使子系统在费用函数和权重函数满足特定条件的情况下可靠度最大化。复杂系统可靠性冗余优化问题数学模型:

式中:ti(qi)为第i个子系统xi对应的实施方案qi的单位费用函数;T0为整个复杂系统的最大投资费用;η0为整个复杂系统的最大约束权重;ηi(qi)为第i个子系统xi对应的实施方案qi的单位权重函数;R(xi)为第i个子系统xi的可靠度函数;

为整个复杂系统的可靠度。根据子系统的体系结构可知,对于给定的pi和qi,R(xi)和f(R(x1),R(x2),…,R(xi),…,R(xN))分别为:

2 基本萤火虫算法

基本萤火虫算法由Krishnanand[13]和Yang[14]提出,他们提出的算法在具体实现方式上有一定的差异,但两者的基本原理是相同的,即都是利用萤火虫的发光机制进行寻优求解。在萤火虫算法中,个体被随机分布在解空间中,萤火虫总是朝着比自已荧光素高的个体进行移动,并以一定概率的形式在领域半径内进行交换和转移。

设Xi(t)表示萤火虫i在t时刻的位置,n只萤火虫组成的群体为

设每只萤火虫的位置由d维空间构成,萤火虫i的位置Xi(t)={xi1(t),xi2(t),…,xid(t)}。每只萤火虫自身都携带一定能量的荧光素li,若t时刻萤火虫i的荧光素为li(t),则t+1 时刻萤火虫i的荧光素为

式中:f(Xi(t+1))为 萤 火 虫 的 适 应 度 值;ρ∈(0,1)为萤火虫的荧光变化率;γ为萤火虫的适应度变化率。

在萤火虫算法中,萤火虫依靠荧光素的大小来吸引周围的萤火虫,在领域半径内,萤火虫i以概率pij向萤火虫j移动,概率pij的大小为

式中,Ni(t)为领域半径内比个体i荧光素更高的萤火虫数目,即

式中:w为移动步长;||Xj(t)-Xi(t)||为萤火虫j、i之间的欧氏距离;rs为萤火虫信号识别感知区;nt为萤火虫数量控制阈值;β为控制系数。

3 量子萤火虫算法

3.1 编码方案

设每只萤火虫的位置由d维空间构成,n只萤火虫组成的群体为

利用量子位编码方式对萤火虫个体进行编码,令|Xi(t)>为单个萤火虫的量子空间位置,对应的量子位概率幅分别为:

由式(11)、(12)可知,单个萤火虫的量子空间位置为

式中:i为萤火虫个数;j为萤火虫的位置空间维数;i=1,2,…,n;j=1,2,…,d;θ为量子旋转门的转角,θ=2π˙rand();rand()是位于0和1之间的随机数。

3.2 量子空间的转换

萤火虫量子空间的转换采用线性映射变换的方式进行,通过变换后,量子位概率幅将与函数变量的解空间建立起映射关系。由式(13)可知,

即|Xic(t)>∈[-1,1],|Xis(t)>∈[-1,1]。萤火虫i在第j维的量子空间位为,若函数变量的取值范围为[m,n],则通过线性映射变换后,|Xic(t)>和|Xis(t)>在[m,n]上可表示为:

由式(14)、(15)可知,

3.3 量子旋转门及萤火虫变异操作

萤火虫在领域半径内进行寻优时,容易出现聚集现象。一旦聚集现象产生,萤火虫算法就会陷入局部最优值。为了避免这种现象的发生,本文利用量子旋转门对萤火虫个体进行变异操作。

定义1量子旋转门。设Δθ为量子旋转门的旋转角度,U(Δθ)为量子旋转门,为变异前个体为演化变异后新个体,其中,

量子旋转门为

由以上定义1可知,经过量子旋转门的变换之后,新个体为

定理1设为萤火虫在量子空间中的最优个体为萤火虫当前在量子空间中的寻优个体,若

则量子旋转门旋转方向的规则为:

(1)若B=0,则量子旋转门旋转方向为顺时针和逆时针2个方向。

(2)若B≠0,则量子旋转门旋转方向为-sgn(B)。

证明设最优个体和当前寻优个体在量子空间中的旋转度分别为θb和θi,由

可知,B=sin(θi-θb)。

若B=0,则B=sin(θi-θb)=0,旋转门的转动角度|θi-θb|=0或|θi-θb|=π,此时量子旋转门往顺时针和逆时针旋转的效果相同。若B≠0,则B=sin(θi-θb)≠0,旋转门的转动角度为

0<|θi-θb|<π或π<|θi-θb|<2π

当0<|θi-θb|<π时,

当π<|θi-θb|<2π时,

由此可知,若B≠0,量子旋转门旋转方向始终为-sgn(B)。 证毕

根据定义1和定理1,结合式(13)、(19),推出萤火虫变异过程:

在n只萤火虫构成的群体中,以随机方式选出k只萤火虫进行变异,则变异率p=k/n,经过式(20)变异后,萤火虫对应的量子位概率幅为

由式(21)可知,量子态|0>和量子态|1>两种状态可以进行有效转换,从而避免了萤火虫在领域半径内大面积聚集的现象,防止了算法过早陷入局部最优值。

3.4 位置更新

在量子萤火虫算法中,利用量子旋转门对萤火虫的位置进行更新。更新后的位置为

萤火虫在量子空间进行移动时,随着量子旋转门U(Δθ(t+1))的变化,对应的量子位概率幅|Xic(t)>和|Xis(t)>不断发生变化,在萤火虫群体规模保持不变的情况下,采用量子位实数编码和量子旋转门的方式可以放大萤火虫的寻优空间,同时使算法的全局搜索能力和搜索效率得到提高。

4 算法的实现流程

量子萤火虫算法的实现流程:

(1)初始化。利用式(11)、(12)随机产生萤火虫的量子位概率幅|Xic(t)>和|Xis(t)>,利用式(13)随机生成萤火虫群体,其中萤火虫量子位的数目为n。

(2)更新萤火虫的量子位概率幅。采用线性映射变换的方式对萤火虫的解空间进行变换,利用式(16)、(17)将取值范围为[m,n]的函数变量映射到量子空间,分别更新每只萤火虫对应的量子位概率幅,找出萤火虫群体中的精英个体。

(3)终止条件的判定。判定算法是否达到要求,如果是,则转(8),否则转(4)。

(4)萤火虫的位置更新。利用式(6)、(7)和式(10)对领域半径内的萤火虫进行跟踪,然后采用量子旋转门转动的方式对萤火虫进行位置更新,通过式(22)计算每只萤火虫的新位置。

(5)萤火虫变异操作。利用式(20)、(21)对萤火虫进行变异操作,其变异率p=k/n。

(6)适应度的计算。重新计算每只萤火虫的量子位概率幅,分别求出相应的适应度值,确定萤火虫群体中的精英个体。

(7)终止条件的判定。判定算法是否达到要求,如果是,则转(8),否则转(4)。

(8)输出结果和最优的萤火虫精英个体。

5 仿真结果分析

为了验证本文提出的量子萤火虫算法的性能,选择Sphere函数、Schaffer函数和Rastrigin函数3个典型的基准函数进行测试,并将测试结果与基本粒子群算法进行对比。同时,将本文提出的算法应用于复杂系统可靠性冗余优化问题中,给出了具体的实施方案和优化结果。

仿真实验环境在Win 7 操作系统下的Matlab R2012b中进行。仿真实验的具体环境:处理器为Intel(R)Xeon(R)CPU E31225@3.10 GHz;操作系统为64 位Windows 7 旗舰版;编程软件为Matlab R2012b;内存为4 GB。

5.1 函数测试

(1)Sphere函数

(2)Schaffer函数

(3)Rastrigin 函 数

萤火虫数目为100,粒子群算法的惯性权重最大值和最小值分别为1和0.4,学习因子为1.47,两种算法的最大迭代次数为100。为了减小误差,取10次试验的平均值作为比较结果。图1~3分别为3个函数的优化曲线比较图。

图1 测试Sphere函数的性能比较图

在测试Sphere函数时,粒子群算法的优化结果为4.47×10-2,而量子萤火虫算法的优化结果为7.2×10-3,同时,粒子群算法在第37代时收敛到最小值,量子萤火虫算法在第28代时收敛到最小值。在测试Schaffer函数时,粒子群算法的优化结果为3.171×10-6,而量子萤火虫算法的优化结果为1.001 4×10-7,同时,粒子群算法在第25代时收敛到最小值,量子萤火虫算法在第18代时收敛到最小值。在测试Rastrigin 函数时,两种算法的测试结果差别更大,粒子群算法的优化结果为3.01×10-2,而量子萤火虫算法的优化结果为9.794×10-5,其迭代次数分别为38和29。由仿真结果可以发现,量子萤火虫算法在分析函数优化时具有收敛精度高和鲁棒性好的特点。

图2 测试Schaffer函数的性能比较图

图3 测试Rastrigin函数的性能比较图

5.2 复杂系统冗余优化

将本文提出的量子萤火虫算法应用于复杂系统可靠性冗余优化的实验中,利用量子位编码方式对萤火虫个体进行编码,令|Xi(t)>单个萤火虫的量子空间位置,所优化的复杂系统包括6个子系统,每个子系统有3套可供选择的实施方案,且冗余数最多不超过2个,每个子系统实施方案的相关参数如表1所示。

表1 子系统实施方案数据表

对复杂系统可靠性冗余度进行优化时,待优化向量θ=[p1,q1,p2,q2,…,p6,q6]T,其中,1≤pi≤2,1≤qi≤3,i=1,2,…,6,种群规模为80,最大迭代次数为200,算法运行的迭代次数与复杂系统可靠性的变化曲线如图4所示。

图4 复杂系统可靠性变化曲线

由图4可见,本文所提出的算法迭代到第16代后就找到最优解,在实验过程中,将程序运行100次,得出最优解

对应的子系统实施方案与冗余度分配如表2所示。

表2 子系统实施方案与冗余度分配

由表2可知,子系统1~6的可靠度分别为:

6 结语

复杂系统可靠性冗余优化问题具有非线性系统的特点,是典型的NP难题。本文将量子进化计算中的量子位、量子旋转门等理论与萤火虫算法相结合,提出一种解决复杂系统可靠性冗余优化问题的量子萤火虫算法。该算法利用量子位对萤火虫个体进行编码,使量子位概率幅与复杂系统函数变量的解空间建立起映射关系,利用量子旋转门对萤火虫进行变异和位置更新操作。仿真实验表明,该算法在解决复杂系统可靠性冗余优化问题时具有良好的性能。

猜你喜欢

旋转门系统可靠性萤火虫
大口径舰炮弹药储供系统可靠性研究
旋转门的技术发展概况和专利分布
试析提高配网系统可靠性的技术措施
迷宫
萤火虫
让电动旋转门不再伤人
基于Linux系统的旋转门检票机设计与研究
智能变电站继电保护系统可靠性分析
萤火虫
城市轨道交通信号系统可靠性分析