搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  各位高手这就是我需要求解的方程.rar
资料下载链接地址: https://bbs.pinggu.org/a-429206.html
本附件包括:
  • 各位高手这就是我需要求解的方程.docx
附件大小:
58.95 KB   举报本内容
高价悬赏:请高手用遗传算法求解下面这个方程...急求代码···重谢··
以下是对这个方程的遗传算法编写,错误太多···请大侠们帮忙修改挨·急挨·
datacvartotal;
set data1; /*data1包括yield,b,scale,pc,pm,stopnum的数据集;*/
m=dim(yield,1);
n=dim(yield,2);
/*1、产生随机种群规模;*/
do i=1 to n+1
ARRAY weights(i,scale)=RANNOR(seed);
ARRAY weight(i,scale)=RANNOR(seed);
end;
cvar1=50;
a=1;
/*2、随机产生的权重比例归一化 ; */
sum=SUM(weights);
do j=1to scale
do i=1to n
weights(i,j)=weights(i,j)/sum(1,j);
end
end
/* 3、计算适应度函数 ;*/
do j=1 to scale
do k=1 to m
do i=1 to n
mid(1,i)=weights(i,j);
end
mid1=-(mid*yield);
flag(1,k)=mid1(1,k)-weights(n+1,j);
if flag(1,k)<0 thenflag(1,k)=0;
end
end
mid2=sum(flag);
oldcvar(1,j)=weights(1+n,j)+mid2/(m*(1-b));
end

/*4、循环开始*/
do while(a<stopnum);
/*5、选择算法:最优精英策略*/
maxV=oldcvar(,><);
column=oldcvar(,>:<);
maxV1=oldcvar(,<>);
column1=oldcvar(,<:>);
if(maxV>=cvar)
do i=1 to n+1
weights(i:column1)=weight(i:1);
// 如果本次迭代中得到的最优个体比历史最优个体更优, 把当前最优个体取代历史最优个体, 否则用历史最优个体取代本次迭代中的最差的个体。
end
end
cvar=maxV;
do i=1 to n+1
weight(i,1)=weights(i,column);
end
do i=1 to n+1
var=weights(n+1,i);
end
6、交叉 ;而 其中为 一个随机数。
a=RANNOR(seed);
exchange1=abs(RANNOR(1,2)*scale);
exchange2=abs(RANNOR(1,2)*(n+1));
if(r<pc)weights(exchange2(1,1),exchange1(1,1))=weights(exchange2(1,1),exchange1(1,1))*a+(1-a)*weights(exchange2(1,2),exchange1(1,2)); weights(exchange2(1,2),exchange1(1,2))=weights(exchange2(1,1),exchange1(1,1))*(1-a)+a*weights(exchange2(1,2),exchange1(1,2));
end
7、突变: .当前最优个体的微变异算子。采用选取当前种群中的“最优个体”和“次优个体”都进行微变异操作,即对个体中只选取一位基因进行上述变异操作,然后直接成为下一代个体;
r1=RANNOR(1,scale);
do i=1 to scale
if(r1(1,i)<pm)
pmRow=abs(RANNOR(seed)*(n+1));
weights(pmRow,i)=weights(pmRow,><))+r1(1,i)*weights(pmRow,<>);
end
end
sum=sum(weights);
do j=1to scale
do i=1 to n
weights(i,j)=weights(i,j)/sum(1,j);
end
end
do j=1 to scale
do k=1 to m
do i=1 to n
mid(1,i)=weights(i,j);
end
mid1=-(mid*yield);
flag(1,k)=mid1(1,k)-weights(n+1,j);
if(flag(1,k)<0)
flag(1,k)=0;
end
end
mid2=sum(flag);
oldcvar(1,j)=weights(1+n,j)+mid2(1,m)/(m*(1-b));
end
a=a+1;
end;
run;

请教大虾帮忙修改挨··谢谢挨·遗传算法求最优化····
本文来自: 人大经济论坛 详细出处参考:http://www.pinggu.org/bbs/viewthread.php?tid=613709&page=1&from^^uid=623403


    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

GMT+8, 2025-12-30 19:11