文档库 最新最全的文档下载
当前位置:文档库 › LINGO线性规划数学建模论文-工作人员的最优时间分配问题的研究

LINGO线性规划数学建模论文-工作人员的最优时间分配问题的研究

LINGO线性规划数学建模论文-工作人员的最优时间分配问题的研究
LINGO线性规划数学建模论文-工作人员的最优时间分配问题的研究

工作人员的最优时间分配问题的研究

【摘要】

由于每个人的工作效率不同,导致不同的分配方式会有不同的时间开销。本文建立了0-1规划模型对最少时间成本下的工作人员分配问题进行了研究。

本问题中首先确定第i人做或者不做第j工作将问题定量化,再以全部的工作时间为目标函数,最后使用Lingo对目标函数求最优解得出最终结果。

关键词:最少时间最优解时间分配 0-1模型 Lingo 线性规划

一、问题重述

设有人员12个,工作10件,且一人做一个工作,第i人做第j件工作的时间(或费用)c(取值见表1.1),问:如何分派可使工作时间(或总费用)最少。

ij

表1.1 c ij

二、问题假设

1.每个人都能在自己的花销时间内完成工作。

2.每个人只能做一个工作,即既不能同时做两个工作,也不能在一个工作做完后再做其他工作。

3.每件工作都必须有人做,且只能由一个人独立完成。

4.各个工作之间没有相互联系。即一个工作的完成与否,不受另一个工作的制约。

三、符号说明

z:完成所有工作的总时间

x:第i人做第j件工作的时间

ij

四、问题分析、模型的建立与求解

1.问题的分析

最少时间(即人力资源成本)是最大利润一个很有参考价值的数据,往往需要利用数学建模的方法对其进行定量的分析,首先确定第i人做或者不做第j工作将问题定量化,再以全部的工作时间为目标函数,最后对目标函数求最优解得出最终结果。

2.模型的建立

设:

10...3,2,112...3,2,1{.1.0===

j i x ij j i j i ,件工作

人做第第件工作人不做第第 则工作时间为: ∑∑===12110

1z i ij j ij x c

限定条件为:

12...3,2,11101=≤∑=i x

j ij ,(即每个人只能做一个工作(假设2)

,可以小于1是因为人比工作多,允许有人空闲)

10...3,2,11121i ==∑=j x

ij ,(即每个工作都要有人做,且只能由一个人做

(假设3))

10or x ij =

不能完成任务的人:

,,

,

,,,,,

,

,,

,,,,

4

,122,129,1099989610,77865575110,448474326=x x x x x x x x x x x x x x x x

3.模型的求解

化为标准形式如下:

∑∑===12110

1

z Min i ij j ij x c

s.t. 12...3,2,11101=≤∑=i x

j ij ,

10...3,2,11121i ==∑=j x

ij ,

10or x ij =

,,

,

,,,,,

,

,,

,,,,

4

,122,129,1099989610,77865575110,448474326 x x x x x x x x x x x x x x x x

将上述条件,以及数据写入Lingo 中,编写程序求解。源程序及输出结果详见附件。

4.结果分析

程序调试完成后,得到结果如下:

X( 1, 7) =

1.000000 X( 2, 10) =

1.000000 X( 5, 5) =

1.000000 X( 6, 6) =

1.000000 X( 7, 4) =

1.000000 X( 8, 2) =

1.000000 X( 9, 1) =

1.000000 X( 10, 3) =

1.000000 X( 11, 8) =

1.000000 X( 12, 9) = 1.000000

最小时间为:

z = 23

将工作分派情况与表1.1,即每个人的花费时间作对比,如下表(表1.2):

表1.2 加粗的单元格即为选择做第j件事的第i个人

现在我们可以看到,最优解基本上是集中于取值较低(即花费时间较少)的人上面,受假设2(每个人只能做一个工作,即既不能同时做两个工作,也不能在一个工作做完后再做其他工作)的约束,每一横行只能选一个格子(即每个人只能做一件工作),可不选。

模型再受到假设3的约束(每件工作都必须有人做,且只能由一个人独立完成)),所以,每一竖行必须且只能选一个格子。

对照约束条件与表1.2,我们发现有些事件取值并非该人最高效事件(如第10人),但为满足约束,所以程序从全局高度对结果进行了取舍。

