lingo优化练习即详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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万元;

相关文档
最新文档