智能优化搜索算法_第1页
智能优化搜索算法_第2页
智能优化搜索算法_第3页
智能优化搜索算法_第4页
智能优化搜索算法_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、模拟退火算法模拟退火(Simulated Annealing,简称SA)是一种通用概率算法,用来在一个大的搜寻空间内找寻命题的最优解。1、固体退火原理:将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。根据Metropolis准则,粒子在温度T时趋于平衡的概率为e-E/(kT),其中E为温度T时的内能,E为其改变量,k为Boltzmann常数。2、用固体退火模拟组合优化问题:将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到解组合优化问题的模拟退火算法由初始解i和控制

2、参数初值t开始,对当前解重复“产生新解计算目标函数差接受或舍弃”的迭代,并逐步衰减t值,算法终止时的当前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。3、退火过程:冷却进度表(Cooling Schedule)控制,包括控制参数的初值t及其衰减因子t、每个t值时的迭代次数L和停止条件S。4、模拟退火算法的模型 模拟退火算法可以分解为解空间、目标函数和初始解三部分。(1) 初始化:初始温度T(充分大),初始解状态S(是算法迭代的起点), 每个T值的迭代次数L(2) 对k=1,L做第(3)至第6步:(3) 产生新解S(4) 计算增量t=C(S)-C(S),其中C(S)为

3、评价函数(5) 若t0,然后转第2步。(降温)5、模拟退火算法新解的产生和接受:(1)由一个产生函数从当前解产生一个位于解空间的新解:为便于后续的计算和接受,减少算法耗时,通常选择由当前新解经过简单地变换即可产生新解的方法,如对构成新解的全部或部分元素进行置换、互换等,注意到产生新解的变换方法决定了当前新解的邻域结构,因而对冷却进度表的选取有一定的影响。(2)计算与新解所对应的目标函数差:因为目标函数差仅由变换部分产生,所以目标函数差的计算最好按增量计算。(3)判断新解是否被接受:判断的依据是一个接受准则,最常用的接受准则是Metropo1is准则: 若tm,则将(w1, w2 ,,wk ,

4、wk+1 ,,wm ,,wn)变为:(wm, wm-1 ,,w1 , wm+1 ,,wk-1 ,wn , wn-1 ,,wk).上述变换方法可简单说成是“逆转中间或者逆转两端”。也可以采用其他的变换方法,有些变换有独特的优越性,有时也将它们交替使用,得到一种更好方法。代价函数差 设将(w1, w2 ,,wn)变换为(u1, u2 ,,un), 则代价函数差为:根据上述分析,可写出用模拟退火算法求解TSP问题的伪程序:Procedure TSPSA:begininit-of-T; T为初始温度S=1,n; S为初始值termination=false;while termination=fals

5、ebeginfor i=1 to L dobegingenerate(Sform S); 从当前回路S产生新回路St:=f(S)-f(S);f(S)为路径总长IF(tRandom-of-0,1)S=S;IF the-halt-condition-is-TRUE THENtermination=true;End;T_lower;End;End模拟退火算法的应用很广泛,可以较高的效率求解最大截问题(Max Cut Problem)、0-1背包问题(Zero One Knapsack Problem)、图着色问题(Graph Colouring Problem)、调度问题(Scheduling Pr

6、oblem)等等。8、参数控制问题模拟退火算法的应用很广泛,可以求解NP完全问题,但其参数难以控制,其主要问题有以下三点:(1) 温度T的初始值设置问题。温度T的初始值设置是影响模拟退火算法全局搜索性能的重要因素之一、初始温度高,则搜索到全局最优解的可能性大,但因此要花费大量的计算时间;反之,则可节约计算时间,但全局搜索性能可能受到影响。实际应用过程中,初始温度一般需要依据实验结果进行若干次调整。(2) 退火速度问题。模拟退火算法的全局搜索性能也与退火速度密切相关。一般来说,同一温度下的“充分”搜索(退火)是相当必要的,但这需要计算时间。实际应用中,要针对具体问题的性质和特征设置合理的退火平衡