由表1.2,我们可以推断,在没有计算机辅助,或待求解量较少且对结果要求不高的情况下,可以采取“画格子”的方式粗糙地求解类似问题。但也可从思维过程看出在计算机辅助的情况下节省了大量的较繁运算。

五、模型的评价

优点

模型明了简洁,具有相当的可推广性。

缺点

模型考虑的影响因素较少。

六、模型的推广与改进

在该问题的求解中,考虑的方面较为简略,还有很多因素可以考虑。例如在可以协作的情况下,各个人做完了分配工作后可以再其他工作的情况下,以及该情形下他们不同的休息时间,各道工作有关联时的情况等因素。但在单一工作及简单考虑情况下,该模型具有较大的生存空间,只需改动少许数值即可推广应用。

七、附件

Lingo源程序:

model:

sets:

si/1..12/;

sj/1..10/;

sij(si,sj):c,x;

endsets

data:

c=2 5 8 3 6 12 2 4 6 7

5 4 7 2 2 0 7 3 3 1

7 23 5 4 7 4 9 6 4 6

7 9 0 5 8 8 0 0 4 0

0 8 3 2 1 7 0 8 7 9

5 9

6 8 0 3 4

7

8 7

5 5

6 4

7 5 9 0 5 0

2 2 8 8 2 9 4

3 8 5

3 5 5 7 3 0 8 0 0 6

8 7 4 3 7 5 9 8 0 3

3 8 8 1

4 8 2 1 9 5

3 0 5 0 5 7 2 8 2 10;

enddata

min = @sum(sij:c*x);

@for(sij:@bin(x));!限制x为0-1变量;

@for(sj(j):@sum(si(i):x(i,j))=1); !(即每个工作都要有人做,且只能由一个人做(假设3));

@for(si(i):@sum(sj(j):x(i,j))<=1); !(即每个人只能做一个工作(假设2),可以小于1是因为人比工作多,允许有人空闲);

!强制等于0的量。即无法完成某项工作的人;

x(2,6)=0;

x(4,3)=0; x(4,7)=0; x(4,8)=0; x(4,10)=0;

x(5,1)=0; x(5,7)=0;

x(6,5)=0;

x(7,8)=0; x(7,10)=0;

x(9,6)=0; x(9,8)=0; x(9,9)=0;

x(10,9)=0;

x(12,2)=0; x(12,4)=0;

Lingo求解输出结果:

Global optimal solution found at iteration: 21

Objective value: 23.00000

Variable Value Reduced Cost

X( 1, 7) 1.000000 2.000000

X( 2, 10) 1.000000 1.000000

X( 5, 5) 1.000000 1.000000

X( 6, 6) 1.000000 3.000000

X( 7, 4) 1.000000 4.000000

X( 8, 2) 1.000000 2.000000

X( 9, 1) 1.000000 3.000000

X( 10, 3) 1.000000 4.000000

X( 11, 8) 1.000000 1.000000

X( 12, 9) 1.000000 2.000000

【参考文献】

[1] 姜启源,谢金星,叶俊. 数学模型[M].北京:高等教育出版社,2003.8

数学建模:运用Lindolingo软件求解线性规划

数学建模:运用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:

Lingo与线性规划

Lingo 与线性规划 线性规划的标准形式是 1111111..0,1,2,,n n m mn n m i a x a x b s t a x a x b x i n +≤????+≤??≥= ? (1) 其中11n n z c x c x =++称为目标函数,自变量i x 称为决策变量,不等式组(1)称为约束条件. 满足不等式组(1)的所有1(,,)n x x 的集合称为可行域,在可行域里面使得z 取最小值 的**1(,,)n x x 称为最优解,最优解对应的函数值称为最优值。 求解优化模型的主要软件有Lingo 、Matlab 、Excel 等。其中Lingo 是一款专业求解优化模型的软件,有其他软件不可替代的方便功能。本文将简要介绍其在线性规划领域的应用。 一、基本规定 1、目标函数输入格式 max=函数解析式; 或者 min=函数解析式; 2、约束条件输入格式 利用:>、<、>=、<=等符号。但是>与>=没有区别。Lingo 软件默认所以自变量都大于等于0. 3、运算 加(+),减(-),乘(*),除(/),乘方(x^a),要注意乘号(*)不能省略。 4、变量名 不区分大小写字母,不超过32个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始的是说明语句(说明语句也需要以分号“;”结束)。但是,model ,sets ,data 以“:”结尾。endsets ,enddata ,end 尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL 语句 一般程序必须先输入MODEL :表示开始输入模型,以“END”结束。对简单的模型,这两个语句也可以省略。 8、改变变量的取值范围 @bin(变量名); 限制该变量为0或1. @bnd(a,变量名,b ); 限制该变量介于a,b 之间. @free(变量名); 允许该变量为负数. @gin(变量名); 限制该变量为整数. 例1 求目标函数1 223z x x =+的最小值,约束条件为 输入Lingo 程序: min = 2*x1 + 3*x2; x1 + x2 >= 350; x1 >= 100; 2*x1 + x2 <= 600; 有两种运行方式:

