对于 多目标优化 问题,matlab提供了fminimax函数。
1、目标函数:
,Z为多目标优化函数
s.t 




2、调用格式
x = fminimax(fun,x0)
x = fminimax(fun,x0,A,b)
x = fminimax(fun,x0,A,b,Aeq,beq)
x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub)
x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
x = fminimax(problem)
fun为多目标函数文件,x0为初始点,A为等式约束系数矩阵,Aeq为等式约束稀疏矩阵,lb,ub分别为最优解x的下限和上限,nonlcon为非线性约束,option为选项设置,返回值x为最优点。
[x,fval] = fminimax(...),返回解x处目标函数fun的值。
[x,fval,maxfval] = fminimax(...),返回在解x中求值的输入fun中目标函数的最大值。
[x,fval,maxfval,exitflag] = fminimax(...),返回一个值exitflag,该值描述了fminimax的退出条件。
[x,fval,maxfval,exitflag,output] = fminimax(...),返回包含有关优化 信息 的结构输出。
[x,fval,maxfval,exitflag,output,lambda] = fminimax(...),返回结构lambda,其字段包含解x处的拉格朗日乘数。
3、 如图所示,求到A,B,C,D, E 五个点的距离都比较近的点。

例二、存在不等式约束,其解的范围为[5,6]即x1∈(5,6) x2∈(5,6)。
例三、存在等式约束,其解在x1-x2+1=0这条直线上。
例四、存在非线性约束,其解在x1^2-x1-x2+2=0,圆心为(5,5)半径为3的圆内。
%% 最大最小化function d=demo_9_23_1(x) %目标函数文件d(1)=sqrt((x(1)-2)^2+(x(2)-10)^2);d(2)=sqrt((x(1)-5)^2+(x(2)-13)^2);d(3)=sqrt((x(1)-8)^2+(x(2)-9)^2);d(4)=sqrt((x(1)-3)^2+(x(2)-8)^2);d(5)=sqrt((x(1)-6)^2+(x(2)-6)^2); %% x = fminimax(fun,x0)x0=[5;5];[x,fval]=fminimax(@demo_9_23_1,x0) %例二,存在不等式约束%% x = fminimax(fun,x0,A,b) 有线性不等式约束 x0=[5.5;5.5];A=[1 0; -1 0; 0 1; 0 -1;];b=[6;-5;6;-5];[x,fval]=fminimax(@demo_9_23_1,x0,A,b)%例三 粗壮乃等式约束%% x = fminimax(fun,x0,A,b,Aeq,beq) %线性等式约束x0=[5.5;5.5];Aeq=[1 -1;];beq=[-1];[x,fval]=fminimax(@demo_9_23_1,x0,[],[],Aeq,beq)%例二的不等式约束也可以写成如下形式%% x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub) %解向量的上下限x0=[5.5;5.5];[x,fval]=fminimax(@demo_9_23_1,x0,[],[],[],[],[5;5],[6;6])%例四。非线性约束%% x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) %非线性约束%nonlcon存放非线性约束x0=[5.5;5.5];[x,fval]=fminimax(@demo_9_23_1,x0,[],[],[],[],[],[],@demo_9_23_2)
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删