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

📄 crossover.m

📁 在matlab环境下用人工智能算法--遗传算法求函数极植的matlab程序
💻 M
字号:
function population=crossover(population,pc,M,L,fitness)% 交换操作 (选择交换个体的方法也是轮盘法)%顺序累计群体内各个体的适应度,得相应的累计值s(i),最后一个累计值为s(M)s(1)=fitness(1);for i=2:M    s(i)=s(i-1)+fitness(i);endfor j=1:2:M*pc    r1=rand*s(M); %在[0,s(M)]区间内产生均匀分布的随机数 r1        while 1        r2=rand*s(M);        if r2~=r1             break        end    end   %在[0,s(M)]区间内产生均匀分布的随机数 r2 且 r2~=r1        ii=1;    jj=1;    for i=1:M           if s(i)>=r1                ii=i;                 break;           end %依次用s(i)与r1,比较,第一个出现s(i)大于或等于r1的个体i被选为交换对象,           if s(i)>=r2                jj=i;                break;           end %依次用s(i)与r2,比较,第一个出现s(i)大于或等于r2的个体i被选为交换对象,    end          swappoint=ceil(rand*(L-1)); %在[1,L-1]区间产生均匀分布的随机整数,作为交换点位置    temp=population(ii,swappoint+1:L);    population(ii,swappoint+1:L)= population(jj,swappoint+1:L);    population(jj,swappoint+1:L)= temp;  %执行交换   end%return population;

⌨️ 快捷键说明

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