算法和A2算法的实例Word文件下载.docx
- 文档编号:21999754
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:19
- 大小:29.04KB
算法和A2算法的实例Word文件下载.docx
《算法和A2算法的实例Word文件下载.docx》由会员分享,可在线阅读,更多相关《算法和A2算法的实例Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
[p,index]=sort(-p);
%价值和重量的比值
fori=1:
6
s(i)=s0(index(i));
%按价重比从大到小排列后的价值
w(i)=w0(index(i));
%重排的重量
end
%k=0时:
ss=0;
ww=0;
kk=0;
xb=zeros(1,6);
if(ww+w(i)>
10)
continue;
else
kk=kk+1;
%记录最优解中物品的个数
xb(kk)=i;
ww=ww+w(i);
ss=ss+s(i);
end
%k=1时:
maxw1=0;
maxs1=0;
%储存最优值重量、价值和下标
maxxb1=zeros(1,6);
maxk1=0;
xb1=zeros(1,6);
ww1=w(i);
ss1=s(i);
kk1=0;
forj=1:
if(j~=i)
if(ww1+w(j)>
kk1=kk1+1;
xb1(kk1)=j;
ww1=ww1+w(j);
ss1=ss1+s(j);
if(ss1>
maxs1&
&
ww1<
=10)
maxs1=ss1;
maxw1=ww1;
maxxb1=xb1;
maxk1=kk1;
maxi=i;
%k=2时:
maxw2=0;
maxs2=0;
maxxb2=zeros(1,6);
maxk2=0;
xb2=zeros(1,6);
5
forj=i+1:
ys1=s(i);
yw1=w(i);
ys2=s(j);
yw2=w(j);
ss2=ys1+ys2;
ww2=yw1+yw2;
kk2=0;
fork=1:
if(k~=i&
k~=j)
if(ww2+w(k)>
kk2=kk2+1;
xb2(kk2)=k;
ww2=ww2+w(k);
ss2=ss2+s(k);
if(ss2>
maxs2&
ww2<
maxs2=ss2;
maxw2=ww2;
maxxb2=xb2;
maxk2=kk2;
A=[ww,maxw1,maxw2];
B=[kk,maxk1,maxk2];
C=[xb;
maxxb1;
maxxb2];
[maxs,dex]=max([ss,maxs1,maxs2]);
fprintf('
'
)
\n'
);
B(dex)
fprintf('
s(%d)=%d,w(%d)=%d\n'
C(dex,i),s(C(dex,i)),C(dex,i),w(C(dex,i)));
maxi,s(maxi),maxi,w(maxi));
%d\n所装货物的最大总价值为:
%d\n'
A(dex),maxs);
第二次上机
2、求函数的最大值
yichuansuanfa2
函数的最大值为:
1.000000>
>
clc
clear
%初始化,选取群体规模为50`
C=zeros(50,4,1);
fori=1:
50
4
ran=rand()*10-5;
C(i,j,1)=ran;
Best=0;
forkk=2:
200
%适应值评价,保存最优染色体
Eval=zeros(50,1);
Eval(i,1)=1/(C(i,1,kk-1)^2+C(i,2,kk-1)^2+C(i,3,kk-1)^2+C(i,4,kk-1)^2+1);
Best1=max(Eval);
%选择算子
E=0;
50%计算群体适应值总和
E=E+Eval(i,1);
Per=zeros(50,1);
%分别计算每个染色体适应值同群体适应值总和的比
Per(i,1)=Eval(i,1)/E;
%选择
m=0;
r=rand();
p=Per(1,1);
ifr<
p
C(j,k,kk)=C(i,k,kk-1);
p=p+Per(i,1);
%交配
c=0;
d=0;
ifr>
=0.88%不参加交配,直接进入种群
c=c+1;
C(i-d,j,kk)=C(i,j,kk);
else%选出参加交配的染色体
d=d+1;
AA(i-c,k)=C(i,k,kk);
[m,n]=size(AA);
%交配过程
mm=m/2;
ifmm==0
m=m;
m=m-1;
mmm=m/2;
mmm
r=rand()*3;
rr=fix((r/2))+1;
forj=rr:
4;
BB=AA(2*i-1,j);
AA(2*i-1,j)=AA(2*i,j);
AA(2*i,j)=BB;
fori=(51-d):
50%得到新的种群
C(i,j,kk)=AA(i-50+d,j);
%变异
0.08
C(i,j,kk)=rand()*10-5;
ifBest<
Best1
Best=Best1;
%f'
Best);
第三次上机
3、求函数的最小值
调用yichuansuanfa3
请输入变量的个数:
n=4函数的最小值为:
0.000000>
n=input('
n='
C=zeros(50,n,1);
n
ran=rand()*200-100;
Best=10000000;
sum=0;
sum=sum+(C(i,j,kk-1))^2;
Eval(i,1)=sum;
Best1=min(Eval);
r=rand()*(n-2);
rr=fix((r))+1;
n;
C(i,j,kk)=rand()*200-100;
ifBest>
函数的最小值为:
第四次上机
4、求函数的最小值
调用yichuansuanfa4
-1.000000>
C=zeros(50,2,1);
2
Best=100;
500
ttt=C(i,1,kk-1)^2+C(i,2,kk-1)^2;
mmm=sqrt(ttt);
sss=sin(mmm)^2-0.5;
ppp=(1+0.001*ttt)^2;
Eval(i,1)=(sss/ppp)-0.5;
rr=1;
2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 A2 实例