lingo解决线性规划问题的程序

Lingo12软件培训教案 Lingo 主要用于求解线性规划,整数规划,非线性规划,V10以上版本可编程。 例1 一个简单的线性规划问题 0 , 600 2 100 350 st. 3 2max >=<=+=<<=++=y x y x x y x y x z ! 源程序 max = 2*x+3*y; [st_1] x+y<350; [st_2] x<100; 2*x+y<600; !决策变量黙认为非负; <相当于<=; 大小写不区分 当规划问题的规模很大时,需要定义数组(或称为矩阵),以及下标集(set) 下面定义下标集和对应数组的三种方法,效果相同::r1 = r2 = r3, a = b = c. sets : r1/1..3/:a; r2 : b; r3 : c; link2(r1,r2): x; link3(r1,r2,r3): y; endsets data : ALPHA = ; a=11 12 13 ; r2 = 1..3; b = 11 12 13; c = 11 12 13; enddata

例2 运输问题 解: 设决策变量ij x = 第i 个发点到第j 个售点的运货量,i =1,2,…m; j =1,2,…n; 记为ij c =第i 个发点到第j 个售点的运输单价,i =1,2,…m; j =1,2,…n 记i s =第i 个发点的产量, i =1,2,…m; 记j d =第j 个售点的需求量, j =1,2,…n. 其中,m = 6; n = 8. 设目标函数为总成本,约束条件为(1)产量约束;(2)需求约束。 于是形成如下规划问题: n j m i x n j d x m i s x x c ij j n i ij i m j ij m i n j ij ij ,...,2,1,,...,2,1,0 ,...,2,1, ,...,2,1, st. z min 11 11==>=<==<==∑∑∑∑==== 把上述程序翻译成LINGO 语言,编制程序如下: ! 源程序

Lingo与线性规划

