下载此文档

最优化原理及应用.doc


文档分类:IT计算机 | 页数:约28页 举报非法文档有奖
1/28
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/28 下载此文档
文档列表 文档介绍
“最优化原理及应用”
2008200388 姚远
1.用C语言,或者Matlab, 或者Fortran等编写一个完整的Simulated Annealing算法和Genetic 算法的优化程序。
解: 本题采用Matlab语言编写一个完整的SA算法优化程序。在该程序中选用的代价函数为:,初始的C0=1000,每一个阶段的Lk选为20,,迭代的终止条件为e<(e=)。初始值的选取范围为,每次迭代的扰动=6。C=C0/k。
的趋势如下图所示:
经过SA算法得出的结果为:x1= f(x)=-。
程序如下:
%退火算法
clear all
clc
C0=1000;
x0=20*rand(1,1)-10; %取初始值
k=0;
Lk=20;
F=sin((x0-)^2)+(x0-6)^2-3; %代价函数
delta_x=6; %扰动
e=1;
epsilon=; %接受概率
i=1;
while (e>)
k=k+1;
C=C0/k;
for(i=1:Lk)
w=2*rand(1,1)-1;
x1=x0+w*delta_x; %产生一个x1
F1=x1^4-x1^3-15*x1^2+1;
delta_f=F1-F;
e=abs(delta_f);
if (F1<F)
x0=x1;
F=F1;
X(i)=x1;
i=i+1;
else
prob=exp(-delta_f/C);
if (prob>epsilon)
x0=x1;
F=F1;
X(i)=i+1;
end
end
end
end
x0
F
下面为采用遗传算法的优化程序。该程序中的代价函数与上面的SA算法所用的一致。设定变量的二进制码链长度为10,基因库中的二进制码链个数为10。自变量的取值区间为,设定遗传算法的迭代次数为500。在每次迭代保留基因的选择中分别采用了均值法和***赌的方法,在保留、交换和异化的过程中每次都将最好的基因保留在基因库的最后一行,即精英操作。
经过GA算法得出的结果为:x1= f(x)=-。
从图中我们可以看出SA和GA算法均找到了该代价函数的最小值点。在运行的过程中GA的速度要明显快于SA。
程序如下:
%遗传算法
% F=sin((x-)^2)+(x-6)^2-3; 最优化问题的代价函数
% Q=1000-( sin((x-)^2)+(x-6)^2-3); 遗传算法中定义的fitness
clc
clear all
num=10;
length=10;
total=2^(length)-1;
min=-5; %取值区间的长度
max=5;
G=100;
genome=round(rand(num,length)); %定义自变量的随机二进制编码,长度为length
for (k=1:G)
X=zeros(1,num); %二进制转化为十进制
for(i=1:num)
for(j=length:-1:1)
X(i)=X(i)+genome(i,j)*2^(length-j);
end
X(i)=X(i)/total*(max-min)+min;
end
for(i=1:num) %计算各变量的fitness
Q(i)=1000-(sin((X(i)-)^2)+(X(i)-6)^2-3);
end
[order,location]=sort(Q);
bestgene=location(num); %最好的基因位置
BEST(k,:)=genome(bestgene,:); %最好的基因
% %保留
%

最优化原理及应用 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数28
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zxwziyou8
  • 文件大小337 KB
  • 时间2022-01-13