当前位置:首页 > Lingo软件在求解数学优化问题的使用技巧
1.某昼夜服务的公交路线每天各时间区段内需司机和乘务人员如下:
班次 时间 最少需要人数 1 60 6:00—10:00 2 70 10:00—14:00 3 60 14:00—18:00 4 50 18:00—22:00 5 20 22:00—2:00 6 30 2:00—6:00 设司机和乘务人员分别在各时间区段一开始上班,并连续工作八小时,问该公交线路至少配
备多少名司机和乘务人员?从第一班开始排,试建立线性模型。 分析与求解:
注意在每一时间段里上班的司机和乘务人员中,既包括在该时间段内开始时报到的人员,还包括在上一时间段工作的人员。因为每一时间段只有四个小时,而每个司乘人员却要连续工作八个小时。因此每班的人员应理解为该班次相应时间段开始时报到的人员。
设xi为第i班应报到的人员(i?1,2,?,6),则应配备人员总数为:
Z??xi
i?16按所需人数最少的要求,可得到线性模型如下:
minZ??xi
i?16s.t.?x1?x8?60?x?x?702?1?x2?x3?60??x3?x4?50 ?x?x?205?4?x5?x6?30?x1?60???x1,x2,?,x6?0LINGO程序如下:
MODEL:
min=x1+x2+x3+x4+x5+x6; x1+x6>=60; x1+x2>=70; x2+x3>=60; x3+x4>=50; x4+x5>=20; x5+x6>=30; x1>=60; END
1
得到的解为:
x1=60,x2=10,x3=50,x4=0,x5=30,x6=0;
配备的司机和乘务人员最少为150人。
2 某地区有三个农场共用一条灌渠,每个农场的可灌溉地及分配到的最大用水量如下表:
农场 可灌溉地(亩) 最大用水量(百立方) 1 400 600 2 600 800 3 300 375
各农场均可种植甜菜、棉花和高粱三种作物,各种作物的用水量、净收益及国家规定的该地区各种作物种植总面积最高限额如下表: 作物种类 种植限额(亩) 耗水量(百立方/亩) 净收益(元/亩) 600 3 400 甜菜 500 2 300 棉花 325 1 100 高粱
三个农场达成协议,他们的播种面积与其可灌溉面积相等,而各种农场种何种作物并无限制。问如何制定各农场种植计划才能在上述限制条件下,使本地区的三个农场的总净收益最大。
分析与求解:
设农场1种植的甜菜、棉花和高粱分别为x11,x12,x13亩,农场2种植的甜菜、棉花和高粱分别为x21,x22,x23亩,农场3种植的甜菜、棉花和高粱分别为x31,x32,x33亩。
设农场可耕地为a1?400,a2?600,a3?300,最大用水量为b1?600, b2?800,
b3?375,甜菜、棉花和高粱的种植限额为c1?600,c2?500,c3?325,耗水量为d1?3,d2?2,d3?1,净收益为e1?400,e2?300,e3?100,根据题目条件,可建立如
下线性模型:
maxZ??(ej?xij)
j?1i?133s.t.?3??xij?cj?i?1?3??xij?ai?j?1?3??djxij?bi?j?1j?1,2,3i?1,2,3 i?1,2,3
LINGO编程如下: MODEL:
2
SETS:
place/1..3/:a,b; kind/1..3/:c,d,e; plan(place,kind):x; ENDSETS DATA:
a=400,600,300; b=600,800,375; c=600,500,325; d=3,2,1; e=400,300,100; ENDDATA
max=@sum(kind(j):e(j)*@sum(place(i):x(i,j))); @for(kind(j):@sum(place(i):x(i,j))<=c(j)); @for(place(i):@sum(kind(j):x(i,j))<=a(i)); @for(place(i):@sum(kind(j):d(j)*x(i,j))<=b(i)); END
得到结果如下:
X(1,1)=0,X(1,2)=300,X(1,3)=0 X(2,1)=258.3333,X(2,2)=12.5,X(2,3)=0 X(3,1)=0,X(3,2)=187.5,X(3,3)=0 最大总净收益为253333.3元。
对本题来说,由于数据少,可以不采用数组形式,可直接采用变量,则建立模型如下:
设农场1种植的甜菜、棉花和高粱分别为x1,y1,z1亩,农场2种植的甜菜、棉花和高粱分别为x2,y2,z2亩,农场3种植的甜菜、棉花和高粱分别为x3,y3,z3亩。
根据题目条件,可建立如下线性模型:
maxZ?400(x1?x2?x3)?300(y1?y2?y3)?100(z1?z2?z3)
x1?x2?x3?600??y1?y2?y3?500??z1?z2?z3?325?x1?y1?z1?400?x2?y2?z2?600? ?x?y?z?300333??3x1?2y1?z1?600?3x2?2y2?z2?800?3x3?2y3?z3?375???x1,x2,x3,y1,y2,y3,z1,z2,z3?0s.t.
3
LINGO程序如下:
MODEL:
max=400*(x1+x2+x3)+300*(y1+y2+y3)+100*(z1+z2+z3); x1+x2+x3<=600; y1+y2+y3<=500; z1+z2+z3<=325; x1+y1+z1<=400; x2+y2+z2<=600; x3+y3+z3<=300; 3*x1+2*y1+z1<=600; 3*x2+2*y2+z2<=800; 3*x3+2*y3+z3<=375; END
得到的解如下:
X1=200,Y1=0,Z1=0;
X2=58.33333, Y2=312.5,Z2=0; X3=0,Y3=187.5,Z3=0;
最大总净收益为253333.3元。
3. 公司在各地有4项业务,选定了4位业务员去处理。由于业务能力、经验和其它情况不同,4业务员去处理4项业务的费用(单位:元)各不相同,见下表:
业务 业务员 1 2 3 4 应当怎样分派任务,才能使总的费用最小? 问题分析与求解:
这是一个最优指派问题。引入如下变量: xij??1 1100 600 400 1100 800 500 800 1000 2 1000 300 1000 500 3 700 800 900 700 4 ?1?0若分派第i个人做第j项业务若不分派第i个人做第j项业务
设矩阵a(4,4)为指派矩阵,其中a(i,j)为第i个业务员做第j项业务的业务费。 则可以建立如下模型:
minZ???aijxij
i?1j?144 4
共分享92篇相关文档