遗传算法约束



如何将以下约束传递给Matlab ga优化函数?注意,x是矢量1xnvars

约束1

0.2 <= sum(x,2)/(W*H) <= 0.4 
where `W` and `H` are two constant.

约束2

x(1) >= x(2) >= ... >= x(size(x,1)) 

参考这里的文档。

A = cat(1,ones(1,nvars), ones(1,nvars)*-1)/W/H;
b = [0.4;-0.2];    
function [ceq ce] = noncolon1(x)
    ce = [];
    ceq = x(1,2:end) - x(1,1:end-1);
end
[x , fval] = ga(@fitnessfunc,nvars,A,b,[],[],[],[],@noncolon1);

最新更新