当前位置:文档之家› 线性规划lingo实现示例

线性规划lingo实现示例

线性规划lingo实现示例
线性规划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)

121x +82x ≤480 (3)

31x ≤100; (4)

1x ≥0,2x ≥0 (5)

这就是该问题的基本模型。由于目标函数和约束条件对于决策变量而言都是线性的,所以称为线性规划(Linear Programming,简记作LP ).

模型分析与假设

1)1A ,2A 两种奶制品每公斤的获利是与它们各自产量无关的常数,每桶牛奶加工出1A ,2A 的数量和所需时间是与它们各自产量无关的常数;

2)1A ,2A 每公斤的获利是与它们相互间产量无关的常数,每桶牛奶加工出1A ,2A 的数量和所需的时间是与它们相互产量无关的常数;

3)加工1A ,2A 的牛奶的桶数可以是任意实数。

软件实现 求解线性规划有不少现成的数学软件,比如用LINDO 软件就可以很方便的实现。在LINDO6.1版本下打开一个新文件,像书写模型(1)—(5)一样,直接输入:

max 72x1+64x2

st

2)x1+x2<50

3)12x1+8x2<480

4)3x1<100

end

注:LINDO 中已经规定所有的决策变量均为非负,故(5)式不必输入;乘号省略,式中不能有括号,右端不能有数学符号;模型中符号,≤,≥用<=,>=形式输入,它们与<,>等效;输入文件中第一行为目标函数,2),3),4)是为了标示个约束条件,便于从输出结果中查找相应信息;程序最后以end 结束。

将文件存储并命名后,选择菜单“solve ”并对提示“DO RANGE(SENSITIVITY)ANALYSIS ?”(灵敏性分析)回答“是”,即可得到如下输出:

LP OPTIMUM FOUND AT STEP 2

OBJECTIVE FUNCTION V ALUE

1) 3360.000

VARIABLE V ALUE REDUCED COST

X1 20.000000 0.000000

X2 30.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES

2) 0.000000 48.000000

3) 0.000000 2.000000

4) 40.000000 0.000000

NO. ITERATIONS= 2

RANGES IN WHICH THE BASIS IS UNCHANGED:

OBJ COEFFICIENT RANGES

V ARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE

X1 72.000000 24.000000 8.000000

X2 64.000000 8.000000 16.000000

RIGHTHAND SIDE RANGES

ROW CURRENT ALLOWABLE ALLOWABLE

RHS INCREASE DECREASE

2 50.000000 10.000000 6.666667

3 480.000000 53.333332 80.000000

4 100.000000 INFINITY 40.000000

上面结果的第3,5,6行明确告诉我们,这个线性规划的最优解为x1=20,x2=30,最优值为Z=3360,即用20桶牛奶生产1A ,30桶牛奶生产2A ,可获最大利润3360元。

结果分析

上面的输出中除了告诉我们问题的最优解和最优值以外,还有许多对分析结果有用的信息,下面结合题目中提出的3个附加问题给予说明。

(1)3个约束条件的右下端不妨看作3种“资源” :原料、劳动时间、设备甲的加工能力。输出第7~10行“SLACK OR SURPLUS ”给出这3种资源在最优解下是否有剩余:2)原料,3)劳动时间的剩余均为零,4)设备甲尚余40公斤加工能力。一般称“资源”剩余为零的约束称为紧约束。

(2)目标函数可以看作“效益” ,成为紧约束的“资源”一旦增加,“效益” 必然跟着增长。输出第7~10行“DUAL PRICE ”给出这3种资源在最优解下“资源”增加一个单位时“效益”的增量:2)原料增加1个单位(1桶牛奶)时利润增长48元,3)劳动时间增加一个单位(1小时)时利润增加2元,而增加非紧约束4)设备甲的能力显然不会使利润增长。这里,“效益”的增量可以看作“资源”的潜在价值,经济学上称为影子价格,即1桶牛奶的影子价格为48元,1小时劳动的影子价格为2元,设备甲的影子价格为零。

可以用直接求解的方法验证上面的结论,即将输入文件中原料约束2)右端的50改为51,看看得到的最优值(利润)是否恰好增长48元。

