LINGO实验项目
- 格式:doc
- 大小:1.75 MB
- 文档页数:37
LINGO 实验报告一.实验目的1、熟悉LINGO 软件的使用方法、功能;2、学会用LINGO 软件求解一般的线性规划问题。
二.实验内容1、求解线性规划:12121212max z x 2x 2x 5x 12s.t.x 2x 8x ,x 0=++≥⎧⎪+≤⎨⎪≥⎩2、求解线性规划:12121212min z 20x 10x 5x 4x 24s.t.2x 5x 5x ,x 0=++≤⎧⎪+≥⎨⎪≥⎩3、假设现在一个计算机厂商要生产两种型号的PC :标准型(standard)和增强型(turbo),由于生产线和劳动力工作时间的约束,使得标准型PC 最多生产100台。
增强型PC 最多生产120台;一共耗时劳动力时间不能超过160小时。
已知每台标准型PC 可获利润$100,耗掉1小时劳动力工作时间;每台增强型PC 可获利润$150,耗掉2小时劳动力工作时间。
请问:该如何规划这两种计算机的生产量才能够使得最后获利最大?三. 模型建立1、求解线性规划:12121212max z x 2x 2x 5x 12s.t.x 2x 8x ,x 0=++≥⎧⎪+≤⎨⎪≥⎩2、求解线性规划:12121212min z 20x 10x 5x 4x 24s.t.2x 5x 5x ,x 0=++≤⎧⎪+≥⎨⎪≥⎩3、设生产标准型为1x 台;生产增强型2x 台,则可建立线性规划问题数学模型为12121212max z 100x 150x x 100x 120s.t.x 2x 160x ,x 0=+≤⎧⎪≤⎪⎨+≤⎪⎪≥⎩四. 模型求解(含经调试后正确的源程序)1、求解线性规划:model:max=x1+2*x2;2*x1+5*x2>12;x1+2*x2<8;end结果显示:2、求解线性规划:model:min=20*x1+10*x2;5*x1+4*x2<24;2*x1+5*x2>5;End结果显示:3、求解线性规划:model:mAX=100*x1+150*x2; x1+2*x2<160;x1<100;x2<120;end结果显示:五.结果分析对于第一题中我们得出最优解:x1=0;x2=4;最优值max=8;第二题中我们得出最优解:x1=0;x2=1;最优值min=10;第三题中我们得出最优解:x1=1000;x2=30;最优值max=14500;即:生产标准型100台,生产增强型30台时,使得最后获利达最大,为14500。
[数学软件及应用(Lingo)实验报告范文]lingo实验报告范文心得2022~2022学年第二学期短学期《数学软件及应用(Lingo)》实验报告班级数学131班姓名张金库学号成绩实验名称奶制品的生产与销售方案的制定完成日期:2022年9月3日实验名称:奶制品的生产与销售方案的制定二、实验目的及任务了解并掌握LINGO的使用方法、功能与应用;学会利用LINGO去解决实际中的优化问题。
三、实验内容问题一奶制品加工厂用牛奶生产,两种奶制品,1桶牛奶可以在甲类设备上用12h加工成3kg,或者在乙类设备上用8h加工成4kg。
根据市场的需求,生产,全部能售出,且每千克获利24元,每千克获利16元。
现在现在加工场每天能的到50桶牛奶的供给,每天正式工人总的劳动时间为480h,并且甲类设备每天至多能加工100kg,乙类设备的加工能力没有限制。
为增加工厂的利益,开发奶制品的深加工技术:用2h和3元加工费,可将1kg加工成0.8kg高级奶制品,也可将1kg加工成0.75kg高级奶制品,每千克能获利44元,每千克能获利32元。
试为该工厂制订一个生产销售方案,使每天的净利润最大,并讨论以下问题:假设投资30元可以增加供给1桶牛奶,投资3元可以增加1h的劳动时间,应否做这些投资?假设每天投资150,可以赚回多少?每千克高级奶制品,的获利经常有10%的波动,对制订的生产销售方案有无影响?假设每千克获利下降10%,方案应该变化吗?假设公司已经签订了每天销售10kg的合同并且必须满足,该合同对公司的利润有什么影响?问题分析要求制定生产销售方案,决策变量可以先取作每天用多少桶牛奶生产,,再添上用多少千克加工,用多少千克加工,但是问题要分析,的获利对生产销售方案的影响,所以决策变量取作,,,每天的销售量更为方便。
目标函数是工厂每天的净利润——,,,的获利之和扣除深加工费用。
根本模型决策变量:设每天销售kg,kg,kg,kg,用kg加工,用kg加工。
lingo实验报告《lingo 实验报告》一、实验目的本次 lingo 实验旨在深入了解和掌握 Lingo 软件在优化问题求解中的应用,通过实际操作和案例分析,提高对数学建模和优化算法的理解与运用能力。
二、实验环境本次实验使用的计算机配置为:处理器_____,内存_____,操作系统_____。
Lingo 软件版本为_____。
三、实验内容(一)线性规划问题1、问题描述考虑一个生产计划问题,某工厂生产两种产品 A 和 B,生产 A 产品每个需要消耗 2 个单位的原材料和 3 个单位的工时,生产 B 产品每个需要消耗 3 个单位的原材料和 2 个单位的工时。
工厂现有原材料 100 个单位,工时 80 个单位。
A 产品的单位利润为 5 元,B 产品的单位利润为 4 元。
求如何安排生产计划,使得总利润最大。
2、数学模型设生产 A 产品 x 个,生产 B 产品 y 个,则目标函数为:Max Z =5x + 4y约束条件为:2x + 3y <= 1003x + 2y <= 80x >= 0y >= 03、 Lingo 代码及求解结果```lingomodel:max = 5x + 4y;2x + 3y <= 100;3x + 2y <= 80;x >= 0;y >= 0;end```求解结果为:x = 20,y = 20,最大利润为 180 元。
(二)整数规划问题1、问题描述某物流公司需要安排车辆运输货物,有两种车型可供选择,大型车每辆可载货10 吨,小型车每辆可载货5 吨。
共有货物80 吨需要运输,且大型车的数量不能超过 8 辆,小型车的数量不能超过 12 辆。
大型车每辆的运输成本为 100 元,小型车每辆的运输成本为 60 元。
求如何安排车辆,使得运输成本最低。
2、数学模型设安排大型车 x 辆,小型车 y 辆,则目标函数为:Min C = 100x +60y约束条件为:10x + 5y >= 80x <= 8y <= 12x >= 0 且为整数y >= 0 且为整数3、 Lingo 代码及求解结果```lingomodel:min = 100x + 60y;10x + 5y >= 80;x <= 8;y <= 12;@gin(x);@gin(y);end```求解结果为:x = 6,y = 4,最低运输成本为 840 元。
lingo上机实验报告
一、实验目的
本实验的目的是通过使用 Lingo 软件学习并实践线性规划的基础知识,掌握 Lingo 软件的使用方法,以及掌握如何建立并求解线性规划问题。
二、实验内容
本次实验的内容主要包括以下几个部分:
1. Lingo 软件的安装及简单的使用操作。
2. 线性规划模型的建立与求解。
3. Lingo 软件在解决线性规划问题中的应用。
三、实验步骤
2. 运行 Lingo 软件后,打开一个新的工作表。
假设现有三种纸张,它们的价格分别为 10 元,15 元和 20 元。
在不超过 100 元的总预算下,现在需要购买这些纸张,使得纸张的总重量不少于 100 万克。
要求建立模型并求解。
4. 打开工具栏,分别输入模型所需的变量及约束条件,并设定好各个变量的范围。
5. 在“Lingo”界面上显示得到最优解。
6. 查看结果,进行分析。
四、实验结果
在 Lingo 软件中建立了一个线性规划模型,并成功求解。
将模型的结果输出,得到以下结果:
总共需要购买 25 万克的第一种纸张,50 万克的第二种纸张和 25 万克的第三种纸张。
总共花费 1100 元。
五、实验分析
本实验采用 Lingo 软件来完成线性规划问题的建立和求解。
在输入变量和约束条件后,Lingo 软件能够直观地展示出问题,并能够方便地求解出最佳解。
通过本实验,我们
可以看出 Lingo 软件在解决线性规划问题上的优势,它不仅简单易用,而且在速度上较为快捷,能够有效提高解决问题的效率。
实验一:利用Lingo 软件求解线性规划问题实验一 利用Lingo 软件求解线性规划问题1、 实验目的和任务1.1. 进一步掌握Lingo 编程操作;1.2通过实验进一步掌握运筹学线性规划问题的建模以及求解过程,提高学生分析问题和解决问题能力。
2、 实验仪器、设备及材料计算机、Lingo3、 实验内容料场选址问题P10某公司有6个建筑工地要开工,每个工地的位置(用平面坐标a,b 表示,距离单位:km )及水泥日用量d(单位:t)由下表给出,目前有两个临时料场位于P (5,1),Q (2,7),日储量各有20t.请回答以下问题: 假设从料场到工地之间有直线道路相连,试制定每天的供应计划,即从P,Q 两料场分别向各工地运送多少吨水泥,使总的吨公量数最小。
工地的位置(a,b )及水泥日用量d建模 设工地的位置为(,)i i a b ,水泥日用量为i d ,i=1,2,…,6;料场位置为(,)j j x y ,日储量为j e ,j=1,2; 从料场j 向工地i 的运送量为ij c 。
决策变量:在问题(1)中,决策变量就是料场j 向工地i 的运送量为ij c ;在问题(2)中,决策变量除了料场j 向工地i 的运送量为ij c 外,新建料场位置(,)j j x y 也是决策变量。
目标函数:这个优化问题的目标函数f 是总砘公量数(运量乘以运输距离),所以优化目标可表为2611min j i f c ===∑∑约束条件:各工地的日用量必须满足,所以21,1,2, (6)ij ijc d i ===∑各料场的运送量不能超过日储量,所以61,1,2. ij jic e j =≤=∑求解过程编写模型程序:(介绍集合的定义及应用)model:sets:!确定变量a(1),a(2),a(3),a(4),a(5),a(6);demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:!分割数据的空格与逗号或回车的作用是等价的;a=1.25 8.75 0.5 5.75 3 7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;!a=enddatainit:!lingo对数据是按列赋值的,而不是按行;x,y=5,1,2,7;endinit[OBJ] min=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));@for(demand(i):[demand_con] @sum(supply(j):c(i,j))=d(i););@for(supply(i):[supply_con] @sum(demand(j):c(j,i))<=e(i););@for(supply(i):@bnd(0.5,x(i),8.75);@bnd(0.75,y(i),7.75););End计算结果:(如果你使用的是试用版软件,则可能不能用全局求解器求解本例,因为问题规模太大了,激活全局最优求解程序的方法,是用“lingo|Options”菜单命令打开选项对话框,在“Global Solver”选项卡上选择“Use Global Solver”)Local optimal solution found.Objective value: 85.26604Total solver iterations: 61Variable Value Reduced CostA( 1) 1.250000 0.000000A( 2) 8.750000 0.000000A( 3) 0.5000000 0.000000A( 4) 5.750000 0.000000A( 5) 3.000000 0.000000A( 6) 7.250000 0.000000B( 1) 1.250000 0.000000B( 2) 0.7500000 0.000000B( 3) 4.750000 0.000000B( 4) 5.000000 0.000000B( 5) 6.500000 0.000000B( 6) 7.750000 0.000000D( 1) 3.000000 0.000000D( 2) 5.000000 0.000000D( 3) 4.000000 0.000000D( 4) 7.000000 0.000000D( 5) 6.000000 0.000000D( 6) 11.00000 0.000000X( 1) 3.254883 0.000000X( 2) 7.250000 0.6335133E-06 Y( 1) 5.652332 0.000000Y( 2) 7.750000 0.5438639E-06 E( 1) 20.00000 0.000000E( 2) 20.00000 0.000000C( 1, 1) 3.000000 0.000000C( 1, 2) 0.000000 4.008540C( 2, 1) 0.000000 0.2051358C( 2, 2) 5.000000 0.000000C( 3, 1) 4.000000 0.000000C( 3, 2) 0.000000 4.487750C( 4, 1) 7.000000 0.000000C( 4, 2) 0.000000 0.5535090C( 5, 1) 6.000000 0.000000C( 5, 2) 0.000000 3.544853C( 6, 1) 0.000000 4.512336C( 6, 2) 11.00000 0.000000Row Slack or Surplus Dual PriceOBJ 85.26604 -1.000000DEMAND_CON( 1) 0.000000 -4.837363DEMAND_CON( 2) 0.000000 -7.158911DEMAND_CON( 3) 0.000000 -2.898893DEMAND_CON( 4) 0.000000 -2.578982DEMAND_CON( 5) 0.000000 -0.8851584DEMAND_CON( 6) 0.000000 0.000000SUPPLY_CON( 1) 0.000000 0.000000SUPPLY_CON( 2) 4.000000 0.000000如果把料厂P,Q的位置看成是已知并且固定的,这时是LP模型,只需把上面的程序中初始段的语句移到数据段就可以了。
实验项目一线性规划实验学时:2实验目的:线性规划(Linear Programming,简写LP)是运筹学中最成熟的一个分枝,而且是应用最为广泛的一个运筹学分枝,是解决最优化问题的重要工具。
而目前 Lindo/lingo 是求解线性规划比较成熟的一个软件,通过本实验,掌握线性规划模型在 Lindo/lingo 中的求解,并能达到灵活运用。
实验要求:1.掌握线性规划的建模步骤及方法;2.掌握Lindo/lingo 的初步使用;3.掌握线性规划模型在Lindo/lingo 建模及求解;4.掌握线性规划的灵敏度分析实验内容及步骤:例:美佳公司计划制造I、II 两种家电产品。
已知各制造一件时分别占用设备A、B 的台时、调试时间、调试工序每天可用于这种家电的能力、各售出一件时的获利情况,如表1-1 所示。
1.问该公司应制造两种家电各多少件,使其获取的利润最大。
2. 如果资源出租,资源出租的最低价格至少是多少(即每种资源的影子价格是多少)。
3.若家电I 的利润不变,家电II 的利润在什么范围内变化时,则该公司的最优生产计划将不发生变化。
4. 若设备A 和B 每天可用能力不变,则调试工序能力在什么范围内变化时,问题的最优基不变。
解:设x1表示产品I 的生产量; x2表示产品II 的生产量,所在该线性规划的模型为:从此线性规划的模型中可以看出,第一个小问是典型的生产计划问题,第二小问是相应资源的影子价格,第三和第四个小问则是此问题的灵敏度分析。
现在我们利用lingo8.0 来教你求解线性规划问题。
第一步,启动lingo 进入初始界面如下图1-1 和图1-2 所示:第二步,在进行线性规划模型求解时,先要对初始求解方法及参数要进行设置,首先选择lingo 菜单下的Option 菜单项,并切换在general solver(通用求解器)页面下,如下图1-3 所示:general solver 选项卡上的各项设置意义如下表格1-1 所示:表格1-1 general solver 选项卡上的各项设置意义接下来再对Linear Solver(线性求解器)选项卡进行设置,切换界面如所示:其各项设置意义如下表格1-2 所示:表格1-2 Linear Solver 选项卡各项设置意义因为这个线性规划模型较为简单,数字也是比较小的,而且需要进行灵敏度分析,所以对general solver 选项卡上的Dual Computations(对偶计算)项设为“Prices and Ranges(计算对偶价格并分析敏感性)”。
lingo实验报告以下是为大家整理的lingo实验报告的相关范文,本文关键词为lingo,实验,报告,实验,名称,推销员,指派,问题,目的,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。
一、实验名称:推销员指派问题二、实验目的及任务:1、掌握Lingo软件的使用方法2、编写简单的Lingo程序3、解决Lingo中的最优指派问题三、实验内容1、问题描述一个公司要分派5个推销员去5个地区推销某种产品,5个推销员在各个地区推销这种产品的预期利润如下表所示。
若每个推销员只能去一个地区。
应如何分派这5个推销员才能使公司的利润为最大?2、模型建立?1指派第i个人去第j个地区决策变量:设xij??(i,j=1,2,3,4,5)0不指派第i个人去第j个地区?目标函数:设总利润为z,第i 个人去第j个地区的利润为A(,iji,j=1,2,3,4,5)假设Aij为指派矩阵,则maxz???Aijxiji?1j?155约束条件:1.第j个地区只有一个人去:?xi?15ij?1(j=1,2,3,4,5)2.第i个人只去一个地区:?xj?15ij?1(i=1,2,3,4,5)由此得基本模型:maxz???Aijxiji?1j?155s,t,5?xi?15ij?1(j=1,2,3,4,5)?xj?1ij?1(i=1,2,3,4,5)xij?0或1(i,j=1,2,3,4,5)3、Lingo程序(一)常规程序Lingo输入:model:max=1*x11+8*x12+9*x13+2*x14+1*x15+5*x21+6*x22+3*x23+10*x24+ 7*x25+3*x31+10*x32+4*x33+11*x34+3*x35+7*x41+7*x42+5*x43+4*x4 4+8*x45+4*x51+2*x52+6*x53+3*x54+9*x55;x11+x12+x13+x14+x15=1;x 21+x22+x23+x24+x25=1;x31+x32+x33+x34+x35=1;x41+x42+x43+x44+x4 5=1;x51+x52+x53+x54+x55=1;x11+x21+x31+x41+x51=1;x12+x22+x32+x4 2+x52=1;x13+x23+x33+x43+x53=1;x14+x24+x34+x44+x54=1;x15+x25+x3 5+x45+x55=1;endLingo输出:globaloptimalsolutionfound.objectivevalue:45.00000Infeasibilities:0.000000Totalsolveriterations:8 VariableValueReducedcostx117.000000x120.000000x130.000000x140.0000000.0000001.0000000.0000007.000000x158.000000x214.000000 x223.000000 x237.000000 x240.000000 x253.000000 x317.000000 x320.000000 x337.000000 x340.000000 x358.000000 x410.000000 x420.000000 x433.000000 x444.000000 x450.000000 x514.000000 x520.0000000.0000000.0000000.0000001.0000000.0000000.0000001.0000 000.0000000.0000000.0000001.0000000.0000000.0000000.0000000.00 00000.0000000.0000006.000000x530.0000003.000000x540.0000006.000000x551.0000000.000000RowslackorsurplusDualprice11.00000029.000000310.00000411.0000058.00000069.0000007-1.0000008-1.00000090.000000100.000000110.000000(二)集合函数程序Lingo输入:model:sets:person/1..5/;area/1..5/;assign(person,area):A,x;endsetsdata:A=1,8,9,2,15,6,3,10,73,10,4,11,345.000000.0000000.0000000.0000000.0000000.0000000.0000000.0000 000.0000000.0000000.0000007,7,5,4,84,2,6,3,9;enddatamax=@sum(assign:A*x);@for(person(i):@sum(area(j):x(i,j))=1);@for(area(j):@sum(person(i):x(i,j) )=1);@for(assign(i,j):@bin(x(i,j)));endLingo输出:globaloptimalsolutionfound.objectivevalue:45.00000objectivebound:45.00000Infeasibilities:0.00000 0extendedsolversteps:0Totalsolveriterations:0VariablecostA(1,1)0.000000A(1,2)0.000000A(1,3)0.000000A(1,4)0.000000A(1,5)0.000000A(2,1)0.000000A(2,2)0.000000A(2,3)0.000000A(2,4)0.000000A(2,5)0.000000A(3,1)0.000000A(3,2)0.000000A(3,3)Reduced1.0000008.0000009.0000002.0000001.0000005.0000006. 0000003.00000010.000007.0000003.00000010.000004.000000 Value最后,小编希望文章对您有所帮助,如果有不周到的地方请多谅解,更多相关的文章正在创作中,希望您定期关注。
运筹学lingo实验报告
运筹学lingo实验报告
一、引言
实验目的
本次实验旨在探索运筹学lingo在解决实际问题中的应用,了解lingo的基本使用方法和解题思路。
实验背景
运筹学是一门研究决策和规划的学科,其能够帮助我们优化资源分配、解决最优化问题等。
lingo是一种常用的运筹学工具,具有强大的求解能力和用户友好的界面,被广泛应用于各个领域。
二、实验步骤
准备工作
•安装lingo软件并激活
•熟悉lingo界面和基本功能
确定问题
•选择一个运筹学问题作为实验对象,例如线性规划、整数规划、网络流等问题
•根据实际问题,使用lingo的建模语言描述问题,并设置变量、约束条件和目标函数
运行模型
•利用lingo的求解器,运行模型得到结果
结果分析
•分析模型求解结果的合理性和优劣,对于不符合要求的结果进行调整和优化
结论
•根据实验结果,总结lingo在解决该问题中的应用效果和局限性,对于其他类似问题的解决提出建议和改进方案
三、实验总结
实验收获
•通过本次实验,我熟悉了lingo软件的基本使用方法和建模语言,增加了运筹学领域的知识和实践经验。
实验不足
•由于时间和条件的限制,本次实验仅涉及了基本的lingo应用,对于一些复杂问题的解决还需要进一步学习和实践。
•在以后的学习中,我将继续深入研究lingo的高级功能和应用场景,以提升运筹学问题的求解能力。
以上就是本次实验的相关报告内容,通过实验的实践和总结,我对lingo在运筹学中的应用有了更深入的理解,为今后的学习和研究奠定了基础。
实验项目一线性规划实验学时:2实验目的:线性规划(Linear Programming,简写LP)是运筹学中最成熟的一个分枝,而且是应用最为广泛的一个运筹学分枝,是解决最优化问题的重要工具。
而目前 Lindo/lingo 是求解线性规划比较成熟的一个软件,通过本实验,掌握线性规划模型在 Lindo/lingo 中的求解,并能达到灵活运用。
实验要求:1.掌握线性规划的建模步骤及方法;2.掌握Lindo/lingo 的初步使用;3.掌握线性规划模型在Lindo/lingo 建模及求解;4.掌握线性规划的灵敏度分析实验内容及步骤:例:美佳公司计划制造I、II 两种家电产品。
已知各制造一件时分别占用设备A、B 的台时、调试时间、调试工序每天可用于这种家电的能力、各售出一件时的获利情况,如表1-1 所示。
1.问该公司应制造两种家电各多少件,使其获取的利润最大。
2. 如果资源出租,资源出租的最低价格至少是多少(即每种资源的影子价格是多少)。
3.若家电I 的利润不变,家电II 的利润在什么范围内变化时,则该公司的最优生产计划将不发生变化。
4. 若设备A 和B 每天可用能力不变,则调试工序能力在什么范围内变化时,问题的最优基不变。
解:设x1表示产品I 的生产量; x2表示产品II 的生产量,所在该线性规划的模型为:从此线性规划的模型中可以看出,第一个小问是典型的生产计划问题,第二小问是相应资源的影子价格,第三和第四个小问则是此问题的灵敏度分析。
现在我们利用lingo8.0 来教你求解线性规划问题。
第一步,启动lingo 进入初始界面如下图1-1 和图1-2 所示:第二步,在进行线性规划模型求解时,先要对初始求解方法及参数要进行设置,首先选择lingo 菜单下的Option 菜单项,并切换在general solver(通用求解器)页面下,如下图1-3 所示:general solver 选项卡上的各项设置意义如下表格1-1 所示:表格1-1 general solver 选项卡上的各项设置意义接下来再对Linear Solver(线性求解器)选项卡进行设置,切换界面如所示:其各项设置意义如下表格1-2 所示:表格1-2 Linear Solver 选项卡各项设置意义因为这个线性规划模型较为简单,数字也是比较小的,而且需要进行灵敏度分析,所以对general solver 选项卡上的Dual Computations(对偶计算)项设为“Prices and Ranges(计算对偶价格并分析敏感性)”。
对Linear Solver(线性求解器)选项卡上的Method(求解方法)项设为“Primal Simplex (原始单纯形法)”其余的选项采用Lingo 默认值,注竟,如果模型变量较多,数字较大时,就需要对其它选项进行设置。
第三步,在Lingo 的命令窗口中输入此线性规划的模型(注意没有上下标之分),如下图1-5 所示:然后单击File 菜单下的Save,将模型保存,以供以后使用。
(当然也可以不保存模型。
第四步,单击Lingo 菜单下的Solver 菜单项,对模型进行求解。
其结果如下所示:求解器状态窗口对于监视求解器的进展和模型大小是有用的。
求解器状态窗口提供了一个中断求解器按钮(Interrupt Solver),点击它会导致LINGO 在下一次迭代时停止求解。
在绝大多数情况,LINGO 能够交还和报告到目前为止的最好解。
一个例外是线性规划模型,返回的解是无意义的,应该被忽略。
但这并不是一个问题,因为线性规划通常求解速度很快,很少需要中断。
注意:在中断求解器后,必须小心解释当前解,因为这些解可能根本就不最优解、可能也不是可行解或者对线性规划模型来说就是无价值的。
在中断求解器按钮的右边的是关闭按钮(Close)。
点击它可以关闭求解器状态窗口,不过可在任何时间通过选择Windows|Status Window 再重新打开。
在中断求解器按钮的右边的是标记为更新时间间隔(Update Interval)的域。
LINGO 将根据该域指示的时间(以秒为单位)为周期更新求解器状态窗口。
可以随意设置该域,不过若设置为0 将导致更长的求解时间——LINGO 花费在更新的时间会超过求解模型的时间。
Total 显示当前模型的全部变量数,Nonlinear 显示其中的非线性变量数,Integers 显示其中的整数变量数。
非线性变量是指它至少处于某一个约束中的非线性关系中。
从计算结果告诉我们:这个线性规划的最优解为x1=3.5,x2=1.5,最优值为z=8.5,即产品I 生产 3.5 件,产品II 生产 1.5 件,可获最大利润8.5元。
另外还可以看出第一个约束的资源剩余7.5 个单位,即设备 A 剩余,对应的影响价格为0;第二个约束和第三个约束对应的资源没有剩余,相应的影子价格为0.25 和0.50;即设备A、设备 B 和调试工序的出让价格分别为0、0.25、0.50。
从中还可以看出迭代经过了四步。
第五步,单击上图窗体中的close 按钮,关闭求解窗体。
然后再单击模型窗体,使其处于活动状态。
接着单击Lingo 菜单下的Range 菜单项,其结果如下所示:目标函数的系数发生变化时(假定约束条件不变),最优解和最优值会改变吗?这个问题不能简单地回答。
上面输出给出了最优基不变条件下目标函数系数的允许变化范围:x1 的系数为(2-1,2+1)=(1,3);x2的系数为(1-0.3333,1+1)=(0.6667,2)。
注意:x1 系数的允许范围需要x2 系数1 不变,反之亦然。
由于目标函数的费用系数变化并不影响约束条件,因此此时最优基不变可以保证最优解也不变,但最优值变化。
用这个结果很容易回答附加问题3。
下面对“资源”的影子价格作进一步的分析。
影子价格的作用(即在最优解下“资源”增加 1 个单位时“效益”的增量)是有限制的。
每增加单位资源利润增长影子价格元,但是,上面输出的 CURRENT RHS 的ALLOWABLE INCREASE 和ALLOWABLE DECREASE 给出了影子价格有意义条件下约束右端的限制范围:设备A 可以无限的增加,设备B最多增加6,调试工序最多最多增加1。
很容易回答问题4 的。
需要注意的是:灵敏性分析给出的只是最优基保持不变的充分条件,而不一定是必要条件。
比如对于上面的问题,“设备 A 最多增加6”的含义只能是“设备A 增加6”时最优基保持不变,所以影子价格有意义,即利润的增加大于牛奶的投资。
反过来,设备 A 增加超过6,影子价格是否一定没有意义?最优基是否一定改变?一般来说,这是不能从灵敏性分析报告中直接得到的。
此时,应该重新用新数据求解规划模型,才能做出判断。
所以,从正常理解的角度来看,我们上面回答“设备 A 最多增加6)”并不是完全科学的。
实验条件:1.清华出版社《运筹学教程》教材;2. Lindo/lingo 计算机软件;实验思考:1、某公司有三个工厂均可生产A,B,C 三种产品.各产品的单件利润分别为35 元,30 元和25 元;市场预测表明:三种产品的需求量分别是 900,1200 和750 件;各种产品的占地面积分别是20,15 和12 平方尺. 一厂仓库面积13000 平方尺,二厂12000 平方尺,三厂5000 平方尺. 产品必须放在库内且在期末一次售出. 问如何按排各厂的生产计划, 使全公司的总收益最高, 建立线性规划模型。
2、某厂生产甲、乙、丙三种产品,已知有关数据如下表所示,试分别回答下列问题:(1)建立线性规划模型,求使该厂获利最大的生产计划;(2)若产品乙、丙的单件利润不变,则产品甲的利润在什么范围内变化时,上述最解不变;(3)若有一种新产品丁,其原料消耗定额:A 为 3 单位,B 为 2单位,单件利润为 2.5 单位。
问该产品是否值得安排生产,并求新的最优计划;若材料A 市场紧缺,除拥有量外一时无法购进,而原材料 B 如数量不足可去市场购买,单价为 0.5,问该厂应否购买,并用运筹概念说明原因,并且购进多少为宜;3、某商场决定:营业员每周连续工作5 天后连续休息2 天,轮流休息。
根据统计,商场每天需要的营业员如下表所示。
营业员需要量统计表商场人力资源部应如何安排每天的上班人数,使商场总的营业员最少。
实验项目五动态规划实验学时:2实验目的:动态规划(dynamic programming,DP)是解决多阶段决策问题的一种有效的数量化方法,难度比较大,技巧性也很强。
Lindo/lingo 是求解动态规划比较常用的软件之一,通过本实验,掌握动态规划模型在Lindo/lingo 中的求解。
实验要求:1.掌握动态规划的建模步骤及方法;2.掌握动态规划模型在Lindo/lingo 转化及求解;3.学会动态规划的执行结果分析实验内容及步骤:例:如图5-1 所示,某地要从A向F地铺设一条输油管道,各点间连线上的数字表示距离。
问应选择什么路线,可是总距离最短?图5-1下面简单说明动态规划的求解建模过程,有助于下一步在Lindo/lingo中模型的表示,这是一个很重要的过程,建议读者不要跳过。
动态规划方法求解时注意事项:(1)动态规划的三个基本要素:阶段、状态、决策。
其中最关键的是状态的描述,最难的也是状态的设计,它关系到算法的时间、空间复杂度,也跟实现的复杂度息息相关。
(2)动态规划的两个条件:最优子结构、无后效性,其中后效性往往容易被忽视。
(3)动态规划本质是用空间换时间,在有大量重叠子问题的时候其优势才能充分体现出来。
上例的求解过程如下:(1)阶段与阶段变量:先把问题从中间站B,C,D,E 用空间位置分成 5 个阶段,阶段用阶段变量k 来描述,k=1,表示第一阶段,k=2 表示第二阶段,…(2)状态与状态变量:每一阶段的左端点(初始条件)集合称为本阶段的状态(即开始的客观条件,或称阶段初态)。
如第三阶段有四个状态S3 ={C1 ,C2,C3,C4}, 第四阶段有三个状态S4={D1, D2 , D3}, …描述过程状态的变量称为状态变量:用小写s1 ,s2 ,s3 …表示第一,第二,第三…阶段的状态变量。
当处在状态C2 时,我们可记s3= C2(3)决策与决策变量:如当处于C2 状态时,下一步怎么走?如何选择路线?即如何决策。
是走向D1,还是走向D2?当过程处于某一阶段的某一状态时,可以作出不同的决策(或选择),从而确定下一阶段的状态,这种决定(或选择)叫决策。
如选择D2,记u3(C2)= D2 即当处于C2 状态时,下一步的决策为D2。
其中u k(s k) 表示第k 阶段当状态处于s k时的决策变量。
一般地,用D k(s k) 表示第k 阶段从状态s k出发的允许决策集合。