Ling o与线性规划 线性规划得标准形式就是 (1) 其中称为口标函数,自变量称为决策变量,不等式组(1)称为约束条件、 满足不等式组(1)得所有得集合称为可行域,在可行域里面使得Z取最小值得称为最优解,最优解对应得函数值称为最优值。 求解优化模型得主要软件有L i ng o、Ma t 1 a b> Ex c el等。其中Lingo 就是一款专业求解优化模型得软件,有其她软件不可替代得方便功能。本文将简要介绍其在线性规划领域得应用。 —、基本规定 1、目标函数输入格式 ma x二函数解析式;或者min二函数解析式; 2、约束条件输入格式 利用:>、V、〉=、〈二等符号。但就是>与>二没有区别。L ingo软件默认所以自变量都大于等于0、 3、运算 加(+),减(-),乘(*),除(/),乘方(x A a),要注意乘号(*)不能省略。 4、变量名 不区分大小写字母,不超过32个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始得就是说明语句(说明语句也需要以分号";”结束)o但就是,mo d el, s e t s, data以":”结尾。endsets, e n ddata, e n d尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL 语句

一般程序必须先输入MODEL:表示开始输入模型,以“END”结束。对简单 (1)

例1求目标函数得最小值,约束条件为 输入Ling o 程序: min = 2*x1 + 3*x2; x I + x2 >= 350?x1 >= 1 0 0;2A *X 1 + x2 <= 600; 有两种运行方式: 1、点击工具条上得按钮 即可。 2、点击菜单:LINGO —Solve 运行结果如下: 下面对其各个部分进行说明: Gl o bal o p tima 1 solution f oun d :表示已找到全局最优解。 Ob j e ctive value :表示最优值得大小。可见本题函数最小值8 00。 Rov Slack or Surplus Dual Price 1 800.0000 -1.000000 2 CLOOCICICICI -4?00 OOOCI 3 150.0CICICI O ?000000 4 CLOOCICICICI 1?000000 Global optimal solution found ? Objective value: 800.0000 Infeasibilities: 0 ? OOOCICICI Total solver iterations: 2 Variable 得模型,这两个语句也可以省略。 8、改变变量得取值范围 bin (变量名); bnd (a,变量名,b ); free (变量名); gin (变量名); 限制该变量为0或1、 限制该变量介于a, b 之间、 允许该变量为负数、 限制该变量为整数、 Value 250.0000 ?dodo Reduced Cost o ?000000 o ?000000

Lingo与线性规划

. Word 文档 Lingo 与线性规划 线性规划的标准形式是 11n n Min z c x c x =++L 1111111..0,1,2,,n n m mn n m i a x a x b s t a x a x b x i n +≤??? ? +≤??≥=?L M L L (1) 其中11n n z c x c x =++L 称为目标函数,自变量i x 称为决策变量,不等式组(1)称为约束条件. 满足不等式组(1)的所有1(,,)n x x L 的集合称为可行域,在可行域里面使得z 取最小值的**1 (,,)n x x L 称为最优解,最优解对应的函数值称为最优值。 求解优化模型的主要软件有Lingo 、Matlab 、Excel 等。其中Lingo 是一款专业求解优化模型的软件,有其他软件不可替代的方便功能。本文将简要介绍其在线性规划领域的应用。 一、基本规定 1、目标函数输入格式 max=函数解析式; 或者 min=函数解析式; 2、约束条件输入格式 利用:>、<、>=、<=等符号。但是>与>=没有区别。Lingo 软件默认所以自变量都大于等于0. 3、运算 加(+),减(-),乘(*),除(/),乘方(x^a),要注意乘号(*)不能省略。 4、变量名 不区分大小写字母,不超过32个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始的是说明语句(说明语句也需要以分号“;”结束)。但是,model ,sets ,data 以“:”结尾。endsets ,enddata ,end 尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL 语句 一般程序必须先输入MODEL :表示开始输入模型,以“END ”结束。对简单的模型,这两个语句也可以省略。 8、改变变量的取值范围 bin(变量名); 限制该变量为0或1. bnd(a,变量名,b ); 限制该变量介于a,b 之间. free(变量名); 允许该变量为负数. gin(变量名); 限制该变量为整数. 例1 求目标函数1223z x x =+的最小值,约束条件为

线性规划lingo实现示例

加工奶制品的生产计划 问题 品加工厂用牛奶生产1A ,2A 两种奶制品,1桶牛奶可以在设备甲用12小时加工成3公斤1A ,或者在设备乙上用8小时加工成4公斤2A 。根据市场需求,生产的1A ,2A 全部能售出,且每公斤1A 获利24元,每公斤2A 获利16元。现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间魏480小时,并且设备甲每天至多能加工100公斤1A ,设备乙的加工能力没有限制。试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下三个附加问题: 1) 若用35元可以买到1桶牛奶,应否作这项投资? 若投资,每天最多购买多少桶 牛奶? 2) 若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元? 3) 由于市场需求变化,每公斤1A 的获利增加到30元,应否改变生产计划? 问题分析 这个优化问题的目标是使每天的获利最大,要作的决策是生产计划,即每天用多少桶牛奶生产1A ,用多少桶牛奶生产2A ,决策受到3个条件的限制:原料(牛奶)供应、劳动时间、设备甲的工作能力。按照题目所给,将决策变量、目标函数和约束条件用数学符号及式子表示出来,就得到下面的模型。 基本模型 决策变量:设每天用1x 桶牛奶生产1A ,用2x 桶牛奶生产2A 。 目标函数:设每天获利Z 元。1x 桶牛奶可生产31x 公斤1A ,获利1324x ?,2x 桶牛奶可生产42x 公斤2A ,获利2416x ?,故Z=216472x x +. 约束条件 原料供应:生产1A ,2A 的原料(牛奶)总量不得超过每天的供应,即1x +2x ≤50桶; 劳动时间:生产1A ,2A 的总加工时间不得超过每天正式工人总的劳动时间,即121x +82x ≤480小时; 设备能力:1A 的产量不得超过设备甲每天的加工能力,即31x ≤100; 非负:1x ,2x 均不能为负值,即1x ≥0,2x ≥0。 综上可得 Max Z=216472x x + (1) s.t. 1x +2x ≤50 (2)

lingo解决线性规划问题(附程序)

北方民族大学第六届数学建模竞赛 竞赛论文 竞赛分组: 竞赛题目: 组员: 所在学院: 信息与计算科学学院制版

