Программная реализация в МатЛаб
• [x,f,ga]=fgoalattain(fun,xo,q,w,A,b,
•
Ae,be,xmi,xma<,nonlcon,options,p1,p2,..>);
•[x,f,ga]=fgoalattain(fun,xo,q,w,[],[],
•[],[],[],[],nonlcon);
Метод сведения к задаче минимакса
r |
max |
|
i |
|
min |
|
f |
(x) |
x D |
i 1..k |
|
|
|
• Этот метод находит решение, на котором достигается минимум наихудшего случая.
Пример
f1(x1, x2 ) (x1 1)2 (x2 2)2 2
f2 (x1, x2 ) x11.3 2x20.9 1
f3(x1, x2 ) 1.7x1 x2 3.5
|
|
|
3x1 2x2 2.2 |
ex1 |
ex2 |
1.5 |
x1 0 |
|
|
|
x2 0 |
•function minmax1;
•%начальное приближение
•x0=[1; 0];
•% неравенства
•A=[3 2];
•b=2.2;
•xm=[0; 0];
•% обращение
•[x,p]=fminimax(@fu3,x0,A,b,[],[],xm,[]
•function f=fu3(x)
•f(1)=(x(1)-1)^2+(x(2)-2)^2-2.1;
•f(2)=x(1)^1.3+2*x(2)^0.9-1;
•f(3)=1.7*x(1)+x(2)-0.25;
•Return
•function [c, ceq]=nonling(x)
•c=[]; %ограничений-неравенств нет
•%ограничение-равенство:
•ceq(1)=-exp(x(1))+exp(x(2))-0.5;
•return