⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 roulette.m

📁 基于MATLAB的蚁群算法连续函数优化
💻 M
字号:
%{
轮盘赌法程序
%}
function Select=Roulette(P,num)
%:按轮盘赌策略选择下一点,返回num次轮盘赌结果

%:第一种轮盘赌方法,精度很低,
% m = length(P); 
% Select = zeros(1,num);
% for i=1:num
%     Select(i) = m;% 初始化为最后一个
%     for j=1:m %:按概率选择
%         if P(j)>rand()
%             Select(i)=j;
%             break;
%         end
%     end
% end

%:第二种轮盘赌方法,精度较高
m = length(P);
Select = zeros(1,num);
r = rand(1,num);
for i=1:num
    sumP = 0;
    j = ceil(m*rand); %产生1~m之间的随机整数
    while sumP < r(i)
        sumP = sumP + P(mod(j-1,m)+1);
        j = j+1;
    end
    %Select(i) = mod(j-1,m)+1-1;
    Select(i) = mod(j-2,m)+1;
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -