数学建模:运用Lindolingo软件求解线性规划
数学建模——LINDO_LINGO的实用与优化模型
向各工地运送多少吨水泥,使总的吨公里数最小。
决策变量:ci j (料场j到工地i的
运量)~12维
26
mi n
cij [(x j ai )2 ( y j bi )2 ]1/ 2
j 1 i1
2
s.t.
cij di , i 1,..., 6
X1
20.000000
0.000000
X2
30.000000
0.000000
end
ROW SLACK OR SURPLUS DUAL PRICES
三
原料无剩余 2)
0.000000
48.000000
种
时间无剩余 3)
0.000000
2.000000
资 源
加工能力剩余40
4)
40.000000
0.000000
不变!
结果解释
影子价格有意义
RANGES IN WHICH THE BASIS IS UNCHANGED: 时约束右端的允
OBJ COEFFICIENT RANGES
许变化范围
VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE
(目标函数不变)
例如: “sub x1 10”的作用等价于“x1<=10”
但用“SUB”和“SLB”表示的上下界约束不计入模 型的约束,也不能给出其松紧判断和敏感性分析。
14. “END”后对0-1变量说明:INT n 或 INT name
15. “END”后对整数变量说明:GIN n 或 GIN name
LINGO求解举例 — 例:选址问题
实验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次。
应用LINGOMATLAB软件求解线性规划课件
-4.166667
5 0.000000
0.8833333
第11页/共26页
1.2 应用MATLAB求解线性规划
• MATLAB(MATrix LABoratory)的基本含义是矩阵实验室,它是由美国 MathWorks公司研制开发的一套高性能的集数值计算、信息处理、图形显示 等于一体的可视化数学工具软件。它是建立在向量、数组和矩阵基础之上的 ,除了基本的数值计算、数据处理、图形显示等功能之外,还包含功能强大 的多个“工具箱”,如优化工具箱(optimization toolbox)、统计工具箱、 样条函数工具箱和数据拟合工具箱等都是优化计算的有力工具。在这里仅介 绍用MATLAB6.5优化工具箱求解线性规划问题。
A=[1,4,-1;2,-2,1];
b=[4;12];
Aeq=[1,1,2];
beq=6;
lb=[0,0,-inf];
ub=[inf,inf,5];
[x,z]=linprog(c,A,b,Aeq,beq,lb,ub) 运行后得到输出
Optimization terminated successfully.
表1.1 生产计划问题的数据
产品 资源
A
B
C
资源 限量
材料费用(元) 2 2.5 4 320
劳动力(人天) 6 1 8 640
电力(度) 5 5 10 750
单位价格(百元
)
6 4 10
第21页/共26页
(2)某疗养院营养师要为某类病人拟订一周的菜单。可供选择的蔬菜 及其费用和所含营养成分的数量以及这类病人每周所需各种营养成分 的最低数量如表1.2所示。另外,为了口味的需要,规定一周内所用卷 心菜不多于2份,其他蔬菜不多于4份。若病人每周需要14份蔬菜,问 选用每种蔬菜各多少份,可使生活费用最小。建立线性规划问题的数 学模型。
数学建模软件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。
LINDO、LINGO软件的使用方法
例1的数 学模型
max Z 32 x1 30 x2 3x1 4 x2 36 5 x1 4 x2 40 9 x1 8 x2 76 x1 , x2 0
LINDO/LINGOl软件简介
第1节 第2节 LINDO LINGO
第1节 LINDO软件
一、LINDO软件的使用格式 二、LINDO输出结果分析
一、LINDO软件的使用格式
LINDO软件是一种专门用于求解线性 规划问题的软件包,由于LINDO执行速度很 快且输入方便,易于求解和分析规划问题, 因此在科研和工业界得到广泛应用。
影子价格: 资源每增加1个单位时,目标函数Z增加的值 (1) 设备A每增加1台时,利润增加1.166667元
(2) 设备B每增加1台时,利润不增加
(3) 设备C每增加1台时,利润增加3.166667元
第4部分数据的分析
Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Allowable Coefficient Increase Decrease 32.00000 1.750000 9.500000 30.00000 12.66667 1.555556
2 最优值为:282.667 即 Z max 282 3 最优解为: x1=1.3333 即 x 1 1 1 3 x2=8
第3部分的数据分析(1)
在最优解的情况 下资源是否有剩 余(或超量)
Row Slack or Surplus Dual Price 2) 0.000000 在最优解下,设 3) 1.333333 备A、C无剩余 4) 0.000000
数学建模实验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进行线性规划求解(实例)
♂返回
定 义 数 据
data:!定义数据 c=3 5 4; b=1500 800 2000; a=2 3 0 0 2 4 3 2 5; Enddata
!注:数据的大小与集合定义中一致, 分量中间用空格或逗号分开,数据 结束后用分号;
♂返回
调 用 函 数
♂返回
结 果
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 X( 1) 375.0000 0.000000 X( 2) 250.0000 0.000000 X( 3) 75.00000 0.000000
LinDo/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<=2000 end
注意与LinDo的区别
目标函数中加ຫໍສະໝຸດ 号变量与系数之间用“*” Model:-end可省略
♂返回
LinGo 模 式
Lindo 和Lingo 数学软件的简单使用方法
Lindo 和Lingo 数学软件的简单使用方法一、Lindo最新版本:6.1版(注册版)限制:4000个约束、8000个变量、800个整型变量功能:可以求解线性规划、整数规划、混合整数规划、二次规划、目标规划。
我们主要用它来求解整数规划或混合整数规划。
特点:执行速度非常快 例1:求解整数规划问题12121212max 58..65945,0z x x s t x x x x x x =++≤+≤≥且整解:在lindo 的运行窗口中输入 max 5x1+8x2 stx1+x2<6 5x1+9x2<45 end gin 2然后按Solve 菜单或快捷键得运行结果。
OBJECTIVE FUNCTION V ALUE (目标函数最优值) 1) 40.00000VARIABLE V ALUE REDUCED COST (变量增加1时目标函数改变量) X1 0.000000 -5.000000 X2 5.000000 -8.000000ROW SLACK OR SURPLUS DUAL PRICES (行) (松弛变量值) (对偶价格,表示约束右边常数增加1时目标函数改变量)) 2) 1.000000 0.000000 3) 0.000000 0.000000RANGES IN WHICH THE BASIS IS UNCHANGED (灵敏度分析) OBJ COEFFICIENT RANGES (目标函数中变量的系数的变动范围,在此范围内最优解不变) V ARIABLE CURRENT ALLOWABLE ALLOWABLECOEF (当前系数) INCREASE (增加量) DECREASE (减少量) X1 5.000000 0.000000 INFINITY X2 8.000000 0.000000 INFINITYRIGHTHAND SIDE RANGES (约束条件右边常数的变化范围,在此范围内最优基不变) ROW CURRENT ALLOWABLE ALLOWABLERHS (当前系数)INCREASE (增加量) DECREASE (减少量) 2 6.000000 INFINITY 1.000000 (第一个约束) 3 45.000000 INFINITY 0.000000 (第二个约束)注意:1. 软件中已经假设所以的变量是非负的,所以非负约束不必输入; 2. 可以用 FREE 变量 来取消变量的非负限制; 3. 不区分大小写; 4. 约束条件“<=”、“>=”可以用“<”、“>”代替; 5. 变量名不能超过8个字符;6. 变量与系数间可以有空格,但不能有任何运算符号(如*等); 7. 不允许变量出现在一个约束条件的右端; 8. 输入中不能有“()”和“,”;比如4(x1+x2)应写成4x1+4x2等;9. 在一个式中同一变量不能出现一次以上,比如2x1+3x2-x1应简化为x1+3x2;gin 变量 变量为整数变量 gin nint n 模型中的前n 个变量为0/1整数变量,关于变量的顺序可由输出结果查证! 整数变量申明须放在最后(即end 后)例2:集合覆盖问题设有一集合S={1,2,3,4,5},及S 的一个子集簇P={{1,2},{1,3,5},{2,4,5},{3},{1},{4,5}},假设选择P 中各个元素的费用为1、1.5、1.5、0.8、0.8、1,试从P 中选一些元素使之覆盖S 且所选元素费用之和最小。
数学建模:线性规划的求解与灵敏度
0.4
1.1
1.0
单位工件的加工费用 工件 1 工件 2 工件 3
13
9
10
可用台 时数
800
乙
0.5
1.2
1.3
11
12
8
900
第3页
解 设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3,
在乙车床上加工工件1、2、3的数量分别为x4、x5、x6,可建立以 下线性规划模型:
min z 13x1 9x2 10 x3 11x4 12 x5 8x6
1 0 0
0 1 0
0 0 1
1 0 0
0 1 0
0 0X 1
400 600
500
,X
x2
x3
0
x4
x5 x6
第14页
编写M文件xxgh3.m如下:
f = [13 9 10 11 12 8];
A = [0.4 1.1 1 0 0 0
0 0 0 0.5 1.2 1.3];
返第19页回
用LINDO、LINGO优化工具箱解线性规划
第20页
一、LINDO软件包
下面我们通过一个例题来说明LINDO 软件包的使用方法.
第21页
LINDO和LINGO软件能求解的优化模型
连续优化
优化模型 整数规划(IP)
线性规划 二次规划
(LP)
(QP)
LINDO
非线性规划 (NLP)
LINGO
于加工三种工件.假定这两台车床的可用台时数分别为800和 900,三种工件的数量分别为400、600和500,且已知用三种 不同车床加工单位数量不同工件所需的台时数和加工费用如 下表.问怎样分配车床的加工任务,才能既满足加工工件的要 求,又使加工费用最低?
线性规划建模及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.“>”与“>=”功能相同。
Lindo Lingo软件初步
Lindo /Lingo 软件初步Lindo/Lingo 软件是美国Lindo 系统公司开发的一套专门用于求解优化模型的软件。
Lindo 系统公司面向全社会免费提供该软件的“演示版”,我们现在使用的就是这个演示版。
占领硬盘空间大约20MB .一.Lingo 入门1.编写简单的Lingo 程序Lingo 程序:在“模型窗口”中,按Lingo 语法格式,输入一个完整的优化模型。
(注意:一个程序就是一个优化模型)例1 要求解线性规划问题 .0,,1253,1034..,32max ≥≤+≤++=y x y x y x t s y x z输入程序:max=2*x+3*y;4*x+3*y<=10;3*x+5*y<=12;例2 求解 .,0,,2,100..,23.027798max 21212122212121且都是整数≥≤≤+---+x x x x x x t s x x x x x x输入程序:max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2;x1<=2*x2;x1+x2<=100;@gin(x1); @gin(x2);2.语法格式(1)目标函数 max= 或 min=(2)每个语句的结尾要有“;”(3)程序中,各个语句的先后次序无关(4)自动默认各个变量均为大于等于零的实数(5)不区分大写、小写(6)程序中的“<=”、“<”等同于原模型中的“≤”程序中的“>=”、“>”等同于原模型中的“≥”(7)对一个特定的变量 x ,进行限制:@free(x) :把x 放宽为任意实数@gin(x) :限制x 为整数@bin(x) :限制x 只能取0或1@bnd(-6,x,18) :限制x 为闭区间[-6,18]上的任意实数例3:某学校游泳队要从5名队员中选4名参加4乘100米混合泳接力赛。
5名队员4种泳姿的百米成绩(单位:秒)-----------------------------------------------------------------------------------李 王 张 刘 赵蝶泳 66.8 57.2 78 70 67.4仰泳 75.6 66 67.8 74.2 71蛙泳 87 66.4 84.6 69.6 83.8自由泳 58.6 53 59.4 57.2 62.4-----------------------------------------------------------------------------------如何选拔?(1)请建立“0----1规划”模型;(2)用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中。
应用LINGO和MATLAB软件求解线性规划
Matlab程序如下 c=[-2,-3,5]; A=[-2,5,-1]; b=-10; Aeq=[1,1,1]; beq=[7]; lb=[0,0,0]; [x,z]=linprog(c,A,b,Ae q,beq,lb)
运行后得到输出 x= 6.4286 0.5714 0.0000 z= -14.5714 键入 s=-z 运行后得到原问题的目标 函数最大值 s=14.5714
1.2 应用MATLAB求解线性规划
• MATLAB(MATrix LABoratory)的基本含义是矩阵实验 室,它是由美国MathWorks公司研制开发的一套高性能的 集数值计算、信息处理、图形显示等于一体的可视化数学 工具软件。它是建立在向量、数组和矩阵基础之上的,除 了基本的数值计算、数据处理、图形显示等功能之外,还 包含功能强大的多个“工具箱”,如优化工具箱( optimization toolbox)、统计工具箱、样条函数工具箱和 数据拟合工具箱等都是优化计算的有力工具。在这里仅介 绍用MATLAB6.5优化工具箱求解线性规划问题。 • 一般线性规划问题的数学模型为
“Dual Price”的意思是对偶价格(或称为影子价格),上述 报告中Row2的松弛值为0,表明生产甲产品4单位、乙产品 2单位,所需设备8台时已经饱和,对偶价格1.5的含义是: 如果设备增加1台时,能使目标函数值增加1.5。报告中 Row4的松弛值为4,表明生产甲产品4单位、乙产品2单位, 所需原材料乙8公斤还剩余4公斤,因此增加原材料乙不会 使目标函数值增加,所以对偶价格为0。
求解输出结果如下: Global optimal solution found at iteration: 4 Objective value: 22.40000 Variable Value Reduced Cost X1 0.000000 0.7000000 X2 12.00000 0.000000 X3 0.000000 0.6166667 X4 30.00000 0.000000 X5 10.00000 0.000000 Row Slack or Surplus Dual Price 1 22.40000 -1.000000 2 0.000000 -0.5833333 3 4.100000 0.000000 4 0.000000 -4.166667 5 0.000000 0.8833333
数学建模:运用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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学建模:运用Lindolingo软件求解线性规划
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。