realmutate.asv

来自「本算法为自适应遗传算法」· ASV 代码 · 共 44 行

ASV
44
字号

function realmutate(v)
global
%yl;yu;y;rnd;val;deltaq;xy;

for i=1:size(v,1)
    if (rand(1)<=0.05)
        y=v(i);
        yl=0;
        yu=10;
        if (y>yl)
            if (y-yl<yu-y)
                delta=y-yl/yu-yl;
                else
                    delta=yu-y/yu-yl;
                end
                indi=1.0/(n_distribution_m+1.0);
                xy=1.0-delta;
                rnd=rand(1);
                if (rnd<=0.5)
                    val=2*rnd+(1-2*rnd)*xy^(n_distribution_m+1);
                    deltaq=val^indi-1.0;
                else
                    val=2.0*(1.0-rnd)+2.0*(rnd-0.5)*xy^(n_distribution_m+1);
                    deltaq=1.0-val^indi;
                end
                y=y+deltaq*(yu-yl);
            else
                xy=rand(1);
				y=xy*(yu-yl)+yl;
            end
			if (y>yu)
                y=yu;
            end
			if (y<yl)
                y=yl;
            end
			SelCh(i,j)=y;
        end
    end
end


⌨️ 快捷键说明

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