lingo解决规划问题——数学建模
数学建模必备知识——lingo处理实例(多目标问题)
一个简单的LINGO程序
LINGO的基本用法的几点注意事项
•LINGO中不区分大小写字母;变量和行名可以超过8个字符,但 不能超过32个字符,且必须以字母开头。 •用LINGO解优化模型时已假定所有变量非负(除非用限定变量取 值范围的函数@free或@BND另行说明)。 •变量可以放在约束条件的右端(同时数字也可放在约束条件的左 端)。但为了提高LINGO求解时的效率,应尽可能采用线性表达 式定义目标和约束(如果可能的话)。 •语句是组成LINGO模型的基本单位,每个语句都以分号结尾,编 写程序时应注意模型的可读性。例如:一行只写一个语句,按照 语句之间的嵌套关系对语句安排适当的缩进,增强层次感。 •以感叹号开始的是说明语句(说明语句也需要以分号结束))。
LINGO中定义集合及其属性
LP模型在LINGO中的一个典型输入方式
以“MODEL:”开 始
集合定义部分从 (“SETS:”到 “ENDSETS” ): 定义集合及其属性 给出优化目标 和约束 集合定义部分从 (“DATA:”到 “ENDDATA” )
以“END”结 束
目标函数的定义方式 @SUM(集合(下标):关于集合的属性的表达式) 对语句中冒号“:”后面的表达式,按照“:”前 面的集合指定的下标(元素)进行求和。 本例中目标函数也可以等价地写成
LINGO软件的基本使用方法
内容提要
1. LINGO入门 2.在LINGO中使用集合
3. 运算符和函数
4. LINGO的主要菜单命令 5. LINGO命令窗口
6.习题
1. LINGO入门 2.在LINGO中使用集合
3. 运算符和函数
1. LINGO入门 4. LINGO的主要菜单命令 5. LINGO命令窗口
Lingo软件与数学建模
变量数目:变量总数 (Total)、非线型变量 数(Nonlinear)、整数 变量数(Integer)
约束变量:约束总数 ( Total )、非线性约束 个数(Nonlinear)
非线性系数数量:总数 ( Total )、非线性项的 系数个数(Nonlinear)
内存使用量:单位为千字节
数据多,咋办?
value=1,1.2,0.9,1.1;
enddata
max=@sum(goods:weight*value);
@for(goods:@bin(x));
end
游泳
四名同学的混合泳接 力赛的四种成绩如左 表所示,确定如何分 配使成绩最佳。
蛙蝶自仰 泳泳由泳
泳
甲 99 60 59 73
线性规划
二次规划
非线性规划
LINGO软件的基本操作
双击快捷方式 即可计入程序编辑界面
Lingo软件介绍
➢解决一个简单的线性规划(LP)问题
max z 2x 3y 4x 3y 10
s.t. 3x 5y 12 x, y 0
LINGO软件介绍
点击图标
运行,屏幕上显示运行状态窗口如下: 对于LINGO运行状态窗口,
基 @EXP(X):指数函数(以自然对数e为底),返回eX的值
本 数 学
@ LOG(X):自然对数函数,返回X的自然对数值; @POW(X,Y):指数函数,返回XY的值;
函 @SQR(X):平方函数,返回X2的值;
数 @SQRT( X ):平方根函数,返回X的平方根;
@FLOOR(X):取整函数,返回X的整数部分(向靠近0 的方向取);
@GIN(X):限制X为整数.
0-1规划(线性规划)
线性规划问题的Lingo求解
Lingo中参数设置与调整
01
参数设置
02
调整策略
Lingo允许用户设置求解器的参数, 如求解方法、迭代次数、收敛精度等 。这些参数可以通过`@option`进行 设置。
如果求解过程中遇到问题,如无解、 解不唯一等,可以通过调整参数或修 改模型来尝试解决。常见的调整策略 包括放松约束条件、改变目标函数权 重等。
02
比较不同方案
03
验证求解结果
如果存在多个可行解,需要对不 同方案进行比较,选择最优方案。
可以通过将求解结果代入原问题 进行验证,确保求解结果的正确 性和合理性。
感谢您的观看
THANKS
问题,后面跟随线性表达式。
02 03
约束条件表示
约束条件使用`subject to`或简写为`s.t.`来引入,后面列出所有约束条 件,每个约束条件以线性表达式和关系运算符(如`<=`, `>=`, `=`, `<`, `>`)表示。
非负约束
默认情况下,Lingo中的变量是非负的,如果变量可以为负,需要使用 `@free`进行声明。
问题的解通常出现在约束条件的边界上 。
变量通常是连续的。
特点 目标函数和约束条件都是线性的。
线性规划问题应用场景
生产计划
确定各种产品的最优生产量, 以最大化利润或最小化成本。
资源分配
在有限资源下,如何最优地分 配给不同的项目或任务。
运输问题
如何最低成本地将物品从一个 地点运输到另一个地点。
金融投资
03
求解结果
通过Lingo求解,得到使得总加工时间最短的生产计划安 排。
运输问题优化案例
问题描述
某物流公司需要将一批货物从A地运往B地,可以选择不同的运输方式和路径,每种方式和路径的运输时间和成本不 同。公司需要在满足货物送达时间要求的前提下,选择最优的运输方式和路径,使得总成本最低。
《数学建模》实验指导_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;然后点击工具条上的按钮 即可。
用lingo求解线性规划问题
用lingo求解线性规划问题中国石油大学胜利学院程兵兵摘要食物营养搭配问题是现代社会中常见的问题,其最终的目的是节省总费用.本文通过对营养问题的具体剖析.构建了一般的线性规划模型。
并通过实例应用Lingo数学软件求解该问题.并给出了价值系数灵敏度分析,得出蔬菜价格的变动对模型的影响.关键词线性规划,lingo,灵敏度分析。
一、问题重述与分析营养师要为某些特殊病人拟订一周的菜单,可供选择的蔬菜及其费用和所含营养成分的数量以及这类病人每周所需各种营养成分的最低数量如下表1所示。
有以下规定:一周内所用卷心菜不多于2份,其他蔬菜不多于4份。
问题一:若病人每周需要14份蔬菜,问选用每种蔬菜各多少份,可使生活费用最小.问题二:当市场蔬菜价格发生怎样波动时,所建模型的适用性。
表 1 所需营养和费用营养搭配是一个线性规划问题,在给定蔬菜的情况下,要求菜单所需的营养成分必须达到要求,并在此条件下求出什么样的搭配所花费的费用最少.第一个要求是满足各类营养的充足,根据表中数据列出不等式。
第二要求为问题一中,蔬菜的份数必须为14,第三要求为在一周内,卷心菜不多于2份,其他不多于4份,根据以上条件列出各类蔬菜份数的限定条件,并可表示出费用的表达式.对于第二问,就是价值系数的变化对总费用的影响,模型的适用范围。
三、模型假设第一,假设各蔬菜营养成分保持稳定,满足题干要求。
第二,假设各蔬菜价格在一定时间内保持相对稳定。
第三,假设各类蔬菜供应全部到位,满足所需要求量. 第四,假设所求出最优解时不要求一定为整数。
四、符号约定(1)Z 代表目标函数,此题即为费用。
(2)i c 为价值系数,此题即为每份蔬菜的价格。
下标i 代表蔬菜的种类。
(3)i x 为决策变量,表示各种蔬菜的数量。
(4)i b 为最低限定条件,表示蔬菜最低营养需要。
五、模型建立根据以上各种假设和符号约定,建立模型如下。
所求的值就是min,也就是最优化结果.s 。
数学建模lingo作业-习题讲解
基础题:1.目标规划问题最近,某节能灯具厂接到了订购16000套A 型和B 型节能灯具的订货合同,合同中没有对这两种灯具的各自数量做要求,但合同要求工厂在一周内完成生产任务并交货。
根据该厂的生产能力,一周内可以利用的生产时间为20000min ,可利用的包装时间为36000min 。
生产完成和包装一套A 型节能灯具各需要2min ;生产完成和包装完成一套B 型节能灯具各需要1min 和3min 。
每套A 型节能灯成本为7元,销售价为15元,即利润为8元;每套B 型节能灯成本为14元,销售价为20元,即利润为6元。
厂长首先要求必须按合同完成订货任务,并且即不要有足量,也不要有超量。
其次要求满意销售额达到或者尽量接近275000元。
最后要求在生产总时间和包装总时间上可以有所增加,但过量尽量地小。
同时注意到增加生产时间要比包装时间困难得多。
试为该节能灯具厂制定生产计划。
解:将题中数据列表如下:根据问题的实际情况,首先分析确定问题的目标级优先级。
第一优先级目标:恰好完成生产和包装完成节能灯具16000套,赋予优先因子p1;第二优先级目标:完成或者尽量接近销售额为275000元,赋予优先因子p2; 第三优先级目标:生产和包装时间的增加量尽量地小,赋予优先因子p3; 然后建立相应的目标约束。
在此,假设决策变量12,x x 分别表示A 型,B 型节能灯具的数量。
(1) 关于生产数量的目标约束。
用1d -和1d +分别表示未达到和超额完成订货指标16000套的偏差量,因此目标约束为1111211min ,..16000z d d s t x x d d -+-+=+++-=要求恰好达到目标值,即正、负偏差变量都要尽可能地小(2) 关于销售额的目标约束。
用2d -和2d +分别表示未达到和超额完成满意销售指标275000元的偏差值。
因此目标约束为221222min ,..1520-275000.z d s t x x d d --+=++=要求超过目标值,即超过量不限,但必须是负偏差变量要尽可能地小,(另外:d +要求不超过目标值,即允许达不到目标值,就是正偏差变量要尽可能地小) (3) 关于生产和包装时间的目标约束。
利用LINGO软件解决数学建模问题
LINGO 7.0 运行结果如下:
Global optimal solution found at step: Objective value:
Variable X1 Value 264937.9
8
933400.0
Reduced Cost 0.0000000 Row 1 2 3 4 5 6 Slack or Surplus 933400.0 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 Dual Price
表1
标准汽油 1 2 3 4 辛烷数 107.5 93.0 87.0 108.0 蒸 汽
(1 g/cm^2=98Pa)
压 力 库存量 (g/cm^2) 7.11*10^(-2) 11.38*10^(-2) 5.69*10^(-2) 28.45*10^(-2)
表
380000 262200 408100 130100
表2
飞机汽油 1 2 辛烷数 >=91 >=100 蒸汽压力(g/cm^2) <=9.96*10^(-2) <=9.96*10^(-2) 产量需求(L) 越多越好 >=250000
建模过程略(详见《运筹学基础》P54—55) 目标函数:max z=x1+x2+x3+x4 约束条件:x5+x6+x7+x8>=250000 x1+x5<=380000 x2+x6<=265200 x3+x7<=408100 x4+x8<=130100 2.85x1-1.42x2+4.27x3-18.49x4>=0 2.85x5-1.42x6+4.27x7-18.49x8>=0 16.5x1+2.0x2-4.0x3+17x4>=0 7.5x5-7.0x6-13.0x7+8.0x8>=0 xj>=0(j=1,2...,8)
数学建模值班lingo例题和答案
数学建模值班lingo例题和答案
例1
某工厂有两条生产线,分别用生产M和P两种型号的产品,利润分别为200元/个和300元/个,生产线的最大生产能力分别为每日100和 120,生产线每生产一个M产品需要1个劳动日(1个工人工作8小时成为1个劳动日)进行调试、检测等工作,而每个P产品需要2个劳动日,该厂工人每天共计能提供160劳动日,假如原材料等其他条件不受限制,问应如何安排生产计划,才能使获得的利润最大?
解:设两种产品的生产量分别为x和x,则
目标函数max z = 200x +300x,
例2
生产计划安排问题(@if函数的应用)。
某企业用A,B两种原油混合加工成甲、乙两种成品油销售。
数据见下表,表中百分比是成品油中原油A的最低含量。
成品油甲和乙的销售价与加工费之差分别为5和5.6(单位:千元/吨),原油A,B的采购价分别是采购量x(单位:吨)的分段函数
f(x)和g(x)(单位:千元/吨),该企业的现有资金限额为7200(千元),生产成品油乙的最大能力为2000吨。
假设成品油全部能销售出去,试在充分利用现有资金和现有库存的条件下,合理安排采购和生产计划,使企业的收益最大。
解:设原油A,B的采购量分别为x, y,原油A用于生产成品油甲、乙的数量分别为x,,原油B用于生产成品油甲、乙的数量分别为x1,x,则采购原油
A,B的费用分别为f(x)和g(x),目标函数是收益最大,约束条件有采购量约束,生产能力约束、原油含量约束、成品油与原油的关系、资金约束。
建立规划模型如下:
max z = 5(X1+x1)+5.6(X2+x2)- f(x)-g(x)。
数学建模必备LINGO在多目标规划和最大最小化模型中的应用
数学建模必备LINGO 在多目标规划和最大最小化模型中的应用一、多目标规划的常用解法多目标规划的解法通常是根据问题的实际背景和特征,设法将多目标规划转化为单目标规划,从而获得满意解,常用的解法有:1.主要目标法确定一个主要目标,把次要目标作为约束条件并设定适当的界限值。
2.线性加权求和法对每个目标按其重要程度赋适当权重0≥i ω,且1=∑ii ω,然后把)(x f i ii ∑ω作为新的目标函数(其中p i x f i ,,2,1),( =是原来的p 个目标)。
3.指数加权乘积法设p i x f i ,,2,1),( =是原来的p 个目标,令∏==pi a i ix f Z 1)]([其中i a 为指数权重,把Z 作为新的目标函数。
4.理想点法先分别求出p 个单目标规划的最优解*i f ,令∑-=2*))(()(iifx f x h然后把它作为新的目标函数。
5.分层序列法将所有p 个目标按其重要程度排序,先求出第一个最重要的目标的最优解,然后在保证前一个目标最优解的前提条件下依次求下一个目标的最优解,一直求到最后一个目标为止。
这些方法各有其优点和适用的场合,但并非总是有效,有些方法存在一些不足之处。
例如,线性加权求和法确定权重系数时有一定主观性,权重系数取值不同,结果也就不一样。
线性加权求和法、指数加权乘积法和理想点法通常只能用于两个目标的单位(量纲)相同的情况,如果两个目标是不同的物理量,它们的量纲不相同,数量级相差很大,则将它们相加或比较是不合适的。
二、最大最小化模型在一些实际问题中,决策者所期望的目标是使若干目标函数中最大的一个达到最小(或多个目标函数中最小的一个达到最大)。
例如,城市规划中需确定急救中心的位置,希望该中心到服务区域内所有居民点的距离中的最大值达到最小,称为最大最小化模型,这种确定目标函数的准则称为最大最小化原则,在控制论,逼近论和决策论中也有使用。
最大最小化模型的目标函数可写成)}(,),(),(max{min 21X f X f X f p X或)}(,),(),(min{max 21X f X f X f p X式中T n x x x X ),,,(21 是决策变量。
用Lingo软件编程求解规划问题解决方案
endsets
集成员不放在集定义中,而在随后的数据部分来定义。 sets: students:sex,age; endsets
data: students,sex,age= John 1 16 Jill 0 14 Rose 0 17 Mike 1 13;
x 1 x 2 50
12
x1 8 x2 3 x 1 100
480
x1 0
x2 0
求 z7x216x42的最大值?
70
x2
60
50
40
30
20
10
0
O
-10 -10 0
Linear program 3x1=100
12x1+8x2=480
z=72x1+64x2=720
x1+x2=50 x1
集合
setname [/member_list/] [: attribute_list];
派生集合 基本集合 稀疏集合 稠密集合
元素列表法 元素过滤法 直接列举法 隐式列举法
Lingo软件——基本集合元素的列举
一个原始集是由一些最基本的对象组成的。 setname [/member_list/] [: attribute_list];
决策变量 目标函数
约束条件
x1桶牛奶生产A1 获利 24×3x1 每天获利 原料供应 劳动时间 加工能力 非负约束
x2桶牛奶生产A2
获利 16×4 x2
Mz a7 xx1 26x4 2
x1x2 50
12x18x2 480 3x1 100
x1,x2 0
lingo数学模型
lingo数学模型
"lingo"是一种用于数学建模和优化的软件工具。
它提供了一个
直观的界面,用于建立和求解复杂的数学模型,包括线性规划、整
数规划、非线性规划、多目标规划等。
lingo的使用可以帮助分析
师和决策者在面临复杂的决策问题时进行优化决策。
在数学建模方面,lingo可以用来建立数学模型,包括定义决
策变量、约束条件和目标函数。
用户可以通过lingo的界面直观地
输入模型的各个部分,而无需深入了解数学建模的具体语法和规则。
这使得非专业的用户也能够快速地建立数学模型。
在优化方面,lingo提供了强大的求解算法,可以对各种类型
的数学模型进行求解,以找到最优的决策方案。
lingo支持对模型
进行灵敏度分析,帮助用户了解参数变化对最优解的影响,从而更
好地进行决策。
除了数学建模和优化外,lingo还具有数据可视化功能,可以
直观地展示模型的结果和决策方案。
这有助于用户向决策者传达模
型分析的结果,从而更好地支持决策过程。
总的来说,lingo作为数学建模和优化工具,为用户提供了一
个方便、强大的平台,帮助他们解决复杂的决策问题。
通过lingo,用户可以更好地理解问题、制定决策,并得到最优的解决方案。
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软件编程求解规划问题解决方案
案例背满 足不同产品的需求,并优化资源利用, 实现成本最小化。
问题描述
该公司生产多种产品,每种产品有不 同的需求和资源消耗。目标是确定每 种产品的最优生产量,以最小化总成 本,同时满足需求和资源约束。
Lingo建模与编程实现
决策变量定义
定义每种产品的生产量为决策变量。
02
规划问题建模
问题分析与定义
明确问题背景和目标
01
了解问题的实际背景,确定问题的优化目标,如成本最小化、
收益最大化等。
识别决策变量
02
找出影响目标的关键因素,即决策变量,并确定其取值范围和
类型。
列出约束条件
03
分析问题的限制条件,如资源限制、时间限制等,列出所有约
束条件。
数学模型建立
1 2
选择合适的数学模型 根据问题的特点和目标,选择合适的数学模型, 如线性规划、整数规划、非线性规划等。
代码调试与优化
调试方法
01
输标02入题
在Lingo中,可以使用`@WRITE`等语句输出中间结果, 帮助调试代码。同时,Lingo还提供了错误提示功能, 方便用户定位代码错误。
03
针对大型复杂模型,可以采用以下优化策略:合理划 分模型结构、减少冗余计算、利用Lingo的并行计算
功能等。这些策略可以提高求解速度和准确性。
编程实现步骤与技巧
步骤二
建立目标函数
步骤三
添加约束条件
编程实现步骤与技巧
编程实现步骤与技巧
步骤四
运行求解
技巧一
合理设置变量类型
编程实现步骤与技巧
根据问题的实际情况,合理设置变量的类型(如整数、非负等),可以提 高求解效率和准确性。
用lingo求解数学规划模型实例
1, 第i个部队分配第j种装备 设 xij 0, 第i个部队不分配第j种装备
目标函数: max aij xij
i 1 j1
9
9
xij 1 i 1 9 s .t . : x 1 ij j1 xij=0或1
( i, j=1,2,…,9)
9
9
EQ1 EQ2 EQ3 EQ4 EQ5 EQ6 EQ7 EQ8 EQ9 AR1 0 0 0 0 0 0 0 0 1 AR2 0 0 0 1 0 0 0 0 0 AR3 0 0 0 0 0 1 0 0 0 AR4 0 0 0 0 1 0 0 0 0 AR5 1 0 0 0 0 0 0 0 0 AR6 0 0 0 0 0 0 1 0 0 AR7 0 0 0 0 0 0 0 1 0 AR8 0 0 1 0 0 0 0 0 0 AR9 0 1 0 0 0 0 0 0 0 装备 部队 1 2 3 4 5 6 7 8 9 A 0.24 0.31 0.31 0.49 0.63 0.45 0.45 0.32 0.33 B 0.42 0.04 0.24 0.06 0.15 0.02 0.07 0.24 0.56 C 0.15 0.60 0.08 0.28 0.31 0.37 0.26 0.58 0.41 D 0.46 0.69 0.14 0.13 0.60 0.14 0.15 0.64 0.13 E 0.34 0.11 0.54 0.65 0.06 0.69 0.18 0.43 0.65 F 0.69 0.24 0.61 0.41 0.41 0.29 0.43 0.45 0.07 G 0.03 0.45 0.37 0.55 0.47 0.61 0.55 0.09 0.22 H 0.57 0.35 0.48 0.25 0.19 0.18 0.66 0.05 0.46 I 0.69 0.27 0.34 0.36 0.31 0.46 0.08 0.20 0.11
数学建模lingo作业-习题讲解
基础题:1.目标规划问题最近,某节能灯具厂接到了订购16000套A 型和B 型节能灯具的订货合同,合同中没有对这两种灯具的各自数量做要求,但合同要求工厂在一周内完成生产任务并交货。
根据该厂的生产能力,一周内可以利用的生产时间为20000min ,可利用的包装时间为36000min 。
生产完成和包装一套A 型节能灯具各需要2min ;生产完成和包装完成一套B 型节能灯具各需要1min 和3min 。
每套A 型节能灯成本为7元,销售价为15元,即利润为8元;每套B 型节能灯成本为14元,销售价为20元,即利润为6元。
厂长首先要求必须按合同完成订货任务,并且即不要有足量,也不要有超量。
其次要求满意销售额达到或者尽量接近275000元。
最后要求在生产总时间和包装总时间上可以有所增加,但过量尽量地小。
同时注意到增加生产时间要比包装时间困难得多。
试为该节能灯具厂制定生产计划。
解:将题中数据列表如下:根据问题的实际情况,首先分析确定问题的目标级优先级。
第一优先级目标:恰好完成生产和包装完成节能灯具16000套,赋予优先因子p1;第二优先级目标:完成或者尽量接近销售额为275000元,赋予优先因子p2; 第三优先级目标:生产和包装时间的增加量尽量地小,赋予优先因子p3; 然后建立相应的目标约束。
在此,假设决策变量12,x x 分别表示A 型,B 型节能灯具的数量。
(1) 关于生产数量的目标约束。
用1d -和1d +分别表示未达到和超额完成订货指标16000套的偏差量,因此目标约束为1111211min ,..16000z d d s t x x d d -+-+=+++-=要求恰好达到目标值,即正、负偏差变量都要尽可能地小(2) 关于销售额的目标约束。
用2d -和2d +分别表示未达到和超额完成满意销售指标275000元的偏差值。
因此目标约束为221222min ,..1520-275000.z d s t x x d d --+=++=要求超过目标值,即超过量不限,但必须是负偏差变量要尽可能地小,(另外:d +要求不超过目标值,即允许达不到目标值,就是正偏差变量要尽可能地小) (3) 关于生产和包装时间的目标约束。
用LINGO求解线性规划问题
用LINGO求解线性规划问题实验1 用LINGO求解线性规划问题LINGO使用简介LINGO软件是美国的LINDO系统公司(Lindo System Inc)开发的一套用于求解最优化问题的软件包.LINGO除了能用于求解线性规划和二次规划外,还可以用于非线性规划求解以及一些线性和非线性方程(组)的求解.LINGO软件的最大特色在于它允许优化模型中的决策变量为整数,而且执行速度快.LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果,这里简单介绍LINGO的使用方法.LINGO可以求解线性规划、二次规划、非线性规划、整数规划、图论及网络优化和排队论模型中的最优化问题等.一个LINGO程序一般会包含集合段、数据输入段、优化目标和约束段、初始段和数据预处理段等部分,每一部分有其独特的作用和语法规则,读者可以通过查阅相关的参考书或者LINGO的HELP文件详细了解,这里就不展开介绍了.LINGO的主要功能特色为:既能求解线性规划问题,也有较强的求解非线性规划问题的能力;输入模型简练直观;运算速度快、计算能力强;内置建模语言,提供几十个内部函数,从而能以较少语句,较直观的方式描述大规模的优化模型;将集合的概念引入编程语言,很容易将实际问题转换为LINGO模型;并且能方便地与Excel、数据库等其他软件交换数据.LINGO的语法规定:(1)求目标函数的最大值或最小值分别用MAX=…或MIN=…来表示;(2)每个语句必须以分号“;”结束,每行可以有许多语句,语句可以跨行;(3)变量名称必须以字母(A~Z)开头,由字母、数字(0~9)和下划线所组成,长度不超过32个字符,不区分大小写;(4)可以给语句加上标号,例如[OBJ] MAX=200*X1+300*X2;(5)以惊叹号“!”开头,以分号“;”结束的语句是注释语句;(6)如果对变量的取值范围没有作特殊说明,则默认所有决策变量都非负;(7)LINGO模型以语句“MODEL:”开头,以“END”结束,对于比较简单的模型,这两个语句可以省略.实验目的1.对于给定的实际应用问题,正确的建立线性规划问题数学模型,并用LINGO求解;2.掌握灵敏度分析以及资源的影子价格的相关分析方法.实验数据与内容问题1.1 某工厂在计划期内要安排生产A、B两种产品,已知生产单位产品所需设备台时及对甲、乙两种原材料的消耗,有关数据如表1.1.问:应如何安排生产计划,使工厂获利最大?表1.1 资源配置问题的数据产品资源AB可利用资源设备128台时甲416公斤乙412公斤单位利润2元3元建立线性规划问题的数学模型,用LINGO求出最优解并做相应的分析.问题1.2 某公司饲养实验用的动物以供出售,已知这些动物的生长对饲料中3种营养成分(蛋白质、矿物质和维生素)特别敏感,每个动物每周至少需要蛋白质60g,矿物质3g,维生素8mg,该公司能买到5种不同的饲料,每种饲料1kg所含各种营养成分和成本如表1.2所示,如果每个小动物每周食用饲料不超过52kg,求既能满足动物生长需要,又使总成本最低的饲料配方.表1.2 配料(食谱)问题的数据饲料营养1A2A4A5A营养最低要求蛋白质(g) 0.3210.61.860矿物质(g) 0.10.050.20.053维生素(mg) 0.050.10.020.20.088成本(元/ kg)0.20.70.40.5实验指导问题1.1设计划生产两种产品分别为,则建立线性规划问题数学模型 BA,21,xx.......≥≤≤≤++=0,12416482.32max21212121xxxxxxtsxxS在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: 5Objective value: 14.00000Variable Value Reduced CostX1 4.000000 0.000000X2 2.000000 0.000000Row Slack or Surplus Dual Price1 14.00000 1.0000002 0.000000 1.5000003 0.000000 0.12500004 4.000000 0.000000该报告说明:运行5步找到全局最优解,目标函数值为14,变量值分别为.“Reduced Cost”的含义是需缩减成本系数或需增加利润系数(最优解中取值非零的决策变量的Reduced Cost值等于零).“Row”是输入模型中的行号,目标函数是第一行;“Slack orSurplus”的意思是松弛或剩余,即约束条件左边与右边的差值,对于“124,2==xx≤”的不等式,右边减左边的差值为Slack(松弛),对于“”的不等式,左边减右边的差值为Surplus(剩余),当约束条件两边相等时,松弛或剩余的值等于零.“Dual Price”的意思是对偶价格(或称为影子价格),上述报告中Row2的松弛值为0,表明生产甲产品4单位、乙产品2单位,所需设备8台时已经饱和,对偶价格1.5的含义是:如果设备增加1台时,能使目标函数值增加1.5.报告中Row4的松弛值为4,表明生产甲产品4单位、乙产品2单位,所需原材料乙8公斤还剩余4公斤,因此增加原材料乙不会使目标函数值增加,所以对偶价格为0.≥问题1.2设需要饲料分别为 kg,则建立线性规划数学模型:54321,,,,AAAAA54321,,,,xxxxx123451234512345123451234512345min0.20.70.40.30.50.32 0.61.8600.10.050.020.20.0530.050.10.020.20.088.52,,,,0Sxxxxxxxx xxxxxxxxxxxxstxxxxxxxxxx=++++++++≥..++++..++++..++++≤.≥..在LINGO的MODEL窗口内输入如下模型:Min=0.2*x1+0.7*x2+0.4*x3+0.3*x4+0.5*x5;0.3*x1+2*x2+x3+0.6*x4+1.8*x5>60;0.1*x1+0.05*x2+0.02*x3+0.2*x4+0.05*x5>3;0.05*x1+0.1*x2+0.02*x3+0.2*x4+0.08*x5>8; x1+x2+x3+x4+x5<52;求解输出结果如下:Global optimal solution found at iteration: 4 Objective value: 22.40000Variable Value Reduced CostX1 0.000000 0.7000000X2 12.00000 0.000000X3 0.000000 0.6166667X4 30.00000 0.000000X5 10.00000 0.000000Row Slack or Surplus Dual Price1 22.40000 -1.0000002 0.000000 -0.58333333 4.100000 0.0000004 0.000000 -4.1666675 0.000000 0.8833333因此,每周每个动物的配料为饲料、、分别为12、30和10kg,合计为52,可使得饲养成本达到最小,最小成本为22.4元;不选用饲料和的原因是因为这两种饲料的价格太高了,没有竞争力.“Reduced Cost”分别等于0.7和0.617,说明当这两种饲料的价格分别降低0.7元和0.62元以上时,不仅选用这两种饲料而且使得饲养成本降低.从“Slack or Surplus”可以看出,蛋白质和维生素刚达到最低标准,矿物质超过最低标准4.12A4A5Akgkgkg1A3Ag;从“Dual Price”可以得到降低标准蛋白质1单位可使饲养成本降低0.583元,降低标准维生素1单位可使饲养成本降低4.167元,但降低矿物质的标准不会降低饲养成本,如果动物的进食量减少,就必须选取精一些的饲料但要增加成本,大约进食量降低1可使得饲养成本增加0.88元.kg对于目标函数系数和约束条件右端常数项的灵敏度分析,可以通过LINGO软件求解的灵敏度分析给出.如果要看灵敏度分析结果,必须激活灵敏度计算功能才会在求解时给出灵敏度分析结果,默认情况下这项功能是关闭的.想要激活它,必须运行LINGO|Options…命令,选择Gengral Solver,在Dual Computation列表框中,选择Prices and Ranges选项并确定.对于例1.1问题进行灵敏度分析,结果如下:以下是灵敏度分析的结果Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase DecreaseX1 2.000000 INFINITY 0.5000000X2 3.000000 1.000000 3.000000Righthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 8.000000 2.000000 4.0000003 16.00000 16.00000 8.0000004 12.00000 INFINITY 4.000000对于例1.2问题进行灵敏度分析,结果如下:Ranges in which the basis is unchanged: Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase Decrease X1 0.2000000 INFINITY 0.7000000X2 0.7000000 INFINITY 0.1358974X3 0.4000000 INFINITY 0.6166667X4 0.3000000 1.400000 1.000000X5 0.5000000 0.1247059 INFINITY Righthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 60.00000 4.800000 4.8000003 3.000000 4.100000 INFINITY4 8.000000 0.3428571 0.48000005 52.00000 1.846154 1.411765思考题某投资公司拟制定今后5年的投资计划,初步考虑下面四个投资项目:项目A:从第1年到第4年每年年初可以投资,于次年年末收回成本,并可获利润15%;项目B:第3年年初可以投资,到第5年年末可以收回成本,并获得利润25%,但为了保证足够的资金流动,规定该项目的投资金额上限为不超过总金额的40%;项目C:第2年年初可以投资,到第5年年末可以收回成本,并获得利润40%,但公司规定该项目的最大投资金额不超过总金额的30%;项目D:5年内每年年初可以购买公债,于当年年末可以归还本金,并获利息6%.该公司现有投资金额100万元,请帮助该公司制定这些项目每年的投资计划,使公司到第5年年末核算这5年投资的收益率达到最大.建立线性规划问题的数学模型,并用LINGO求解.。
LINGO数学规划模型
x1 x2 Max f=80 x1+45 x2 0.2 x1 +0.05 x2 ≤4 15 x1 +10 x2 ≤450
一般线性规划的数学模型及解法: min f=cTx s.t. Ax b A1x=b1 LB x UB Matlab求解程序 [x,f]=linprog(c,A,b,A1,b1,LB,UB)
注意:开头用感叹号(!), 末尾用分号(;)表示注释,可 跨多行。
运行之后便可看出数据分配的 结果。
程序结构——派生集
定义派生集 为了定义一个派生集,必须详细声 明: ·集的名字 ·父集的名字 ·可选,集成员 ·可选,集成员的属性 可用下面的语法定义一个派生集: setname(parent_set_list)[/membe r_list/][:attribute_list]; setname是集的名字。 parent_set_list是已定义的集的列表, 多个时必须用逗号隔开。 如果没有指定成员列表,那么 LINGO会自动创建父集成员的所有 组合作为派生集的成员。 派生集的父集既可以是原始集,也 可以是其它的派生集。
数学建模竞赛中的优化问题
数学建模 培训组 2015.4
教学目的
让大家了解数学建模中常常遇到的问 题——优化问题; 初步认识数学建模需要准备的算法,软 件。
内容提要
1. 优化模型的基本概念 2. 优化问题的建模实例 3. LINGO 软件简介
1. 优化模型的基本概念
优化模型和算法的重要意义
程序结构——派生集
稀疏集可以用显式表示也可以用成员资格过滤器表示。 显式表示可如下示例:
数学建模实验报告关于LINGO的解题方法及其思路分析
数学建模实验报告1.解析:此题属于0-1模型问题。
设队员序号为i ,泳姿为j ,记c ij 为队员i 第j 种泳姿的百米成绩,若选择队员i 参加泳姿j 的比赛,记x ij =1, 否则记xij =0;则有,目标函数为∑∑===4151j i ij ij x c Z Min ,每个人最多选泳姿为1,则有5,1,141=≤∑=i xj ij,每种泳姿有且仅有1人,则有4,1,151==∑=j xi ij。
若丁的蛙泳成绩退步及戊的自由泳成绩进步,则将c43的值和c54的值改变即可。
实验过程及运行结果如下:若丁的蛙泳成绩退步为1'15"2及戊的自由泳成绩进步57"5,计算结果如下:通过计算结果可知,在原数据的情况下,队伍的选择应该是甲参加自由泳,乙参加蝶泳,丙参加仰泳,丁参加蛙泳,戊不参加任何比赛,且最好的时间是253.2秒。
若丁的蛙泳成绩退步为1'15"2及戊的自由泳成绩进步57"5,则组成接力的比赛队伍调整为乙参加蝶泳,丙参加仰泳,丁参加蛙泳,戊参加自由泳,甲不参加任何比赛。
2.解析:此题属于线性规划问题。
已知某工厂用1A 、2A 两台机床加工1B 、2B 、3B 三种不同的零件,设1A 生产1B 、2B 、3B 的个数分别为1x 、2x 、3x ,2A 生产1B 、2B 、3B 的个数分别为4x 、5x 、6x ,则目标函数为min=1*2*1x +2*3*2x +3*5*3x +1*3*4x +1*3*5x +3*6*6x ;1A 加工的工时小于80小时,2A 加工的工时小于100小时,生产1B 、2B 、3B 的总数分别为70个、50个、20个。
实验过程及运行结果如下:通过计算结果可知,当1A 生产1B 、2B 、3B 的个数分别为68个、0个、4个,2A 生产1B 、2B 、3B 的个数分别为2个、50个、16个的时候,才能得到最低的成本640元。
数学建模Lingo求解动态规划二
11
4. Lingo函数求解分配问题
给n个人分配n项工作以获得某个最高总效果的问题 第i个人完成第j项工作需要平均时间为 c ij . 数学模型:
min
m
c x
i1 j1
m
n
ij ij
s . t .
x 1 ,
x 1 ,
j 1 ij
i 1 m
ij
j 1 ,..., m
这是一个函数方程,用LINGO可以方便的解决。 编制程序如下:
model: sets: p/1..6/:f; r(p,p)/1,2 1,3 2,3 2,4 3,4 3,5 4,5 4,6 5,6/: d; Endsets data: d=7 9 1 7 6 6 2 7 6; Enddata f(@size(p))=0; @for(p(i)|i#lt# (@size(p):f(i)=@min(r(i,j):d(i,j)+f(j))); end 若左边的运算符严格小于右边的运算符
x a,i 1 ,..., m
j 1 ij i
i 1 n
ij
j
x 0 , i 1 ,..., m , j 1 ,..., n ij
例2 计算6个发点8个收点的最小费用运输问题。产销单 位运价如下表。
单位 运价 销地 产地
B1
B2
B3
B4
B5
B6
B7
B8
产量
A1 A2 A3 A4 A5 A6 销量
2.运用Lingo软件求解最短路问题
例1 求下图的最短路.
7
2 7
4 7
1 9
1
6
2 6 3 6
6
5
用动态规划方法求解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S 19.00000
X( 1) 5.000000
X( 2) 1.000000
X( 3) 3.000000
X( 4) 4.000000
X( 5) 6.000000
X( 6) 10.00000
Row Slack or Surplus
1 0.000000
3.结果
Feasible solution found.
Row Slack or Surplus
1 0.000000
2 0.000000
六、实验总结(对实验结果进行分析,总结实验过程中的问题与收获)
1.操作不够成熟,使用经常出错
2.在学习的过程中不断翻阅书籍,更快的学会
3.上网浏览了许多的例子裁才逐渐掌握
附录:程序代码(指出使用的软件工具)
1.model:
end
五、实验结果(数据,几何图形,截图,须作必要的文字说明及适当排版)
1.结果
Feasible solution found.
Total solver iterations: 0
Variable Value
X( 1) 1.000000
X( 2) 4.000000
X( 3) 9.000000
X( 4) 16.00000
X( 1) 5.000000
X( 2) 1.000000
X( 3) 3.000000
X( 4) 4.000000
X( 5) 6.000000
X( 6) 10.00000
Row Slack or Surplus
1 0.000000
3.model:
data:
N=6;
enddata
sets:
number/1..N/:x;
sets:
number/1..5/:x;
endsets
@for(number(I): x(I)=I^2);
end
结果:Feasible solution found.
Total solver iterations: 0
Variable Value
X( 1) 1.000000
X( 2) 4.000000
数学建模与创新实验室实验报告
课程名称:数学模型与数学实验专业:数学教育
实验题目
lingo解决规划问题
学生姓名
学号
班级
指导教师
实验日期
成绩
一、实验目的与要求:
(1)了解线性规划模型的标准形式,知道非线性规划的几种求解方法;
(2)掌握用Lingo软件求解多目标线性规划模型的方法.
二、实验原理:
(1)用状态转移矩阵建立初级模型;
X( 5) 25.00000
Row Slack or Surplus
1 0.000000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
2.结果
Feasible solution found.
Total solver iterations: 0
Variable Value
Total solver iterations: 0
Variable Value
N 6.000000
MINV 1.000000
MAXV 10.00000
X( 1) 5.000000
X( 2) 1.000000
X( 3) 3.000000
X( 4) 4.000000
X( 5) 6.000000
X( 6) 10.00000
Variable Value
N 6.000000
MINV 1.000000
MAXV 10.00000
X( 1) 5.000000
X( 2) 1.000000
X( 3) 3.000000
X( 4) 4.000000
X( 5) 6.000000
X( 6) 10.00000
Row Slack or Surplus
endsets
data:
x = 5 1 3 4 6 10;
enddata
minv=@min(number(I)|I #le# 5: x);
maxv=@max(number(I)|I #ge# N-2: x);
end
结果:Feasible solution found.
Total solver iterations: 0
X( 3) 9.000000
X( 4) 16.00000
X( 5) 25.00000
Row Slack or Surplus
1 0.000000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
2.model:
data:
N=6;
enddata
sets:
numbeห้องสมุดไป่ตู้/1..N/:x;
1 0.000000
2 0.000000
(2)用多目标线性规划建立分层优化模型,利用Lingo软件求解;
(3)对优化模型进行评价和改进;
(4)对软件的处理结果进行分析。
三、实验内容(输入题目内容.若来源于教材,写出教材中的页码题号):
1.
2.求向量[5,1,3,4,6,10]前5个数的和
3.求向量[5,1,3,4,6,10]前5个数的最小值,后3个数的最大值
四、实验步骤:
1.model:
sets:
number/1..5/:x;
endsets
@for(number(I): x(I)=I^2);
end
2.model:
data:
N=6;
enddata
sets:
number/1..N/:x;
endsets
data:
x= 5 1 3 4 6 10;
enddata
s=@sum(number(I)| I #le# 5: x);
end
3.model:
data:
N=6;
enddata
sets:
number/1..N/:x;
endsets
data:
x = 5 1 3 4 6 10;
enddata
minv=@min(number(I)|I #le# 5: x);
maxv=@max(number(I)|I #ge# N-2: x);
endsets
data:
x= 5 1 3 4 6 10;
enddata
s=@sum(number(I)| I #le# 5: x);
end
结果:Feasible solution found.
Total solver iterations: 0
Variable Value
N 6.000000
S 19.00000