线性规划模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性规划模型
线性规划的英文全称为:Linear Programming ,可简称为LP . 一、线性规划所属学科
线性规划是“运筹学”中应用最广泛、理论最成熟的一个分支.
0-1⎧⎧⎧⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎩⎪
⎨
⎪⎪⎪
⎪⎪
⎪
⎪⎪
⎪⎪
⎪⎩
线性规划非线性规划静态规划整数规划规划论规划多目标规划动态规划运筹学对策论决策论排队论图论存储论模型论 二、线性规划发展简史
早在19世纪法国数学家傅里叶关于线性不等式的研究表明,他对线性规划已有所了解,还提出了单纯形法求解线性逼近中的线性规划
20世纪三是年代末,苏联数学家康托洛维奇开始研究生产组织中的线性规划问题,并写出了线性规划应用于工业生产问题的经典著作《生产组织与计划中的数学方法》.1947年美国数学家丹奇格提出了单纯形(Simplex)方法及有关理论,为线性规划奠定了理论基础.五十年代,线性规划成为经济学家分析经济问题的重要工具.随着计算机的迅猛发展,线性规划现被广泛应用于工业、农业、商业等各个领域. 三、用线性规划方法解决实际问题的两大特点
1、全局性——从全局出发,将全局目标作为追求目标;
2、定量性——通过建立数学模型,对实际问题进行定量分析,而不是只做定性分析. 数学模型指:将实际问题用一系列数学表达式(函数、方程、不等式等)表示出来,称这一系列数学表达式为该实际问题的数学模型. 四、线性规划方法解决的两类问题
1、任务一定,如何安排,可使人、财、物最省;
2、人、财、物一定,如何安排,可使任务完成量最多. 五、线性规划可解决以下几方面的问题
1、运输问题:某产品有若干个产地、若干个销地,如何运输,使总运费最省;
2、生产组织问题:⎩
⎨⎧产,使成本最低产值一定,如何安排生最高
或利润产,使产值资源一定,如何安排生)(
3、配料问题:如何搭配各种原料,既符合质量(营养)要求,又使成本最低;
4、投资问题:资金一定,投向谁、投多少、期限多长,使若干年后本利和最高;
5、库存问题:在仓库容量有限情况下,如何确定库存物资的品种、数量、期限,使库存效益最佳;
6、合理播种问题:在土地资源有限的情况下,种什么、种多少,使效益最高;……
第一节 线性规划模型的基本概念 一、建立模型的方法
1 根据影响所要达到的目的的因素找到决策变量
2 由决策变量和所要到的目的之间的函数关系确定的目标函数
3 由决策变量所受到的限制条件确定决策变量所要满足的约束条件
若模型满足:1 目标函数是线性函数 2 约束条件是线性等式或不等式; 则称为线性规划模型 二、常用模型 例1: 生产计划
莫工厂生产I II 两种产品需要A 、B 两种原料,问怎样生产获利最大?
1) 决策变量:设12,x x 分别生产I II 的数量 2) 目标函数:获利最大 12max 24x x + 3) 约束条件:1228x x +≤ 设备约束 12416,412x x ≤≤ 原料约束 12,0x x ≥ 基本约束 则我们可以建立模型
12121212max 24.28416412,0
z x x s t
x x x x x x =++≤≤≤≥
例2: 配料问题
某养鸡场有一万只鸡,用动物饲料和谷物饲料混合喂养,每天每只鸡平均吃混合饲料一斤,其中动物饲料不少于1/5,动物饲料每斤0.25元,谷物饲料每斤0.2元,饲料公司每周至多能供应谷物饲料5万斤,问怎样混合饲料才能使每周成本最低? 解:1)决策变量 设动物饲料1x 斤,谷物饲料2x 斤。
2)目标函数 求120.250.2x x +最小 3)约束条件 总需求 1270000x x +≥ 动物饲料 11
700005
x ≥
谷物饲料 250000x ≤ 基本约束 12,0x x ≥
对于线性规划的常用模型还有很多在这里就不一一例举 三、线性规划标准型及解的基本概念
由上面的两个模型中我们可以看到,目标函数为线性函数,约束条件为线性等式或不等式。
我们说它们是线性规划模型。
尽管模型不尽相同,但我们可以归纳为
12(,,
,)T
n x x x x =112211112211211222221122min(max).(,)(,)(,)n n
n n n n m m n m
mn z c x c x c x s t
a x a x a x
b a x a x a x b a x a x a x b =++++++≤=≥+++≤=≥++
+≤=≥ 称为一般型,我们规定:
11221111221
1211222221122min .n n n n n n m m n m
mn z c x c x c x s t
a x a x a x
b a x a x a x b a x a x a x b =++++++=+++=++
+= 0i x ≥
为线性规划的标准型。
也可写成
1
1
min .(1,2,
)0
(1,2,
)
n
j j
j n
ij j
i
j j z c x s t
a x
b i m x j n =====≥=∑∑
其中向量12(,,,)n c c c c =称为目标函数的系数向量,列向量12(,,
,)T n x x x x =称为决策
变量,12(,,
,)T m b b b b =称为右边向量,矩阵111211
2
n m m mn a a a A a a a ⎛⎫
⎪
=
⎪ ⎪⎝⎭
称为约束系数矩阵. 于是线性规划模型又可以写成
min .0()
cx s t
Ax b
x =≥≥其中b 0
根据实际问题建立的模型常常不是标准型,我们可以用以下方法转化为标准型 1) 若目标函数不是最小则在目标函数加负号 2) 若右边i b 小于0则把第i 个约束条件两边同时乘-1 3) 若约束条件为
1
n
ij j
i j a x
b =≤∑则可增加一个变量0n i x +≥,此约束条件转化为
1
n
ij j
n i i j a x
x b +=+=∑
称n i x +为松弛变量。
同样若约束条件为
1
n
ij j
i j a x
b =≥∑,可引入松弛变量0n i x +≥转化为
1
n
ij j
n i i j a x
x b +=-=∑松弛变量又称剩余变量,在实际问题中,常常表示未被利用的资源或超
出资源数量,不能转化为价值和利润,在目标函数中的系数为0
4)若某一变量无约束,可另''''''
(0,0)j j j j j x x x x x =-≥≥,作变量替换。
若0j x ≤,则令
'j j x x =-。
例3: 将下列现行规划化为标准型
max 12343425z x x x x =-+-+
s.t.
12341234123412434214
232233,0,0,x x x x x x x x x x x x x x x x -+-≤-+-+≥+++≤-≥≤无约束
解:上述问题中令33344',''','''z z x x x x x =-=-=-于是该问题的标准形式为
min '
12334342'2''5'z x x x x x =-+++
s.t.
1233451233461233471233456742'2'''14
23'''2'23''''3,,','',',,,x x x x x x x x x x x x x x x x x x x x x x x x x x -++++=-+-+--=--+---=≥0
一般的线性规划问题中,{|,0}D x Ax b x ==≥称为线性规划(LP )的可行域,若x D ∈,
则称x 为可行解。
若*x D ∈对任意x D ∈有*cx cx ≤则称*
x D ∈为(LP )的最优解线性规划可写为十分简洁的形式min x D
cx ∈
第二节 模型实例
一、奶制品的生产与销售
某奶制品加工厂生产两种奶制品12A A 、,其中一桶原奶经过12小时的加工得到3公斤的
1A ,经过8小时的加工得到4公斤的2A ;12A A 、的利润分别为24元/公斤和16元/公斤。
工厂每天用于加工的原奶最多为50桶,用于加工的工时最多为480小时,并且每天至多只能加工100公斤1A ;问怎样安排生产计划才能使得利润最大?若市场上有原奶供应,则当原奶没桶的价格为多少时可以购买?若可以雇零时工,则零时工的工资应该为多少?若每公斤1A 的获利增加到30元,是否改变生产计划?
模型分析假设
许多实际的优化问题的数学模型都是线性规划(特别是生产计划这样的经济管理领域)。
下面我们分析一下实际问题具有什么样的性质,其模型是线性规划。
比例性:每个决策变量对目标函数的“贡献”,与该决策变量的取值成正比;每个决策变量对每个约束条件右端项的“贡献”,与该决策变量的取值成正比。
可加性:各个决策变量对目标函数的“贡献”,与其它决策变量的取值无关;各个决策变量对每个约束条件右端项的“贡献”,与其它决策变量的取值无关。
连续性:每个决策变量的取值是连续的。
比例性和可加性保证了线性性,连续性则允许得到决策变量的实数最优解。
对于本例,先作如下假设:
1)12A A 、两种奶制品每公斤的获利是与它们各自产量无关的常数,每桶牛奶加工出的
12A A 、的数量和所需要的时间是它们各自产量无关的常数;
2)12A A 、每公斤的获利是与它们相互产量无关的常数,每桶牛奶加工出的12A A 、的数量和所需要的时间是与它们相互产量无关的常数;
3)加工12A A 、的牛奶的桶数可以是任意常数。
这三条假设就保证的上面的三条性质,但我们要注意的是,实际生活中这些假设只是近似成立,比如当产量很大的时候,单位获利自然会减少。
在后面的模型中对于这些假设就不一一列出。
模型建立
决策变量:1x 桶牛奶生产1A ,2x 桶牛奶生产2A 目标函数: 127264Max z x x =+ 约束条件:原料供应 1250x x +≤
劳动时间 12128480x x +≤ 加工能力 13100x ≤ 非负约束 12,0x x ≥
模型求解
图解法:这个线性规划模型时2维的,我们可以用图解法求解
将约束条件全部变为等号,在12Ox x 平面生得到5条直线,并且不难判断此问题的可行域是由这五条直线围成的5边形OABCD 。
计算出5个顶点的坐标为:(0,0),(0,50),O A (20,30),(100/3,10),(100/3,0)B C D 。
目标函数值z 取不同值时,在图1中表
示的是一组平行的直线,称为等值线。
在此问题中可以看出,当等值线向右上方平移时,目标函数值时增加的,所以当等值线平移到过B 点时,3360z =达到最大值,所以B 点的坐标(20,30)为最优解:1220,30x x ==
我们可以直观的看到在2维情形下,可行域是直线围成的凸多边形,最优解在顶点取得。
我们可以把此理论推广到n 维中去。
图1 软件实现(利用LINDO 实现)如下。
直接输入 max 72x1+64x2 st
2)x1+x2<50 3)12x1+8x2<480 4)3x1<100
End (注:在LINDO 中已规定决策变量为非负,模型中的≤,≥用,<=>=输入,他们与,<>
等效)
将文件存储并命名后选择“Slove ”并对提示“DO RANGE (SENSLTIVITYANAL YSIS ?”(灵敏度分析)回答“是”,即有如下输出 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
结果分析
上面的输出种除了告诉我们问题的最优解和最优值以外,还有很多信息。
1)3个约束条件的右端不妨看作3种“资源”:原料、劳动时间、甲类设备的加工能力。
输出第7~10行“SLACK OR SURPLUS ”给出这3种资源在最优解下是否有剩余;一般称“资源”剩余为零的约束为紧约束
2)目标函数看作“效益”,成为紧约束的“资源”一旦增加,“效益”必然跟着增长。
输出的第7~10行“DUAL PRICES ”给出的这3种资源在最优解下“资源”增加1个单位时“效益”的增量。
这里,“效益”的增量可以看作“资源”潜在价值,经济学上称为影子价格,上面的例子中1桶牛奶的影子价格为48元,1小时劳动的影子价格为2元,甲类设备的影子价格为零。
用影子价格的概念很容易可以得出用35元可以买到1桶牛奶,低于影子价格,所以可以买。
同样聘用临时工人也可以增加“效益”,但工资不能超过影子价格2元。
3)目标函数的系数变化时,最优解和最优值是否会改变。
从图1看,目标函数的系数决定了等值线族的斜率,原题中该斜率(取绝对值)为9/8,介于12,L L 之间,最优解自然在B 点取得。
并借只要目标函数系数的变化使得等值线族的斜率仍然在(1,3/2)范围内,这个最优解就不会改变。
当等值线族的斜率小于1时,最优解在A 点取得,大于3/2时,最优解在C 点取得。
上面输出的第13~17行“CURRENT COEF ”的“ALLOWABLE INCREASE ”和 “ALLOWABLE DECREASE ”给出了最优解不便条件下目标函数系数的允许范围:1x 的系数为(728,7224)-+,即(64,96);2x 的系数为(48,72)。
注意:1x 的系数允许范围需要2x 系数64不变,反之亦然。
用这个结果就能回答:若1A 的获利每公斤增加到30元,则1x 的系数变为90,在允许范围内,所以不改变生产计划。
4) 对“资源”的影子价格进一步分析。
从图1看,随着原料的增加直线1L 向右平移,
1L 与2L 的交点B 向A 靠近,但仍然是最有解。
在这个过程中每增加1桶牛奶利润增加48
元。
但是,当B 与A 重合后再增加牛奶就不能使利润增长了。
这就是说,影子价格的作用是有限制。
上面输出的第18~23行“CURRENT RHS ”的“ALLOWABLE INCREASE ”和“ALLOWABLE DECREASE ”给出了影子价格有意义条件下约束右端的限制范围:原料最多增加10桶,劳动时间最多增加53小时。
线性规划模型的三要素:决策变量、目标函数和约束条件。
线性规划模型可以方便地用LINDO 软件求解,得到内容丰富的输出,利用影子价格和灵敏性分析,可对模型的结果作进一步的研究,它们对实际问题常常十分有益的。
我们再来讨论下面这个问题:
上面问题给出的12A A 、两种奶制品的生产条件、利润,及工厂的“资源”限制全都不变。
为增加工厂的获利,开发了奶制品的深加工技术:用2小时和3元加工费,可将1公斤1A 加工成0.8公斤高级奶制品1B ,也可将1公斤2A 加工成0.75公斤高级奶制品2B ,每公斤1B 能获利44元,每公斤2B 能获利32元。
试为该厂制定一个生产销售计划,使每天的净利润最大,并讨论:
1) 若投资30元可以增加1桶牛奶,投资3元可以增加1小时劳动时间,是否作这
些投资?若每天投资150元,可以赚回多少?
2)
每公斤高级奶制品12,B B 的获利经常有10%的波动,对制订的生产销售计划有无影响?若每公斤1B 获利下降10%,计划应该变化吗?
问题分析:要制订生产销售计划,决策变量增加了12,B B ,为了方便,我们可以如下假设;每天销售1x 公斤1A ,2x 公斤2A ,3x 公斤1B ,4x 公斤2B ,用5x 公斤1A 加工1B ,用6x 公斤2A 加工2B 。
目标函数:1234562416443233Max z x x x x x x =+++-- (1) 约束条件: 原料供应
1526
5034
x x x x +++≤ (2) 加工能力 15100x x +≤ (3) 劳动时间 1526564()2()22480x x x x x x +++++≤ (4)
附加约束 350.8x x =,460.75x x = (5) 非负约束 16,
0x x ≥ (6)
模型求解:利用LINDO 软件求解,要把(2)改写为
12564343600x x x x +++≤ (2')
把(3)改写为
12564264480x x x x +++≤ (3')
得到如下结果:
LP OPTIMUM FOUND AT STEP 2 OBJECTIVE FUNCTION V ALUE 1) 3460.800
V ARIABLE V ALUE REDUCED COST X1 0.000000 1.680000 X2 168.000000 0.000000 X3 19.200001 0.000000 X4 0.000000 0.000000 X5 24.000000 0.000000 X6 0.000000 1.520000
ROW SLACK OR SURPLUS DUAL PRICES 2) 0.000000 3.160000 3) 0.000000 3.260000 4) 76.000000 0.000000 5) 0.000000 44.000000 6) 0.000000 32.000000 NO. ITERATIONS= 2
RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES
V ARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE X1 24.000000 1.680000 INFINITY X2 16.000000 8.150000 2.100000 X3 44.000000 19.750002 3.166667 X4 32.000000 2.026667 INFINITY X5 -3.000000 15.800000 2.533334 X6 -3.000000 1.520000 INFINITY RIGHTHAND SIDE RANGES
ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 600.000000 120.000000 280.000000 3 480.000000 253.333328 80.000000 4 100.000000 INFINITY 76.000000
5 0.000000 INFINITY 19.200001
6 0.000000 INFINITY 0.000000
最优解为1234560,168,19.2,0,24,0x x x x x x ======,最优值为3460.8,和例1一样,牛奶和劳动时间为紧约束。
结果分析:
1)上述结果给出:约束2),3)的影子价格分别为3.16和3.26,注意到约束2)得影子价格为(2')右端增加一个单位时目标函数的增量,有(2)可知,增加1桶牛奶可使净利润增长37.92元,约束3)的影子价格则说明:增加1小时劳动时间可使净利润增长3.26元。
所以该投资30元供应1桶牛奶,或投资3元增加1小时的劳动时间。
若每天投资150元,增加供应5桶牛奶,可赚回189.6元。
但是增加牛奶是有数量限制的,输出结果表明,约束2)右端允许的变化范围为(600-280,600+120)相当于(2)式右端的允许变化范围为(50-23.3,50+10),即最多增加供应10桶牛奶。
2)上述结果给出了最优解不变条件下目标函数系数的允许变化范围:3x 的系数为(44-3.17,44+19.75);4x 的系数为(32-∞,32+2.03)。
所以当1B 得获利向下波动10%,获2B 向上波动10%时,上面得到的生产销售计划不再一定是最优的,应该重新制订。
如果每公斤1B 获利下降10%,应将模型中3x 的系数改为39.6,重新计算,得到最优解为
1234560,160,0,30,0,40x x x x x x ======,最优值为3400,可以看出计划变化很大,
这就是说,生产计划对1B 获利的波动是很敏感的。
与例1相比,例2多了两种产品1B ,2B ,它们的销售量与1A ,2A 的加工量之间存在等式关系(5),虽然可以据此消掉两个变量,但是会增加人工计算,并使得模型变得复杂。
我们建模的原则是尽可能利用原始的数据信息,而把尽量多的计算留给计算机去做。
二、自来水输送与货机装运
在实际生活当中,我们会经常碰到把一些生活物资,生产原料等从若干个供应点运送到一些需求点,怎样安排运送方案使得运送费用最小?各类货物装箱,由于受体积、重量等限制,如何相互搭配装载,使利润最高,或者装载数量最大?下面我们就两个例子具体讨论利用线性规划解决这类问题。
例1:自来水运送问题
某市有甲、乙、丙、丁四个居民区,自来水由,,A B C 三个水库供应,四个区每天必须得到保证的基本生活用水量分别为30,70,10,10千吨,但由于水源紧张,三个水库每天最多只能供应50,60,50千吨自来水。
由于地理位置的差别,自来水公司从各水库向各区送水所付出的引水管理费不同(见表1),其他管理费都是450元/千吨。
根据公司规定,各区用户按照统一标准900元/千吨收费。
此外,四个区都向公司申请了额外用水量,分别为每天50,70,20,40千吨。
该公司如何分配供水量,才能获利最多?
为了增加供水量,自来水公司正在考虑进行水库改造,使三个水库每天的最大供水量都
提高一倍,问那时供水方案应如何改变?公司利润可增加多少?
问题分析 分配供水量就是安排从三个水库向四个区送水的方案,目标是获利最多。
从问题中的数据分析,三个水库的供水量是160千吨,不超过四个区的基本用水量和额外用水量的总和300千吨,所以总能全部卖出并获利。
于是自来水公司每天的总收入900(506050)⨯++144000=元,与送水方案无关。
同样,公司每天的其它管理费用450(506050)72000⨯++=元也与送水方案无关。
所以要使得利润最大,只要引水管理费最小即可。
另外,送水方案要受到三个水库的供应量和四个区的需求量的限制。
模型建立 假设三个水库,,A B C (1,2,3i =)分别向甲、乙、丙、丁四个区(1,2,3,4j =)的供水量为ij x (第i 个水库向j 区供水量)。
由于C 水库与丁之间没有输水管道,即340x =,因此只有11个决策变量。
由上分析,问题的目标可以从获利最多转化为引水管理费最少,于是有
1112131421222324313233160130220170140130190150 190200230 (1)
Min Z x x x x x x x x x x x =++++++++++
约束条件有两类:一类是水库的供应量限制,另一类是各区的需求量限制。
由于供应量总能卖出并获利,水库的供应量限制可以表示为 111213142122232431323350 (2)
60 (3)50 (4)
x x x x x x x x x x x +++=+++=++=
考虑到各区的基本生活用水与额外用水量,需求量限制可以表示为
11213112223213233314243080 (5)
70140 (6)
1030 (7)
1050 (8)
x x x x x x x x x x x ≤++≤≤++≤≤++≤≤+≤
模型求解 (1)~(8)构成一个线性规划模型(省略了非负约束)。
输入LINDO 求解,得到如下输出
OBJECTIVE FUNCTION V ALUE
1) 24400.00
VARIABLE V ALUE REDUCED COST
X11 0.000000 30.000000
X12 50.000000 0.000000
X13 0.000000 50.000000
X14 0.000000 20.000000
X21 0.000000 10.000000
X22 50.000000 0.000000
X23 0.000000 20.000000
X24 10.000000 0.000000
X31 40.000000 0.000000
X32 0.000000 10.000000
X33 10.000000 0.000000
送水方案为:A 水库向乙区供应50千吨,B 水库向乙、丁区分别供应50,10千吨,C 水库向甲、丙区分别供应40,10千吨。
引水管理费为24400元,利润为144000-72000-24400 = 47600元
讨论 如果A ,B ,C 三个水库每天的最大供水量都提高一倍,则公司总供水能力为320千吨,大于总需求量300千吨,水库供水量不能全部卖出,因而不能像前面那样,将获利最多转化为引水管理费最少。
此时我们首先要计算A ,B ,C 三个水库分别向甲、乙、丙、丁四个区供应每千吨水的净利润,即从收入900元中减去其它管理费450元,再减去表1
表2 从水库向各区送水的净利润
于是决策目标为 1112131421222324313233290320230280310320260300 260250220 (9)Max Z x x x x x x x x x x x =++++++++++ 由于水库供水量不能全部卖出,所以上面约束(2)~(4)的右端增加一倍的同时,应将等号改称小于、等于号,即
1112131421222324313233100 (10)
120 (11)100 (12)
x x x x x x x x x x x +++≤+++≤++≤
约束条件(5)~(8)不变。
将(5)~(12)构成线性规划模型输入LINDO 求解得到: OBJECTIVE FUNCTION V ALUE
1) 88700.00
VARIABLE V ALUE REDUCED COST
X11 0.000000 20.000000
X12 100.000000 0.000000
X13 0.000000 40.000000
X14 0.000000 20.000000
X21 30.000000 0.000000
X22 40.000000 0.000000
X23 0.000000 10.000000
X24 50.000000 0.000000
X31 50.000000 0.000000
X32 0.000000 20.000000
X33 30.000000 0.000000
这个送水方案为:A 水库向乙区供应100千吨,B 水库向甲、乙、丁区分别供应30,40,50千吨,C 水库向甲、丙区分别供应50,30千吨。
总利润为88700元。
其实,由于每个区的供水量都能满足,所以上面(5)~(8)每个式子左边的约束可以去掉,右边的小于、等于号可以改写成等号。
做这样的简化后结果不变。
评注 本题考虑的是将某种物质从若干供应点运往一些需求点,在供需量约束条件下使总费用最小,或总利润最大。
这类问题一般称为运输问题,是线性规划应用最广泛的领域之一。
三 汽车生产
在上面积各问题中研究对象都是连续可分得,于是决策变量是连续的,建立的模型时线性规划。
在本节中将遇到不同的情况。
例1 汽车生产计划
问题 一汽车厂生产小、中、大三种类型的汽车,已知各类型每量车对钢材,劳动时间的需求,利润以及每月工厂钢材、劳动时间的现有量如表5所示。
试制定月生产计划,使工厂的利润最大。
进一步讨论:由于各种条件的限制,如果生产某一类型的汽车,则至少要生产80量,
表3 汽车厂的生产数据
模型建立与求解
设每月生产小、中、大型汽车的数量分别为123,,x x x ,工厂的月利润为z ,在题目所给出的参数均不随生产数量变化的假设下,可得线性规划模型: 123max 234z x x x =++ (1)
123 1.535600st x x x ++≤ (2)
12328025040060000x x x ++≤ (3)
123,,0x x x ≥ (4)
用LINDO 软件得到输出结果为
OBJECTIVE FUNCTION V ALUE
1) 632.2581
V ARIABLE V ALUE REDUCED COST
X1 64.516129 0.000000
X2 167.741928 0.000000
X3 0.000000 0.946237
ROW SLACK OR SURPLUS DUAL PRICES
2) 0.000000 0.731183
3) 0.000000 0.003226
我们可以看到,最优解12364.1516129,167.741928,0x x x ===,出现小数,显然不合适。
通常我们有下面的几种解决办法:
1)简单的舍去小数,取12364,167,0x x x ===,它可能会接近最优的整数解,可算出相应的目标函数值629z =,与LP 得到的最优值632.2581z =相差不大。
2)在上面解附近试探:如取121265,167;64,168x x x x ====等。
因为从输出可知,约束条件都是紧的,所以试探的12,x x 大于LP 最优解时,必须检验它们是否满足约束条件,然后计算z ,通过比较可能得到更优的解。
3)在线性规划模型中增加约束条件:
123,,x x x 均为整数 (5)
这样得到的(1)——(5)式称为整数规划(Integer Programming ,简称IP ),IP 可以用LINDO 直接求解,输入文件:
max 2x1+3x2+4x3
st
1.5x1+3x2+5x3<600
280x1+250x2+400x3<60000
end
gin 3
注:最后一行“gin 3”是3个变量均为整数。
求解得到输出:
OBJECTIVE FUNCTION V ALUE
1) 632.0000
VARIABLE V ALUE REDUCED COST
X1 64.000000 -2.000000
X2 168.000000 -3.000000
X3 0.000000 -4.000000
ROW SLACK OR SURPLUS DUAL PRICES
2) 0.000000 0.000000
3) 80.000000 0.000000
IP 的最优解为12364,168,0x x x ===,最优值为632z =,即问题要求的月生产计划为生产小型64辆,中型168辆,大型不生产。
讨论 对于问题中突出的“如果生产某一类型的汽车,则至少要生产80辆”的限制,上面的IP 的最优解就不满足这个条件。
下面就对这个问题说明解决这类要求的办法。
对原LP 模型(1)——(4),将(4)改为:
123,,080x x x =≥或 (6)
下面是求解模型(1)——(4),(6)的3种方法:
1)分解为多个子模型
(6)式可分解成8种情况:
1230,0,80x x x ==≥ (6-1) 1230,80,0x x x =≥= (6-2) 1230,80,80x x x =≥≥ (6-3) 12380,0,0x x x ≥== (6-4) 12380,80,0x x x ≥≥= (6-5) 12380,0,80x x x ≥=≥ (6-6) 12380,80,80x x x ≥≥≥ (6-7) 123,,0x x x = (6-8) 通过上面8个子模型的求解可以得到LP 模型的最优解为:
12380,150.399994,0x x x ===,最优值为611.2。
若加上整数约束可得:
12380,150,0x x x ===,最优值为610。
3) 引如0-1变量,化为整数规划
设1y 只取0,1两个值,则“1080x =≥或”等价于11111,80,{0,1}x My x y y ≤≥∈其中M 为相当大的一个数。
类似的可以把其它两个变量也变成同样的形式。
在利用LINDO 软件求解时要注意0-1变量约束的语句,输入形式如下:
int y1
int y2
int y3
得到输出结果(只列出需要的结果)
OBJECTIVE FUNCTION V ALUE
1) 610.0000
V ARIABLE V ALUE REDUCED COST
X1 80.000000 -2.000000
X2 150.000000 -3.000000
X3 0.000000 -4.000000
Y1 1.000000 0.000000
Y2 1.000000 0.000000
Y3 0.000000 0.000000
与第一中方法的结果一样。
3)化线性规划为非线性规划,在这里我们就不做研究。
非线性规划也能用现成的软件LINGO、MATLAB求解,但是结果依赖初始值的选择。
所以一般情况下我们不把其化为非线性规划来求解。
在第二种方法中我们引入0-1变量,这种规划我们又可以称为0-1规划。
线性规划模型的结构
企业是一个复杂的系统,要研究它必须将其抽象出来形成模型。
如果将系统内部因素的相互关系和它们活动的规律用数学的形式描述出来,就称之为数学模型。
线性规划的模型决定于它的定义,线性规划的定义是:求一组变量的值,在满足一组约束条件下,求得目标函数的最优解。
根据这个定义,就可以确定线性规划模型的基本结构。
(1)变量变量又叫未知数,它是实际系统的未知因素,也是决策系统中的可控因素,一般称为决策变量,常引用英文字母加下标来表示,如X l,X2,X3,X mn等。
(2)目标函数将实际系统的目标,用数学形式表现出来,就称为目标函数,线性规划的目标函数是求系统目标的数值,即极大值,如产值极大值、利润极大值或者极小值,如成本极小值、费用极小值、损耗极小值等等。
(3)约束条件约束条件是指实现系统目标的限制因素。
它涉及到企业内部条件和外部环境的各个方面,如原材料供应、设备能力、计划指标、产品质量要求和市场销售状态等等,这些因素都对模型的变量起约束作用,故称其为约束条件。
约束条件的数学表示形式为三种,即≥、=、≤。
线性规划的变量应为正值,因为变量在实际问题中所代表的均为实物,所以不能为负。
在经济管理中,线性规划使用较多的是下述几个方面的问题:
(1) 投资问题—确定有限投资额的最优分配,使得收益最大或者见效快。
(2) 计划安排问题—确定生产的品种和数量,使得产值或利润最大,如资源配制问题。
(3) 任务分配问题—分配不同的工作给各个对象(劳动力或机床),使产量最多、效率最高,如生产安排问题。
(4) 下料问题—如何下料,使得边角料损失最小。
(5) 运输问题—在物资调运过程中,确定最经济的调运方案。
(6) 库存问题—如何确定最佳库存量,做到即保证生产又节约资金等等。
应用线性规划建立数学模型的三步骤:
(1) 明确问题,确定问题,列出约束条件。
(2) 收集资料,建立模型。
(3) 模型求解(最优解),进行优化后分析。
其中,最困难的是建立模型,而建立模型的关键是明确问题、确定目标,在建立模型过程中花时间、花精力最大的是收集资料。