sov_fitness_8point.m

来自「这个一个遗传算法的实例」· M 代码 · 共 50 行

M
50
字号
function FITD=SOV_fitness_8point(HZDL,QADL,KTL,KJL,NL,nL,DL,BD_8pointL)
%用轮盘赌模型求解适应度函数
%HZDL为二维变量
DL;
for i=1:DL;
    HZ(i)=0;
    for ii=1:nL-1;
        HZ(i)=HZ(i)+HZDL(i,ii);
    end;
end;
QJDM=SOL_QJM(HZDL,QADL,NL,nL,DL);%求解第每组加速度中的最大值
%QJDM
for i=1:DL;
    sum_ls=0;
    for ii=1:NL;
        sum_ls=sum_ls+QJDM(i,ii);
    end;
    if BD_8pointL(i)==0
        FIT_LS(i)=0;
    else
        FIT_LS(i)=1/(KTL*HZ(i)*NL+KJL*sum_ls);
    end;
end;

sum=0;
for i=1:DL;
    sum=sum+FIT_LS(i);
end;
for i=1:DL;
    if i==1
        FITD(i)=FIT_LS(i)/sum;
    else
        FITD(i)=FITD(i-1)+FIT_LS(i)/sum;
    end;
end;
%FITD

function QJDM=SOL_QJM(HZDLL,QADLL,NLL,nLL,DLL)
    for i=1:DLL;
        for ii=1:NLL;
            LS=abs((QADLL(ii,2,i)-QADLL(ii,1,i))/HZDLL(i,1));
            for iii=2:nLL-1;
                if LS<abs((QADLL(ii,iii+1,i)-QADLL(ii,iii,i))/HZDLL(i,iii))
                    LS=abs((QADLL(ii,iii+1,i)-QADLL(ii,iii,i))/HZDLL(i,iii));
                end;
            end;
            QJDM(i,ii)=LS;
        end;
    end;

⌨️ 快捷键说明

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