设某城市有某种物品的10个需求点,第i个需求点Pi的坐标为(ai,bi),道路网与坐标轴平行,彼此正交。现打算建一个该物品的供应中心,且由于受到城市某些条件的限制,该供应中心只能设在x界于[5,8],y界于[5.8]的范围之内。问该中心应建在何处为好?
P点的坐标为:
ai |
1 |
4 |
3 |
5 |
9 |
12 |
6 |
20 |
17 |
8 |
bi |
2 |
10 |
8 |
18 |
1 |
4 |
5 |
10 |
8 |
9 |
解:设供应中心的位置为(x,y),要求它到最远需求点的距离尽可能小,此处采用沿道路行走计算距离(如图8-1),则数学模型为:
图8-1 供应中心到需求点的行走路线图
用MATLAB的fminimax函数进行求解
fun011.m
function f=fun011(x)
m=[1 4 3 5 9 12 6 20 17 8];
n=[2 10 8 18 1 4 5 10 8 9];
str=[repmat(‘ (‘,10,1) num2str(m‘) num2str(n‘) repmat(‘)‘,10,1)];
plot(m,n,‘o‘)
text(m,n,cellstr(str))
hold on
for i=1:10
f(i)=abs(x(1)-m(i))+abs(x(2)-n(i));
end
主函数
fun011yunxing.m
clc
tic
x0=[6;6];
A=[-1 0;1 0;0 -1;0 1];
b=[-5;8;-5;8];
lb=[0;0];
ub=[];
[x,fva,maxfval,exitflag,output]=fminimax(@fun011,x0,A,b,[],[],lb,ub)
plot(x(1),x(2),‘r *‘)
toc
解得:
x =
8
8
fva =
13 6 5 13 8 8 5 14 9 1
maxfval =
14
exitflag =
4
output =
iterations: 3
funcCount: 14
……
时间已过 0.670458 秒。
求解的同时我们用图8-2描述了该问题,*点就是所求点。且最小的最大供应距离14为从供应中心(8,8)到需求点(20,10)的距离。
图 8-2 需求点及供应中心
版权声明:本文为博主原创文章,未经博主允许不得转载。