数学建模:运用Lindolingo软件求解线性规划
实验1 利用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模型,只需把上面的程序中初始段的语句移到数据段就可以了。
实验三运用Lindo与Lingo解规划问题
运用Lindo 与Lingo 解规划问题【实验目的】1.了解Lindo 与Lingo 的基本使用方法。
2.熟悉掌握运用Lindo 与Lingo 求解规划问题。
【实验内容】(一) 运用Lindo 求解规划问题Lindo 示例1:线性规划问题1212121127264..5012848031000,0Max z x x s t x x x x x x x =++≤+≤≤≥≥在Lindo 环境下,打开一个新文件,直接输入: max 72x1+64x2 st2) x1+x2<50 3) 12x1+8x2<480 4) 3x1<100 end说明: ①第1行是目标函数,2),3),4)是为了标示各约束条件,便于从输出结果中查找相应信息.②每行行尾不用标点符号,程序最后以"end"结束. ③Lindo 中已规定所有决策变量均为非负.④乘号省略,式中不能有括号,右端不能有数学符号. ⑤符号,≤≥与<,>等效. Lindo 示例2:整数规划问题123123123123123234..1.535600280250400600000,0,0,,Max z x x x s t x x x x x x x x x x x x =++++≤++≤≥≥≥均为整数对应的程序是:max 2x1+3x2+4x3 st1.5x1+3x2+5x3<600 280x1+250x2+400x3<60000 end gin 3说明: 最后一行 "gin 3"是说明"3个变量均为整数". Lindo 示例3:0-1变量规划问题123123123111222333123123234..1.53560028025040060000801000801000801000,,,,Max z x x x s t x x x x x x y x y y x y y x y x x x y y y =++++≤++≤≤≤≤≤≤≤均为整数均为0-1变量对应的程序是:max 2x1+3x2+4x3st1.5x1+3x2+5x3<600 280x1+250x2+400x3<60000 x1-1000y1<0 x1-80y1>0 x2-1000y2<0 x2-80y2>0 x3-1000y3<0 x3-80y3>0 end gin 3 int y1 int y2 int y3说明: 最后3行是说明"123,,y y y 均为0-1变量". (二) 运用Lingo 求解规划问题Lingo 示例:非线性规划问题11211222123111221221121122212312231234.8() 5.6()(1086)..5001000015000.50.500.40.60(500)0(500)00,,500Max z x x x x x x x s t x x x x x x x x x x x x x x x x x x x x x =+++-+++≤++≤≤≤-≥-≥=++-=-=≤≤在Lingo 环境下,打开一个新文件,直接输入: Model:max=4.8*x11+4.8*x21+5.6*x12+5.6*x22-10*x1-8*x2-6*x3; x11+x12<x+500; x21+x22<1000; 0.5*x11-0.5*x21>0; 0.4*x12-0.6*x22>0; x=x1+x2+x3; (x1-500)*x2=0; (x2-500)*x3=0; x1<500; x2<500; x3<500; end说明: ①程序以"Model:"开始,每行最后加";",并以"end "结束.②乘号*不能省略,符号,≤≥与<,>等效. ③式中可有括号,右端可有数学符号. ④Lingo 中已规定所有决策变量均为非负.作业1: 用Lingo 或Lindo 软件求6.4中提出的线性规划模型. 作业2:用Lingo 软件求非线性规划模型123123123123112233234..1.53560028025040060000,,(80)0(80)0(80)0.Max z x x x s t x x x x x x x x x x x x x x x =++++≤++≤≥-≥-≥-≥0作业3:分别用Lindo 或Lingo 软件对下题进行求解某广告公司想在电视、广播上做宣传广告,其目的是争(1)受广告影响的女顾客数超过200万;(2)电视广告的费用不超过45万元;(3)电视广告白天至少播出4次,最佳时段至少播出2次;(4)通过网络媒体、杂志做广告各自要重复5到8次。
《数学建模》实验指导_03_Lingo求解线性规划问题
实验二:Lingo求解线性规划问题学时:4学时实验目的:掌握用Lingo求解线性规划问题的方法,能够阅读Lingo结果报告。
实验内容:1、求解书本上P130的习题1:某银行经理计划用一笔资金进行有价证券的投资,可供购进的证券以及其信用等级、到期年限、收益如下表1所示,按照规定,市政证券的收益可以免税,其他证券的收益需按50%的税率纳税,此外还有以下限制:1)政府及代办机构的证券总共至少要购进400万元;2)所购证券的平均信用等级不超过1.4(信用等级数字越小,信用程序越高);3)所购证券的平均到期年限不超过5年。
表 1(1)若该经理有1000万元资金,应如何投资?(2)如果能够以2.75%的利率借到不超过100万元资金,该经理应如何操作?(3)在1000万元资金情况下,若证券A的税前收益增加为4.5%,投资应否改变?若证券C的税前收益减少为4.8%,投资应否改变?列出线性规划模型,然后用Lingo求解,根据结果报告得出解决方案。
2、指派问题:6个人计划做6项工作,其效益如下表(”-”表示某人无法完成某项工作),3、有限制的运输问题:6个发点6个收点,其供应量、接收量和运费如下表1(”-”表示某个发电无法向某个收点运输货物),如果某个发点向某个收点运输货物,则运输量不得低使用Lingo 的一些注意事项1. “>”与“>=”功能相同。
2. 变量与系数间相乘必须用”*”号,每行用”;”结束。
3. 变量以字母开头,不能超过8个字符。
4. 变量名不区分大小写(包括关键字)。
5. 目标函数用min=3*x1+2*x2或max=3*x1+2*x2的格式表示。
6. “!”后为注释。
7. 变量界定函数实现对变量取值范围的附加限制,共4种:@bin(x) 限制x 为0或1 @bnd(L,x,U) 限制L≤x≤U@free(x) 取消对变量x 的默认下界为0的限制,即x 可以取任意实数 @gin(x) 限制x 为整数 其他可见“Lingo 教程.doc ”如书上85页的Lindo 代码可改为如下Lingo 代码: max =72*x1+64*x2; x1+x2<50;12*x1+8*x2<480; 3*x1<100;例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min 212112121≥≤+≥≥++x x x x x x x t s x x在模型窗口中输入如下代码:min =2*x1+3*x2; x1+x2>=350; x1>=100;2*x1+x2<=600;然后点击工具条上的按钮 即可。
数学建模软件LinDoLinGo的简介(修改版)
优化模型的基本类型
若x的一个或多个分量只取离散数值,则优 化模型称为离散优化,或称为组合优化。 如果x的一个或多个分量只取整数数值,称 为整数规划,并可以进一步明确地分为纯 整数规划(x的所有分量只取整数数值)和 混合整数规划(x的部分分量只取整数数 值)。特别地,若x的分量中取整数数值的 范围还限定为只取0或1,则称0-1规划。 此外,整数规划也可以分成整数线性规划 和整数非线性规划。
LINDO/LINGO软件 使用简介
LinDo/LinGo简介
LINDO(Linear Interactive and Discrete Optimizer),即“交互式的线性和离散优化求解 器”,可以用来求解线性规划(LP)和二次规划 (QP);
LINGO(Linear Interactive and General Optimizer),即“交互式的线性和通用优化求解 器”,除了用来求解线性规划(LP)、二次规划 (QP)和非线性规划,还可用于线性和非线性方程 组的求解。
最大的特色:允许决策变量是整数(即整数规划,包 括0-1规划)。
优化建模的一般形式
优化模型是一种特殊的数学模型,优化建 模方法是一种特殊的数学建模方法。
优化模型一般有以下三个要素: 1)决策变量 2)目标函数 3)约束条件
优化建模的一般形式
优化模型从数学上可表述成如下一般形式:
opt z f (x)
连续优化
优化
整数规划
线性规划
二次规划
非线性规划
问题求解的难度增加
优化模型的简单分类和求解难度
简单例子
max
z 2x 3y;
s.t.
4x 3y 10; 3x 5y 12; x, y 0.
用LinDo、LinGo求解规划问题
• • • •
程序2
• •
• • • •
•
!location problem; model: title location problem; sets:!集合段; demand/1..6/:a,b,d;!demand/1,2,3,4,5,6/:a,b,d; suply/1..2/:x,y,e; link(demand,suply):c;!导出集合; endsets data:!数据段; a=1.25,8.75,0.5,5.75,3,7.25; b=1,2.5,0.3,5.8,1,1.3; e=20,20; enddata !init:!初始段; !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(suply(j):c(i,j))=d(i);); @for(suply(i):@sum(demand(j):c(j,i))<=e(i);); @for(suply(i):@free(x); @free(y); ); end
6、尽量使用实数优化,减少整数约束和整数变量。 7、尽量使用光滑优化,减少非光滑约束的个数。 (即:少用绝对值、符号函数、多个变量求最大/ 最小值、四舍五入、取整函数等)。 8、合理设置上下界,尽量给初值。 9、参数数量级要适当。一个原则是,系数矩阵中非 零元素的绝对值不能大于10000或者小于0.0001。
运用Lingo进行线性规划求解(实例)
LinDo
输入模型 求解
点击求解按钮 结果
即可
♂返回
!注释内容,可用中文
输
!目标函数:最大-max,最小-min,大小写不分
max 3 x1+5 x2+4 x3
入
!约束,以subject to开始
模
subject to
型
2 x1+3 x2<=1500
2 x2+4 x3<=800
3*x1+2*x2+5*x3<=2 000; end
注意与LinDo的区别
目标函数中加等号 变量与系数之间用“*” Model:-end可省略
♂返回
LinGo 模 式
Model: Sets: !定义集合
Endsets
Data:
!定义数据
Enddata 调用函数与计算
end
♂返回
model: !开始
数
@sum(set(set_index_list)|condition:expressi
on)
@min(max)(set(set_index_list)|condition:ex pression)
♂返回
Global optimal solution found at
iteration:
3
结
Objective value: 2675.000
果
Variable Value
Reduced Cost
C( 1) 3.000000
0.000000
C( 2) 5.000000
0.000000
C( 3) 4.000000
0.000000
用lingo解线性规划问题
2. 所用原料钢管总根数最少
决策变量 xi ~按第i 种模式切割的原料钢管根数(i=1,2,…7)
目标1(总余量) Min Z1 3x1 x2 3x3 3x4 x5 x6 3x7
模 式 1 2 3 4 5 6 7 需 求 4米 根数 4 3 2 1 1 0 0 50 6米 根数 0 1 0 2 1 3 0 20 8米 根数 0 0 1 0 1 0 2 15 余 料 3 1 3 3 1 1 3
x1 x2 50
12x1 8x2 480
约束条件
劳动时间 加工能力 非负约束
3x1 100 x1 , x2 0
线性 规划 模型 (LP)
模型求解
20桶牛奶生产A1, 30桶生产A2,利润3360元。
结果解释
Max= 72x1+64x2
2)x1+x2<50 3)12x1+8x2<480
解:直接在LINGO的模型窗口中输 入程序
LINDO/LINGO软件的求解过程
1. 确定常数
2. 识别类型
LINDO/LINGO预处理程序
LP QP NLP IP 全局优化(选) 分枝定界管理程序
ILP
线性优化求解程序 1. 单纯形算法 2. 内点算法(选)
IQP
INLP
非线性优化求解程序
LINDO和LINGO软件能求解的优化模型
钢管下料问题1
模式 1 2 3 4 5 6 7 4米钢管根数 4 3 2 1 1 0 0
合理切割模式
8米钢管根数 0 0 1 0 1 0 2 余料(米) 3 1 3 3 1 1 3
6米钢管根数 0 1 0 2 1 3 0
为满足客户需要,按照哪些种合理模式,每种模式 切割多少根原料钢管,最为节省? 两种 标准 1. 原料钢管剩余总余量最小
数学建模实验3运用Lindo与Lingo解规划问题
实验报告( 3 )院(系)课程名称:日期:年月日班级学号实验室专业姓名计算机号实验名称运用Lindo与Lingo解规划问题成绩评定所用软件Lindo与Lingo指导教师实验目的1.了解Lindo与Lingo的基本使用方法。
2熟悉掌握运用Lindo与Lingo求解规划问题实验内容作业1:用Lingo软件求非线性规划模型123123123123112233234..1.53560028025040060000,,(80)0(80)0(80)0.Max z x x xs t x x xx x x x x xx x x x x x=++++≤++≤≥-≥-≥-≥;0;;作业2:分别用Lindo或Lingo软件对下题进行求解某广告公司想在电视、广播上做宣传广告,其目的是争取尽可能多地影响顾客。
下表是公司进行市场调研的结果:电视网络媒体杂志白天最佳时段每次做广告费用(千元)45 86 25 12 受每次广告影响的顾客数(千人)350 880 430 180 受每次广告影响的女顾客数(千人)260 450 160 100 这家公司希望总广告费用不超过75万元,同时还要求:(1)受广告影响的女顾客数超过200万;(2)电视广告的费用不超过45万元;(3)电视广告白天至少播出4次,最佳时段至少播出2次;(4)通过网络媒体、杂志做广告各自要重复5到8次。
实验过程作业1:源程序:model:max=2*x1+3*x2+4*x3;1.5*x1+3*x2+5*x3<600;280*x1+250*x2+400*x3<60000;x1>0;x2>0;x3>0;x1*(x1-80)>0;x2*(x2-80)>0;x3*(x3-80)>0;End结果:输出结果:Local optimal solution found.Objective value: 611.2000Extended solver steps: 5Total solver iterations: 96Variable Value Reduced CostX1 80.00000 0.000000X2 150.4000 0.000000X3 0.000000 0.000000Row Slack or Surplus Dual Price1 611.2000 1.0000002 28.80000 0.0000003 0.000000 0.1200000E-014 80.00000 0.0000005 150.4000 0.0000006 0.000000 -0.80000007 0.000000 -0.1700000E-018 10588.16 0.0000009 0.000000 0.000000所以x1=80; x2=150.4; x3=0; 目标函数值z=611.2作业2:设电视广告在白天投入x1次,最佳时段x2次,网络煤体x3次,杂志x4次,影响顾客最多为z,则有:1234 123412341212341234max350880430108 .45862512750 2604501601002000 4586450425858,,,z x x x x st x x x xx x x xx xxxxxx x x x=++++++≤+++>+≤≥≥≤≤≤≤为整数LINGO源程序:max=350*x1+880*x2+430*x3+180*x4;45*x1+86*x2+25*x3+12*x4<750;260*x1+450*x2+160*x3+100*x4>2000;45*x1+86*x2<450;x1>4;x2>2;x3>5;x3<8;x4>5;x4<8;@gin (x1);@gin (x2);@gin (x3);@gin (x4);end输出结果:Global optimal solution found.Objective value: 8920.000Extended solver steps: 0Total solver iterations: 0Variable Value Reduced Cost X1 4.000000 -350.0000 X2 3.000000 -880.0000 X3 8.000000 -430.0000 X4 8.000000 -180.0000Row Slack or Surplus Dual Price1 8920.000 1.0000002 16.00000 0.0000003 2470.000 0.0000004 12.00000 0.0000005 0.000000 0.0000006 1.000000 0.0000007 3.000000 0.0000008 0.000000 0.0000009 3.000000 0.00000010 0.000000 0.000000 LINDO输入程序:max 350x1+880x2+430x3+180x4st45x1+86x2+25x3+12x4<750260x1+450x2+160x3+100x4>200045x1+86x2<450x1>4x2>2x3>5x3<8x4>5x4<8endgin 4输出结果:OBJECTIVE FUNCTION V ALUE1) 8920.000V ARIABLE V ALUE REDUCED COSTX1 4.000000 -350.000000X2 3.000000 -880.000000X3 8.000000 -430.000000X4 8.000000 -180.000000ROW SLACK OR SURPLUS DUAL PRICES2) 16.000000 0.0000003) 2470.000000 0.0000004) 12.000000 0.0000005) 0.000000 0.0000006) 1.000000 0.0000007) 3.000000 0.0000008) 0.000000 0.0000009) 3.000000 0.00000010) 0.000000 0.000000即当x1=4;x2=3;x3=8;x4=8时取得影响顾客最大Z=8920千人心得不算难,就是烦,嘿嘿………..体会注:实验报告用A4纸双面打印,篇幅不要超过一页。
用Lingo软件编程求解规划问题解决方案
Lingo软件具有直观易用的界面,提供丰富的函数库和求解算法, 能够高效地求解大规模复杂规划问题。
Lingo软件应用
Lingo软件被广泛应用于各个领域的规划问题求解,如金融、物流、 制造等。
解决方案目标与意义
解决方案目标
通过Lingo软件编程求解规划问题, 旨在获得满足约束条件的最优解,使 得目标函数达到最优。
要点三
推动软件升级和普及
Lingo软件作为一款优秀的数学规划 求解工具,未来可以进一步推动其升 级和普及工作。例如,可以增加更多 实用的功能、提高软件的易用性和稳 定性等,以吸引更多的用户使用该软 件解决规划问题。
THANKS
感谢观看
Lingo编程环境介绍
Lingo是一款专门用于求解线性、非线性和整数规划问题的软件,它提供了一个直观易用的编程环境。
Lingo支持多种类型的数学模型,如线性规划、目标规划、整数规划等,并内置了大量的函数和算法, 方便用户快速构建和求解模型。
Lingo还提供了丰富的数据输入/输出功能,支持Excel、数据库等多种数据格式,方便用户进行数据处理 和分析。
结果分析
根据求解结果,分析每种产品的生产量是否符合预期,并评估总成本是否达到最小化。 同时,可以对不同方案进行比较,选择最优方案。
敏感性分析
通过改变某些参数或约束条件,观察求解结果的变化,以评估方案的稳定性和可行性。
06
总结与展望
研究成果总结
成功构建了规划问题的数学模型
通过深入研究规划问题的本质,我们成功构建了能够准确 描述问题的数学模型,为后续的求解工作奠定了坚实的基 础。
学习和使用。
02
Lingo语言基本语法
学习Lingo语言的基本语法和规则,如变量定义、函数定义、约束条件
线性规划建模及lindo软件的使用的数学建模实验报告
增长潜力) 15x2+30x3+20x4+5x5+10x6>10
end
2、运行结果和总结
3、总结:
1、在满足上述要求的前提下投资者,以下投资组合使平均年收益率最高。
VARIABLE VALUE REDUCED COST
X1 0.571429 0.000000
姓名:王青学号:201100820109班级:1_专业:信息与计算科学
指导教师:荐金峰完成日期:2014-3-25
实验目的
掌握数学软件lindo的基本用法
通过一个经济问题的实例求解,培养利用线性规划解决实际问题的能力
熟悉线性规划的建模过程
一、实验内容
某人有一笔50万元的资金可用于长期投资,可供选择的投资机会包括购买国库券、公司债券、投资房地产、购买股票或银行保值储蓄等。不同的投资方式的具体参数如下表。投资者希望投资组合的平均年限不超过5年,平均的期望收益率不低于13%,风险系数不超过4,收益的增长潜力不低于10%。
3、若允许风险系数不超过5,最佳收益率会如何改变
二、实验过程
1、实验程序(Lindo):
max 11x1+15x2+25x3+20x4+10x5+12x6+3x7
st
投资总和) x1+x2+x3+x4+x5+x6+x7=1
投资年限) 3x1+10x2+6x3+2x4+x5+5x6<5
期望收益) 11x1+15x2+25x3+20x4+10x5+12x6+3x7>13
《数学建模》实验指导_02_Lingo求解线性规划问题
实验二:Lingo求解线性规划问题学时:4学时实验目的:掌握用Lingo求解线性规划问题的方法,能够阅读Lingo结果报告。
实验内容:(选做两题以上)1、求解书本上P130的习题1:某银行经理计划用一笔资金进行有价证券的投资,可供购进的证券以及其信用等级、到期年限、收益如下表1所示,按照规定,市政证券的收益可以免税,其他证券的收益需按50%的税率纳税,此外还有以下限制:1)政府及代办机构的证券总共至少要购进400万元;2)所购证券的平均信用等级不超过1.4(信用等级数字越小,信用程序越高);3)所购证券的平均到期年限不超过5年。
表 1(1)若该经理有1000万元资金,应如何投资?(2)如果能够以2.75%的利率借到不超过100万元资金,该经理应如何操作?(3)在1000万元资金情况下,若证券A的税前收益增加为4.5%,投资应否改变?若证券C的税前收益减少为4.8%,投资应否改变?列出线性规划模型,然后用Lindo求解,根据结果报告得出解决方案。
提示:可参考书上4.1节。
模型可以如下建立:设投资证券A,B,C,D,E的金额分别为x1,x2,x3,x4,x5 万元.max 0.043x1+0.027x2+0.025x3+0.022x4+0.045x5x2+x3+x4>=400x1+x2+x3+x4+x5<=1000(2x1+2x2+x3+x4+5x5)/(x1+x2+x3+x4+x5)<=1.4(9x1+15x2+4x3+3x4+2x5)/(x1+x2+x3+x4+x5)<=52、建立模型并求解P130页第3题。
(建立线性规划模型的技巧:问什么假设什么,如何雇用即雇用多少全时服务员以12:00-1:00为午餐, 雇用多少全时服务员以1:00-2:00为午餐,雇佣多少从9:00、10:00、11:00、12:00、1:00开始工作的半时服务员)。
建立线性规划模型:设全时工人为X1:工作时间:9—12 、13—17 工资为100元X2:工作时间:9—13 、14—17 工资为100元半时工人:工资为40元Y1:工作时间:9—13Y2:工作时间:10—14Y3:工作时间:11—15Y4:工作时间:12—16Y5:工作时间:13—17Min= (x1+x2)*100+(y1+y2+y3+y4+y5)*40Y1+y2+y3+y4+y5<39-10 X1+x2+y1>410-11 X1+x2+y1+y2>311-12 X1+x2+y1+y2+y3>412-13 x2+y1+y2+y3+y4>613-14 X1+y2+y3+y4+y5>514-15 x1+x2+y3+y4+y5>615-16 x1+x2+y4+y5>816-17 x1+x2 +y5>8Min =(x1+x2)*100+(y1+y2+y3+y4+y5)*40;y1+y2+y3+y4+y5<3;x1+x2+y1>4;x1+x2+y1+y2>3;x1+x2+y1+y2+y3>4;x2+y1+y2+y3+y4>6;x1+y2+y3+y4+y5>5;x1+x2+y3+y4+y5>6;x1+x2+y4+y5>8;x1+x2 +y5>8;@gin(x1);@gin(x2);@gin(y1);@gin(y2);@gin(y3);@gin(y4);@gin(y5);Global optimal solution found at iteration: 14Objective value: 820.0000Variable Value Reduced Cost X1 2.000000 100.0000 X2 5.000000 100.0000 Y1 0.000000 40.00000Y3 1.000000 40.00000 Y4 1.000000 40.00000 Y5 1.000000 40.00000Row Slack or Surplus Dual Price1 820.0000 -1.0000002 0.000000 0.0000003 3.000000 0.0000004 4.000000 0.0000005 4.000000 0.0000006 1.000000 0.0000007 0.000000 0.0000008 4.000000 0.0000009 1.000000 0.00000010 0.000000 0.000000第二问:Min =(x1+x2)*100;x1+x2 >4;x1+x2>3;x1+x2>4;x2 >6;x1 >5;x1+x2 >6;x1+x2 >8;x1+x2 >8;@gin(x1);@gin(x2);Global optimal solution found at iteration: 0Objective value: 1100.000Variable Value Reduced Cost X1 5.000000 100.0000 X2 6.000000 100.0000Row Slack or Surplus Dual Price1 1100.000 -1.0000002 7.000000 0.0000004 7.000000 0.0000005 0.000000 0.0000006 0.000000 0.0000007 5.000000 0.0000008 3.000000 0.0000009 3.000000 0.000000第三问:Min =(x1+x2)*100+(y1+y2+y3+y4+y5)*40;x1+x2+y1>4;x1+x2+y1+y2>3;x1+x2+y1+y2+y3>4;x2+y1+y2+y3+y4>6;x1+y2+y3+y4+y5>5;x1+x2+y3+y4+y5>6;x1+x2+y4+y5>8;x1+x2 +y5>8;@gin(x1);@gin(x2);@gin(y1);@gin(y2);@gin(y3);@gin(y4);@gin(y5);Global optimal solution found at iteration: 5Objective value: 560.0000Variable Value Reduced Cost X1 0.000000 100.0000 X2 0.000000 100.0000 Y1 4.000000 40.00000 Y2 2.000000 40.00000 Y3 0.000000 40.00000 Y4 0.000000 40.00000 Y5 8.000000 40.00000Row Slack or Surplus Dual Price1 560.0000 -1.0000002 0.000000 0.0000004 2.000000 0.0000005 0.000000 0.0000006 5.000000 0.0000007 2.000000 0.0000008 0.000000 0.0000009 0.000000 0.0000003、指派问题:6个人计划做6项工作,其效益如下表(”-”表示某人无法完成某项工作),4、有限制的运输问题:6个发点6个收点,其供应量、接收量和运费如下表1(”-”表示某个发电无法向某个收点运输货物),如果某个发点向某个收点运输货物,则运输量不得低使用Lingo的一些注意事项Min z1.“>”与“>=”功能相同。
LINGO在数学建模中的应用
LINGO的菜单
1.File(文件菜单) • Export file(输出特殊格式文件) • Database User Info(用户基本信息) 2.Edit Menu(编辑菜单) • Paste Special(选择性粘贴) • Go to Line(光标移到某一行) • Match Parenthesis(匹配括号) • Insert New Object(插入新对象)
3.关系运算符 = 表达式左右相等 <= 表达式左边小于或等于右边 >= 表达式左边大于或等于右边 注:Lingo没有单独的<和>
A<B A B, 是一个小的正数
Lingo函数
• Lingo提供了五十几个内部函数,所有函数都 以字符@开头
• 数学函数 @ABS(x),@SIN(X),@COS(x),@TAN(X), @LOG(X),@EXP(X),@SIGN(X), @SMAX(X1,…,Xn),@SMIN(X1,…,Xn) @FLOOR(X),@LGM(X)
LINGO的菜单
3.LINGO • Debug(调试) • Model Statistics(模型资料统计) • Look(查看)
LINGO的菜单
4.Window • Command Window(命令行窗口) • Status Window(状态窗口) 5.Help • Help Topics(帮助主题) • Register(在线注册) • Auto Update(自动更新) • About Lingo(关于Lingo)
41,52,现有8个客户各要一批货,数量分别为35,37,22,32, 41,32,43,38,各供货栈到8个客户的单位运价如表1. 如何确定各供货栈到8个客户的货物调运量,使总的运费最小?
利用LINGO软件解决数学建模问题
表
380000 262200 408100 130100
表2
飞机汽油 1 2 辛烷数 >=91 >=91 >=100 >=100 蒸汽压力(g/cm^2) 蒸汽压力(g/cm^2) <=9 96*10^(<=9.96*10^(-2) ^( <=9 96*10^(<=9.96*10^(-2) ^( 产量需求(L) 产量需求(L) 越多越好 >=250000 >=250000
表1
标准汽油 1 2 3 4 辛烷数 1 0 7 .5 9 3 .0 8 7 .0 1 0 8 .0 蒸 汽
(1 g/cm^2=98Pa)
压 力 库存量 g/cm^2) ( g/cm^2 ) 7.11*10^(- 2) 7.11*10^( 11.38*10^(11.38*10^( - 2) 5.69*10^(5.69*10^( - 2) 28.45*10^(- 2) 28.45*10^( -
LINGO 7.0 运行结果如下: 运行结果如下:
Global optimal solution found at step: Objective value:
Variable X1 X2 X3 X4 X5 X6 X7 X8 Value 264937.9 135702.1 408100.0 124660.0 115062.1 129497.9 0.0000000 5440.011
一、 Introduction(软件简介 ) 软件简介
• LINGO通常用来解决大型的线性规划,非线性 LINGO通常用来解决大型的线性规划, 通常用来解决大型的线性规划 规划和整数规划等优化模型, 规划和整数规划等优化模型,它为用户提供了 一种更容易和更有效率的一个包罗万象的工具 LINDO公司生产的LINDO、 公司生产的LINDO API、 包。与LINDO公司生产的LINDO、LINDO API、 What’s Best!相比较 LINGO的功能最为强大 相比较, 的功能最为强大。 What s Best!相比较,LINGO的功能最为强大。
Lingo软件编程求解规划问题数学建模
例2——军队供给问题
用Lingo软件求解
结果
Lingo软件
Lingo 是一个可以简洁地阐述、解决和分析复杂问题的简便工具。
其特点是程序执行速度很快,易于输入、修改、求解和分析一个数 学规划问题。
LINGO模型的构成:4个段
• 集合段(SETS ENDSETS) • 目标与约束段 • 数据段(DATA ENDDATA) • 初始段(INIT ENDINIT)
用Lingo软件求解
求 z 72 x1 64 x2的最大值?
x1 x2 50
12
x1 8x2 480 3x1 100
x1 0
x2 0
Lingo结果中其它项的意思! 更多信息
例 1 求 f = 2ex sin x 在 0<x<8 中的最小值与最大值
max=@sin(x)*2*@exp(-x); x<8; x>0;
获利24元/公斤 获利16元/公斤
每天: 50桶牛奶 时间480小时 至多加工100公斤A1
例1——加工奶制品的生产计划
1桶牛 奶或
12小时 8小时
3公斤A1 4公斤A2
每天:50桶牛奶 时间480小时
获利24元/公斤 获利16元/公斤 至多加工100公斤A1
决策变量 目标函数
约束条件
x1桶牛奶生产A1 获利 24×3x1 每天获利 原料供应 劳动时间 加工能力 非负约束
x2桶牛奶生产A2 获利 16×4 x2
Max z 72 x1 64 x2
x1 x2 50
12 x1 8x2 480 3x1 100
x1, x2 0
线性规 划模型 (LP)
例1——加工奶制品的生产计划
x1 x2 50
用LINDO、LINGO 解运筹学问题
用LINDO、LINGO 解运筹学问题一、 软件简介LINDO是一种专门用于求解数学规划问题的软件包。
由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。
因此在数学、科研和工业界得到广泛应用。
LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。
也可以用于一些非线性和线性方程组的求解以及代数方程求根等。
LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。
一般用LINDO(Linear Interactive and Discrete Optimizer)解决线性规划(LP—Linear Programming)。
整数规划(IP—Integer Programming)问题。
其中LINDO 6 .1 学生版至多可求解多达300个变量和150个约束的规划问题。
其正式版(标准版)则可求解的变量和约束在1量级以上。
LINGO则用于求解非线性规划(NLP—NON—LINEAR PROGRAMMING)和二次规则(QP—QUARATIC PROGRAMING)其中LINGO 6.0学生版最多可版最多达300个变量和150个约束的规则问题,其标准版的求解能力亦再10^4量级以上。
虽然LINDO和LINGO不能直接求解目标规划问题,但用序贯式算法可分解成一个个LINDO和LINGO能解决的规划问题。
要学好用这两个软件最好的办法就是学习他们自带的HELP文件。
二、下面拟举数例以说明这两个软件的最基本用法。
(例子均选自张莹《运筹学基础》)例1.(选自《运筹学基础》P54.汽油混合问题,线性规划问题)一种汽油的特性可用两个指标描述:其点火性用“辛烷数”描述,其挥发性用“蒸汽压力”描述。
某炼油厂有四种标准汽油,设其标号分别为1,2,3,4,其特性及库存量列于下表1中,将上述标准汽油适量混合,可得两种飞机汽油,某标号为1,2,这两种飞机汽油的性能指标及产量需求列于表2中。
《数学建模》实验指导4Lingo求解线性规划问题
实验四:在Lingo 中利用集求解线性规划问题学时:4学时实验目的:掌握利用Lingo 中的集求解线性规划问题的方法。
实验内容:68,,116,18,1m in * 1,,8 1,,6i ji ji j i jj i i ji j costvolum e volum edem and j volum ecapacity i ========∑∑∑∑ 使用LINGO 软件,编制程序如下:model :!6发点8收点运输问题; sets :warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand;links(warehouses,vendors): cost, volume; endsets !目标函数;min =@sum (links: cost*volume); !需求约束;@for (vendors(J):@sum (warehouses(I): volume(I,J))=demand(J)); !产量约束;@for (warehouses(I):@sum (vendors(J): volume(I,J))<=capacity(I));!这里是数据; data :capacity=60 55 51 43 41 52;demand=35 37 22 32 41 32 43 38;cost=6 2 6 7 4 2 9 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend回答问题:哪些产地增加产量可以减少运费,应增加哪个产地的产量可以减少的最多。
2.用Lingo中的集求解课本P107上的例1(混合泳接力队的选拔)。
使用LINGO软件,编制程序如下:model:sets:workers/w1..w5/;jobs/j1..j4/;links(workers,jobs): cost,volume;endsetsmin=@sum(links: cost*volume);@for(workers(I): @sum(jobs(J): volume(I,J))<=1);@for(jobs(J): @sum(workers(I): volume(I,J))=1);@for(links(i,j): @bin(volume(i,j)));data:cost= 66.8 57.2 78 70 67.475.6 66 67.8 74.2 7187 66.4 84.6 69.6 83.858.6 53 59.4 57.2 62.4;enddataend。
数学建模:运用Lindolingo软件求解线性规划
数学建模:运用L i n d o l i n g o软件求解线性规划-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN1、实验内容:对下面是实际问题建立相应的数学模型,并用数学软件包Lindo/lingo 对模型进行求解。
某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:1)若投资0.8万元可增加原料1千克,问应否作这项投资.2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.数学建模论文运用lindo/lingo软件求解线性规划运用lindo/lingo软件求解线性规划一、摘要本文要解决的问题是如何安排生产计划,即两种饮料各生产多少使获利最大。
首先,对问题进行重述明确题目的中心思想,做出合理的假设,对符号做简要的说明。
然后,对问题进行分析,根据题目的要求,建立合适的数学模型。
最后,运用lindo/lingo软件求出题目的解。
【关键词】最优解 lindo/lingo软件第二、问题的重述某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:1)若投资0.8万元可增加原料1千克,问应否作这项投资。
2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划。
第三、模型的基本假设1、每一箱饮料消耗的人力、物力相同。
2、每个人的能力相等。
3、生产设备对生产没有影响。
第四、符号说明1、x.....甲饮料2、y.....乙饮料3、z.....增加的原材料第五、问题分析根据题目要求:如何安排生产计划,即两种饮料各生产多少使获利最大,可知本题所求的是利润的最大值。
实验1用LINGO求解线性规划问题
实验用LINDO或LINGO求解线性规划问题实验目的1.对于给定的实际应用问题,正确的建立线性规划问题数学模型,并用LINDO或LINGO 求解;2.掌握灵敏度分析以及资源的影子价格的相关分析方法.问题1某工厂在计划期内要安排生产A、B两种产品,已知生产单位产品所需设备台时及对甲、乙两种原材料的消耗,有关数据如表1.1.问:应如何安排生产计划,使工厂获利最大?.LINDO输入语句:max 2x1+3x2stx1+2x2<=84x1<=164x2<=12end在LINGO的MODEL窗口内输入如下模型:model:max=2*x1+3*x2;x1+2*x2<=8;4*x1<=16;4*x2<=12;end选菜单Lingo|Solve(或按Ctrl+S),或用鼠标点击“求解”按纽,如果模型有语法错误,则弹出一个标题为“LINGO Error Message”(错误信息)的窗口,指出在哪一行有怎样的错误,每一种错误都有一个编号(具体含义可查阅相关文献或LINGO的Help).改正错误以后再求解,如果语法通过,LINGO用内部所带的求解程序求出模型的解,然后弹出一个标题为“LINGO Solver Status”(求解状态)的窗口,其内容为变量个数、约束条件个数、优化状态、耗费内存、所花时间等信息,点击Close关闭窗口,屏幕上出现标题为“Solution Report”(解的报告)的信息窗口,显示优化计算(线性规划中换基迭代)的步数、优化后的目标函数值、列出各变量的计算结果.求解结果:Global optimal solution found at iteration: 5 Objective value: 14.00000Variable Value Reduced Cost X1 4.000000 0.000000 X2 2.000000 0.000000 Row Slack or Surplus Dual Price 1 14.00000 1.000000 2 0.000000 1.500000 3 0.000000 0.1250000 4 4.000000 0.000000该报告说明:运行5步找到全局最优解,目标函数值为14,变量值分别为124,2==x x .“Reduced Cost ”的含义是需缩减成本系数或需增加利润系数(最优解中取值非零的决策变量的Reduced Cost 值等于零).“Row ”是输入模型中的行号,目标函数是第一行;“Slack or Surplus ”的意思是松弛或剩余,即约束条件左边与右边的差值,对于“≤”的不等式,右边减左边的差值为Slack (松弛),对于“≥”的不等式,左边减的右边差值为Surplus (剩余),当约束条件两边相等时,松弛或剩余的值等于零.“Dual Price ”的意思是对偶价格(或称为影子价格),上述报告中Row2的松弛值为0,表明生产甲产品4单位、乙产品2单位,所需设备8台时已经饱和,对偶价格1.5的含义是:如果设备增加1台时,能使目标函数值增加1.5.报告中Row4的松弛值为4,表明生产甲产品4单位、乙产品2单位,所需原材料乙8公斤还剩余4公斤,因此增加原材料乙不会使目标函数值增加,所以对偶价格为0.对于目标函数系数和约束条件右端常数项的灵敏度分析,可以通过LINGO 软件求解的灵敏度分析给出.如果要看灵敏度分析结果,必须激活灵敏度计算功能才会在求解时给出灵敏度分析结果,默认情况下这项功能是关闭的.想要激活它,必须运行LINGO|Options …命令,选择Gengral Solver ,在Dual Computation 列表框中,选择Prices and Ranges 选项并确定. 法一:打开command window ,输入range ;法二:LINGO ——options ——General Solver ——DualComputations ——Prices&Ranges , 运行一遍,然后关掉,然后lingo-----range问题2 某公司饲养实验用的动物以供出售,已知这些动物的生长对饲料中3种营养成分(蛋白质、矿物质和维生素)特别敏感,每个动物每周至少需要蛋白质60g ,矿物质3g ,维生素8mg ,该公司能买到5种不同的饲料,每种饲料1kg 所含各种营养成分和成本如表1.2所示,如果每个小动物每周食用饲料不超过52kg ,求既能满足动物生长需要,又使总成本最低的饲料配方.问题3 设有四个化肥厂供应四个地区的农用化肥,假定等量的化肥在这些地区使用效果相同.已知各化肥厂年产量(单位:吨)、各地区年需要量以及从各化肥厂到各地区单位化肥的运价如表3.2.1所示(表中运价中“—”表示不适合).试决定总的运费最节省的化肥调运方案.表3.2.1 化肥供应的平衡表与运价表问题4 某公司计划在东、西、南、北四个市区建立销售门市部,拟议中有10个位置(1,2,,10)j A j =可供选择,考虑到各地区居民的消费水平及居民居住密集度,在东区由123,,A A A 三个点至多选择两个;在西区由45,A A 两个点中至少选一个;在南区由67,A A 两个点中至少选一个;在北区由8910,,A A A 三个点中至少选两个.j A 各点的设备投资及每年可获利润情况见表3.2.2所示 (单位:万元).但投资总额不能超过72万元,问应选择哪几个销售点,可使年利润为最大?建立整数规划问题的数学模型,并用LINGO 求解.表3.2.2 四个市区的10个位置设备投资及每年利润表问题5 求解整数线性规划问题 12121212max 2535..436,0,379z x x x x s t x x x x =≤≤≥++⎧⎪+⎨⎪⎩全部为整数 思考题1.(1988年美国大学生数学建模竞赛试题)有七种规格的包装箱要装到两辆铁路平板车上去.包装箱的宽和高是一样的,但厚度(t,以厘米计)及重量(w ,以公斤计)是不同的.表3.2.4给出了每种包装箱的厚度、重量以及数量.每辆平板车有10.2米长的地方可用来装包装箱(像面包片那样),载重为40吨.由于当地货运的限制,对567,,C C C 类的包装箱的总数有一个特别的限制:这类箱子在两辆平板车上所占的总空间(厚度)不能超过302.7厘米.试把包装箱(见表3.2.4)装到平板车上去使得浪费的空间最小.。
最优化方法——用Lingo对线性规划进行灵敏度分析
lingo 软件求解线性规划及灵敏度分析注:以目标函数最大化为例进行讨论,对求最小的问题,有类似的分析方法!所有程序运行环境为lingo10。
一、用lingo 软件求解线性规划例1:max 23..43103512,0z x y s t x y x y x y =++≤+≤≥在模型窗口输入:model: max=2*x+3*y; 4*x+3*y<=10; 3*x+5*y<12;! the optimal value is :7.454545 ; End 如图所示:运行结果如下(点击 工具栏上的‘solve ’或点击菜单‘lingo ’下的‘solve ’即可):Global optimal solution found.Objective value: 7.454545(最优解函数值) Total solver iterations: 2(迭代次数)Variable (最优解) Value Reduced Cost X 1.272727 0.000000 Y 1.636364 0.000000Row Slack or Surplus Dual Price 1 7.454545 1.000000 2 0.000000 0.9090909E-01 3 0.000000 0.5454545例2:12123124125max 54..390280450z x x s t x x x x x x x x x x =+++=++=++=≥ 在模型窗口输入:model:max=5*x1+4*x2; x1+3*x2+x3=90; 2*x1+x2+x4=80; x1+x2+x5=45; end运行(solve )结果如下:Global optimal solution found.Objective value: 215.0000 Total solver iterations: 3Variable Value Reduced Cost X1 35.00000 0.000000 X2 10.00000 0.000000 X3 25.00000 0.000000 X4 0.000000 1.000000 X5 0.000000 3.000000Row Slack or Surplus Dual Price 1 215.0000 1.000000 2 0.000000 0.000000 3 0.000000 1.000000 4 0.000000 3.000000例323123234235min 2..223120z x x s t x x x x x x x x x x =-+-+=-+=-+=≥ 在模型窗口输入:model:min=-x2+2*x3; x1-2*x2+x3=2; x2-3*x3+x4=1; x2-x3+x5=2; end运行结果如下:Global optimal solution found.Objective value: -1.500000 Total solver iterations: 2Variable Value Reduced Cost X2 2.500000 0.000000 X3 0.5000000 0.000000 X1 6.500000 0.000000 X4 0.000000 0.5000000 X5 0.000000 0.5000000Row Slack or Surplus Dual Price 1 -1.500000 -1.000000 2 0.000000 0.000000 3 0.000000 0.5000000 4 0.000000 0.5000000例4:min ..124x y z s t x y x z +++≤+= 在模型窗口输入:model :min =@abs (x)+@abs (y)+@abs (z); x+y<1; 2*x+z=4; @free (x); @free (y); @free (z);End求解器状态如下:(可看出是非线性模型!)运行结果为:Linearization components added:Constraints: 12Variables: 12Integers: 3Global optimal solution found.Objective value: 3.000000Extended solver steps: 0Total solver iterations: 4Variable Value Reduced Cost X 2.000000 0.000000Y -1.000000 0.000000 Z 0.000000 0.000000Row Slack or Surplus Dual Price1 3.000000 -1.0000002 0.000000 1.0000003 0.000000 -1.000000二、用lingo软件进行灵敏度分析实例例5:max 603020864842 1.5202 1.50.585,,0S x y z x y z x y z x y z y x y z =++++≤++≤++≤≤≥在模型窗口输入: Lingo 模型:model:max=60*x+30*y+20*z; 8*x+6*y+z<48; 4*x+2*y+1.5*z<20; 2*x+1.5*y+0.5*z<8; y<5; end(一)求解报告(solution report )通过菜单Lingo →Solve 可以得到求解报告(solution report )如下:Global optimal solution found at iteration: 0 Objective value: 280.0000Variable Value Reduced Cost X 2.000000 0.000000 Y 0.000000 5.000000 Z 8.000000 0.000000Row Slack or Surplus Dual Price 1 280.0000 1.000000 2 24.00000 0.000000 3 0.000000 10.00000 4 0.000000 10.00000 5 5.000000 0.000000分析Value,Reduced Cost ,Slack or Surplus ,Dual Price 的意义如下: 1、最优解和基变量的确定Value 所在列给出了问题的最优解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、实验内容:
对下面是实际问题建立相应的数学模型,并用数学软件包Lindo/lingo 对模型进行求解。
某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:
1)若投资0.8万元可增加原料1千克,问应否作这项投资.
2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.
数学建模论文
运用lindo/lingo软件求解线性规划运用lindo/lingo软件求解线性规划
一、摘要
本文要解决的问题是如何安排生产计划,即两种饮料各生产多少使获利最大。
首先,对问题进行重述明确题目的中心思想,做出合理的假设,对符号做简要的说明。
然后,对问题进行分析,根据题目的要求,建立合适的数学模型。
最后,运用lindo/lingo软件求出题目的解。
【关键词】最优解lindo/lingo软件
第二、问题的重述
某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:
1)若投资0.8万元可增加原料1千克,问应否作这项投资。
2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划。
第三、模型的基本假设
1、每一箱饮料消耗的人力、物力相同。
2、每个人的能力相等。
3、生产设备对生产没有影响。
第四、符号说明
1、x.....甲饮料
2、y.....乙饮料
3、z.....增加的原材料
第五、问题分析
根据题目要求:如何安排生产计划,即两种饮料各生产多少使获利最大,可知本题所求的是利润的最大值。
我们可以先建立数学模型,然后用lindo/lingo软件包求解模型的最大值。
第六、模型的建立及求解
根据题目建立如下3个模型:
模型1:
max=0.1*x+0.09*y;
0.06*x+0.05*y<=60;
0.1*x+0.2*y<=150;
x+y<=800;
结果:x=800;y=0;max=80
模型2:
max=0.1*x+0.09*y-0.8*z;
0.06*x+0.05*y-z<=60;
0.1*x+0.2*y<=150;
x+y<=800;
结果:x=800;y=0;z=0;max=80
模型3:
max=0.11*x+0.09*y;
0.06*x+0.05*y<=60;
0.1*x+0.2*y<=150;
x+y<=800;
结果:x=800;y=0;max=88
第七、结果分析
从上述结果可以看出:
1、若投资0.8万元可增加原料1千克,最大利润值仍为80万元,所以不作这项投资;
2、若每百箱甲饮料获利可增加1万元,最大利润值为88万元,但生产x饮料仍为800箱,y饮料0箱,所以没有改变生产计划。
第八、模型的评价及推广
模型的评价
1、模型的优点
本文模型能使企业在经营过程中对资源进行合理分配,以致使公司获得最大的利润。
2、模型的缺点
本文模型的建立与求解建立在许多假设的基础上,并由于在运输过程中会出现许多主观的、客观的因素;无论我们如何细致的计算,结果只能是一个大致的估计。
模型的推广
本文模型可以解决资源的优化配置问题,使企业的利润达到最大值,可以运用到运输业,生产制造业等行业。
第九、参考文献
[1]线性规划.ppt
[2]Lindo使用手册.pdf
[3]Lindo软件简介.pdf
[4]论文写作规范.doc及DNA序列分类.doc
第十、附录
程序1:
max=0.1*x+0.09*y;
0.06*x+0.05*y<=60;
0.1*x+0.2*y<=150;
x+y<=800;
Global optimal solution found.
Objective value: 80.00000
Infeasibilities: 0.000000
Total solver iterations: 4
Variable Value Reduced Cost
X 800.0000 0.000000
Y 0.000000 0.1000000E-01
Row Slack or Surplus Dual Price
1 80.00000 1.000000
2 12.00000 0.000000
3 70.00000 0.000000
4 0.000000 0.1000000
程序2
max=0.1*x+0.09*y-0.8*z;
0.06*x+0.05*y-z<=60;
0.1*x+0.2*y<=150;
x+y<=800;
Global optimal solution found.
Objective value: 80.00000
Infeasibilities: 0.000000
Total solver iterations: 1
Variable Value Reduced Cost
X 800.0000 0.000000
Y 0.000000 0.1000000E-01 Z 0.000000 0.8000000
Row Slack or Surplus Dual Price
1 80.00000 1.000000
2 12.00000 0.000000
3 70.00000 0.000000
4 0.000000 0.1000000
程序3
max=0.11*x+0.09*y;
0.06*x+0.05*y<=60;
0.1*x+0.2*y<=150;
x+y<=800;
Global optimal solution found.
Objective value: 88.00000
Infeasibilities: 0.000000
Total solver iterations: 2
Variable Value Reduced Cost
X 800.0000 0.000000
Y 0.000000 0.2000000E-01
Row Slack or Surplus Dual Price
1 88.00000 1.000000
2 12.00000 0.000000
3 70.00000 0.000000
4 0.000000 0.1100000。