Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#3 |
普通会员
注册日期: 2008-08-17
年龄: 36
帖子: 70
声望力: 20 ![]() ![]() |
![]()
当 x1+x2>=Max 时 对适应度值进行惩罚
代码:
for s=1:1:M N=G(s,:); y1=0;y2=0; N1=N(1:1:CL); %对x1进行解码, for i=1:1:CL y1=y1+N1(i)*2^(i-1); end x1=(Max-Min)*y1/(2^CL-1)+Min; x1_G(k)=x1; %为了便于最后图形输出,而引进的类似指针型变量 N2=N(CL+1:1:2*CL); %对x2进行解码 for i=1:1:CL y2=y2+N2(i)*2^(i-1); end x2=(Max-Min)*y2/(2^CL-1)+Min; x2_G(k)=x2; %为了便于最后图形输出,而引进的类似指针型变量 F(s)=814.1*(x2+10)^2/(x1+x2+10)+1456.38*(x2+10)/(x1+x2+10)-19173154*x1/(x1+x2+10)^2+531.675*(x1+10)^2/(x1+x2+10)+956.25*(x1+10)/(x1+x2+10)- 12831767*x2/(x1+x2+10)^2; %目标函数表达式 %%%%%%%%%%%%%% if(x1+x2>=Max) F(s)=F(s)-99999; end %F(s)=x1.^2+x2.^2; end 在目标函数表达式后加入 代码:
if(x1+x2>=Max) F(s)=F(s)-99999; end |
![]() |
![]() |
主题工具 | |
显示模式 | |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[分享]很好的GUI开发经验 | dishengpiao | MATLAB论坛 | 136 | 2020-04-05 07:16 |
[求助]请问simulink仿真有没有两个输入两个输出的运算放大器? | seasky | MATLAB论坛 | 0 | 2008-04-21 16:34 |
【求助】Laplace 滤波 | s7401543 | MATLAB论坛 | 0 | 2008-02-13 08:37 |
【讨论】Matlab动态显示的问题讨论 | tqr591513792 | MATLAB论坛 | 0 | 2007-12-20 14:50 |
【文章】仿真动画软件设计作品--电路开闭 | yesman | MATLAB论坛 | 0 | 2007-12-11 16:21 |