混合智能算法

2024-10-24

混合智能算法(共8篇)

混合智能算法 篇1

摘要:随着应用领域的扩展, 遗传算法的研究出现了一些引人注目的新动向, 本文提出在遗传算法研究的基础上将进化策略和遗传算法结合在一起并引入模拟退火的思想, 形成一种改进的混合智能算法, 就相关问题进行分析。

关键词:遗传算法,进化策略,模拟退火,算法改进

提出在遗传算法研究的基础上将进化策略和遗传算法结合在一起并引入模拟退火的思想, 形成一种改进的混合智能算法。新混合智能算法克服了原有单一算法易陷入局部最优解和早熟的问题, 利用进化策略改进进化算子和选择算子, 利用模拟退火思想改进变异算子, 提高了求解精度, 给出了相应的算法步骤。

1 改进混合智能算法的提出

遗传算法研究的目标是使算法解的质量高, 又具有高的计算效率, 使其接近实用化。一方面要得到好质量的解需要大量计算;而另一方面片面追求搜索效率通常会导致早熟, 使解的质量降低。因此, 考虑将进化策略、模拟退火思想和遗传算法进行有效地结合, 达到寻优操作既能跳出局部最优解, 又能保证收敛速度的良好效果。

进化策略 (ES) 是模仿自然选择和遗传机制的一种智能优化算法, 它是由德国柏林技术大学的I.Rechenbery和H.P.Schweful为研究风洞中的流体力子问题提出的。隐含并行性和群体全局搜索性是它的两个显著特征, 而且具有较强的鲁棒性。对于一些复杂的非线性系统求解, 具有独特的优越性能。目前, 这种算法已广泛应用于各种优化问题的处理。如神经网络的训练与设计、系统识别、机器人控制和机器学习等领域。

模拟退火算法 (Simulated Annealing, 简称SA) 是20世纪80年代初期发展起来的一种求解大规模组合优化问题的随机搜索方法, 它以优化问题的求解与物理系统退火过程的相似性为基础, 利用Metropolis算法并适当地控制温度的下降过程实现模拟退火, 从而达到求解全局优化问题的目的。模拟退火算法在求解TSP、VLSI电路设计等NP完全组合优化问题上取得了很好的结果, 并能应用于求解连续变量函数的全局优化问题, 它具有适用范围广、求得全局最优解的可靠性高、算法简单和便于实现等优点[1]。

2 改进混合智能算法的基本思想

该算法以遗传算法为基础, 将进化策略作为一个独立算子, 其中引入了进化策略的 (μ, λ) 选择算子, 提高算法跳出局部最优的几率, 在算子的变异过程中采用模拟退火的思想。精英保留策略, 更有利于算法收敛到全局最优。几种算法相互借鉴, 起到互补的作用。

3 算法实现流程

步骤1:产生初始群体。随机生成初始群体, 并利用神经元网络对其进行可行性的检验。编码方案采用实数编码。

步骤2:交叉。随机选取两个配对个体进行交叉, 然后随机生成一个0、l标志数, 若标志数为“1”, 则对两个个体中相应位的基因进行负交叉运算;否则对两个个体中相应位的基因进行正交叉运算。

步骤3:变异。引入模拟退火思想, 对需变异的基因位按照Metropolis接受准则判断接

受与否。

步骤4:进化引入随机步长, 用来调整个体进行变异操作时变异量的大小。根据进化策略思想产生新个体。

步骤5:选择。采用进化策略的选择算子 (μ, λ) 。保留迄今为止存在的最优个体。

算法中具体技术的描述:在变异过程中, 对个体中的每个基因都随机生成一个P, P属于[0, 1], 若满足P>Pm (Pm为变异概率) , 则对该位的基因进行变异操作;否则保持不变。下面应用模拟退火思想, 对变异结果, 按照Metropolis接受准则判断接受与否。即:发生变异的个体与其变异后的个体适应度值进行比较, 若变异后个体较优则接受其作为新个体, 并替代变异前个体;否则随机产生一个随机数r若满足下式:exp (f1-f2/T) >r则接受变异后个体作为新个体。式中:f1为变异前个体的适应值;f2为变异后个体的适应值;T为退火温度, 退火函数为T=T0·Sgen, T0为初始温度, S为退火系数, gen为进化代数。若上面两个条件都不满足则不接受新个体。

在进化过程中, 在旧个体基础上增加一个随机量, 从而形成新个体, 这个随机量由步长 (正态分布的标准差) 构成, 可以用来调整个体进行变异操作时变异量的大小。根据进化策略的思想[2], 假设群体的个体X={x, s) 经过变异运算后得到一个新的个体x’={x’, S’}, 则新个体的组成元素是:

其中, N (0, 1) 和Ni (0, 1) 是均值为0, 方差为1的正态随机变量, t和t’是算子集参数, 其中和t i*N i (0, 1) 分别表示变异时的整体步长和个体步长。

在选择过程中, 选择不采用轮盘法那种随机方式, 而是采用进化策略中以确定方式进行的选择算子 (μ, λ) 选择, 使优良个体100%地被保留, 劣质个体100%地被淘汰。在新产生的九个个体中选取p个最优者, 将它们保留到子代群体中, 该选择方式易于跳出局部最优解, 而且能够扩大群体多样性, 从而有效避免未成熟收敛。保留迄今为止存在的最优个体, 保证其不被交叉和变异等遗传算子破坏。具体操作为:计算新群体的适应值, 若新群体中的最优个体优于上代保存的最优个体, 则用该个体替换上代保留的最优个体;否则用上代的最优个体替换新群体中最差的个体。

3 结论

遗传算法所具有的开放式的结构, 与问题的关联性不大, 很容易和其他算法进行结合, 所以将其它智能算法思想融合进遗传算法中是当前遗传算法改进的一个重要方法。基于此, 本文提出了将进化策略和模拟退火算法混合进遗传算法中来构造一种新的智能算法。从数值试验的结果可以看到, 新算法改良了以往遗传算法中易陷入局部最优解问题。随着技术的不断发展, 遗传算法与进化策略两种算法交叉渗透, 差异也在不断缩小, 通过两者的相互借鉴, 必定会产生更多稳定, 高效的新算法。

参考文献

[1]徐临, 唐万生.含有模糊变量双层规划模型的混合智能算法[J].系统工程理论与实践, 2008, 28 (7) .

[2]云庆夏.进化算法嗍[M].北京:冶金工业出版社, 2000.

混合智能算法 篇2

教学内容:教科书第93―94页,练习二十的第;一10题。

教学目的:

1.使学生掌握加法和乘法的运算定律。能够比较熟练地运用这些运算定律进行简便计算。

2.使学生掌握四则运算的运算顺序.能正确计算四则混合运算。

教学过程():

一、运算定律

教师:“我们在学习四则运算时.学过哪些运算定律?”指名用自己的话说出运算 定律,并举例说明。然后用字母表示出来:教师根据学生的回答,整理成教科书第93页的表。

如果学生只举整数的例子,教师可以引导学生想一想:运算定律除了对整数加法和乘法适用以外,对小数和分数的加法、乘法适用吗?让学生再举几个有关小数、分数加法和乘法的例子。

下面的式子有没有错误?把错的地方改正过来。

(4.3十2.5)×4=4.3×4×2.5×4

(700十1)×68=700×68十68

153×(220十57)=153×220十57

63×8十37×8;(63十37)×(8十8)

还可以做练习二十的第8题。

教师:“在我们学过的知识里哪些地方应用丁运算定律?”可以多让几个学生说一说。如果学生掌握得比较好,还可以让学生用运算定律解释―下积、商的变化规律:如:在乘法里。如果一个因数扩大10倍,另一个因数不变,那么积就扩大10倍:可

以用下面的式子说明:

(a×10)×b=a×10×b=a×b×10=(a×b)×10

这里应用了乘法的交换律和结合律。

二、简便算法

教师:“应用运算定律可以使―些计算简便。谁能举个例子?”

接着出示教科书第93页的例1、先让学生观察题目中的数有什么特点。然后让学生说一说应该用什么运算定律。说完后,让学生独立完成计算。

集体订正时.教师再提问:这道题是怎样应用运算定律的?应用了哪些运算定律?使学生明确:在计算时.不仅计算的开始有时可以用简便方法进行计算,在计算的过程中有时也可以用简便方法进行计算。

教师:“在计算时,要随时注意用简便方法进行计算、”

做教科书第93页“做一做”中的题目。

教师说明题目要求后。让学生独立计算。教师巡视,对学习有困难的学生进行个别辅导。集体订正时.让学生说一说每道题是怎样用简便方法计算的。特别是下面二道题,是怎样进行简便计算的?

