- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
启发式算法2012
启发式算法;一、组合优化问题二、启发式算法三、模拟退火算法四、遗传算法;解决离散的优化问题?运筹学分支。通过数学方法的研究去寻找离散事件的最优编排、分组、次序或筛选等,可以涉及信息技术、经济管理、工业工程、交通运输和通信网络等许多方面。;一般模型;0-1背包问题(Knapsack Problem)
加工调度问题(Scheduling Problem)
旅行商问题(Travelling Salesman Problem--TSP)
装箱问题(Bin Packing Problem)
图着色问题(Graph Coloring Problem);旅行商问题;1.2 计算复杂性的概念;算法复杂性;例:TSP的近似算法:最近邻法、最近插入法、最小支撑树法、局部搜索法等;例:0-1背包问题:贪婪算法;1.3 邻域结构与局部最优;基于直观或经验构造的算法,在可接受的花费(时间、空间)下,给出待解决优化问题每个实例的一个可行解,该可行解与最优解的偏差不一定事先可以估计。
启发式算法是一种技术,在可接受的计算费用内去寻找最好的解,但不一定能保证解的可行性与最优性,无法描述该解与最优解的近似程度。
特点(与传统优化方法不同):不考虑算法所得解与最优解的偏离程度。;现代优化算法:上世纪80年代初兴起;三.模拟退火算法;3.2 模拟退火算法流程:;iii) 如果 则
iv)如果 则如果
否则
v)end for;3.3 模拟退火算法要素;2)状态转移概率(接受概率)p;3)冷却进度T(t);4)初始温度T0
实验表明,初温越大,获得高质量解的几率越大,但花费的计算时间将增加。因此,初温的确定应折中考虑优化质量和优化效果。;6)外循环终止准则
即算法终止准则,常用的包括:
设置终止温度的阀值
设置外循环迭代次数
算法搜索到的最优值连续若干步保持不变
检查系统熵是否稳定;3.4 模拟退火算法实验性能分析:
1)模拟退火法与局部搜索算法的差异
2)优点:高效、健壮、通用、灵活
3)不足:返回一个高质量近似解的时间花费较多,当问题规模不可避免增大时,难于承受的运行时间将使算法丧失可行性。
如何改进?;3.5 模拟退火算法的matlab实现;dejong5fcn;x0 = [0 0];
[x,fval] = simulannealbnd(@dejong5fcn,x0);Optimization terminated: change in best function value less than options.TolFun.
x = -15.9669 -31.9749
fval = 1.9920
exitflag = 1
output =
iterations: 1608
funccount: 1621
message: [1x80 char]
randstate: [625x1 uint32]
randnstate: [2x1 double]
problemtype: unconstrained
temperature: [2x1 double]
totaltime: 0.8268;x0 = [0 0];
lb = [-64 -64];
ub = [64 64];
[x,fval] = simulannealbnd(@dejong5fcn,x0,lb,ub);fun = @(x) 3*sin(x(1))+exp(x(2));
x = simulannealbnd(fun,[1;1],[0 0]);options = saoptimset(PlotFcns,{@saplotbestf,@saplottemperature,@saplotf,@saplotstopping});
simulannealbnd(@dejong5fcn,x0,lb,ub,options);;options = saoptimset(InitialTemperature,[300 50]);
options = saoptimset(options,TemperatureFcn,@temperaturefast);
options = saoptimset(options,ReannealInterval,50);
options = saoptimset(options,Display,iter,DisplayInterval,400);
options = saoptimset(options,TolFun,1e-5);;相关函数:
[x, fval] = threshacceptbnd(@objf
文档评论(0)