lingo优化练习即详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Lingo 作业解题过程
1.某储蓄所每天的营业时间是上午9时到下午5时。根据经验,每天不同时间段所需要的服务
员数量如下表示。储蓄所可以雇佣全时和半时两类服务员。全时服务员每天报酬100元,从上午9时到下午5时工作,但中午12时到下午2时之间必须安排1h 的午餐时间。储蓄所每天可以雇佣不超过3名的半时服务员,每个半时服务员必须连续工作4h,报酬40元,问储蓄所应如何雇用全时和半时服务员。如果不能雇佣半时服务员,每天至少增加多少费用。如果雇佣半时服务员的数量没有限制,每天可以减少多少费用。
时间段/h 9~10 10~11 11~12 12~1 1~2 2~3 3~4 4~5
服务员数
4
3
4
6
5
6
8
8
解:(1)设1x 为雇佣的全职人数,2x 为12-1小时休息的人数,1y -5y 分别为1-5时段开始雇佣的半时人员的人数。表1为各时间段的工作人数。每个时间段的工作人数要满足题目中的要求。
表1 各时间段在工作的服务员 时间段/h 服务员
9-10 11x y + 10-11 112x y y ++
11-12
3
11
i i x y =+å
12-1
4
121
i i x y x =+
-å
1-2
5
22
i i x y =+
å
2-3
5
13
i i x y =+å 3-4
5
14
i i x y =+
å
4-5
15x y +
根据每个时段满足的要求,建立模型如下:
()5
1
23
1111
1
1
4
5
5
122
11
2
3
5
1154
5
1
min 100*x 140
:
(1)x y 4; (2) x 3; (3) x 4 ;
(4)x x 6;(5)x
5;(6)x 6
(7)x 8;(8)x 8
3
i i i i i i i i i i y st y y y y y y y y =========++>+
>+
>-+>+
>+
>+
>+><å
邋邋
å
å
通过上述模型,利用lingo 编程求解如下: :sets :
quanshi/1..2/:x;!x(1)为雇佣的全职人数,x (2)为12-1时休息的人数;
banshi/1..5/:y; !y1-y5为1-5时间段雇佣的半时人数,超过5阶段雇佣半时员工不划算; endsets
min =100*x(1)+@sum (banshi:y)*40; @sum (banshi:y)<3;
@for (quanshi:@gin (x)); !限定x 取整数; @for (banshi:@gin (y)); !限定y 取整数;
x(1)+y(1)>4; !第一阶段要满足的服务员人数; x(1)+y(1)+y(2)>3; !第二阶段要满足的服务员人数; x(1)+y(1)+y(2)+y(3)>4; !第三阶段要满足的服务员人数; x(1)-x(2)+y(1)+y(2)+y(3)+y(4)>6; !第四阶段要满足的服务员人数; x(2)+y(2)+y(3)+y(4)+y(5)>5; !第五阶段要满足的服务员人数; x(1)+y(3)+y(4)+y(5)>6; !第六阶段要满足的服务员人数; x(1)+y(4)+y(5)>8; !第七阶段要满足的服务员人数; x(1)+y(5)>8; !第八阶段要满足的服务员人数;
程序运行的结果为最少花费820元,雇佣全时员工7人,半时员工3人,半时员工分别在第二时段雇佣2人,第五时段雇佣1人,12-1时去吃饭的全是员工为2人,剩下5人在1-2时吃饭。
(2)第二问直接可以看出答案,编程也可以。 min =100*x1; x1-x2>6; x2>5;
运行程序得出答案1100元,与第一问的820元,要增加费用280元。
(3)第三问直接将第一问的程序中@sum (banshi:y)<3; 删除(即对雇佣的半时服务员的个数没有限制),可得出结果本题的结果。
最少花费560元,第一时段雇佣半时员工6人,第五时段雇佣半时人员8人,就可以满足每个时段所需要的员工要求。节省费用820-560=260元。
2.某银行经理计划用一笔资金进行有价证券的投资,可供购进的证券以及其信用等级、到期
年限、收益如表所示。按照规定,市政证券的收益可以免税,其他证券的收益需按50%纳税。此外还有以下限制:
1) 政府及代办机构的证券至少要购进400万元;
2) 所购证券的平均信用等级不超过1.4(信用等级数字越小,信用程度越高); 3) 所购证券的平均到期年限不超过5年。 证券名称 证券种类 信用等级 到期年限/年 到期税前收益/%
A 市政 2 9 4.3
B 代办机构 2 15 5.4
C 政府 1 4 5.0
D 政府 1 3 4.4
E 市政 5 2 4.5
(1) 若该经理有1000万元资金,应如何投资?
(2) 如果能以2.75%的利率借到不超过100万元资金,该经理应如何操作?
(3) 在1000万元资金情况下,若证券A 的税前收益增加为4.5%,投资应否改变?如证券 C 的税前收益减少为4.8%,投资应否改变?
解:i x ,i y ,i z ,i p ,i q 分别为购买的第i 种证券的价格数量,第i 种证券的信用等级、到期年限、到期税前收益、缴纳税的利率。
(1)第一问有1000万元,根据题目中的三个要求,①所有证券的平均信用等级不超过1.4,②B,C,D 类证券的购买总数需要超过400万元。③所有证券的平均到期年限不超过5年。建立模型如下:
42
max :/1000 1.4
1000/10005400
i i i
i i i i i i i x p q st x y x x z x ==
<=<>å
åååå
利用lingo 编程: sets :
touzi/1..5/:x,y,z,p,q; endsets data :
y=2 2 1 1 5 ; z=9 15 4 3 2 ; p=4.3 5.4 5.0 4.4 4.5 ; q=1 0.5 0.5 0.5 1 ; enddata
@sum (touzi:x*y)/1000<1.4; !所购证券的平均信用等级不超过1.4; @sum (touzi:x)=1000; !1000全部用于投资;
@sum (touzi:x*z)/1000<5; !所购证券的平均到期年限不超过5年;
x(2)+x(3)+x(4)>400; !政府及代办机构的证券至少要购进400万元;