subject_fitness_function.m

来自「一个非常好的遗传算法参考程序,可以优化带约束条件的函数.」· M 代码 · 共 48 行

M
48
字号
function [ subjected_decimal_value]=subject_fitness_function(a,b)

% X is a matrix , not a cell.
% this example, X is X=[a,b]';

%%%%%%%%%%%      X=[a,b]

X=[a,b];

%%%%%%%%%%%      Equation    A(m*n)*X(n*k)=B(m*k)
A=[1,1
     1,1 ];  
 
B=[1,1 ]';

    
%%%%%%%%%%%      Inequation  C(m*n)*X(n*k)<=D(m*k)

C=[1,1
     1,1 ];  
 
D=[1,1 ]';


%%%%%%%%%%%      Suject to

%linear equation and inequation
%if A*X==B & C*X<=D
%   subject_fitness_value=X;
%else
%     break;
%end
 

%non-linear equation and inequation

 if A(1,1)*a^2+A(1,2)*b==B(1,1)% & ...
%     A(2,1)*a^5+A(2,2)*b^9==B(2,1)&...
%     C(1,1)*exp(a)^2+C(1,2)*log(b)^-7<=D(1,1)&...
%     C(2,1)*tan(a)+C(2,2)*sin(b)^exp(a+b)>=D(2,1)
 subjected_decimal_value=[a,b];
else
 %   disp('out of subjection!');
  subjected_decimal_value=[0,0]; % if not fit, set the exact one.
    break;
end

⌨️ 快捷键说明

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