理想点法,线性加权和法(多目标规划)
matlab函数fminimax(这个是最大最小化问题)
%% 最大最小化模型 : min{max[f1,f2,···,fm]}
x0 = [6, 6]; % 给定初始值
lb = [3, 4]; % 决策变量的下界
ub = [8, 10]; % 决策变量的上界
[x,feval] = fminimax(@Fun,x0,[],[],[],[],lb,ub)
max(feval) %06-22记录 就记住吧人家这个函数内部就实现了,56行看一下,记住人家的格式足矣
%没必要深究了
% x =
% 8.0000 8.5000
% feval =
% 13.5000 5.5000 5.5000 12.5000 8.5000 8.5000 5.5000 13.5000 9.5000 0.5000
% 结论:
% 在坐标为(8,8.5)处建立供应中心可以使该点到各需求点的最大距离最小,最小的最大距离为13.5单位。
(Fun.m)文件
function f = Fun(x)
a=[1 4 3 5 9 12 6 20 17 8];
b=[2 10 8 18 1 4 5 10 8 9];
% 函数向量
f=zeros(10,1);
for i = 1:10
f(i) = abs(x(1)-a(i))+abs(x(2)-b(i));
end
end
书上p482也有
lingo解决:
model:
sets:
location/1..10/:a,b;
endsets
data:
a=1,4,3,5,9,12,6,20,17,8;
b=2,10,8,18,1,4,5,10,8,9;
enddata
min=@max(location(i):@abs(x-a(i))+@abs(y-b(i)));
!这里只用了max,我一开始还用了与for进行了嵌套,for在外在内怎么套都不行,
!发现去掉for就可以解出了,我认为是这个max自带for 的味道
@bnd(3,x,8);
@bnd(4,y,10);
end
结果和用matlab的结果一样,虽然x,y取值不同(lingo只给出一组解)