15.2比较PSO与RGA◆我们应用GSA到这些最小化函数,并且比较RGA与PSO所得出的结果,在这些情况,群体大小设置为。维数,表1,2的函数最大迭代次数为1000,表3为500,在PSO中,惯性因素从0.9到0.2线性下降,在RGA应用算法交叉算子,高斯交换以及轮盘算法,交叉和变异的概率分别为0.3和0.1.在GSA,G用(21)式表示,为100,。是所有迭代次数(21)50N30n221cc0G20TTteGtG0)(引力搜索算法GSA:AGravitationalSearchAlgorithm3近几年,多种启发式优化方法得到发展,这些方法中很多是根据自然中群体行为得到启示。本节课介绍一种基于万有引力定律和质量相互作用的新的优化算法—引力搜索算法。引力搜索算法在2009年被首次提出,是一种基于万有引力定律和牛顿第二定律的种群优化算法。该算法通过种群的粒子位置移动来寻找最优解,即随着算法的循环,粒子靠它们之间的万有引力在搜索空间内不断运动,当粒子移动到最优位置时,最优解便找到了。4Ⅰ.启发式算法回顾Ⅱ.万有引力定律Ⅲ.引力搜索算法(GSA)Ⅳ.比较研究Ⅴ.实验结果Ⅵ.引力搜索算法的研究展望5Heuristic是希腊语,意为“启发式”。启发式是寻找好的(近似最佳)解的技术。对于那些受大自然的运行规律或者面向具体问题的经验、规则启发出来的方法,人们常常称为启发式算法。启发式算法是相对于最优化算法提出的。很多实际的最优化问题的计算是复杂的。因此,解决这样问题的实际方法是运用启发式算法,这样可以在合理的计算时间内找到一个近似最优解。启发式算法可以这样定义:一个基于直观或经验构造的算法,在可接受的花费(计算时间和空间)下给出解决组合优化问题每一个实例的一个可行解该可行解与最优解的偏离程度一般不能被预计。(Heuristicalgorithms)Ⅰ.启发式算法6启发式算法模拟物理或生物过程,例如一些著名的算法,遗传算法(GA)、模拟退火算法(SA)、蚁群算法(ACO)粒子群优化算法(PSO)和细菌觅食算法(BFA)。GA灵感来自于达尔文进化论;SA利用热力作用设计;ACO模拟蚂蚁觅食行为;BFA来自于搜索和最佳觅食细菌;PSO模拟鸟群的行为。上述提到的启发式算法都是随机行为。然而,Formato提出了基于引力运动的确定性的启发式搜索算法,中心引力优化(CFO)。中心引力优化算法是根据物理运动学的模型建立的一个新型的优化算法,通过初始化若干随机质点,进行迭代,直至找到最优解。7在一些随机算法中,像模拟退火算法(SA)搜索开始于一个单一的初始点,并且以一个连续的方式继续。然而,大多数启发式搜索算法用多个初始点以并行方式搜索。例如,群为基础的算法使用类似于自然的鸟群或者鱼群的一系列代理。在一个以群为基础的算法,每一个体施行一系列的特殊运算,并且分享这些信息给其他个体。这些操作大部分很简单,然而它们的集体效应,称为群体智能,会产生令人惊讶的结果。代理之间的局部相互作用提供了一个全局结果,它允许系统解决问题不需要应用任何的中央控制器。这种情况下,个体操作包括随机搜索、正反馈、负反馈和多元相互作用,进行自组织。群体智能指许多简单个体通过相互合作产生复杂智能行为的特性。8我们可以在人群为基础的启发式算法识别两个常见问题:勘探和开采。勘探有扩大搜索空间的能力,开采有寻找最佳解决方案能力。在第一次迭代中,启发式搜索算法勘探搜索空间寻找新的解。为了避免陷入局部最优的陷阱,该算法必须在前几次迭代中使用勘探。因此,在以人群为基础的启发式算法,勘探是一个重要的问题。通过勘探和开采,算法调整自己的半最优点。要有高性能的搜索,关键点是一个合适的勘探和开采之间的权衡。然而,所有的以人群为基础的启发式搜索算法采用的勘探和开采方面,他们使用不同的方法和操作。换句话说,所有的搜索算法有一个共同的框架。9从不同的角度来看,一个以群为基础的搜索算法的个体在每次迭代中通过三个步骤来实现勘探和开采概念:自适应,合作和竞争。在自我调整的步骤,每个个体(代理)提高其性能。在合作中,个体彼此合作形成的信息传递。最后,在竞争的一步,个体竞争生存。这些步骤通常随机形成,可以用不同的方式来实现。这些步骤从自然的启发,是以人群为基础的启发式算法的思想。这些概念,引导算法寻找全局最优。然而,一个算法在解决一些问题是好的,在解决另外一些问题则不行。因此,提出高性能的新启发式算法是非常受欢迎的。我们的目标是建立一个新的考虑到所提到的方面和基于引力规则的以群为基础的搜索算法。10Ⅱ.万有引力定律万有引力定律是Newton于1687年在《自然哲学的数学原理》上提出的,万有引力定律解释物体之间相互作用关系的定律,是物体间由于它们的引力质量而引起的相互吸引力所遵循的规律。自然界中任何两个物体都是相互吸引的,万有引力普遍存在于任意两个有质量的物体之间。万有引力定律表示如下:自然界中任何两个物体都是相互吸引的,引力的大小和这两个物体的质量的乘积成正比,和它们之间距离平方成反比。数学表达式为:221RMMGF(1)其中,F表示两个物体间的引力大小,G表示万有引力常数,M1,M2分别表示两个物体的质量,R表示两个物体之间的距离。11牛顿第二定律:当一个力F作用在一个质子上,它的加速度a依赖于力和它的质量M:MFa(2)根据(1)和(2),增加两个质子之间的距离意味着减少他们之间的万有引力。此外,由于引力减少的影响,引力常数的实际值依赖于宇宙的实际时间,方程(3)给出了降低引力常数与时间关系:1,00tttGtG(3)其中G(t)是在时间t引力常数的值,G(t0)是在t0时万有引力常数。12理论物理学中定义三种质量:主动引力质量,aMpMiM是对物体重力场的强度的测量,小的主动物体的重力场比大的主动引力质量的重力场弱。小的被动被动引力质量的物体比大的被动引力质量的物体改变快。引力质量的被动引力质量,是对物体重力场中物体相互作用的强度的测量,受到的力小。惯性质量是当有一个力作用在物体,改变她位置的移动的力的测量,大的惯性质量的物体改变它移动的更慢,小的惯性13考虑到以上提到的三种质量定义,我们重新定义牛顿定律。万有引力Fij通过物体j作用在物体i,与j的主动引力质量和i被动引力质量乘积成正比,与它们之间距离成反比。ia与Fij成正比,与i惯性质量成反比,则(1)(2)式重新定义如下:2RMMGFpiajijiiijiMFa(4)(5)ajM和piM分别代表质子i的主动引力质量,质子j的被动引力质量,iiM代表质子i的惯性质量。虽然,惯性质量,主动引力质量,被动引力质量有概念上的区别,但是没有实验可以清楚的证明它们之间的不同。追溯到广义相对论上,假设惯性质量和被动引力质量是等价的,这就是所知道的弱等价原理。斯坦-达尔德广义相对论也假定惯性质量和主动引力质量是等价的,这个等价有时称为强等价原理。14在图1中,F1j是作用在M1到Mj的力,F1是作用在M1和产生加速度的所有力。1a图115虽然,惯性质量,主动引力质量,被动引力质量有概念上的区别,但是没有实验可以清楚的证明它们之间的不同。追溯到广义相对论上,假设惯性质量和被动引力质量是等价的,这就是所知道的弱等价原理。斯坦-达尔德广义相对论也假定惯性质量和主动引力质量是等价的,这个等价有时称为强等价原理。16Ⅲ.引力搜索算法(GSA)受万有引力定律启发,提出了一种新型群体智能优化算法—引力搜索算法。引力搜索算法在求解优化问题时,搜索个体的位置和问题的解相对应,并且还要考虑个体质量。个体质量用于评价个体的优劣,位置越好,质量越大。由于引力的作用,个体之间相互吸引并且朝着质量较大的个体方向移动,个体运动遵循牛顿第二定律。随着运动的不断进行,最终整个群体都会聚集在质量最大个体的周围,从而找到质量最大的个体,而质量最大个体占据最优位置。因此,算法可以获得问题的最优解。在GSA,每个代理有4个规格:位置,惯性质量,主动引力质量和被动引力质量。每个个体的位置对应一个问题的解决方法,它们的引力和惯性质量确定应用的适应度函数。换句话说,每个个体呈现一个解决方法,并且算法通过适当的调节引力和惯性质量。17引力搜索算法属于群体智能优化算法,而群体智能优化算法最显著的特点是强调个体之间的相互作用。这里,相互作用可以是个体间直接或间接的通信。在引力搜索算法中,万有引力相当于是一种信息传递的工具,实现个体间的优化信息共享,整个群体在引力的作用下进行优化搜索。信息的交互过程不仅在群体内部传播了信息,而且群体内所有个体都能处理信息,并根据其所得到的信息改变自身的搜索行为,这样就能使得整个群体涌现出一些单个个体所不具备的能力和特性,也就是说,在群体中,个体行为虽然简单,但是个体通过得到的信息相互作用以解决全局目标,信息在整个群体的传播使得问题能够比由单个个体求解更加有效的获得解决。183.1算法的模型引力搜索算法首先在解空间和速度空间分别对位置和速度进行初始化,其中位置表示问题的解。例如,d维空间中的第i个搜索个体的位置和速度分别表示为),,,(1nidiiixxxX),,,(1nidiiivvvV,dixdiv分别表示个体i在第d维的位置分量和速度其中,和分量。通过评价各个个体的目标函数值,确定每个个体的质量和受到的引力,计算加速度,并更新速度和位置。19(1)计算质量个体i的质量定义如下:)()()()()(tworsttbesttworsttfittmii(6)NijiitmtmtM1)()()((7)其中,)(tfiti和)(tMi分别表示在第t次迭代时第i个个体的best(t)和worst(t)表示在第t次迭代时所有个体中最优适应度函数值和最差适应度函数值,对最小化问题,其定义如下:)(min)(,,2,1tfittbestjNj(8))(max)(,,2,1tfittworstjNj(9)适应度函数值和质量。20(2)计算引力算法源于对万有引力定律的模拟,但不拘泥于物理学中的万有引力公式的精确表达式。在第d维上,个体j对个体i的引力定义如下:))()(()()()()()(txtxtRtMtMtGtFdidjijajpidij(10)其中,G(t)表示在t次迭代时万有引力常数的取值,G(t)=G(G0,t),Rij(t)表示个体i和j之间的欧氏距离,2)(),()(tXtXtRjiijε是一常数,防止分母为零。21在第d维上,个体i所受的合力为:NijkbestjdijjditFrandtF,)()((11)其中,randj表示在[0,1]之间服从均匀分布的一个随机变量kbest表示个体质量按降序排在前k个的个体,并且k的取值随迭代次数线性减小,初值为N,终值为1。22(3)计算加速度根据牛顿第二定律,个体i在第d维的加速度方程为:)()()(tMtFtaiididi(12)(4)更新速度和位置)()()1(tatvrandtvdidiidi(13))1()()1(tvtxtxdididi(14)其中,r表示在[0,1]之间服从均匀分布的一个随机变量。23引力搜索算法的目的并不是为了模拟万有引力定律,而是利用万有引力定律的特点去解决优化问题。算法受万有引力定律的启发,但是不拘泥于万有引力公式的原始表达式。在算法中引力与两个个体质量的乘积成正比和它们的距离成反比的优化效果更好。此外,万有引力常数不在固定不变,而是随着迭代次数单调递减,算法的优化效果更好。在计算个体受到的万有引力合力时,算法只考虑质量较大的个体产生的引力。因为在引力搜索算法中,当引力较大时,或者有质量较大的个体,或者两个个体间的距离较小。质量大的个体占据较优的位置,并且代表较好的解。算法仅考虑来自质量较大的个体的引力,可以消除因距离较小而引力较大的影响,引导其他个体向质量较大的个体方向移动。在引力的不断作用下,整个群体逐渐向质量较大的个体方向逼近,最终搜索到问题的最优解。24