运筹学实验讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Lingo软件实验报告
一、实验内容:
1)用lingo软件解决线性规划问题;
2)熟悉lingo软件的相关操作。
3)对线性规划问题建立目标函数,罗列对应的表达式约束条件,并且对各变量设定实际的非负约束,考虑到lingo软件能方便地输入数据,并且有内置建模语言,提供内部处理函数,能很方便地处理一系列约束条件解出目标函数的最值,所以采用lingo软件解决线性规划问题。
4)对目标规划问题进行多目标处理,添加正负偏差变量罗列对应的表达式约束条件,并且对欲达到目标顺序添加优先等级,建立目标函数,利用lingo软件能能很方便地处理一系列约束条件解出目标函数的最值,采用lingo软件解决线性规划问题。
二、实验设备:计算机
三、使用软件:lingo软件
四、软件特点与优势:可以简单地表示模型,能方便地输入数
据和选择输出。
五、举例计算:
1,线性规划
A: 营养套餐问题:根据生物营养学理论,要维持人体正常的生理健康需求,一个成年人每天需要从食物中获取3000cal热
量,55g蛋白质和800mg钙。假定市场上可供选择的食品有猪肉、鸡蛋、大米和白菜,这些食品每千克所含热量和营养成分,以及市场价格见下表。问如何选购才能满足营养的前提下,使购买食品的总费用最小?
解:为了建立该问题的数学模型,假设xj(j=1,2,3,4)分别为猪肉、鸡蛋、大米和白菜每天的购买量,则目标函数为Minz=20x1+8x2+4x3+2x4
表示在满足营养要求的系列约束条件下,确定各种食物的购买量,使每天购买食物的总费用最小。其约束条件是
热量需求:1000x1+800x2+900x3+200x4>=3000
蛋白质需求:50x1+60x2+20x3+10x4>=55
钙需求:400x1+200x2+300x3+500x4>=800
决策变量的非负约束:xj>=0(j=1,2,3,4)
因此,营养配餐问题的数学模型为
Minz=20x1+8x2+4x3+2x4
1000x1+800x2+900x3+200x4>=3000
50x1+60x2+20x3+10x4>=55
400x1+200x2+300x3+500x4>=800
xj>=0(j=1,2,3,4)
B: lingo代码:
model:
min=20*x1+8*x2+4*x3+2*x4;
1000*x1+800*x2+900*x3+200*x4>=3000;
50*x1+60*x2+20*x3+10*x4>=55;
400*x1+200*x2+300*x3+500*x4>=800;
END
C: 结果截屏:
D:运行结果分析:
由运行结构可知:该线性规划的最值为13.33333,即在变量为非负的情况下,只买3.33kg的大米可以满足目标函数的要求。
2,目标规划
A: 设有一纺织厂可生产衣料和窗帘布共两种产品。该厂两
班生产,每周的生产时间为80h,无论生产那种产品,该厂每小时的产量都是1km。根据市场预测,每周窗帘布的销售量为70km,而衣料的销售量为45km。工厂有纺纱9000kg,生产1km窗帘布需要纺纱800kg,生产1km衣料需要纺纱500kg。假定窗帘布和衣料的单位利润分别为2.5千元/km和1.5千元/km,上级主管部门对该厂提出了以下4个顺序目标:
(1)尽可能避免开工不足;
(2)尽可能限制每周加班时间不超过10h;
(3)尽可能满足市场需求;
(4)尽可能减少加班时间。
目标的惩罚因子各为:5、8、9、2.
问该厂应如何安排生产才能使这些目标依序实现?
解:建立该问题的数学模型,设该厂每周生产衣料和窗帘各为x1,x2km,即为决策变量。此外,引进正负偏差变量d,d_.则:生产工时约束:x1+x2+d1_-d1=80
加班时间约束:d1+d2_-d2=10
窗帘布销售量约束:x1+d3_-d3=70
衣料销售量约束:x2+d4_-d4=45
4个有序目标分别为:
P1:minz1=d1_
P2: minz2=d2
P3: minz3=5d3_+3d4_
P4: minz4=d1
综上,该问题的目标规划模型为:
minz=5d1_ +8d5+9(5d3_+3d4_)+2d1 500x1+800x2<=9000
x1+x2+d1_-d1=80
d1+d2_-d2=100
x1+d3_-d3=70
x2+d4_-d4=45
xj>=0,di_,di>=0
B: lingo编程:
model:
min=5*d1_+8*d2+45*d3_+27*d4_+2*d1;
500*x1+800*x2<=9000;
x1+x2+d1_-d1=80;
d1+d2_-d2=100;
x1+d3_-d3=70;
x2+d4_-d4=45;
End
C: 结果截图:
D:运行结果分析:
由运行结果可知:在惩罚因子如给出的条件下,目标函数的最值为3865.即只安排生产衣料18km,此时,开工少62h,比市场需求量少生产52km,减少加班时间45h。
六、实验总结:
在使用lingo软件做实验的时候,我们小组选择了一道关于线性规划的营养套餐问题和一道关于目标规划的工业生产问题。对于实际问题的要求,分别列出约束条件,此外对于目标规划问题列写有正负偏量的有权式,建立相应的数学模型,再根据lingo 软件的语言要求,编写lingo程序,上机运行,得到运行结果。由小组明确分工合作,一步步得以实现。