北方民族大学第六届数学建模竞赛承诺书 为保证竞赛的公平、公正,维护竞赛的严肃性,在竞赛期间,我们承诺遵守以下竞赛规定:只在本参赛队的三人之间进行问题的讨论,绝不与本参赛队外的其他人讨论与竞赛题目相关的任何问题,不抄袭、剽窃他人的成果,引用的参考文献在答卷中进行标注。 承诺人签名: 承诺人所在分组: 承诺人所在学院: 年月日

摘要 在工程技术、经济管理等诸多领域中,人们经常遇到的一类决策问题是:在一系列客观或主观限制条件下,寻求所要关注的某个或多个指标达到最大(或最小)的决策。例如,酒店客房分配,我们常常不能使得客房刚好满足顾客的要求,此时,客房是有限的,但是顾客需要的客房数已经超出酒店可提供的客房数目,我们就会选择一种客房分配方案,来使得酒店的收益获得最大的。 7天连锁酒店利用网络系统为常客户开设标准间和商务间两类客房的预定服务,酒店以一周(从星期一到星期日)为一个时段处理这项业务。现在收到一个会务组提出的一个一周的预定需求单,现要求我们依据题目所提供的信息,以酒店收入最大为目标,针对3种不同情况,制定相应的分配方案。 我们把这类决策问题通常归为最优化问题,解决问题的方案是,找到问题的决策变量,目标函数及约束条件。如果需要作出决策的变量较多时,我们就会首选LINGO软件来解决线性规划的问题。 关键词:最优分配、数学建模、线性规划、LINGO

目录 1.问题的重述 (4) 2.问题的分析 (4) 3.模型的假设 (5) 4.符号的约定 (6) 5.模型的建立与求解 (7) 5.1问题(1)的求解 (8) 5.2问题(2)的求解 (9) 5.3问题(3)的求解 (12) 5.4问题(4)的求解 (15) 6.模型的评价与改进 (15) 7.参考文献 (15) 8.附录 (16)

Lingo与线性规划

Lingo与线性规划 线性规划得标准形式就是 (1) 其中称为目标函数,自变量称为决策变量,不等式组(1)称为约束条件、 满足不等式组(1)得所有得集合称为可行域,在可行域里面使得z取最小值得称为最优解,最优解对应得函数值称为最优值。 求解优化模型得主要软件有Lingo、Matlab、Excel等。其中Lingo 就是一款专业求解优化模型得软件,有其她软件不可替代得方便功能。本文将简要介绍其在线性规划领域得应用。 一、基本规定 1、目标函数输入格式 max=函数解析式; 或者min=函数解析式; 2、约束条件输入格式 利用:>、<、>=、<=等符号。但就是>与>=没有区别。Lingo软件默认所以自变量都大于等于0、 3、运算 加(+),减(-),乘(*),除(/),乘方(x^a),要注意乘号(*)不能省略。 4、变量名 不区分大小写字母,不超过32个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始得就是说明语句(说明语句也需要以分号“;”结束)。但就是,model,sets,data以“:”结尾。endsets,e nddata,end尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL语句 一般程序必须先输入MODEL:表示开始输入模型,以“END”结束。对简单

得模型,这两个语句也可以省略。 8、改变变量得取值范围 bin(变量名); 限制该变量为0或1、 bnd(a,变量名,b);限制该变量介于a,b之间、free(变量名);允许该变量为负数、 gin(变量名);限制该变量为整数、 例1 求目标函数得最小值,约束条件为 输入Lingo程序: min=2*x1 +3*x2; x1+ x2 >=350;?x1 >=100;?2*x1 +x2 <=600; 有两种运行方式: 1、点击工具条上得按钮即可。 2、点击菜单:LINGO→Solve 运行结果如下: 下面对其各个部分进行说明: Global optimalsolution found:表示已找到全局最优解。 Objective value:表示最优值得大小。可见本题函数最小值800。 Infeasibilities:矛盾约束得数目。

用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.问:应如何安排生产计划,使工厂获利最大?

LINGO线性规划及其灵敏度分析

