MATLAB解决数学模型中规划问题 下载本文

问该天基金管理人应如何操作(“按美元计算的价值”指兑入、兑出汇率的平均值,如1英镑相当于

1.697??10.58928?=1.696993美元).

2解:

基本模型

决策变量:因为日元现有量为0,故不予以考虑。 设该天基金管理人兑换操作如下: 美元 英镑 马克 美元 x1 x5 x9 英镑 x2 x6 x10 马克 x3 x7 x11 日元 x4 x8 x12 现有量(10^8 ) 需求量(10^8) 8 1 8 6 3 1 y1,y2,y3分别表示英镑、马克、日元按美元计算的价值 y1=(1.697+(1/0.58928))/2 y2=(0.57372+(1/1.743))/2 y3=(0.007233+(1/138.3))/2 目标函数:

Max z=x1+x2*0.58928*y1+x3*1.743*y2+x4*138.3*y3+x5*1.697+x6*y1+x7*2.9579*y2+

x8*234.7*y3+x9*0.57372+x10*0.33808*y1+x11*y2+x12*79.346*y3 约束条件:需满足需求量,同时各种货币的数量是有限的 非负约束:x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12≥0

总上可得:Max z= x1+x2*0.58928*y1+x3*1.743*y2+x4*138.3*y3+x5*1.697+x6*y1+ x7*2.9579*y2+x8*234.7*y3+x9*0.57372+x10*0.33808*y1+x11*y2+x12*79.346*y3

s.t x1+x2+x3+x4=8

x5+x6+x7+x8=1 x9+x10+x11+x12=8

x1+1.697x5+0.57372x9≥6 0.58928x2+x6+0.33808x10≥3 1.743x3+2.9579x7+x11≥1

138.3x4+234.7x8+79.346x12≥10

Matlab程序如下:

y1=(1.697+(1/0.58928))/2; y2=(0.57372+(1/1.743))/2; y3=(0.007233+(1/138.3))/2;

C=[-1, -0.58928*y1, -1.743*y2, -138.3*y3, -1.697,-y1, -2.9579*y2, -234.7*y3, -0.57372, -0.33808*y1, -y2, -79.346*y3];

A=[-1 0 0 0 -1.697 0 0 0 -0.57372 0 0 0;0 -0.58928 0 0 0 -1 0 0 0 -0.33808 0 0;0 0 -1.743 0 0 0 -2.9579 0 0 0 -1 0;0 0 0 -138.3 0 0 0 -234.7 0 0 0 -79.346]; B= [-6,-3,-1,-10];

Aeq=[1 1 1 1 0 0 0 0 0 0 0 0 ; 0 0 0 0 1 1 1 1 0 0 0 0 ;0 0 0 0 0 0 0 0 1 1 1 1]; beq=[8 1 8]; vlb=zeros(1,12);

vub=[];

[x,fval]=linprog(C,A,B,Aeq,beq,vlb,vub) 运行结果如下: x =

2.9090 5.0910 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 5.3876 0.0000 1.0000 1.6124 fval = -14.2872

结果分析:可得到的最大利润为1428720000美元,基金管理员对各货币的兑换操作情况

如下表

美元 英镑 马克

4. 某城市要建立一个消防站,为该市所属的七个区服务,如图所示.问应设在那个区,才能使它至最远区的路径最短.

美元 2.9090 0 5.3876 英镑 5.0910 0 0 马克 0 0 1.0000 日元 0 1.0000 1.6124

解:

对于本题进行分类讨论:

1)若将消防站设在1区,运用Dijkstra方法求最远距离

V1 0 V2 2 2 V3 4 4 V4 10 9 9 V5 20 6 6 V6 4.5 4.5 V7 6 6 离1区最远的是4区,其最短路径为1-2-3-5-4,最短距离为10

2)若将消防站设在2区,运用Dijkstra方法求最远距离

V1 3 3 V2 0 V3 2 2 V4 8 7 7 V5 18 4 4 V6 2.5 2.5 V7 4 4 离2区最远的是4区,其最短路径为2-3-5-4,最短距离为7

3)若将消防站设在3区,运用Dijkstra方法求最远距离 V1 5 5 V2 2 2 V3 0 V4 6 5 5 V5 2 2 V6 4.5 4.5 V7 6 6 离3区最远的是7区,其最短路径为3-5-6-7,最短距离为7.5

4)若将消防站设在4区,运用Dijkstra方法求最远距离

V1 10 10 V2 21 7 7 V3 6 5 5 V4 0 V5 3 3 V6 7 7 V7 8.5 8.5 离4区最远的是1区,其最短路径为4-5-3-2-1,最短距离为10 5)若将消防站设在5区,运用Dijkstra方法求最远距离 V1 V2 V3 V4 V5 V6 V7 7 7 18 4 4 2 2 3 3 0 4 4 5.5 5.5 离5区最远的是1区,其最短路径为5-3-2-1,最短距离为7

6)若将消防站设在6区,运用Dijkstra方法求最远距离 V1 5.5 5.5 V2 2.5 2.5 V3 4.5 4.5 V4 7 7 V5 4 4 V6 0 V7 1.5 1.5 离6区最远的是4区,其最短路径为6-5-4,最短距离为7

7)若将消防站设在7区,运用Dijkstra方法求最远距离 V1 7 7 V2 4 4 V3 6 6 V4 8.5 8.5 V5 5.5 5.5 V6 1.5 1.5 V7 0 离7区最远的是4区,其最短路径为7-6-5-4,最短距离为8.5 结果分析: 将消防站设在2,5,6区均满足最短的条件,但由于2,5区均有4条支

路,而6区只有3条,而且5区的4条支路中有一条通往1区的“死”路,故将消防站设在6区是最佳方案,可以有效地减少道路状况带来的可能的不利因素,例如交通堵塞等情况。