567十98             1    ―    ―                21   ÷7

教师要提醒学生:有的`算式可能存在几种不同的算法,所以。在运算前要认真审 题.看清算式中各个数的特点、选用―种比较简便的算法,使计算又对又快。

三、四则混合运算

引导学生回忆四则混合运算的有关概念和运算顺序。

“什么叫做第一级运算?什么叫做第―级运算:”

“在一个算式中如果只含有同―级运算、运算顺序是怎样的:”

“在一个算式中如果含有第―级和第二级两级运算。应该先算什么?”

“在含有括号的算式中。应该先算什么?再算什么?”

出示教科书第94页中间的算式.让学生标明运算顺序。

教师:“在计算混合运算的式题时.首先要认真审题,看清题中有哪些运算符号.确定运算的顺序。”

出示教科书第94页的例2。先让学生认真审题。想一想运算顺序。然而让学生独立计算。教师巡视。了解学生掌握的情况、对个别学生进行辅导,集体订正时,指名说一说运算的顺序。同时,还要注意强调书写的格式。

做练习二十的第9题。学生独立计算。集体订正。

四、小结(略)

混合智能算法 篇3

目前对于交通肇事逃逸事件, 追踪难度很大, 往往需要人工一帧一帧的对比图像, 来追踪肇事车辆的逃逸方向, 给警方破案带来了很大困难。如何利用现有的运动目标检测技术, 开发高效、实用的肇事车辆追踪、识别系统, 具有一定的实际意义和价值。目前运动目标的检测方法主要有帧差分算法、背景差分算法和光流算法。文献[1]利用帧差分得到运动目标最大的可能区域, 有很好的环境适应性, 但如果目标运动速度快, 会出现空洞或重复检测;文献[2]利用背景差分得到完整的追踪目标信息, 但容易受到光照变化的影响;文献[3]通过光流法计算分离运动目标和背景, 可以捕捉到运动的目标, 但计算难度大, 无法实现高速实时检测。

本文针对目前肇事车辆追踪难题和传统算法检测精度低、速度慢的缺陷, 设计了一个基于混合智能算法的肇事车辆追踪系统。充分利用帧差分法良好的环境适应性和背景差分法的目标检测准确性, 缩小目标检测区域, 再结合光流算法捕捉运动目标, 即克服了空洞、重复检测和光照影响的缺陷, 又降低了时间复杂度, 提高了检测速度。实验结果表明, 与传统算法相比, 该系统能够快速、准确的追踪肇事车辆, 具有很强的有效性和实用性。

1 运动目标提取

运动目标可以通过算法从大量的视频图像中检测出变化区域并将目标提取出来, 但视频采集的数据量巨大, 运算时间复杂度高, 难以实现实时检测, 而且由于天气、风力、光照等影响存在场景变化, 提取运动的目标更加困难。运动目标检测分为摄像头静止和摄像头运动两种情况, 由于本文中肇事车辆追踪系统使用的是各交通路口的固定摄像头, 所以仅研究前者的检测算法。为提高检测速度达到实时性, 又能够精确获取运动目标, 可充分利用帧差分法良好的环境适应性、背景差分法的目标检测准确性以及光流算法的优点, 采用帧差分法、背景差分法、光流算法三者智能混合算法实现。

1.1 帧差分法

帧差分法是目前最常用的运动目标检测方法[4], 它通过提取连续的两帧或三帧图像, 使用像素减法公式计算差值图像, 然后对其二值化, 从而提取运动区域。三帧图像帧图像Ii-1, Ii, Ii+1, 设定阀值T, 计算差值图像d的差值公式:

然后对其二值化得到b:

从而得到运动目标图像。但算法存在缺陷, 受环境变化的影响大, 对复杂的运动目标, 会产生空洞, 重复检测等问题, 无法准确的提取运动目标[5]。

1.2 背景差分法

背景差分法通过当前帧图像和背景图像相减得到运动区域, 目标检测具有很好的准确性。对上面帧差分法得到的运动区域进行背景更新, 公式为:

根据上面公式通过m (设定的最大迭代次数) 次迭代后, 得到精确背景图像Bi (x, y) , 其中α为迭代加速系数。然后当前帧与背景相减得到目标图像d’:

DBi (x, y) 表示二值化后的目标图像像素灰度值。由于只对感兴趣区域进行更新, 大大减少了计算复杂度, 能够达到实时监测的目的。

1.3 光流计算和提取

光流是二维速度矢量在三维速度平面上的投影, 是二维瞬时速度场。如果给图像中每一个像素一个速度, 就构成了一个图像运动速度场。在运动的某一时刻, 图像上的每一个点与运动的三维目标上的点存在一一映射, 这种映射关系通过投影即可得到。光流矢量是指二维图像坐标点上的灰度瞬时变化率。光流场 (optical flow field) 是一个二维矢量场, 是指图像灰度模式的表观运动, 它包含的信息即是各像点的瞬时运动速度矢量信息。光流场可以从序列图像中近似计算不能直接得到的运动场。光流场可以简单的理解为物体的速度矢量场, 包括两个分量u, v。设平面上有一点 (x, y) , 它代表的是场景中某一点 (x, y, z) 在图像平面上的投影, 该点在时刻t的灰度值为I (x, y, t) 。假定该点在 (t+△t) 时运动到 (x+△x, y+△y) , 在很短的时间间隔△t内灰度值保持不变, 即:

其中, u, v分别是该点的光流的x, y方向上的分量。假设亮度I (x, y) 随时间t平滑变化, 可以将上式按泰勒公式展开, 得到:

其中e包括△x, △y, △t的二次以上的项, 上式消去I (x, y, t) , 用△t除等式两边, 并取△t→0的极限后, 可求得光流约束方程:

此式可简写为:

而光流有两个分量u, v, 但是一个方程, 两个未知数, 需要另外的约束条件[6]。

2 肇事车辆追踪系统

本文以摄像机静止目标运动为研究对象, 首先利用帧差分法目标最大的可能区域差值图像, 再利用背景差分法精确提取感兴趣的目标区域, 然后使用光流法计算差值图像中目标区域特征点的光流。整体算法步骤:

1) 对采集到的视频图像去噪、平滑、增强等预处理[7], 如图1 (a) 所示。

2) 采用帧差分算法及增强处理, 得到目标最大的可能区域差值图像。提取连续的三帧图像Ii-1, Ii, Ii+1, 计算差值图像d, 设定阀值T, 二值化后得到二值图像b如图1 (b) 所示, 对得到的二值图像进行滤波、去噪, 然后平面投影, 提取目标最大的可能区域, 为确保目标的完整性, 矩形区域的长和宽在原有的基础 (W, H) 上增加N个像素, N可通过实验获得适合值。

得到感兴趣的矩形区域如图1 (c) 所示。

3) 采用背景差分算法获取精确的目标区域, 并标注。由上面感兴趣的矩形区域图像更新背景图像B, 取最大迭代次数m=100, α=0.003。然后当前帧与背景相减得到目标图像d’。在此只对感兴趣区域进行更新, 大大减少了计算复杂度, 能够达到实时监测的目的。

4) 进行光流计算及形态滤波[8], 使用光流聚类提取目标。在图像平面内足够小的区域ROI内, 而且在足够短的时间间隔内, 两帧图像间的运动可以近似为线性的, 利用最小二乘得到光流场:

由于光流场存在不连续性和不可靠性, 以及出现噪声, 因此设定阀值函数ε, 当其超过该值时, 不再提取光流, 否则提取光流用红色箭头标注, 如图1 (d) 所示。

5) 目标跟踪和速度计算。

3 实验结果

实验采用某城市交通路口摄像头拍摄视频, 视频分辨率是640×480, 摄像头本身具有噪声, 且环境中有光照变化, 空气流动, 背景中色彩复杂, 图像均为摄像头静止, 目标运动, 算法在VC++下编写实现。分别对帧差分法、背景差分法、光流法和本文方法进行对比实验, 实验结果如表1所示。

从表中实验结果可以看出, 本文方法运算速度大大提高, 准确度均高于其他三种方法。本文提出的使用采用帧差分法得到运动区域, 利用背景差分法提取精确的目标, 从而减少了计算复杂度, 重建速度增加, 然后提取目标特征点处的光流并对兴趣区域标注, 使追踪目标的准确度提高。实验结果表明, 该方法是有效可行的。

4 结论

本文针对目前肇事车辆追踪难题和传统算法检测精度低、速度慢的缺陷, 设计了一个基于混合智能算法的肇事车辆追踪系统。充分利用帧差分法良好的环境适应性和背景差分法的目标检测准确性, 采用帧差分法得到感兴趣的目标运动区域, 再通过背景差分法更新得到精确的目标图像, 然后计算目标图像特征点处的光流并对兴趣区域标注, 从而使计算出的光流更精确可靠, 即克服了空洞、重复检测和光照影响的缺陷, 又降低了时间复杂度, 提高了检测速度。实验结果表明, 与传统算法相比, 该系统能够快速、准确的追踪肇事车辆, 减轻了警方追查肇事逃逸车辆的难度, 具有很强的有效性和实用性。

参考文献

[1]Ha J E.Foreground objects detection using multiple differenceimages[J].Optical Engineering, 2010, 49 (4) :047201-1-047201-5.

[2]Jodoin P M, Mignotte M, Konrad J.Statistical backgroundsubtraction using spatial cues[C].IEEE Transactions on Circuitsand Systems for Video Technology, 2007, 17 (12) :1758-1763.

[3]Dessauer M P, Dua S.Optical flow object detection, motionestimation, and tracking on moving vehicles using waveletdecompositions[J].Proc SPIE, 2010:76-94.

[4]屠礼芬, 仲思东, 彭祺.基于混合差分法的运动目标检测[J].科学技术与工程, 2012, 12 (2) :325-329.

[5]刘志宇, 王冠军.智能交通检测系统中动态目标检测方法研究[J].计算机应用与软件, 2010, 27 (1) :29-31.

[6]程一玮.基于ARM的运动目标跟踪系统的设计与实现[J].制造业自动化, 2012, 34 (7) :94-96.

[7]朱青, 刘宏立, 陈炳权, 李劲菊, 万琴, 孙猛, 袁小芳.Animproved method for multiple targets tracking[J].Journalof Central South University, 2012, (10) :2852-2859.

混合智能算法 篇4

关键词:Sugeno测度空间,Sugeno期望值模型,混合智能算法

一、前言

在决策科学、管理科学、信息科学、系统科学及可靠性技术等各种决策系统中都存在着客观的或人为的不确定性。正因为不确定性因素在不同的决策系统中无所不在, 最优化问题就成为目前面临的真正挑战。不确定规划是在不确定的环境下处理优化问题的理论工具, 它主要是建立在概率、可能性、可信性测度空间上。Sugeno测度空间是一类比概率空间更广的重要的有代表性的非可加测度空间, 因此, 如何在Sugeno测度空间上建立不确定规划是一项很有意义的工作。

Sugeno测度的产生为不满足可加性的一些实际问题如主观评判、非重复性实验的测量等提供了一种解决方法。一个具体的的例子:假设我们购买一辆汽车, 为简单起见, 只考虑两个主要因素:性能m和外观n。设X={m, n, }, 如果这辆汽车性能和外观均很差将不被购买, 即购买可能性为0;另一方面, 如果遇到性能和外观都很好的汽车将会购买, 即购买可能性为1。通常, 性能的好坏比外观更重要, 因此这可能造成购买的可能性分别为0.5和0.3。用下列的测度方法表达它

很显然, 上述的测度是非可加的 (μ{X}≠μ{m}+μ{n}) , 也就是说, μ不是一个概率度量。同时也容易看出μ既不是一个可能性度量, 也不是一个可信性度量, 而是一个Sugeno测度。

二、Sugeno期望值模型

1.Sugeno测度空间上的不确定规划

由于不确定规划是在不确定环境下处理优化问题的理论工具, 而Sugeno测度空间是一类比概率空间更广的非可加测度空间, 因此我们要考虑如何在Sugeno测度空间上来建立不确定规划。

如果用Sugeno测度空间上的不确定规划解决这个问题, 则结果模型为以下形式

一般来说Sugeno测度空间上的不确定规划模型为

其中x为决策向量, ξ为gλ随机向量, f和gj, j=1, 2, …, p, 是实值函数, 对每一个决策向量x, 目标函数f x, , ξ, 和约束函数gjx, , ξ, , j=1, 2, …, p, 都是gλ随机变量, 上述模型公式简称为Sugeno规划。需要注意的是:如果f x, , ξ, 和gjx, , ξ, (j=1, 2, …, p) 表达形式和实际意义都不明确, 把一个Sugeno随机变量极大化是没有意义的;另外, 我们在了解Sugeno随机变量的实现值之前也无法判断它的可行性。通常可以定义上述模型的特殊情况来处理一些实际问题的特征。

2.%Sugeno期望值模型

Sugeno规划类型之一是期望值模型 (SEVM) , 它是一种使目标函数的Sugeno期望值达到最优的数学规划, 举例来说, 将预期的费用减到最少, 取预期的利润最大值等等。为了得到最大期望受益的决策, 可以建立如下的单目标Sugeno期望值模型:

其中x为决策向量, ξ为gλ随机向量, f (x, ξ) 为目标函数, gjx, , ξ, 表示约束函数, j=1, 2, …, p。

许多情况下, 决策问题包含多个目标函数, 此时可以建立Sugeno期望值多目标规划模型:

3.解决SEVM的混合算法

3.1 Sugeno模拟

可见Fgλ (·) 必为变量ξ=Fgλ-1λuλ的Sugeno分布函数。所以只需产生[0, 1]上均匀分布的随机数u, 并由Fgλ-1λuλ求出, 就能产生出Sugeno分布函数为Fgλ (·) 的随机数。考虑如下Sugeno模拟问题:

设ξ是Sugeno测度空间λX, F, gλλ上的gλ随机向量, f:Rn→R为可测函数, 则f (ξ) 为gλ随机变量.下面利用Sugeno模拟求解。

3.2利用遗传算法和神经网络的混合智能方法解决SEVM

对Sugeno期望值模型, 提出了一种遗传算法和神经网络的混合智能方法, 这种方法包含着上述的Sugeno模拟。假设要解决的SEVM形式如下:

采取混合算法的具体步骤如下:

步骤1:用Sugeno模拟为不确定函数U:x→E[f (ξ) ]产生输入输出数据;

步骤2:根据产生的输入输出数据训练一个神经元网络逼近不确定函数;

步骤3:初始产生一定数目个染色体, 用训练好的神经网络来计算Sugeno期望值函数E[f (ξ) ];

步骤4:通过旋转赌轮选择染色体;

步骤5:通过交叉和变异操作更新染色体;

步骤6:用训练好的神经元网络计算所有染色体的目标函数值;

步骤7:重复步骤4至步骤6, 直到完成给定的循环次数;

步骤8:找出最好的染色体作为最优解。

利用GA算法和神经网络各自的优越性提出的混合智能算法通常是解决SEVM的局部最佳解决方法。

例1求解下面的Sugeno期望值模型

其中ξ1服从均匀分布U[1, 2], ξ2服从Sugeno正态分布SN (3, 22, 5) , ξ3服从Sugeno标准正态分布SN (0, 1, 3) 。

解:首先通过Sugeno模拟为不确定函数

产生输入输出数据;然后, 训练一个神经元网络 (3个输入神经元, 5个隐层神经元, 1个输出神经元) 来逼近不确定函数;最后, 把训练好的神经元网络嵌套在遗传算法中, 从而形成混合智能算法。

通过运行混合智能算法 (模拟3000代, 2000个训练样本, 300次遗传迭代) , 我们能够找到最优解x= (12076, 2.9097, 0.2744) 其目标值为1.93。

三、结论

本文将不确定规划推广到Sugeno测度空间, 提出了Sugeno期望值模型, 并提供了解决模型问题所需的定义和算法, 最后通过举例说明了用混合智能方法解决SEVM是可行的。因此, 我们把不确定规划的期望值模型扩充到Sugeno测度空间, 拓展了不确定规划的理论和应用范围。

参考文献

[1]刘宝碇, 赵瑞清, 王纲.不确定规划及应用。北京:清华大学出版社, 2003.

[2]Liu B, and Liu Y K.Expected value of fuzzy variable and fuzzyexpected value models.IEEE Transactions on Fuzzy Systems, 2002, 10 (4) :445-450.

[3]B.Liu, Uncertainty Theory:Towards Axiomatic Foundation, Lecture Note, Tsinghua University, 2003.

[4]Y.K.Liu, B.Liu, Fuzzy random programming with equilibriumchance constraints, Information Sciences 170 (2005) 363-395.

混合智能算法 篇5

模糊Petri网是基于模糊产生式规则的知识库系统的良好建模工具,使得知识的表示简单而又清晰;又具有模糊系统的模糊推理能力,便于知识的分析、推理、测试以及决策支持等,但自学习能力差是模糊系统的一个缺陷。模糊产生式规则是用IF—THEN结构来表示知识的,其中的一些参数,例如权值、阈值、确信度等的确定很大程度上依赖于人的经验,难以精确获得,有时甚至无法获得,这阻碍了模糊Petri网的知识推理和泛化能力。关于模糊Petri网学习能力的研究尽管时间不长,但近年来已取得一些成果。例如,文献[1]中提出的基于BP网络的模糊Petri网采用了分层思想,可以实现权值、阈值和确信度的整体参数的寻优,文献[2]中提出的有阈值学习能力的FPN,文献[3]中提出的较严格条件下FPN的权值学习问题,文献[4]中讨论了无阈值条件下权值和确信度学习算法,文献[5]中运用改进后的遗传算法,对FPN模型中的各种参数进行了寻优操作。其中,利用文献[1]中的BP算法和文献[5]中的改进遗传算法对FPN进行参数优化取得了比较好的效果。本文在文献[1]提出的FPN模型以及相应的模糊推理算法的基础上,将量子粒子群优化算法和BP网络学习算法相结合,提出了相应的混合智能算法HQBA,并将其应用到FPN中,对FPN的参数进行调整优化。本文的实验表明,该寻优策略较其他方法所得参数精确度较高,具有更好的全局收敛性能,更适应实际需要。

1 模糊Petri网和模糊推理函数

1.1 模糊Petri网

模糊Petri网包括库所、变迁、确信度、阈值和权值5个部分,被定义为一个八元组。

定义1 一个FPN为一个八元组,FPN={P,T,I,O,M,Th,W,f},其中,各参数的具体含义可参考文献[5]。

定义2 ∀tT,若∀pIjI(t),Μ(pΙj)×wΙjΤh(t)则称变迁t是使能的,j=1,2,…,n

定义3 使能的变迁可以点燃。当变迁t点燃时,它的输入库所中的标记值不改变,而向输出库所p传送新的标记值:f(t)×∑M(pIjwIj,pIjI(t),wIjt的相应输入弧上的权值。库所p可能是多个变迁ti(i =1,2,…,n)的输出库所。当这些使能的变迁t点燃时,库所p得到的标记值M(p)为传送来的值中最大的一个值:

Μ(p)=max(f(t1)×jΜ(p1j)×w1j

f(t2)×jΜ(p2j)×w2j

f(tn)×Μ(pnj)×wnj)

pijI(ti) i=1,2,…,n (1)

1.2 模糊推理函数

y(x)是一个S形函数,b是一个常量。y(x)函数在本文中有两处应用。y(x)的表达式如下:

y(x)=1/(1+e-b(x-k)) (2)

(1) 判断变迁的使能,建立变迁点燃连续函数。

在定义2中,设x=j=1nΜ(pΙj)×wΙj,k=Τh(t),则y(x)函数建立了变迁的使能判断。当b足够大时,(a) 若x>k,则y(x)=1,表示变迁t使能。(b)若x<k,则y(x)0,表示变迁t没有使能。根据定义3,我们使用连续函数y(x)×f(t)×j=1nΜ(pΙj)×wΙj来表示t是否点燃,以及对输出库所传送的标记值。当y(x)1时,变迁t使能,对输出库所传送标记值f(t)×j=1nΜ(pΙj)×wΙj。当y(x)0时,变迁t没有使能,对输出库所传送标记值0,相当于变迁t没有点燃。

(2) 建立最大运算连续函数。

利用y(x)函数,当b足够大时,显然下式推导正确:

2 量子粒子群算法

粒子群优化PSO(Particle Swarm Optimization)算法是基于群体的演化算法,是一类有着潜在竞争力的仿生学习算法。根据文献[6]关于粒子收敛行为的分析,要保证算法的收敛性,每个粒子必须收敛于各自的P点,这是由粒子的追随性和粒子群的聚集性决定的。第i个粒子P点的第j维坐标为:pj=(φ1jpij+φ2jpgj)/(φ1j+φ2j) (6)

其中φ1j=c1r1j,φ2j=c2r2j

文献[7]从量子力学的角度出发提出了一种新的PSO算法模型,并根据这种模型提出了量子粒子群算法(QPSO)。

在量子空间中,粒子的速度和位置是不能同时确定的,因此文献[7]通过波函数ψ(x,t)来描述粒子的状态,并通过求解薛定谔方程得到粒子在空间某一点出现的概率密度函数。随后通过蒙特卡罗随机模拟的方式得到粒子的位置方程为:

X(t)=Ρ±L2ln(1/u) (7)

u为[0,1]范围内变化的随机数,文献[7]中L被定义为:

L(t+1)=2*β|mbest-X(t)| (8)

mbest=i=1ΜΡi/Μ=(i=1ΜΡi1/Μ,i=1ΜΡi2/Μ,,i=1ΜΡiD/Μ)(9)

其中β称为收缩扩张系数,M为粒子的数目,D为粒子的维数,Pi为第i个粒子的pbest。最后得到粒子的位置方程为:

X(t+1)=Ρ±β*|mbest-X(t)|*ln(1/u) (10)

3 混合智能算法HQBA

目前,最常用的神经网络模型是多层前馈神经网络(BP网络)。BP网络的算法采用梯度下降法,这就使该算法不可避免地易陷入局部极小、收敛速度慢、泛化性能差。量子粒子群优化算法是基于种群的全局搜索策略,是一类有着潜在竞争力的神经网络学习算法。在文献[1]的模糊Petri网的模糊推理算法中,已经将FPN模型进行了分层。基于FPN模型的这种特点,本文利用一种将量子粒子群优化算法和BP算法相结合的混合智能算法训练模糊Petri网的参数。在该混合算法中,用量子粒子群优化算法替代BP算法中的梯度下降法,使其不易陷入局部极小,增强了泛化性能,也避免了遗传算法中的选择、交叉、变异等进化操作,缩短了训练时间。

在HQBA中,用Xi=(xi1,xi2,xin)表示一组参数值。向量中的每一维表示模糊Petri网权值、阈值或确信度的值,n为所有权值、阈值和确信度个数。粒子的适应度函数为(12)式所示:

Ιi=(Yi,j-yi,j)2 (11)

Ιk=1ni=1nΙi (12)

其中,n为样本个数,Yi,j为第i个样本的第j个理想输出值,yi,j为第i个样本的第j个实际输出值,k=1,…,M,为粒子种群规模,即粒子的个数。

4 基于混合智能算法HQBA的FPN参数优化

利用HQBA进行FPN参数优化的具体流程如下:

(1) 运用模糊推理算法,对FPN 模型进行分层。

(2) 初始化粒子群。

(3) 对r批样本数据,计算每个粒子的适应度。

① 先输入一个粒子,对每一个样本而言,利用模糊推理算法,按BP网络的前向计算方法计算出一个模糊Petri网的输出值,再按(11)式计算出其误差;同样的方法,计算出所有样本的误差;再按(12)式计算出所有样本的均方差,即该粒子的适应度。

② 返回到①步骤,继续输入其它粒子,直至计算出所有粒子的适应度。

(4) 比较适应度,确定每个粒子的个体极值和全局最优值。

(5) 更新每个粒子。

(6) 采用在线性能准则或离线性能准则计算出算法的误差。本文采用离线性能准则来评价模Petri 网的性能,公式如下:

ERΜS=i=1lfun(gbesti)l (13)

其中,l为算法当前迭代次数,fun(gbesti)为第i次迭代的全局最优值的适应度。

(7) 比较次数是否达到最大迭代次数或式(13)的值满足精度。若满足预设精度,算法收敛,最后一次迭代的全局最优值中每一维的权值、阈值和确信度值就是我们所求的;否则返回(2),算法继续迭代。

从上面的叙述中可知。本文提出的量子粒子群优化算法和BP算法相结合的混合智能算法中,两者的融合体现在两点上:(1) 模糊Petri网的权值、阈值和确信度作为粒子这一向量的各元素的值;(2)计算粒子的适应度时,采用的是BP算法的前向传播来计算。粒子的适应度函数的定义,也是根据BP算法的均方误差得来的。

5 仿真实验和分析

本文仿真实验和文献[1]采用同一FPN模型。FPN模型如图1所示。

假设图1中FPN各个权值、阀值和确信度参数的理想数值为w1=0.3,w2=0.5,w3=0.2,w4=0.62,w5=0.38,w6=0.35,w7=0.65,λ1=0.3,λ2=0.3,λ3=0.4,λ4=0.3,λ5=0.3,μ1=0.87,μ2=0.7,μ3=0.6,μ4=0.9,μ5=0.8。取推理函数中常量b=5000,粒子群数为20,样本数r1=30,按BP算法迭代350次后所得训练参数如表1中的wB,uB,λB所示,按改进遗传算法(IGA)迭代500次后所得训练参数如表1中的wI,uI,λI所示,而按HQBA迭代200次后所得结果如表1中的wH,uH,λH所示。表中w,u,λ为理想值,MSE为均方误差和(单位:1.0×10-3)。显然,按HQBA所得参数要优于BP算法和改进遗传算法的结果。

为验证其泛化功能,任取5组非样本中的输人数据,对按混合算法训练后的FPN模型进行模糊推理。从表2和表3的数据可以看出,用BP算法训练模糊Petri网时,泛化误差达到1%~40%左右,用改进遗传算法训练模糊Petri网时,泛化误差达到1%~30%左右,而使用本文提出的混合算法训练时,模糊Petri网的泛化误差达到1%~10%左右。因此,混合智能算法的泛化性能要优于BP算法和改进遗传算法。

6 结束语

该文运用量子粒子群优化算法和BP算法相结合的混合智能算法,对FPN模型中的各种参数进行了寻优操作,使得FPN模型具有神经网络一样的学习能力,所得参数较吻合FPN中的理想参数。由于该混合算法属于全局搜索算法,而且要寻优的参数也较多,训练后所得的参数与理想参数并非完全一致,还存在一定差异。但若FPN模型中多数参数已确定,仅有少量参数待寻优,或者能够确定初始输入的大致范围,那么文中提出的寻优策略训练出的参数还是非常准确的。实验证明,该混合算法与遗传算法相比,明显地减少了迭代次数,具有不易陷入局部极小、泛化性能好的特点,提高了FPN模型中参数的寻优精确度。

参考文献

[1]鲍培明.基于BP网络的模糊Petri网的学习能力[J].计算机学报,2004,27(5).

[2]Looney CG.Fuzzy Petri Nets and Application[A].Tzafestas SG,et al.Fuzzy Reasoning in information,Decision and Control System[C].Norwell,MA:Kluwer Academic Publishers,1994:511527.

[3]Li Xo.Dynamic knowledge inference and learning under adaptive fuzzy Petri net framework[J].IEEE Transactions on Systems,Man and Cy-bernetic-Part C:Application and Reviews,2000,30(4):442449.

[4]Tsang Ecc,Yeung DS,Lee Jwt.Learning capability in fuzzy Petri nets[A].Proceeding of the19-99IEEE International Conference on Sys-tems,Man and Cybernetics,Tokyo,1999:355360.

[5]李洋,乐晓波.模糊Petri网与遗传算法相结合的优化策略[J].计算机应用,2006,26(1).

[6]Clerc M.The Swarm and Queen:Towards a Deterministic and Adap-tive Particle Swarm Optimization[A].Proceedings of CEC1999,Pis-cataway,NJ:IEEE Press,1999:19511957.

[7]Sun J,Feng B,Xu WB.Particle Swarm Optimization with Partic-les Having Quantum Behavior[A].Proceedings of2004Congress on Evo-lutionary Computation,2004:325331.

混合智能算法 篇6

随着物流技术和应用的发展,物流配送过程中的车辆路径优化问题(Vehicle Routing Problem.VRP)成为一个研究的热点。它是一个NP难题,不能得到解析解,通常只能通过各种启发式算法得到近似解。

启发式算法求解该问题就成为人们研究的一个重要方向,并出现了多种启发式算法,如Clarke和Wright提出的节约法[1],Gillett和Miller提出的扫描法等,虽然这些算法为求解配送路径优化问题提供了有效的方法,但也存在一定的问题,如节约法虽然具有运算速度快的优点,但也有组合点零乱、边缘点难以组合的问题,扫描法为非渐进优化等。遗传算法是J.Holland教授模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型[2],是一种通过模拟自然进化过程搜索最优解的方法,目前已广泛应用于各种优化或控制领域。

本文将采用混合智能算法去解决VRP问题:(1)遗传算法先从整体方面出发,安排总体路径;(2)最后经过模拟退火进一步优化每一辆车的路径。

在引入遗传算法时的难点有:(1)VRP问题是一个动态的问题,当各个需求点变化时,需要的车辆数就在时时变动,如何确定车辆数。(2)如何将车辆数加入到编码之中,从而在编码中体现更多的实际有效信息。(3)如何进行有效的交叉,适合新式编码。

2 假设与数学模型

假定配送中心最多可以用m辆车对n个商店进行运输配送,每个车辆载重为bi(i=1,2,3,…,m),每个商店的需求量为di(i=1,2,…,n),商店i到商店j的运输成本为cij,商店i到配送中心的成本为ci0或c0i(i,j=1,2,…,n),车辆的载重能力可以满足任意一个商店的要求。忽略体积因素,在满足各商店配送需求且不超载的情况下,如何安排每辆车的行驶路径,使总的运输成本最低。引入如下变量:

Vik为0-1变量,值为1时,表示第k辆车访问需求点i,值为0时,表示其他情况(i=1,2,…,n;k=1,2,…,m);

Rijk为0-1变量,值为1时,表示第k辆车经过点i直接到点j,值为0时,表示其他情况(i,j=1,2,…,n;k=1,2,…,m);建立数学模型:

其中,式(1)表示目标函数整个配送过程中运输成本的最小化;式(2)表示某个需求点有且仅有一辆车访问;式(3)表示各运输车辆均从配送中心出发,经过需求点后,最后要回到配送中心;式(4)表示每个需求点都有一辆车经过;式(5)表示车辆的装载量大于其所访问的需求点的需求量,即不出现超载情况发生;式(6)表示i点到j点的运输费用与j点到i点的运输费用相等;式(7)(8)(9)(10)和(11)均为变量的取值范围。

3 VRP问题的混合智能算法的构造

Step1:动态自适应确定车辆数

假设有n个配送点,各个配送点i(i=1,2,…,n)的配送量为di(i=1,2,…,n),车限重为b。

常规车辆数的算法为:车辆数。这是非科学的计算方法,也是不符合实际的,因为货物不可分割,得出的车辆数可能因为过小而无法得到可行解。

本文采用一种新思维——动态自适应车辆数确定法。具体实现是将所有的客户点随机排序,从头依次将各客户点的货物量逐步累加,在超过车辆满载量之前为一车,直至所有的货物装完为止,累加并记录该条染色体的车辆数。通过一个大种群的染色体算出其中记录的最少车辆数作为本模型所要的车辆数。此方法避免了货物被迫分割现象的发生,同时也避免了同批货物分次到达同一个目的地的情形。

Step2:新的编码方式

本文采用自然数编码方法,构造配送路线优化问题的解向量的染色体结构。但如何将车辆数体现在编码中并且能发挥应有的效果则是当前最大的难题。

本文将采取一种新的编码思维方式,假设问题是1个配送中心、n个配送点的分配选择与路径优化问题,本文自然数编码的染色体长度将不再是常规思维下的1+n,而是n+m-1(车辆数由step1中算出),多出的m-2个点,称之为“虚拟配送中心”,m-1个配送中心分散在染色体中间将染色体分割成m段,每一段则为每辆车的路径。本文称这种新型的编码思维方式为:“分割染色体法”。这种编码的创新为我们整个算法的实现奠定了基础,同时可以与下面的交叉建立一个良好的衔接。

Step3:初始化群体

随机产生N条染色体组成初始群体,并淘汰不符合约束的染色体,对每一条染色体,分别计算它们的函数适应度值,并按适应度值排序。由于约束条件的限制,随机产生的染色体将会有很大一部分不符合条件,所以一般将初始群体取为3N。

Step4:适应度的计算

对于某个个体所对应的配送路径方案,要判定其优劣,一是要看其是否满足配送的约束条件;二是要计算其目标函数值(即各条配送路径的长度之和)。本文根据配送路径优化问题的特点所确定的编码方法,能够知道每辆车所行走的路线,对各条路径逐一进行判断,看其是否满足约束条件(是否超载),若不满足,则将该条路径定为不可行路径,目标函数值加一个绝对大的惩罚数。

Step5:选择

选择采用轮盘赌[3]的方法进行,选择得到的个体进入下一步交叉和变异。在每代种群中,以一定的交叉概率对个体进行交叉重组,在此交叉概率中采用自适应概率。这样,可以有效加强优秀个体的遗传能力,保护其进入下一代;对于适应度低于平均值的个体,采用较大的交叉概率,增大弱势个体的淘汰率。但是同时,又保证了在进化初期优秀个体不会占有完全的主导地位,降低了局部最优解的出现概率。

Step6:有效交叉

标准遗传算法的交叉只是简单的随机交换。结合VRP问题的实际情况以及新式编码,本文采用能与新式编码良好结合的刘海交叉[4],交叉的过程也是一种择优的过程,即交叉的同时,也在择优。

应用这种交叉法的优点在于:(1)能跳出局部最优解,继续寻找问题的全局最优解;收敛速度非常快,具有较强的全局搜索能力。(2)能够保证得到的子代染色体一定是可行的且比其父代染色体更加优异,交叉本身就是一次择优。

Step7:引入模拟退火实现每一辆车的自优化

在遗传算法结束时,利用模拟退火实现解的更优,因为染色体被分割后的每一段并不可能在遗传算法下都实现最优,而通过模拟退火可以实现局部(也就是每一小段染色体)都能得到最优路径(每一辆车各自走的都是最优),从而在不改变每辆车的货物分配选择条件下,只改变了路径顺序,从而实现整体解的进一步优化。

4 实例验证

本文根据上述混合智能算法编制了MATLAB程序,并对文献[5]列出的一个某配送中心对13个需求点进行送货的物流配送路径优化问题实例进行了实验计算,文献中采用节约矩阵法得到解决方案[5],得到的总行程是176。汽车的载重量为200t。可以根据载重量和各点需求量,采用本文中的动态自适应车辆数确定法算出,车辆数等于4辆。

在表1中可以发现,运用单独遗传算法10次运行的平均值为166.7,而运用混合智能算法10次运行的平均值为160.1,而且,几乎每一次都有所改进。其中,第1、4、5、6、10次不大于170属于最优值符合条件自动停止。其中第1、4、10次的结果得到了最优值159,对比采用节约矩阵法[5]得到的总行程176,有了较大的改进。

5 结论

(1)VRP问题中,在如何确定车辆数的问题上,摒弃传统算法,提出一种新的算法思路——动态自适应车辆数确定法,使本文的模型更符合实际情况;同时本文提出了一种新的编码思维方式,将车辆信息引入染色体中,进行分割染色体处理,同时应用与此编码结合度较好的择优交叉方式,对解决类似的组合优化问题具有一定的参考价值。

(2)本文在建立VRP问题的数学模型的基础上,构造了求解该问题的遗传算法与模拟退火结合的混合智能算法。实验计算结果表明,此混合智能算法是一种性能优良的启发式搜索方法,利用该方法可以方便有效地求得物流配送路径优化问题的最优解或满意解。

(3)文本的模型与算法能很好的应用于有多家代理店的同城速递业务和具有多家连锁店的大型企业的配送业务的货物配置与路径优化安排。

参考文献

[1]陈晓伟,张悟移,耿继武.节约法在配送路线选择中的应用[J].昆明理工大学学报(理工版),2003,(04):140-143

[2]陈国良,王煦法,庄镇泉,王东生.遗传算法及其应用[M].北京:人民邮电出版社,1996.

[3]王小明.遗传算法——理论、应用与软件实现[M]西安:西安交通大学出版社,2002:25-26.

[4]刘海,郝志峰,林智勇.改进遗传交叉算子求解TSP问题[J].华南理工大学学报(自然科学版),2002,(12):71-73.

混合蛙跳算法综述 篇7

最优化问题[1]存在于人类日常生活中的方方面面,人类从事任何活动的实质归结为认识世界和建设世界,认识世界就是为了更好地建设世界,然而建设世界的本质就是依靠优化决策。最优化问题是一个古老的课题,早在在古代战国时期,就有了孙膑为田忌赛马献策赢了齐威王这一经典事件[2];在第二次世界大战期间,英国成立了专门的作战研究小组,目的是为了最有效地利用有限的战备资源去赢取最大的胜利[1]等。随着科学技术日新月异的发展和应用领域的不断扩展,常规的优化方法[2,3,4](例如牛顿法,拉格朗日乘数法,共轭梯度法等)已经无法满足越来越复杂的优化问题的求解需要,因此寻找更为有效的优化方法显得越来越重要。

一些学者提出模拟自然界生态系统机制的新型智能优化算法,并用来解决复杂优化问题,取得了一定的效果。群体智能优化算法正是基于此基础上产生的。群体智能优化算法[5,6]自20世纪90年代提出以来受到广泛的关注,通过对自然界中社会性生物的群体行为进行模拟和建模,研究其内在的原理,并以此为基础解决许多工程应用,科学计算,社会经济等领域的实际问题。由于其求解能力强,计算结构简单,吸引了众多演化计算领域专家的注意,形成了许多新的研究热点并取得显著的成就。目前群体智能优化算法广泛应用于农业、通讯、交通、金融、材料、化工、能源及国防等领域中。

混合蛙跳算法[5,6,7](Shuffled frog leaping algorithm,SFLA)是近几年兴起的一种新型的后启发式群体智能优化算法,它继承其他优化算法的优点同时,还具有寻优能力更强,参数更少的优点,目前已广泛应用于模式识别[8],函数的优化[9,10,11,12],信号与信息处理[13,14]等领域中并取得了成功。由于混合蛙跳算法提出的时间不长,无论在理论研究还是实践应用方面都处于起步阶段。

1 混合蛙跳算法

1.1 SFLA算法的数学模型

混合蛙跳算法是2003年由Eusuff和Lansey提出的一种新的群体智能优化算法,它概念简单,参数少,计算速度快,全局寻优能力强。

在一个D维的目标搜索空间中,随机生成P只青蛙(解)组成初始群体,第i只青蛙表示问题的解为Xi=(xi1,xi2,…,xiD)。青蛙个体按适应度值从优到劣排列,将整个群体分为M个子群体。其中排名第1的青蛙分入第1子群体,排名第2的青蛙分入第2子群体,第M只青蛙分入第M子群体,第M+1只青蛙分入第1子群体,第M+2只青蛙分入第2子群体,依次类推,直到全部青蛙划分完毕。

每个子群体进行局部深度搜索,即在子群体的每次迭代中,首先确定当前迭代中子群体的最差个体Xw、最好个体Xb和全局最好个体Xg;只对该子群体中当前的最差个体Xw进行更新操作,更新策略如下。

蛙跳步长更新公式

青蛙个体的位置更新公式

其中,Ωi表示青蛙个体的更新步长,i=1,2,…,N;rand()为均匀分布在[0,1]之间的随机数;||Ωmax||表示所允许更新的最大蛙跳步长;||Ωmin||表示所允许更新的最小蛙跳步长。执行更新策略(1)(2)。如果newXw的适应度值优于原来Xw的适应度值,则用更新后的个体的位置(解)取代原来群体中的当前最差个体的位置(解)。如果没有改进,则更新策略变为如下过程。

蛙跳步长更新公式:

青蛙个体的位置更新公式:

执行更新策略(3)(4)。如果newXw的适应度值仍然没有改进,则随机产生一个新的Xw。

当所有子群体的局部深度搜索完成以后,将所有的青蛙个体重新混合排序并再次划分子群体,然后再进行局部深度搜索,如此反复直到满足混合迭代次数。

1.2 SFLA算法的实现流程

第1步:随机初始化青蛙种群,设置SFLA算法中的参数:种群中的青蛙个体总数N,青蛙个体(解)的维数d,每个子群体中的个体数m,子群体的个数n,子群体内的局部迭代次数cyc,全局混合迭代次数cyc,允许更新的最大蛙跳步长Ωmax和最小蛙跳步长Ωmin。

第2步:计算每只青蛙个体的适应度值。

第3步:将当前所有的N只青蛙个体按照适应度值从优到劣进行排序。

第4步:将每只青蛙个体依次划分到各个子群体中,共划分为n个子群体。

第5步:对每一个子群体,重复执行以下步骤cyc次:

(1)根据适应度值更新当前迭代中子群体的最好个体的位置Xb和全局最好个体的位置Xg,并确定当前迭代中子群体的最差个体的位置Xw;

(2)按照1.1节中所描述的更新策略对Xw进行更新。

第6步:当所有子群体都完成了局部深度搜索后,若满足全局混合迭代次数cyc,进化过程结束,输出全局最优值;否则,将全部的青蛙个体重新混合,转至第3步重新计算。

以上算法实现流程如图1所示。

2 混合蛙跳算法的研究现状

2003年,Eusuff和Lansey首次提出混合蛙跳算法,由于其结构简单、参数少、运行速度快、易于实现的优点,得到了国内外学者的广泛关注。然而混合蛙跳算法存在算法迭代后期容易陷入局部极值点,出现早熟收敛现象,同时收敛速度变慢,寻优时间变长,无法搜索到精度更高的最优点等缺陷。因此,目前对混合蛙跳算法的研究主要集中在算法改进和算法应用方面。

混合蛙跳算法由于提出的时间不长,无论在理论研究还是实践应用方面都处于起步阶段。群体智能优化算法不是一门理论严谨的学科,主要是以实验为主,因此关于算法的理论研究主要集中在算法收敛性证明上。骆剑平等人[15]通过求解差分方程分析了混合蛙跳算法的运动轨迹并证明了算法的全局收敛性;Elbeltagi等人[16]对比研究了遗传算法、粒子群优化算法、蚁群算法和混合蛙跳算法的数学模型和优化性能;

目前,针对混合蛙跳算法存在的缺陷,为了提高算法的优化性能,国内外学者从各个方面对算法提出了改进。罗雪晖等人[17]将调整序思想引入到混合蛙跳算法的局部搜索阶段,将变异操作引入到全局信息交换阶段,从而提出一种改进的混合蛙跳算法并将其应用于求解旅行商问题(Travelling salesman problem,TSP),实验结果表明该算法在求解旅行商问题上具有更好的搜索性能和顽健性;骆剑平等人[15]把具有极强局部搜索能力的幂律极值动力学优化融合在混合蛙跳算法中,从而拓展了算法的搜索精度和空间;郑仕链等人[18]提出新的蛙跳移动步长公式,每次蛙跳移动步长中引入上一次的移动距离,包含了对过去经验的记忆,因此具有更强的寻优能力;Alireza等人[7]提出一种混合多目标蛙跳算法,并将其应用于流水线平衡装配线排序问题中;Elbeltagi等人[19]提出一种新的参数用来加速算法的搜索范围,并分析了该参数对算法优化性能的影响,最后将所提算法用来求解离散和连续两类问题,结果表明改进算法十分有效并且可行;文献[9]通过适当地延长蛙跳步长并且加入惯性部分,提出一种改进的蛙跳步长更新公式,同时为了进一步改进混合蛙跳算法的局部深度搜索能力和加速收敛,将进化算法引入到混合蛙跳算法的局部深度搜索阶段,从而提出一种改进的混合蛙跳算法;文献[20]将模拟退火算法和混合蛙跳算法相结合,从而改进了算法迭代后期陷入局部极值的缺点,并将其应用于求解最优潮流问题(Optimal power flow,OPF);文献[21]提出一种求解多目标柔性作业车间调度问题的改进混合蛙跳算法,该算法通过几种策略来构成初始种群,并依据一种新的准则来划分子群体,同时在全局信息交换阶段引入两种变异因子,在局部深度搜索阶段嵌入一些不同的局部搜索方法,从而提高算法的求解性能。

与其他群体智能优化算法一样,混合蛙跳算法由于其独特的优势被广泛应用于实际优化问题中。例如,旅行商问题[22]、电力系统优化[23]、作业车间调度问题[24,25]、函数优化[10,11,12]、财务调度问题[26]、水资源分配[27]、图像处理[13]、背包问题[28]、聚类问题[29]等方面,文献[30]提出一种多目标优化的改进混合蛙跳算法,并用来求解配电馈线重组问题;文献[31]中将一种改进的混合蛙跳算法应用于工业CSTR反应器的醋酸乙烯聚合中;文献[32]中将混合蛙跳算法应用求解离散优化问题中。

3 结束语

混合蛙跳算法在提出的短短几年时间里得到了国内外学者的广泛关注,成为人工智能领域中的研究热点。虽然混合蛙跳算法被成功用于求解实际优化问题,但是由于其提出的时间不长,无论是在理论研究还是实际应用都处于起步阶段。目前关于混合蛙跳算法并没有一套完整的理论体系,未来的工作应当注重算法收敛速度证明并总结出一套完整的理论模型;由于现实生活中需要解决的优化问题各式各样,如何突破原有混合蛙跳算法模型的束缚,设计出更为有效的群体智能优化算法将在未来工作中继续研究。

混合智能算法 篇8

无线传感器网络WSN由一组传感器节点以自组织方式构成。每个节点兼备路由器和主机两种功能,不仅要执行感知、传输数据等应用任务,还要参与路由发现、维护以及网络构建等任务。WSN中节点一般采用电池供电,节点大部分情况下被布置在无人看守的环境中,电池不能补充和更换,节点能量受限。在这种情况下要延长网络生存时间就必须降低节点工作时能量消耗,试验表明节点能量主要消耗在通信模块上。无线通信中的传输数据的能量消耗与有效半径的2-4次方相关,减小节点的有效传输半径可以降低节点能量消耗。

另外WSN还有着不同于传统无线网络的其他特征:首先WSN中节点数量庞大,传统的以IP地址为基础的路由协议不适合WSN;其次WSN的应用背景主要是多个源节点感知数据,然后将感知数据传给目的节点Sink,不要求建立网络中任意两点之间的路由路径,这给设计高效的路由协议带来了可能性。因此采用合适的、高效的路由协议是降低无线传感器网络整体能耗的关键。这就需要我们设计一个满足需要的高效的路由协议。

1 相关工作

研究工作者们提出了许多的路由算法,比如SPIN[1](基于协商的路由算法)、DD[2](定向扩散协议)、LEACH[3]、TTDD[4](基于虚拟网格的路由协议)、LAR[5](位置辅助路由协议)等路由协议。他们都很好地解决了无线传感器网络的某方面的问题,但也都存在各自的问题。比如SPIN协议中出现了多个节点向同一个节点同时发送REQ的情况,有关的退避机制需要考虑。DD算法不能用于大规模的网络,主要用于具有大量查询而只有少量事件的应用场景,如果网络拓扑结构频繁变动,它的性能将大幅下降。

在WSN中,从源节点到基站或是到基站的某条传输路径一旦确定,就不会频繁改动,这样就会出现由于路径上的传输节点的失效或暂时不可用导致数据包传输失败,为此需要重新更新路由,增大了能耗和传输延迟。为了解决这个问题,研究工作者们提出了多路径路由[6,7]的概念。多路径路由协议通过将数据流分散到多个不同的路径上传送以实现负载的均衡性,在WSN中体现为能量的均衡性,并且可以通过增加冗余路径来提高网络的可靠性。优化增加了网络的可靠性,但同时也增加了网络能耗。

混合蛙跳算法[8]可以实现路由优化的目的,但是传统的混合蛙跳算法不能将可行解中的优良性能很好地保留在青蛙群体中,它的收敛速度也比较慢,这就表明了传统的混合蛙跳算法不适用于能量有限的无线传感器网络中。

针对以上问题,我们提出了一种改进的混合蛙跳算法来全局优化多路径路由。考虑到混合蛙跳算法的计算量大,所需要的资源信息较多,我们将混合蛙跳算法的执行在基站完成。这样就解决了由于建立多路径导致的网络能量浪费,又实现了多路径路由的优点,实现了WSN多路径路由的全局优化。

2 WSN路由优化算法

混合蛙跳算法是一种基于群体智能的生物进化算法。在WSN中,青蛙群体由一群具有相同结构的青蛙组成。整个群体被分为多个族群,每个族群有自己的思想,执行局部优化策略。在局部优化迭代结束后,各个族群之间进行思想交流,实现族群间的混合运算。达到了路由优化的目的。

2.1 网络模型

WSN网络模型假设如下:

1) 所有节点随机均匀地分布在一矩形区域内。且位置已知。

2) 所有节点与基站均保持静止,节点初始能量相同,并无法补充能量。基站的能量无限大。

3) 所有节点均同构,且唯一ID,并具有数据融合功能。

4) 每个节点的传输功率相同,有效通信距离均一样。

将无线传感器网络模型表示为一个有向图G=(V,E),其中V表示所有节点的集合,E表示所有边的集合。令r为节点vV的发射范围,L表示相邻节点间的距离。随机生成F只青蛙组成初始群体,每个青蛙个体表示一条源节点到基点的可行路径为U = (U1,U2 ,…,Ud),其中d表示解空间的维数。例如5个传感器节点组成的网络链路如图1所示。

随机生成的初始群体:

U1={S,1,2,BS} U2={S,1,3,2,BS}

U3={S,1,2,4,BS} U4={S,3,2,BS}

U5={S,1,2,3,4,BS} U6={S,4,BS}

U7={S,3,2,4,BS} U8={S,3,1,2,BS}

U9={S,3,4,BS} U10={S,4,3,2,BS}

2.2 算法描述

路由协议的好坏极大地影响整个网络的性能。好的路由协议不仅能够降低整个网络的能量消耗,延长网络生存周期,还能提高网络的稳定性。基于混合蛙跳算法的多路径路由的优化主要考虑了传输数据的能耗和可靠性两方面来全局优化多路径路由。以下为优化算法的具体步骤:

1) 初始化参数

在无线传感器网络中,按一定规则随机生成F只青蛙组成初始群体,计算青蛙个体的适应度f(i)。青蛙个体的适应度函数定义为:

F(u)=1xv(D(u,x)×g(u))+xv(R(u,x)×t(u))+W(u)×t(u)

其中D(u,x)表示源节点u在链路(u,x)上分配的数据流量,g(x,u)表示节点u在链路(x,u)上接收单位数据所消耗的能量,R(x,u)表示节点u在链路(x,u)上接收到的数据流量,t(u,x)表示节点u在链路(u,x)上发送单位数据所消耗的能量,W(u)表示感知的数据量。

2) 构造子族群

将生成的青蛙按适应度降序排列划分成m个族群,构造子族群。在随机生成初始群体之后,将青蛙个体按适应度f(i)降序排列存储于X={Ui},i=1,2,…,F,然后按照以下划分原则将整个青蛙群体分成m个族群Y1,Y2,…,Ym,每个族群中包含n只青蛙,满足下列关系:

Yij=X[j+(i-1)×n] i=1,2,…,m j=1,2,…,n

假设m=3,F只青蛙按适应度由高到低排列,位置位于第1 的青蛙分入第1 族群,第2 的青蛙分入第2 族群,第3 的青蛙分入第3 族群,第4的青蛙分入第1 族群,依次类推,将所有青蛙个体划分到3 个族群中。

3) 局部优化

将青蛙种群划分的多个族群进行局部优化。在每一个子族群中,具有最好适应度的可行路径表示为Ub,最差适应度的可行路径表示为Uw 。对每个子族群的局部优化,主要是对UbUw进行交叉替换操作。具体的操作可如下进行:

(1) 在UbUw中查找它们的公共基因,即查看两条路径是否同时经过某个节点,如果存在公共基因表明可以进行交叉。如果没有,则表明这两个个体不能交叉。

(2) 从选中的这个公共基因开始,直到下一个公共基因 (如果两条路径仅有一个相同节点,则取目的节点为下一个公共节点) ,对Uw进行链路交换。

例如: Ub={S,1,3,4, BS}

Uw={S,1,2,4,BS}

节点1、节点4为公共节点,经过交叉后,Ub不变。Uw变为:

Uw={S,1,3,4,BS}

计算交叉后的最差青蛙的适应度f′(w),如果f′(w)大于交叉前最差青蛙的适应度f(w),则交叉成功,否则交叉失败。如果交叉失败,再选用全局最优青蛙与最差青蛙进行交叉替换。交叉后判断交叉前后的最差青蛙的适应度,如果f′(w)大于f(w),则交叉完成,否则随机产生一个新的青蛙代替原来的最差的青蛙,交叉结束。

(3) 交叉后再对子族群中的所有的青蛙进行变异。每一个青蛙都以固定的概率p进行变异,大量实验表明p的值取0.02比较理想。子族群中的最优青蛙Ub也可能变异,为了防止变异后的Ub变得比原来的适应度差,如果变异后的Ub的适应度f′(b)大于变异前的适应度f(b),则发生变异,否则不进行变异。

4) 全局优化

所有子族群经过一定次数的局部优化后,将所有族群的青蛙混合在一起,重新计算适应度f(i),按适应度f(i)降序排列,重新划分族群,再进行局部优化,如此循环直到满足收敛条件为止。

2.3 算法分析

随机生成青蛙种群的时候,在可行路径中的节点的选择时,加入了节点的剩余能量的考虑。剩余能量越大的节点被选中的概率越大。概率q=E1/E2,E1表示节点的剩余能量,E2表示节点的初始能量。剩余能量的考虑缓解了部分节点因大量使用而死亡的问题。

改进的混合蛙跳算法改进了子族群青蛙局部优化方法,主要是对子族群中青蛙进行交叉变异操作,对子族群中最优青蛙和最差青蛙的交叉操作,考虑了多种情况,避免了局部早熟。随后进行概率变异操作,变异中如果最优的青蛙如果发生变异,要进行比对。这样不仅保证了青蛙个体的多样性,而且保留了青蛙的优良性,缩短了找到全局最优解的时间。

在每次的优化后保存最优的青蛙和次优的青蛙。采用这样的多路径路由可获得比单路路由更好的网络吞吐率和可伸缩性。如果最优路径中的某一个或几个节点的剩余能量很低,并且下一轮的路由更新还没开始,最优路径就不能传输数据。多路径路由就可以只使用次优的路径进行传输,保证了网络的流通,增加了网络的可靠性。

3 算法实现和实验仿真

3.1 算法流程

1) 基站收集网络初始信息。得到网络各个节点的邻居矩阵N和感知数据集合{W(u)|uV}。

2) 对网络节点ID编码并初始化青蛙群体。

3) 依据青蛙适应度划分生成青蛙种群。

4) 针对子族群中最优青蛙和最差青蛙进行选择替换操作,然后子群青蛙按概率0.02进行变异。

5) 混合子族群,再重复3)、4)操作;直到满足收敛条件为止。

6) 输出青蛙种群中适应度最优和次优的青蛙作为问题的满意解。

3.2 实验仿真

在下面的实验中,通过仿真网络中节点的通信和节点的能量消耗,主要从网络能量消耗方面进行了实验分析。

基本参数设定

网络的负荷根据控制系统的一般要求设置为:周期性发送和感知数据,各节点的发送数据周期为0.01 s~0.10 s,感知数据周期为0.1 s~0.5 s。青蛙更新迭代次数IT=10。定义网络生存周期为网络从运行开始到网络中死亡节点的百分数低于原来总节点数的50%时所持续的时间。

选择经典的传感网络路由算法定向扩散(DD) 算法作为比较对象。在同一环境下分别对混合蛙跳算法和DD算法的网络生存周期进行仿真测试。仿真结果如图2所示。

从图2中可以看出,采用改进的混合蛙跳算法的WSN路由优化算法具有更长的网络生存周期,并且随着感知数据量的增大,网络生存周期延长的效果越明显。说明混合蛙跳算法对于大数据量的全局优化更加突出。

4 结 语

本文在分析了现有的混合蛙跳算法的基础上,结合无线传感器网络的特点,提出了一种适合于无线传感器网络的路由优化算法。改进的混合蛙跳路由优化算法考虑到了节点的剩余能量,并且复杂的优化计算问题由能源充足、计算和存储能力强大的基站解决,平衡了节点能量负载,节省了能量消耗。仿真实验表明,相比DD算法,新算法均衡了网络能量消耗,有效地提高了网络生存周期,改善了网络性能。

参考文献

[1]WHeinzelman,J Kulik,HBalakrishnan.Adaptive Protocols for Infor-mation Dissemination in Wireless Sensor Networks[C]//Proc.5thACM/IEEE Mobicom,Seattle,WA,Aug 1999:174-85.

[2]C Intanagonwiwat,R Govindan,D Estrin.Directed Diffusion:a Scala-ble and Robust Communication Paradigm for Sensor Networks[C]//Proc.ACMMobi-Com2000,Boston,MA,2000:56-57.

[3]Heinzelman W,Chandrakasan A,Balakrishman H.Energy efficientcommunication protocol for wireless microsensor networks[C]//Proc ofthe 33rd Hawaii International Conference on Systern Sciences.Maui:IEEE Computer.

[4]HLuo,Fan YE,J Cheng,et al.TTDD:A Two-tier Data DisseminationModel for Largescale Wireless Sensor Networks[J].Wireless Net-works,2005,11(2):161-175.

[5]Young-Bae Ko,Nitin H Vaidya.Location-Aided Routing(LAR)inmobile ad hoc networks[J].ACM/Baltzer Wireless Networks(WI-NET)Journal,2000,6(4):307-321.

[6]Lees J,Gerlam.Sp litmultipath routing with maximally disjoint paths inAd Hoc networks[EB/OL].[2008-06-18].http://www.hp l.hp.com/personal/Sung-Ju_Lee/abstracts/papers/icc2001b.pdf.

[7]周集良,李彩霞,曹奇英.基于遗传算法的WSNs多路径路由优化[J].计算机应用,2009(2):521-524.

上一篇:土地权属下一篇:基因型分布