线性规划问题及灵敏度分析在LINGO软件中的实现 一、问题的提出: 某公司饲养实验用的动物以出售给动物研究所,已知这些动物的生长对饲料中3种营养成分(蛋白质、矿物质和维生素)特别敏感,每个动物每周至少需要蛋白质60g,矿物质3g,维生素8mg,该公司能买到5种不同的饲料,每种饲料1kg所含各种营养成分和成本如下表所示,如果每个小动物每周食用饲料不超过52kg,才能满足动物生长需要。 问题: 1.求使得总成本最低的饲料配方? 2.如果另一个动物研究对蛋白质的营养要求变为59单位,但是要求动物的价格比现在的价格便宜0.3元,问该养殖所值不值得接受? 3.由于市场因素的影响,X2的价格降为0.6元每千克,问是否要改变饲料配方? 二、建立线性规划数学模型 解答: (1)设需要饲料A1, A2, A3, A4分别为X1, X2, X3, X4kg,则建立线性规划数学模型如下: 目标函数:MinS=0.2X1+0.7X2+0.4X3+0.3X4+0.5X5 约束条件:0.3X1+2X2+X3+0.6X4+1.8X5>=60 0.1X1+0.05X2+0.02X3+0.2X4+0.05X5>=3 005X1+0.1X2+0.02X3+0.2X4+0.08X5>=8

X1+X2+X3+X4+X5<=52 X1, X2, X3, X4, X5>=0 三、在LINGO软件中的求解 在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; end 操作:选菜单Lingo|Solve(或按Ctrl+S),或用鼠标点击“求解”按纽,如果模型有语法错误,则弹出一个标题为“LINGO Error Message”(错误信息)的窗口,指出在哪一行有怎样的错误,每一种错误都有一个编号(具体含义可查阅相关文献或LINGO的Help).改正错误以后再求解,如果语法通过,LINGO用内部所带的求解程序求出模型的解,然后弹出一个标题为“LINGO Solver Status”(求解状态)的窗口,其内容为变量个数、约束条件个数、优化状态、耗费内存、所花时间等信息,点击Close关闭窗口,屏幕上出现标题为“Solution Report”(解的报告)的信息窗口,显示优化计算(线性规划中换基迭代)的步数、优化后的目标函数值、列出各变量的计算结果. 输出结果如下: 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

《数学建模》实验指导4Lingo求解线性规划问题

实验四:在Lingo 中利用集求解线性规划问题 学时:4学时 实验目的:掌握利用Lingo 中的集求解线性规划问题的方法。 实验内容: 6 8 ,,1 1 6 ,18 ,1 m in * 1,,8 1,,6 i j i j i j i j j i i j i j cost volum e volum e dem and j volum e capacity 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 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end 回答问题:哪些产地增加产量可以减少运费,应增加哪个产地的产量可以减少的最多。 2.用Lingo中的集求解课本P107上的例1(混合泳接力队的选拔)。 使用LINGO软件,编制程序如下: model: sets: workers/w1..w5/; jobs/j1..j4/; links(workers,jobs): cost,volume; endsets min=@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.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; enddata end

Lingo与线性规划

Lingo 与线性规划 线性规划的标准形式是 11n n Min z c x c x =++ 1111111..0,1,2,,n n m mn n m i a x a x b s t a x a x b x i n +≤????+≤??≥= ? (1) 其中11n n z c x c x =++称为目标函数,自变量i x 称为决策变量,不等式组(1)称为约 束条件. 满足不等式组(1)的所有1(,,)n x x 的集合称为可行域,在可行域里面使得z 取最小值的** 1(,,)n x x 称为最优解,最优解对应的函数值称为最优值。 求解优化模型的主要软件有Lingo 、Matlab 、Excel 等。其中Lingo 是一款专业求解优化模型的软件,有其他软件不可替代的方便功能。本文将简要介绍其在线性规划领域的应用。 一、基本规定 1、目标函数输入格式 max=函数解析式; 或者 min=函数解析式; 2、约束条件输入格式 利用:>、<、>=、<=等符号。但是>与>=没有区别。Lingo 软件默认所以自变量都大于等于0. 3、运算 加(+),减(-),乘(*),除(/),乘方(x^a),要注意乘号(*)不能省略。 4、变量名 不区分大小写字母,不超过32个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始的是说明语句(说明语句也需要以分号“;”结束)。但是,model ,sets ,data 以“:”结尾。endsets ,enddata ,end 尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL 语句 一般程序必须先输入MODEL :表示开始输入模型,以“END”结束。对简单的模型,这两个语句也可以省略。 8、改变变量的取值范围 @bin(变量名); 限制该变量为0或1. @bnd(a,变量名,b ); 限制该变量介于a,b 之间. @free(变量名); 允许该变量为负数. @gin(变量名); 限制该变量为整数. 例1 求目标函数1223z x x =+的最小值,约束条件为

