通过图形用户界面使用遗传算法工具
单目标优化

function y=fun1(x); %x 为行向量
y=x(1)*2+x(1).^2*3+x(2)*3+x(2).^2+x(3);
y=-y;
function [f,g]=fun2(x);
f=[x(1)+2*x(1)^2+x(2)+2*x(2)^2+x(3)-10
x(1)+x(1)^2+x(2)+x(2)^2-x(3)-50
2*x(1)+x(1)^2+2*x(2)+x(3)-40];
g=x(1)^2+x(3)-2;
a=[-1 -2 0;-1 0 0];b=[-1;0];
X=[];Y=[];
for i=1:20
[x,y]=ga(@fun1,3,a,b,[],[],[],[],@fun2);
X=[X,x];
Y=[Y,-y];
end
X,Y

多目标优化


function f = my_first_multi(x)
f(1)=x(1).^4-10*x(1).^2+x(1).*x(2)+x(2).^4-(x(1).^2)*(x(2).^2);
f(2)=x(2).^4-(x(1).^2).*(x(2).^2)+x(1).^4+x(1).*x(2);
clear
clc
fitnessfcn= @my_first_multi;%适应度函数句柄
nvars= 2;%变量个数
lb=[-5,-5];%下限
ub=[5,5];%上限
A=[];b=[];%非线性不等式约束
Aeq=[];beq=[];%非线性等式约束
options = gaoptimset('ParetoFraction',0.3,'PopulationSize',100,'Generations',...
200,'StallGenLimit',200,'TolFun',1e-100,'PlotFcns',@gaplotpareto);
[x,fval] = gamultiobj(fitnessfcn, nvars, A,b,Aeq,beq, lb,ub,[],options)


转载请注明出处,欢迎讨论和交流!

浙公网安备 33010602011771号