7、条件。(3) 温度管理问题。温度管理问题也是模拟退火算法难以处理的问题之一。实际应用中,由于必须考虑计算复杂度的切实可行性等问题,常采用如下所示的降温方式:T(t+1)kT(t)式中k为正的略小于1.00的常数,t为降温的次数。禁忌算法禁忌搜索算法(Tabu Search或Taboo Search,简称TS算法)是一种全局性邻域搜索算法,模拟人类具有记忆功能的寻优特征。TS算法通过引入一个灵活的存储结构和相应的禁忌准则来避免迂回搜索,并通过藐视准则来赦免一些被禁忌的优良状态,进而保证多样化的有效探索以最终实现全局优化。1、基本思想 考虑最优化问题,对于X中每一个解x,定义一个邻域N(x),禁忌

8、搜索算法首先确定一个初始可行解x,初始可行解x可以从一个启发式算法获得或者在可行解集合X中任意选择,确定完初始可行解后,定义可行解x的邻域移动集s(x),然后从邻域移动中挑选一个能改进当前解x的移动,s(x),再从新解x开始,重复搜索。2、算法流程 给定一个当前解(初始解)和一种邻域,然后在当前解的邻域中确定若干候选解;若最佳候选解对应的目标值优于“best so far”状态,则忽视其禁忌特性,用其替代当前解和“best so far”状态,并将相应的对象加入禁忌表,同时修改禁忌表中各对象的任期;若不存在上述候选解,则选择在候选解中选择非禁忌的最佳状态为新的当前解,而无视它与当前解的优劣,同

9、时将相应的对象加入禁忌表,并修改禁忌表中各对象的任期;如此重复上述迭代搜索过程,直至满足停止准则。(1)给定算法参数,随机产生初始解x,置禁忌表为空。 (2)判断算法终止条件是否满足?若是,则结束算法并输出优化结果;否则,继续以下步骤。 (3)利用当前解中的邻域函数产生其所有(或若干)邻域解,并从中确定若干候选解。 (4)对候选解判断藐视准则是否满足?若成立,则用满足藐视准则的最佳状态y替代x成为新的当前解,即x=y,并用与y对应的禁忌对象替换最早进入禁忌表的禁忌对象,同时用y替换“best so far”状态,然后转步骤6;否则,继续以下步骤。 (5)判断候选解对应的各对象的禁忌属性,选择候

10、选解集中非禁忌对象对应的最佳状态为新的当前解,同时用与之对应的禁忌对象替换最早进入禁忌表的禁忌对象元素。 (6)转步骤(2)。3、算法特点 新解不是在当前解的邻域中随机产生,而或是优于“best so far”的解,或是非禁忌的最佳解,因此选取优良解的概率远远大于其他解。由于TS算法具有灵活的记忆功能和藐视准则,并且在搜索过程中可以接受劣解,所以具有较强的“爬山”能力,搜索时能够跳出局部最优解,转向解空间的其他区域,从而增强获得更好的全局最优解的概率,所以TS算法是一种局部搜索能力很强的全局迭代寻优算法。 4、组合策略(1)邻域移动:是从一个解产生另一个解的途径。它是保证产生好的解和算法搜索速

11、度的最重要因素之一。通过移动,目标函数值将产生变化,移动前后的目标函数值之差,称之为移动值。如果移动值是非负的,则称此移动为改进移动;否则称作非改进移动。最好的移动不一定是改进移动,也可能是非改进移动,这一点就保证搜索陷入局部最优时,禁忌搜索算法能自动把它跳出局部最优。 (2)禁忌表:不允许恢复即被禁止的性质称作Tabu。禁忌表的主要目的是阻止搜索过程中出现循环和避免陷入局部最优,它通常记录前若干次的移动,禁止这些移动在近期内返回。在迭代固定次数后,禁忌表释放这些移动,重新参加运算,因此它是一个循环表,每迭代一次,将最近的一次移动放在禁忌表的末端,而它的最早的一个移动就从禁忌表中释放出来。禁忌

12、表记载移动的方式主要有三种:*记录目标值;*移动前的状态;*移禁忌搜索算法.(3)选择策略:即择优规则,是对当前的邻域移动选择一个移动而采用的准则。当前采用最广泛的两类策略是最好解优先策略(Bestlmprovedstrategy)和第一个改进解优先策略(FirstImProvedstrategy)。最好改进解优先策略就是对当前邻域中选择移动值最好的移动产生的解,作为下一次迭代的开始。而第一个改进解优先策略是搜索邻域移动时选择第一改进当前解的邻域移动产生的解作为下一次迭代的开始。(4)破禁策略:常指渴望水平(Aspiration)函数选择,当一个禁忌移动在随后T次的迭代内再度出现时,如果它能把