用影子价格很容易回答附加问题1):用35元可以买一桶牛奶,低于1桶牛奶的影子,当然应该作这项投资。回答附加问题2):聘用临时工人以增加劳动时间,付给的工资低于劳动时间的影子价格才可以增加利润,所以工资最多是每小时2元。

(3)目标函数的系数发生变化时(假定约束条件不变),最优解和最优值会改变吗?这

个问题不能简单的回答。上面输出的第13~17行“CURRENT COEF”的“ALLOWABLE INCREASE”和“ALLOWABLE DECREASE”给出了最优解不变条件下目标函数系数的允许变化范围:x1的系数为(72-8,72+24),即(64,96);x2的系数为(64-16,64+8),即(48,72)。注意:x1系数的允许范围需要x2 系数64不变,反之亦然。

A的获利增加到30元,则x1的系数变用这个结果很容易回答附加问题3):若每公斤

1

=90,在允许范围内,所以不应该改变生产计划。

为303

(4)对“资源”的影子价格作进一步的分析。影子价格的作用(即在最优解下“资源”增加1个单位时“效益”的增量)是有限制的。上面输出的第18~23行“CURRENT RHS”的“ALLOWABLE INCREASE”和“ALLOWABLE DECREASE”给出了影子价格有意义条件下约束右端的限制范围:2)原料最多增加10桶牛奶,3)劳动时间最多增加53小时。

现在可以回答附加问题1)的第2问:虽然应该批准用35元买一桶牛奶的投资,但每天最多购买10桶牛奶。顺便指出,可以用低于每小时2元的工资聘用临时工人以增加劳动时间,但最多增加53小时。

数学建模:运用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求解多目标规划__例题