线性规划lingo实现示例

加工 问题 品加工厂用牛奶生产1A ,2A 两种奶制品,1桶牛奶可以在设备甲用12小时加工成3公斤1A ,或者在设备乙上用8小时加工成4公斤2A 。根据市场需求,生产的1A ,2A 全部能售出,且每公斤1A 获利24元,每公斤2A 获利16元。现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间魏480小时,并且设备甲每天至多能加工100公斤1A ,设备乙的加工能力没有限制。试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下三个附加问题: 1) 若用35元可以买到1桶牛奶,应否作这项投资? 若投资,每天最多购买多少桶 牛奶? 2) 若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元? 3) 由于市场需求变化,每公斤1A 的获利增加到30元,应否改变生产计划? 问题分析 这个优化问题的目标是使每天的获利最大,要作的决策是生产计划,即每天用多少桶牛奶生产1A ,用多少桶牛奶生产2A ,决策受到3个条件的限制:原料(牛奶)供应、劳动时间、设备甲的工作能力。按照题目所给,将决策变量、目标函数和约束条件用数学符号及式子表示出来,就得到下面的模型。 基本模型 决策变量:设每天用1x 桶牛奶生产1A ,用2x 桶牛奶生产2A 。 目标函数:设每天获利Z 元。1x 桶牛奶可生产31x 公斤1A ,获利1324x ?,2x 桶牛奶可生产42x 公斤2A ,获利2416x ?,故Z=216472x x +. 约束条件 原料供应:生产1A ,2A 的原料(牛奶)总量不得超过每天的供应,即1x +2x ≤50桶; 劳动时间:生产1A ,2A 的总加工时间不得超过每天正式工人总的劳动时间,即121x +82x ≤480小时; 设备能力:1A 的产量不得超过设备甲每天的加工能力,即31x ≤100; 非负:1x ,2x 均不能为负值,即1x ≥0,2x ≥0。 综上可得 Max Z=216472x x + (1) s.t. 1x +2x ≤50 (2)

用LINGO求解线性规划地例子

附1:用LINGO求解线性规划的例子 一奶制品加工厂用牛奶生产A1、A2两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3公斤A1,或者在设备乙上用8小时加工成4公斤A2。根据市场需求,生产的A1、A2能全部售出,且每公斤A1获利24元,每公斤A2获利16元。现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480小时,并且设备甲每天至多能加工100公斤A1,设备乙的加工能力没有限制。试为该厂制定一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题: 1)若用35元可以购买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶? 2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元? 3)由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划? 数学模型:设每天用x1桶牛奶生产A1 ,用x2桶牛奶生产A2 目标函数:设每天获利为z元。x1桶牛奶可生产3x1公斤A1,获利24*3x1,x2桶牛奶可生产4*x2公斤A2,获利16*4x2,故z=72x1+64x2 约束条件: 原料供应:生产A1、A2的原料(牛奶)总量不超过每天的供应50桶,即 x1+x2≤50 劳动时间:生产A1、A2的总加工时间不超过每天正式工人总的劳动时间480小时,即 12x1+8x2≤480 设备能力:A1的产量不得超过设备甲每天的加工能力100小时,即 3x1≤100 非负约束:x1、x2均不能为负值,即x1≥0,x2≥0 综上所述可得 max z=72x1+64x2 s.t. x1+x2≤50 12x1+8x2≤480 3x1≤100 x1≥0,x2≥0 显然,目标函数和约束条件都是线性的,这是一个线性规划(LP),求出的最优解将给出使净利润最大的生产计划,要讨论的问题需要考虑参数的变化对最优解和影响,一般称为敏感性(或灵敏度)分析。 LINGO求解线性规划 用LINGO求解线性规划时,首先在LINGO软件的模型窗口输入一个LP模型,模型以MAX或MIN 开始,按线性规划问题的自然形式输入(见下面例子所示)。 以下解加工奶制品的生产计划问题: 由于LINGO中已假设所有的变量都是非负的,所以非负约束条件不必输入;LINGO也不区分变量中的大小写字符(实际上任何小写字符将被转换为大写字符);约束条件中的“〈=”及“〉=”可用“〈”及精彩文档

相关文档
相关文档 最新文档