13、搜索带到一个从未搜索过的区域,则应该接受该移动即破禁,不受禁忌表的限制。(5)停止规则:一种是把最大迭代数作为停止算法的标准,而不以局优为停止规则;另一种是在给定数目的迭代内所发现的最好解无法改进或无法离开它时,算法停止。 (6)长期表:短期记忆用来避免最近所作的一些移动被重复,但是在很多的情况下短期记忆并不足以把算法搜索带到能够改进解的区域。因此在实际应用中常常短期记忆与长期记忆相结合使用,以保持局部的强化和全局多样化之间的平衡,即在加强与好解有关性质的同时还能把搜索带到未搜索过的区域。 一种通过惩罚的形式,即用一些评价函数来惩罚在过去的搜索中用得最多或最少的那些选择,并用一些启发方法来产生

14、新的初始点。另一种形式采用频率矩阵,使用两种长期记忆,一种是基于最小频率的长期记忆,另一种是基于最大频率的长期记忆。 遗传算法遗传算法(Genetic Algorithm,简称GA)是建立在自然选择和群体遗传学基础上,通过自然选择、杂交和变异实现随机化搜索的方法。1、基本思想 从任意初始种群出发,通过随机选择(使种群中的优秀个体有更多的机会传给下一代)、杂交(体现自然界中种群内个体之间的信息交换)和变异(在种群中引入新的变种确保种群中信息的多样性)等遗传操作,使种群一代一代地进化到搜索空间中越来越好的区域,直至达到最优解。具体的算法流程如下:a)初始化:设置进化代数计数器t=0,设置最大进化代

15、数T,随机生成M个个体作为初始群体P(0)。b)种群P(t)经过选择、交叉、变异运算后得到下一代种群P(t+1) 个体评价:计算群体P(t)中各个个体的适应度。 选择运算:将选择算子作用于群体。 交叉运算;将交叉算子作用于群体,在遗传算法中起核心作用。 变异运算:将变异算子作用于群体。c)终止条件判断 若t=T,则t=t+1,转至b);d):以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。2、GA算法中的关键问题1)编码方式:把问题空间中的参数转换成一串空间的由基因按一定结构组成的染色体或个体的操作,也成为问题的表示。目前的几种常用的编码技术有二进制编码简单异性、符合最小字符集

16、编码规则、易于试用漠视定力进行分析,浮点数编码,字符编码,变成编码等。 评估编码策略常采用以下3个规范: a)完备性(completeness):问题空间中的所有点(候选解)都能作为GA空间中的点(染色体)表现。b)健全性(soundness): GA空间中的染色体能对应所有问题空间中的候选解。c)非冗余性(nonredundancy):染色体和候选解一一对应。2)初始种群的产生随机方法,使初始种群的均匀分布于整个解空间,使GA从全局范围内搜索最优解。 初始种群设定可采用以下两个策略: a)根据问题固有知识,设法把握最优解所占空间在整个问题空间中的分布范围,然后,在此分布范围内设定初始群体。

17、b)先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体中。这种过程不断迭代,直到初始群体中个体数达到了预先确定的规模。3)适应度函数的选取 遗传算法的适应度函数也叫评价函数,是用来判断群体中的个体的优劣程度的指标,它是根据所求问题的目标函数来进行评估的。适应度函数的设计主要满足以下条件:单值、连续、非负、最大化;合理、一致性;计算量小;通用性强。4)GA算子选择算子、交叉算子和变异算子 在遗传算法中,通过编码组成初始群体后,遗传操作的任务就是对群体的个体按照它们对环境适应度(适应度评估)施加一定的操作,从而实现优胜劣汰的进化过程。个体遗传算子的操作都是在随机扰动情况下进行的。遗传操作

18、的效果和上述三个遗传算子所取的操作概率,编码方法,群体大小,初始群体以及适应度函数的设定密切相关。a)选择(Selection)竞争选择、排序选择和稳态选择从群体中选择优胜的个体,淘汰劣质个体的操作叫选择。选择算子有时又称为再生算子(reproduction operator)。选择的目的是把优化的个体(或解)直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的,目前常用的选择算子有以下几种:适应度比例方法、随机遍历抽样法、局部选择法、局部选择法。其中轮盘赌选择法 (roulette wheel selection)是最简单也是最常用的选择方

