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

📄 cross.m

📁 #include "stdio.h" #include "math.h" #include "malloc.h" #include "string.h" #define m 6 #defin
💻 M
字号:
function ret=Cross(pcross,chrom,sizepop)
%浮点交叉
%随机产生两个个体
%随机判断能否交叉
%若能则随机产生交叉位置
%随机产生交叉系数
for i=1:sizepop
            % 选择两个体
            pick=rand(1,2);
            while prod(pick)==0 %求pick中各元素之积,这里是判断pick中是否有零元素
                 pick=rand(1,2);
            end
            index=ceil(pick.*sizepop);%找出待交叉的两个个体的下标
            % 随即交叉的节点
            pick=rand;
            while pick==0
                 pick=rand;
            end
            if pick>pcross
               continue;  %不能交叉
            end
            %随即交叉的位置
            pick=rand;
            while pick==0
                 pick=rand;
            end
            pos=ceil(pick.*7);%找出交叉的位置,即对第几个变量开始交叉
            pick=rand;
            v1=chrom(index(1),pos);
            v2=chrom(index(2),pos);
            chrom(index(1),pos)=pick*v2+(1-pick)*v1;
            chrom(index(2),pos)=pick*v1+(1-pick)*v2;
        end
        ret=chrom;

⌨️ 快捷键说明

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