gusucode.com > 十大算法matlab程序说明 > 十大算法matlab程序说明/遗传算法/用MATLAB实现遗传算法程序/f553.m
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