19、法。在该方法中,各个个体的选择概率和其适应度值成比例。设群体大小为n,其中个体i的适应度为fi,则i 被选择的概率Pi,为 显然,概率反映了个体i的适应度在整个群体的个体适应度总和中所占的比例.个体适应度越大。其被选择的概率就越高、反之亦然。计算出群体中各个个体的选择概率后,为了选择交配个体,需要进行多轮选择。每一轮产生一个0,1之间均匀随机数,将该随机数作为选择指针来确定被选个体。b)交叉(Crossover)多点交叉和均匀交叉 遗传算法中起核心作用的是遗传操作的交叉算子。所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。通过交叉,遗传算法的搜索能力得以飞跃提高。交叉算子根

20、据交叉率将种群中的两个个体随机地交换某些基因,能够产生新的基因组合,期望将有益基因组合在一起。根据编码表示方法的不同,可以有以下的算法:*实值重组(real valued recombination):离散重组(discrete recombination);中间重组(intermediate recombination);线性重组(linear recombination);扩展线性重组(extended linear recombination);*二进制交叉(binary valued crossover):单点交叉(single-point crossover);多点交叉(multip

21、le-point crossover);均匀交叉(uniform crossover);洗牌交叉(shuffle crossover);缩小代理交叉(crossover with reduced surrogate)。 最常用的交叉算子为单点交叉(one-point crossover)。具体操作是:在个体串中随机设定一个交叉点,实行交叉时,该点前或后的两个个体的部分结构进行互换,并生成两个新个体。下面给出了单点交叉的一个例子:个体A:1 0 0 1 1 1 1 1 0 0 1 0 0 0 新个体个体B:0 0 1 1 0 0 0 0 0 1 1 1 1 1 新个体c)变异(Mutation)

22、概率变异和预测变异 变异算子的基本内容是对群体中的个体串的某些基因座上的基因值作变动。依据个体编码表示方法的不同,可以有以下的算法:实值变异;二进制变异。 一般来说,变异算子操作的基本步骤如下:对群中所有个体以事先设定的编译概率判断是否进行变异;对进行变异的个体随机选择变异位进行变异。 遗传算法导引入变异的目的有两个:一是使遗传算法具有局部的随机搜索能力。当遗传算法通过交叉算子已接近最优解邻域时,利用变异算子的这种局部随机搜索能力可以加速向最优解收敛。二是使遗传算法可维持群体多样性,以防止出现未成熟收敛现象。 遗传算法中,交叉算子因其全局搜索能力而作为主要算子,变异算子因其局部搜索能力而作为辅

23、助算子。遗传算法通过交叉和变异这对相互配合又相互竞争的操作而使其具备兼顾全局和局部的均衡搜索能力。所谓相互配合.是指当群体在进化中陷于搜索空间中某个超平面而仅靠交叉不能摆脱时,通过变异操作可有助于这种摆脱。所谓相互竞争,是指当通过交叉已形成所期望的积木块时,变异操作有可能破坏这些积木块。 基本变异算子是指对群体中的个体码串随机挑选一个或多个基因座并对这些基因座的基因值做变动(以变异概率P.做变动),基因位下方标有*号的基因发生变异。变异率的选取一般受种群大小、染色体长度等因素的影响,通常选取很小的值,一般取0.0010.1。5)GA参数值种群规模、染色体长度、杂交概率和变异概率3、算法特点 一

24、类可用于复杂系统优化的具有鲁棒性的搜索算法 遗传算法作为一种快捷、简便、容错性强的算法,在各类结构对象的优化过程中显示出明显的优势。与传统的搜索方法相比,遗传算法具有如下特点:a)搜索过程不直接作用在变量上,而是在参数集进行了编码的个体。此编码操作,使得遗传算法可直接对结构对象(集合、序列、矩阵、树、图、链和表)进行操作。b)搜索过程是从一组解迭代到另一组解,采用同时处理群体中多个个体的方法,降低了陷入局部最优解的可能性,并易于并行化。c)采用概率的变迁规则(概率)来指导搜索方向,而不采用确定性搜索规则。d)对搜索空间没有任何特殊要求(如连通性、凸性等),只利用适应性信息,不需要导数等其它辅助信息,适应范围更广。4、遗传算法的应用1)函数优化遗传算法的经典应用领域,进行性能评价的常用算例 许多人构造出了各种各样复杂形式的测试函数:连续

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论