第3期 肖宁,等:一种求解随机期望值模型的有效算法 ·281 化: 代起就获得了稳定解.为避免一次运行结果的偶然 2)利用随机仿真期望值估计算法计算每个微 性,将程序运行50次,所得的平均值见表1最后一 粒的适应值卿E[f(x)) 行.显然利用该算法所得平均最优值优于文献[2] 3)对每个微粒,将其适应值与所经历的最好位 而且由50次运行中的统计结果可知每次所得最优 置的适应值进行比较,若较好,则将其作为当前最好 值也均优于文献[2]限于篇幅在此未列出每次运 位置, 行所得的数据人. 4)对每个微粒,将其最好适应值与全局所经历 表1运行一次的结果比较及运行50次的平均值 的最好适应值进行比较,若较好,则将其作为当前的 Table 1 Results comparison of runn ing one tie and aver- 全局最好位置: age of runn ng 50 tmes of exam ple 5)根据进化方程(1)、2)、(3)进化: 最优值 6)对更新后的粒子再次利用随机仿真的期望 GA文献[2]) 11035216932.0191 356 值估计算法计算E[g(x)并检验粒子的可行性 P9O(本文) 119592346317393 315 卿判断x是否满足E[g(x)J≤0),若可行,则 平均值 1181122446182323.16 接受,否则保持原位置不变: 7)重复2)~6)至一个预设的最大迭代次数或 3.24 一个足够好的适应值: 3.22 8输出最好的微粒及对应的适应值作为最优 3.20 解及对应的最优值 3.18 5实例仿真 3.16 为了测试本文算法的性能并便于比较,特选文 31420 60100140180220260300 献[2中的实例来进行 迭代次数 以下是具有3个决策变量和3个随机变量的期 图1SEM实例的抽样图 望值模型 Fig 1 Sampled data of example on SEVM minE[N-52+(-522+(6-53尸F st疗+后+后≤10 该算法之所以优于文献[2],是因为P9O算法 没有GA那样复杂的遗传操作,而仅仅是利用个体 在解空间中的随机速度来改变个体,表现出更强的 式中:5服从均匀分布U(1,2),2服从正态分布 随机性,使其计算复杂度比GA低;在GA中染色体 N(3,1),服从指数分布EXP(4): 互相共享信息,所以整个种群的移动是比较均匀地 在实例中取与文献[2相同的以下数据: 向最优区域移动,而在PSO算法中信息的提供仅是 模拟次数:3000,迭代次数:300,种群规模:30, 全局最优值,这是信息的单向流动,整个种群的搜索 运行次数:1 更新过程是跟随当前的全局最优解的过程,与GA 此外,0从Q9~04线性递减,微粒的最大速 度取为搜索空间最大值的Q1倍注:通过实验,在 相比,在大多数情况下,所有的粒子有可能更快地收 敛于最优解;此外,微粒所具有的“记忆特性,使得 一定范围内改变这2个参数的值发现对求解结果影 它们通过“自我学习和向同伴学习,使下一代能 响不大 从上一代继承更多的信息,从而可在较短时间内找 利用VC++60编程:运行一次的结果如表1 到最优解 所示,从表中可以看出,其结果明显优于文献[2 为了更直观地体现迭代过程,将该实例的迭代过程 6结束语 抽样15次见图1).该算法不仅收敛速度相当快而 本文将随机仿真与P9O算法相结合的混合算 且精度高,在20代时的最优值就己经超过了文献 法应用于随机期望值模型,给出了一种求解随机期 [2在迭代300代时所得到的最优值,而且从180 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net化; 2)利用随机仿真期望值估计算法计算每个微 粒的适应值 (即 E[ f ( x,ξ) ]) ; 3)对每个微粒 ,将其适应值与所经历的最好位 置的适应值进行比较 ,若较好 ,则将其作为当前最好 位置; 4)对每个微粒 ,将其最好适应值与全局所经历 的最好适应值进行比较 ,若较好 ,则将其作为当前的 全局最好位置; 5)根据进化方程 (1)、(2)、(3)进化; 6)对更新后的粒子再次利用随机仿真的期望 值估计算法计算 E[ gj ( x,ξ) ]并检验粒子的可行性 (即判断 x是否满足 E [ gj ( x,ξ) ]≤0) ,若可行 ,则 接受 ,否则保持原位置不变; 7)重复 2) ~6)至一个预设的最大迭代次数或 一个足够好的适应值; 8)输出最好的微粒及对应的适应值作为最优 解及对应的最优值. 5 实例仿真 为了测试本文算法的性能并便于比较 ,特选文 献 [2 ]中的实例来进行. 以下是具有 3个决策变量和 3个随机变量的期 望值模型 : min E[ ( x1 - ξ1 ) 2 + ( x2 - ξ2 ) 2 + ( x3 - ξ3 ) 2 ]; s. t. x 2 1 + x 2 2 + x 2 3 ≤10. 式中 :ξ1 服从均匀分布 U ( 1, 2) ,ξ2 服从正态分布 N (3, 1) ,ξ3 服从指数分布 EXP(4). 在实例中取与文献 [2 ]相同的以下数据 : 模拟次数 : 3 000,迭代次数 : 300,种群规模 : 30, 运行次数 : 1. 此外 ,ω从 0. 9~0. 4线性递减 ,微粒的最大速 度取为搜索空间最大值的 0. 1倍 (注 :通过实验 ,在 一定范围内改变这 2个参数的值发现对求解结果影 响不大 ). 利用 VC + + 6. 0编程 :运行一次的结果如表 1 所示 ,从表中可以看出 ,其结果明显优于文献 [ 2 ]; 为了更直观地体现迭代过程 ,将该实例的迭代过程 抽样 15次 (见图 1). 该算法不仅收敛速度相当快而 且精度高 ,在 20代时的最优值就已经超过了文献 [2 ]在迭代 300代时所得到的最优值 ,而且从 180 代起就获得了稳定解. 为避免一次运行结果的偶然 性 ,将程序运行 50次 ,所得的平均值见表 1最后一 行. 显然利用该算法所得平均最优值优于文献 [ 2 ] 而且由 50次运行中的统计结果可知每次所得最优 值也均优于文献 [ 2 ] (限于篇幅在此未列出每次运 行所得的数据 ). 表 1 运行一次的结果比较及运行 50次的平均值 Table 1 Results com par ison of runn ing one tim e and aver2 age of runn ing 50 tim es of exam ple x1 x2 x3 最优值 GA (文献 [ 2 ]) 1. 103 5 2. 169 3 2. 019 1 3. 56 PSO (本文 ) 1. 195 9 2. 346 3 1. 739 3 3. 15 平均值 1. 181 1 2. 244 6 1. 823 2 3. 16 图 1 SEVM实例的抽样图 Fig. 1 Samp led data of examp le on SEVM 该算法之所以优于文献 [ 2 ],是因为 PSO算法 没有 GA那样复杂的遗传操作 ,而仅仅是利用个体 在解空间中的随机速度来改变个体 ,表现出更强的 随机性 ,使其计算复杂度比 GA低 ;在 GA中染色体 互相共享信息 ,所以整个种群的移动是比较均匀地 向最优区域移动 ,而在 PSO算法中信息的提供仅是 全局最优值 ,这是信息的单向流动 ,整个种群的搜索 更新过程是跟随当前的全局最优解的过程 ,与 GA 相比 ,在大多数情况下 ,所有的粒子有可能更快地收 敛于最优解 ;此外 ,微粒所具有的“记忆 ”特性 ,使得 它们通过“自我 ”学习和向“同伴 ”学习 ,使下一代能 从上一代继承更多的信息 ,从而可在较短时间内找 到最优解. 6 结束语 本文将随机仿真与 PSO 算法相结合的混合算 法应用于随机期望值模型 ,给出了一种求解随机期 第 3期 肖 宁 ,等 :一种求解随机期望值模型的有效算法 ·281· © 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net