智能优化算法作业

智能优化算法作业

ID:9843323

大小:36.70 KB

页数:5页

时间:2018-05-12

智能优化算法作业_第1页
智能优化算法作业_第2页
智能优化算法作业_第3页
智能优化算法作业_第4页
智能优化算法作业_第5页
资源描述:

《智能优化算法作业》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、智能优化算法第三次作业一MA与TA,SA的区别MA算法提出的是一种框架、是一个概念,在这个框架下,采用不同的搜索策略可以构成不同的文化基因算法,如可采用SA。TA算法是由Dueck和Scheuer提出的一种SA算法的变形,两者的区别仅在于TA采取预先设置门槛而不是以Metropolis准则的方式接受领域移动,由于TA方法无需计算接受概率,计算速度较SA大大加快。二工人指派问题n个工作可以由n个工人分别完成。工人i完成工作j的时间为dij,问如何安排可是总的工作时间达到最小。试按SA算法设计一个求解该问题的算法(包括状态表达,领域定义,算法步骤),并利用计算机语言实现

2、设计的算法。解:1.设共有四个工作,四个工人,每个工人完成每个工作所需要的时间如下表所示:工作工人1234需要工作量1109871234561321121443561需要工人量11111求使minz=i=1nj=1ndijxiji=1nxij=1,j=1,2,3,4j=1nxij=1,i=1,2,3,4xij=0或1注:由于每个工人只能有其中一个工作,每个工作只需要一个工人。2-1-3-4表示第i(i=1,2,3,4)个工人分别做第2,1,3,4个工作。2.算法设计编码方式:顺序编码初始解的产生:随机产生领域移动方式:2-opt初始温度:T0=100终止温度:Tf

3、=60降温函数:Tk+1=TK-∆T,∆T=20内循环次数:n(Tk)=33.算法步骤:Step1:选定初始点为i=1-2-3-4,初始温度T0=100,Tf=60;迭代指标k=0,Tk=T0;令最好解为min=f(i)。Step2:由2-opt随机产生一个领域解j,计算目标是∆f=f(j)-f(i)。Step3:若∆f<0令i=j;否则随机产生ε∈U(0,1),若exp(-∆f/Tk)>ε,则令i=j;若∆f<0,令min=f(j)。Step4:若达到内循环次数3,转step5;否则转step2。Step5:k=k+1,更新Tk,若Tk

4、tep2。Step6:输出最好解min与对应的编码。程序:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){int[,]arr1=newint[,]{{10,9,8,7},{3,4,5,6},{2,1,1,2},{4,3,5,6}};intT0=100;intTf=60;inttt=20;intTk=T0;int[]ai=

5、newint[4]{1,2,3,4};inta,b,c,d;a=arr1[ai[0]-1,0];b=arr1[ai[1]-1,1];c=arr1[ai[2]-1,2];d=arr1[ai[3]-1,3];intmin=a+b+c+d;//先定义初始条件bb:if(Tk>=Tf)gotoaa;elsegotocc;aa:for(inti=0;i<3;i++){intnum1=newRandom().Next(1,3);intaaa=num1;intnum2=newRandom().Next(2,4);intbbb=num2;swap(refai[aaa-1],refa

6、i[bbb-1]);//随机产生ja=arr1[ai[0]-1,0];b=arr1[ai[1]-1,1];c=arr1[ai[2]-1,2];d=arr1[ai[3]-1,3];intminn=a+b+c+d;intkk=minn-min;if(kk<0)min=minn;elseif(kk>0){System.DateTimecurrentTime=newSystem.DateTime();currentTime=System.DateTime.Now;intfen=currentTime.Minute;doubles=fen*1000;s=2045*s+1;s=

7、s%1048576;doublet=s/1048576;if(Math.Exp(-kk/Tk)>t){}else{swap(refai[aaa-1],refai[bbb-1]);}}Tk=Tk-tt;gotobb;}cc:Console.WriteLine(min);Console.Read();for(intii=0;ii<4;ii++){Console.WriteLine(ai[ii]);Console.Read();}}staticvoidswap(refinta,refintb){intt=a;a=b;b=t;}}}运行结果如图所示,最少时间为19个小时

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。