f553.m
来自「Matlab下的遗传算法程序」· M 代码 · 共 28 行
M
28 行
function [sol,eval]=f553(sol,options)
m(1)=sol(1);
m(2)=sol(2);
m(3)=sol(3);
%失效概率矩阵
q=[0.01 0.05 0.10 0.18;
0.08 0.02 0.15 0.12;
0.04 0.05 0.20 0.10];
%约束条件
g1=51-(m(1)+3).^2+m(2).^2+m(3).^2;
g2=20*sum(m+exp(-m))-120;
g3=20*sum(m.*exp(-m/4))-65;
%计算加惩罚项的适值
if ((g1>=0)&(g2>=0)&(g3>=0))
multi=1;
for i=1:3
summ=0;
for j=2:4
summ=summ+q(i,j).^(m(i)+1);
end
multi=multi*(1-(1-(1-q(i,1)).^(m(i)+1))-summ);
end
eval=multi;
else
%取M=500
eval=-500;
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?