11第一讲规划模型.docx
《11第一讲规划模型.docx》由会员分享,可在线阅读,更多相关《11第一讲规划模型.docx(16页珍藏版)》请在冰豆网上搜索。
11第一讲规划模型
第一讲规划模型
本讲介绍的规划模型是一类有着广泛应用的确定性的系统优化模型。
这类规划问题,模型规范,建模直接,激发想象;模型求解方法典型,实用面宽广。
掌握这类规划问题的数学建模、是建模者必须具备的基本建模素养。
规划模型的应用极其广泛,其作用已为越来越多的人所重视。
随着计算机的逐渐普及,它越来越急速地渗透于工农业生产、商业活动、军事行为、核科学研究的各个方面,为社会节省的财富、创造的价值无法估量。
在数模竞赛过程中,规划模型是最常见的一类数学模型。
从历年全国大学生数模竞赛试题的解题方法统计结果来看,规划模型共出现了近20次,占到了近50%,也就是说每两道竞赛题中就有一道涉及到利用规划理论来分析、求解。
下面首先讨论静态系统的优化问题,介绍线性规划、整数规划、目标规划和非线性规划;然后讨论动态系统的多阶段优化问题。
线性规划问题及其数学模型
线性规划模型
线性规划是运筹学的重要分支之一。
一般认为,运筹学的主要分支有规划论(包括线性规划、非线性规划、动态规划等)、排队论、对策论(亦称博奕论)与决策分析、图论、存贮论、模型论等分支.线性规划只是运筹学中研究较早,理论比较完整、应用最广的一个分支。
1.线性规划问题
在生产管理和经营活动中,经常提出一类问题,即如何合理地利用有限的人力、物力等资源、以便得到最好的经济效益。
先来看两个实例。
问题1拟定生产计划问题
问题提出某工厂生产甲、乙两种产品.这两种产品都需要在A,B,C三种不同设备上加工,每吨甲、乙产品在不同设备上加工所需的台时,它们销售后所能获得的利润值以及这三种加工设备在计划期内能提供的有限台时数均列于下表中.如何安排生产计划,即甲、乙两种产品各生产多少吨,可使该厂所获利润最大?
设备
每吨产品的加工台时
有限台时数
甲
乙
A
3
4
36
B
5
4
40
C
9
8
76
利润(千元/吨)
32
30
求最大利润
模型建立设计划期内甲、乙两种产品的产量分别为x1吨、x2吨(x1,x2称为决策变量),该厂的目标是在不超过二种设备总有限台时数的条件下,确定产量x1及x2,以获得最大利润,用Z表示利润.则有目标函数:
MaxZ=32*x1+30*x2
由于设备A,B,C在计划期内的有效台时数分别为36.40,76,可以得出限制产量的条件,即约束条件;
3*x1+4*x2<=36(设备A对产量的限制)
5*x1+4*x2<=40(设备B对产量的限制),
9*x1+8*x2<=76(设备C对产量的限制),
x1,x2≥0 (产量不能为负值).
问题2 运输问题
问题提出两个煤厂A1和A2每月进煤数量分别为60t和100t,联合供应三个居民区(Bl,B2,B3)。
三个居民区每月对煤的需求量依次为50t、70t、40t,煤厂Al离居民区BI,B2,B3的距离分别为10km、5km、6km,煤厂A2离居区民区BI,B2,B3的距离分别为4km,8km,12km.问如何分配供煤量使得运输量(t·km)达到最小?
模型准备:
将上述条件用表格形式表示有
B1
B2
B3
供给
A1
10
5
6
60
A2
4
8
12
100
需求
50
70
40
模型建立分配供煤量优劣的指标为运输量,设为Z,用xij表示Ai(I=1,2)煤厂提供给Bj(j=1,2,3)居民区的煤量,则该问题的数学模型为
目标函数;minZ=lOx11+5x12+6x13+4x21+8x22+12x23
约束条件:
2.线性规划问题的特点和数学模型
从以上两例可以看出,它们都属于一类优化问题.它们的共同持点是:
(1)每一个问题都用一组决策变量(x1,x2,……,xn)表示某一方案:
这组决策变量的值就代表一个具体的方案.一般这些变量的取值是非负的。
(2)存在一定的约束条件,这些约束条件可以用一组线性等式或线性不等式来表示.
(3)都有一个要求达到的目标,它可以用决策变量的线性函数来表示,这个函数称为目标函数.按问题的不同,要求目标函数实现最大化或最小化。
满足以上三个条件的数学模型称为线性规划问题的数学模型,其一般形式为
目标函数:
约束条件(或s.t.):
约束条件常用英文缩写s.t.表示,而约束条件的最后一式又称为变量的非负性。
线性规划主要应用目标函数求最值的情况,在以下各方面有广泛的应用:
(1)在某一企业内部,如何配合产品的销售时间,使各部门的原料、产品的存储,分配的数量等最为合理;
(2)在某企业生产的产品数量(或产值)固定时,如何在现有设备、人力、原料等条件限制下,合理组织生产,使经济效益最高;
(3)在某一地区的交通网(公路网或铁路网)中,如何合理地组织运输,使总运费最小;
(4)当市场上产品(或原料)价格变动时,对于这些变化,企业如何做出最优决策;
(5)合理下料问题:
利用某种类型的原料下料时,如何达到既满足需求,又使废料最少;
(6)配料问题.生产某类由各种原料配制的产品(如混合饲料等)时,如何满足规定的质量标准,又使产品的成本最低;
(7)库存问题,在仓库的容量及其它限制条件下,确定库存物资的品种、数量、期限,使得库存放益最高;
(8)在投入产出模型中,引进某一目标函数,制定最优的企业(或地区)经济计划。
二、线性规划问题的解法
图解法只适用于两个变量的简单线性规划问题。
这种解法比较简单,也有助于几何直观地理解线性规划问题。
这里不做介绍。
软件解法:
规划模型的求解常用软件求解,主要有Excel,Lingo,Matlab等,这里用Lingo求解。
问题一:
MaxZ=32x1+30x2
3x1+4x2≤36(设备A对产量的限制)
5x1+4x2≤40(设备B对产量的限制),
9x1+8x2≤76(设备C对产量的限制),
x1,x2≥0 (产量不能为负值).
在Lingo中输入模型,注意书写格式:
1,目标函数的变量Z不写;程序不分大小写;
2,每行以分号结束;
3,加、减、乘、除等运算符号一个都不能少;
4,“<”号等同于“≤”号,“>”号等同于“≥”号;
5,所有函数均要加以前缀“@”符号;
6,注释语句用感叹号“!
”开头;
7,非负约束是软件的缺省设置,可以不输入。
请看演示:
程序:
Max=32*x1+30*x2;
3*x1+4*x2<36;
5*x1+4*x2<40;
9*x1+8*x2<76;
结果为:
Globaloptimalsolutionfound.
Objectivevalue:
282.6667
Infeasibilities:
0.000000
Totalsolveriterations:
3
VariableValueReducedCost
X11.3333330.000000
X28.0000000.000000
RowSlackorSurplusDualPrice
1282.66671.000000
20.0000001.166667
31.3333330.000000
40.0000003.166667
即经过3步迭代,得到全局最优解为X1=1.333,X2=8.0。
最大利润为282.6667,设备A,C的资源(加工台时数)全部用完,设备B尚余1.33333台时数,
若需要加班生产,即增加设备的台时数,设备A每增加1小时,可增加利润1.16667千元;设备B因有剩余1.33333,故增加设备B的台时数对利润没有影响;设备C每增加1小时,可增加利润3.166667千元。
对问题二,有Lingo程序:
min=10*x11+5*x12+6*x13+4*x21+8*x22+12*x23;
x11+x12+x13=60;x21+x22+x23=100;x11+x21=50;x12+x22=70;x13+x23=40;
求解结果为:
Globaloptimalsolutionfound.
Objectivevalue:
940.0000
Infeasibilities:
0.000000
Totalsolveriterations:
1
VariableValueReducedCost
X110.0000009.000000
X1220.000000.000000
X1340.000000.000000
X2150.000000.000000
X2250.000000.000000
X230.0000003.000000
RowSlackorSurplusDualPrice
1940.0000-1.000000
20.0000000.000000
30.000000-3.000000
40.000000-1.000000
50.000000-5.000000
60.000000-6.000000
结果解释:
分配供煤量为(0,20,40;50,50,0),最小运输量为940,
三、线性规划问题解的理论
1.线性规划模型的标准型
实际问题的线性规划模型是多种多样的,在众多的样式中可规定一种样式为标准型,以便于研究和求解.
在线性规划模型的标准型中,有n个决策变量,m个约束条件,约束条件为等式约束,且决策变量为非负.
求目标函数的最小值.标准型表达式为:
s.t.
在标准型中,规定各约束条件的右端项bi≥0,否则等式两端乘以“-1”,其简写形式为;
其中,A称为约束条件的系数矩阵,c为价值向量,b为资源向量,X为决策向量。
关于线性规划模型的求解,通常用单纯形法。
这里不讲,只讲如何用Lingo11.0规划软件来求解。
(Lingo软件的算法就是单纯形法)
先建立如下例题的线性规划模型。
例2 某工厂生产甲、乙、丙三种铝合金产品,生产每单位产品甲需用铝和铁分别是3公斤和2公斤,生产每单位产品乙需用铝和铁分别是1公斤和3公斤,生产每单位产品丙需用铝和铁分别是1公斤和2公斤,已知生产每单位产品分别能获得5元、4元和3元,而工厂每天能得到的原料供应为铝840公斤、铁700公斤。
试问如何安排三种铝合金产品的生产,可使工厂能获得最大利润?
解:
将所有关系用表格形式表出,便于建立模型。
铝
铁
获利
甲
3
2
5
乙
1
3
4
丙
1
2
3
供应量
840
700
建立模型如下:
设决策变量:
x1,x2,x3分别为甲、乙、丙的产量,则
Max=5*x1+4*x2+3*x3;
S.t.3*x1+x2+x3<=840;
2*x1+3*x2+2*x3<=700;
结果为:
Globaloptimalsolutionfound.
Objectivevalue:
1540.000
Infeasibilities:
0.000000
Totalsolveriterations:
2
VariableValueReducedCost
X1260.00000.000000
X260.000000.000000
X30.0000000.000000
RowSlackorSurplusDualPrice
11540.0001.000000
20.0000001.000000
30.0000001.000000
x1=260,x2=60,x3=0,最大利润为1540元。
资源全部用完。
灵敏度分析:
先设置:
LINGO->Options->GeneralSolver->DualComputations:
选中prices&Rangens,点OK。
再作灵敏度分析:
LINGO->Range,得如下结果:
Rangesinwhichthebasisisunchanged:
ObjectiveCoefficientRanges
CurrentAllowableAllowable
VariableCoefficientIncreaseDecrease
X15.0000007.0000000.0
X24.0000003.5000000.0
X33.0000000.0INFINITY
RighthandSideRanges
RowCurrentAllowableAllowable
RHSIncreaseDecrease
2840.0000210.0000606.6667
3700.00001820.000140.0000
当前价值系数为5,4,3,当x1系数在[5-0,5+7]范围内变化时,最优解不变,但最优值(即最优获利)会随之改变。
当x2系数在[4-0,4+3.5]范围内变化时,最优解不变。
当前资源量为840,700,当铝供应量在[840-606.6667,840+210]范围内变化时,最优基不变(即原来不生产的x3仍不生产),但最优解会改变,最优值也会改变。
同理,铁供应量在[700-140,700+1820]内变化时,最优基不变。
例3 某药厂生产A、B、C三种药物,可供选择的原料有甲、乙、丙、丁。
四种原料的成本分别是每公斤5、6、4、8元,每公斤不同原料所能提取的各种药物的数量如下表
A
B
C
成本
甲
1
5
2
5
乙
1
4
1
6
丙
1
5
1
4
丁
1
6
2
8
药厂要求每天生产A恰好100单位,B至少530单位,C不超过160单位,要求选配各种原料的数量既满足生产需要,又使总成本最小。
试建立此问题的数学模型。
请自己完成。
例4 某厂制造三种仪器,甲种仪器需要17小时加工装配,8小时校验,售价300元;乙种仪器需要10小时加工装配,4小时校验,售价200元;丙种仪器需要2小时加工装配,2小时校验,售价100元.可供利用的加工装配时间为1000小时,校验时间为500小时,三种仪器所用的元件和材料基本一样。
又据市场预测表明,对甲种仪器的要求不超过50台,乙种仪器不超过80台,丙种仪器不超过150台.(整数规划)
工厂要决定能获得最大总产值的最优生产计划.试写出这个问题的数学模型.
解:
建立表格形式:
装配
校验
售价
要求
甲仪器
17
8
300
<50
乙仪器
10
4
200
<80
丙仪器
2
2
100
<150
可供资源
1000
500
建立模型如下:
设生产仪器分别为x1,x2,x3
Max=300*x1+200*x2+100*x3;
17*x1+10*x2+2*x3<=1000;
8*x1+4*x2+2*x3<=500;
X1<50 ;x2<80 ;x3<150 ;@gin(x1);@gin(x2);@gin(x3);
!
(@gin(x1)指x1为整数,若要求x1为0-1变量,则@bin(x1))
结果为:
x1=0,x2=80,x3=90,最大利润为25000元。
例5 设某研究所有80万元科研经费,准备进行的研究课题有5个,每个课题所需的经费及经济效益如表(单位:
万元).问应如何选择课题,使经济效益最大?
(0-1规划)
课题
1
2
3
4
5
所需经费
8
12
16
24
28
经济效益
40
48
64
84
176
先自行考虑求解。
非线性规划的求解:
用LINGO直接求解即可。
注意:
灵敏度分析的结果对非线性规划问题无解释意义和实际意义,即对非线性规划不能作灵敏度分析。
对偶线性规划的经济意义:
例8某工厂利用三种原料B1,B2、B3生产两种产品A1,A2,三种原料的现有存量分别为150、240、300个单位。
生产单位产品Al、A2所需消耗各种原料的数量,及销售单位产品A1、A2所能得到的收益如表所示。
那么工厂应如何安排生产计划,以便工厂的总收益最大.
产品
原料
A1
A2
现有原料
B1
1
1
150
B2
2
3
240
B3
3
2
300
单位产品收益
2.4
1.8
解 由问题的条件可得到如下的线性规划问题:
原问题的经济意义是很明显的,即求工厂的最大总收益。
那么其对偶问题的经济意义是什么呢?
我们可以从另一方面来考虑这个问题:
如果另有一家企业想从该工厂购买其现存有的原料B1、B2、B3,那么卖出这批原料的单价应是多少时,这个工厂才愿意停止生产产品A1、A2,而将原料全部出卖呢?
假定原料B1、B2、B3的单价应是y1,y2,y3,我们来看B1、B2、B3应满足什么条件.
首先,由B1,B2,B3的实际意义,它们应是非负的.其次,生产单位产品A1要使用原料B1为1个单位、原料B2为2个单位、原料B3为3个单位,而获得的收益为2.4万元.显然,若将生产产品一个单位的这些原料卖掉所得的收益应是y1+2y2+3y3,它必须不少于生产单位产品A1的收益2.4万元,这对于工厂才是合算的.因此就有不等式:
对于产品A2,进行类似的分析可得到
最后,如果工厂将现存原料全部卖出,所得的总收益为150y1+240y2+300y3,但买方一定要尽可能压低原料B1、B2、B3的单位价格y1、y2、y3,使150y1+240y2+300y3尽可能地小.同时,对于工厂来说,卖出这批原料的总收益至少应不少于利用这批原料生产产品A1、A2所得到的总收益.也就是要使150y1+240y2+300y3的最小值不小于问题的目标函数的最大值2.4x1+1.8x2。
综上所述,则其本问题的另一方面问题,即对偶模型也叫对偶问题:
小结
1.线性规划问题有三个特点:
(1)约束条件是某些决策变量的线性等式或线性不等式;
(2)问题的目标函数是某些决策变量的线性函数;
(3)所有决策变量都受非负约束.
2.将实际问题归结为线性规划问题的一般步骤:
(1)了解实际问题的经济背景,确定影响该问题的主要因素有哪些以及问题的目标;
(2)设出决策变量,并列出线性约束方程(组)或线性约束不等式(组);
(3)写出问题的目标函数(线性函数).
对结果的解释说明与分析:
Globaloptimalsolutionfound.全局最优解已经找到
Objectivevalue:
933400.0目标函数值
Infeasibilities:
0.000000初始值
Totalsolveriterations:
7在(用单纯形法)7次迭代或旋转后得到最优解
VariableValueReducedCost
变量 值 基变量
X1264937.90.000000
X2135702.10.000000
X3408100.00.000000
X4124660.00.000000
X5115062.10.000000
X6129497.90.000000
X70.0000000.000000
X85440.0110.000000
RowSlackorSurplusDualPrice
行数 松弛或剩余 对偶价格
1933400.01.000000
20.000000-1.000000
30.0000001.000000
40.0000001.000000
50.0000001.000000
60.0000001.000000
70.0000000.000000
843454.000.000000
95129700.0.000000
100.0000000.000000
“SLACKORSURPLUS”给出松弛变量的值。
上例中Row=2表示第二行松弛变量=0(模型第一行表示目标函数,所以第二行对应第一个约束)
“REDUCECOST”列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时,目标函数的变化率,其中基变量的reducecost值应为0,对于非基变量Xj相应的reducecost值表示Xj增加一个单位(此时假定其他非基变量保持不变)时目标函数减小的量(max型问题)。
上例中:
X1对应的reducecost值为0,表示当X1=X1+1时,目标函数值不变。
“DUALPRICE”(对偶价格)列出最优单纯形表中判别数所在行的松弛变量的系数,表示当对应约束有微小变动时,目标函数的变化率,输出结果中对应每一个约束有一个对偶价格。
若其数值为X,表示对应约束中不等式右端项若增加一个单位,目标函数将增加X个单位(max型问题)。
上例中:
第二行对应的对偶价格值应为-1表示当约束 2)X5+X6+X7+X8>250000变为 2)X5+X6+X7+X8>250001时,目标函数值=933400-1=933399
当REDUCECOST或DUALPRICE 的值为0。
表示当微小扰动不影响目标函数。
有时,通过分析DUALPRICE,也可对产生不可行问题的原因有所了解。
灵敏度分析:
如果做敏感性分析,则系统报告当目标函数的费用系数和约束右端项在什么范围变化(此时假定其他系数保持不变)时,最优解或最优基保持不变。
报告中INFINITY表示正无穷,
Rangesinwhichthebasisisunchanged:
ObjectiveCoefficientRanges
CurrentAllowableAllowable
VariableCoefficientIncreaseDecrease
X11.0000000.00.0
X21.0000000.00.0
X31.000000INFINITY0.0
X41.00000015.131860.0
X50.00.00.0
X60.00.00.0
X70.00.0INFINITY
X80.00.01.162101
RighthandSideRanges
RowCurrentAllowableAllowable
RHSIncreaseDecrease
2250000.0261836.3182249.1
3380000.041014.3315247.02
4265200.030601.4182317.48
5408100.027374.9010176.58
6130100.02350.1356321.840
70.043454.00116890.8
80.043454.00INFINITY
90.05129700.INFINITY
100.01890676.396936.1如
上例:
目标函数中X4的变量系数为1,当它在[