声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1783|回复: 2

[编程技巧] 遗传算法的选择算子(基于赌盘和基于排序的)

[复制链接]
发表于 2011-10-19 19:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
  %%%%%%%%%%%%%%轮盘随机选择算子%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function newchrom=rselect(oldchrom,FieldD)
Ps=FieldD/sum(FieldD);                    %计算每个被选的概率
Pss=cumsum(Ps);                            %制作好轮盘
r=rand(length(FieldD),1)  ;               %预先产生赛制
for Time=1:1:length(FieldD)                %选择个体数
          number0(Time)=length(FieldD);                  
     for n=1:1:length(FieldD)
         if r(n)<=Pss(Time);               
             number0(Time)=n;            
             break
         end
     end
end
  for  Time=1:1:length(FieldD)
    newchrom(Time)=oldchrom(number0(Time));
end
   newchrom=newchrom.';   
  
end
         
%%%%%%%%%%%%%%%%%%%%%基于排序 转盘式选算子%%%%%%%%%%%%%   
function  newchrom=sselect(chrom,FieldD,a)
% a 适应值排名后按线性概率给每个个体相应的概率,排名最高概率最大 通常取a=1.1
b=2*(a-1);
[sfit,II]=sort(FieldD);                 %排序后和排序的讯号
[mount,var]=size(chrom);
for Time=1:1:mount                      %概率给定
    Ps(Time)=(a-b*Time/(mount+1))/mount;
end
   Pss=cumsum(Ps);Pss(mount)=1;
     II=II.' ;   
   r=rand(mount,1);                 %预先产生赛制
for Time=1:1:mount                %选择个体数
               
     
         for n=2:1:mount
           if r(Time)<=Pss(1);   newchrom(Time)=chrom(II(1));break;end
            
          if r(Time)<=Pss(n)&r(Time)>Pss(n-1)
            newchrom(Time)=chrom(II(n));
             break
         end
         end
     
end
   newchrom=newchrom.';
end

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2011-10-23 16:16 | 显示全部楼层
本帖最后由 ChaChing 于 2011-10-23 16:26 编辑

回复 1 # 博大广阔 的帖子

原创 or 转贴 !? 个人专业有限, 看似像分享!? 是吗?
若是, 若能稍作简易说明下相关输入/输出/算法, 甚至举例, 或许更适合学习! 个人浅见
 楼主| 发表于 2011-10-25 08:40 | 显示全部楼层
这是依据课本上的给的算法编出来的函数。我已多次运用,可证明程序是正确的。这个叫简单了解GA的人都看得懂,就省去例子之类了,,
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-21 11:12 , Processed in 0.052240 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表