实验二:目标规划 一、实验目的 目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。 二、目标规划的一般模型 设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国刚性约束,可能是等式约束,也可能是不等式约束。设有l 个柔性目标约束,其目标规划约束的偏差是 ),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一个优先级k p 中,有 不同的权重,分别记为),...,2,1(,l j w w kj kj =- + 。因此目标规划模型的一般数学表达式为: min ∑∑=+ +-- =+= l j j kj j kj q k k d w d w p z 1 1 );( s.t. ,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1 l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验容及步骤 1、打开LINGO ,并利用系统菜单和向导在E 盘创建一个项目。目录和项目名推荐使用学生自己的学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。 例2.1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。 在重要性上,设备C 是设备B 的3倍。 此题中只有设备A 是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。 该计划问题可用数学模型表示为: 目标函数 min )33()(433322211+ +-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤ 15003002001121=-+++-d d x x 022221=-+-+ - d d x x 14x 1633=-++ -d d

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线性规划及其灵敏度分析

线性规划问题及灵敏度分析在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

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超经典编辑案例解析全套汇编

Lingo超经典案例大全 LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”。Lingo超强的优化计算能力在很多方面(线性规划、非线性规划、线性整数规划、非线性整数规划、非线性混合规划、二次规划等)比matlab、maple等强得多,Lingo编程简洁明了,数学模型不用做大的改动(或者不用改动)便可以直接采用Lingo语言编程,十分直观。 Lingo模型由4个段构成: (1)集合段(sets endsets);(2)数据段(data enddata); (3)初始段(init endinit);(4)目标与约束段。 Lingo的五大优点: 1. 对大规模数学规划,LINGO语言所建模型较简洁,语句不多; 2. 模型易于扩展,因为@FOR、@SUM等语句并没有指定循环或求和的上下限,如果在集合定义部分增加集合成员的个数,则循环或求和自然扩展,不需要改动目标函数和约束条件; 3. 数据初始化部分与其它部分语句分开,对同一模型用不同数据来计算时,只需改动数据部分即可,其它语句不变; 4. “集合”是LINGO有特色的概念,它把实际问题中的事物与数学变量及常量联系起来,是实际问题到数学量的抽象,它比C语言中的数组用途更为广泛。 5. 使用了集合以及@FOR、@SUM等集合操作函数以后可以用简洁的语句表达出常见的规划模型中的目标函数和约束条件,即使模型有大量决策变量和大量数据,组成模型的语句并不随之增加. 一、求解线性整数规划、非线性整数规划问题: 1.线性整数规划: model: max=x1+x2; x1+9/14*x2<=51/14; -2*x1+x2<=1/3; @gin(x1);@gin(x2); end

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

《数学建模》实验指导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

数学建模:运用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软件包求解模型的最大值。

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 =+的最小值,约束条件为

数学模型实验3 Lingo求解非线性规划问题

数学模型 实验3、LINGO 求解非线性优化模型 一、实验目的 掌握Lingo 软件求解非线性优化模型的基本用法,对于实际建模问题,能够利用数学规划建立模型,并能利用Lingo 软件进行求解。 二、实验原理及方法 Lingo 是美国LINDO 系统公司推出的求解最优化问题的专业软件包.它在求解各种大型线性、非线性和整数规划方面具有明显的优势. Lingo 具有演示(试用)版、学生版、高级版、超级版、工业版、扩展版等不同版本,不同版本的求解问题规模和选件不同.。 启动Lingo 后,在主窗口上弹出标题为”Lingo Model-Lingo1”的窗口,称为模型窗口(通常称Lingo 程序为模型),如下图所示,用于输入模型,可以在该窗口用基本类似于数学公式的形式输入小型的数学规划模型. 例1 如何在LINGO 中求解如下的LP 问题: ,6002100 350. .32min 21211 2121≥≤+≥≥++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|solve(或按Ctrl+S),或用鼠标点击”求解”按钮,得到如下求解报告:

Global optimal solution found at iteration: 4 Objective value: 800.0000 Variable Value Reduced Cost X1 250.0000 0.000000 X2 100.0000 0.000000 Row Slack or Surplus Dual Price 1 800.0000 -1.000000 2 0.000000 -4.000000 3 150.0000 0.000000 即最优解为x1=250,x2=100,最优值为800。 Lingo 模型的几个说明: 1、Lingo 默认所有的决策变量都非负,故变量非负条件不必输入,Lingo 的语法规定: (1)求目标函数的最大值或最小值分别用MAX=…或MIN=…来表示; (2)每个语句必须以分号“;”结束,每行可以有多个语句,语句可以跨行; (3)变量名称必须以字母(A~Z )开头,由字母]、数字(0~9)和下划线所组成,长度不超过32个字符,不区分大小写; (4)可以给语句加上标号,例如[OBJ] MAX=200*x1+300*x2; (5)以!开头,以”;”结束的语句是注释语句; (6)如果对变量的取值范围没有作特殊要求的话,则默认所有的变量的取值都非负; (7)Lingo 模型以语句”Model:”开始,以”End ”结束,对于比较简单的模型,这两个语句可以省略. 2、选菜单File|save as 将输入的模型存盘,默认文件格式的扩展名为.lg4,这是一种特殊的二进制格式,保存了模型窗口中的所有文本和其它对象以及格式信息,只有Lingo 能读懂它. 3、选菜单Lingo|solve(或按Ctrl+S),或用鼠标点击”求解”按钮时,如果模型有语法错误,则会弹出一个标题为”Lingo Error Message ”的窗口,指出错误在哪一行,有怎样的错误等信息,如果语法通过,Lingo 用内部所带的求解程序求出模型的解,然后弹出一个标题为”Lingo Solve Statas ”的窗口,其内容为变量的个数、约束条件的个数、优化状态、非零变量个数、耗费内存、所花时间等信息,点击Close 关闭该窗口,屏幕上出现标题为”Solution Report ”的信息窗口,显示优化计算的步数、最优目标函数值、最优解等信息. 例题2(钢管下料问题). 某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割出售.从钢管厂进货得到的原材料的钢管的长度都是19m , 现在一顾客需要50根4m ,20根6m ,15根8m ,此外还需要10根5 m 的钢管,为了简化生产过程,规定所使用的切割模式的种类不能超过3种,应如何下料? 解:设第I 种切割模式切割的根数为(,,)i x i =123,第I 种切割模式下切割成4m,6m,8m,5m 的数量分别为 ,,,(,,)i i i i r r r r i =1234123,使用的频率由低到高,故有x x x >>123.令 由题意得到:

用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也不区分变量中的大小写字符(实际上任何小写字符将被转换为大写字符);约束条件中的“〈=”及“〉=”可用“〈”及精彩文档

线性规划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)

相关主题
文本预览
相关文档 最新文档