4第四讲 线性规划与非线性规划
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运筹学
——线性规划与非线性规划
线性规划与非线性规划是运筹学的一个分支.
运筹学研究什么呢?运筹学是研究“如何做出正确决策或选择,以达到最好结果”的一门数学学科.
有一句成语可以很形象地说明运筹学的特点:运筹帷幄,决胜千里.
数学因实际的需要而产生,数学的很多重大发现也因实际的需要而出现.
数学建模竞赛既是因实际的重要需要而在世界范围内(在我国近十几年)各大学蓬勃开展.没有受到条条框框制约、富有聪明才智的大学生们,在每次竞赛中对实际中的一些重要问题或难题,都能给出富有新意、创意的解决办法,往往因此产生重大的社会效益和经济效益. 竞赛也让大学生们切身感受到学习各科知识的必要性、重要性,成为学生们好好学习的动力.竞赛极大地激发了学生们的创造性思维,增强了他们的动手能力.
数学建模会涉及数学的众多学科:微分方程,运筹学,概率统计,图论,层次分析,变分法等,要求建模者有较高的数学素养,有综合应用已学到的数学方法和思维对问题进行分析、抽象及简化的能力.
数学建模既是建立实际问题的数学模型.
一、最优化模型
数学建模的目的是使决策人的“利益”最大化,因此而建立的数学模型即所谓的最优化模型.
决策人在作决策时要有“科学观”,为实现目标(“利益”最大化)应进行“科学决策”.最优化模型正是为实现科学决策而建立的数学模型,是科学决策的科学体现.
科学决策的目的是要对为实现目标而提出的设计和操作最佳化,最终实现决策人的“利益”最大化.
一个最优化模型包括决策变量、目标函数和约束条件,它将“说明”决策变量在满足约束条件的前提下应使目标函数值最优化(最大或最小).
决策变量是指影响并决定目标实现的变量,其变化范围一般是可控制的.
目标函数是指根据决策变量建立的目标的函数表达式.
约束条件是指决策变量所受的限制(用等式、不等式的函数方程表示).
人们建立最优化模型的目的是,希望通过科学的计算方法(称为最优化方法)找出使目标函数值最优(最大或最小)的决策变量的值(称为最优决策).
实际问题的7步建模过程:
第1步:表述问题.说明目标及各种因素.
第2步:分析数据或采集(或收集)并分析数据.
第3步:建立数学模型.
第4步:对模型求解.即寻找最优决策.
第5步:检验、评价模型.如果与实际情况(或实际数据)吻合,则转到第7步,否则转到第6步.
第6步:修改或矫正模型,并返回到第1步、第2步或第3步.
第7步:模型应用,提出合理化建议.
最优化数学模型的一般形式为
.
,,1,0),,,(,
,,1,0),,,(..);,,,(max 212121min)
(m p i x x x g p i x x x g t s x x x f z n i n i n +=≥===或 (1)
其中, ),,1(n j x j =是决策变量;
),,,(21n x x x f z =是目标函数;
),,1(0),,,(21p i x x x g n i ==和),,1(0),,,(21m p i x x x g n i +=≥是约束条件,前者称为等式约束,后者称为不等式约束.
满足所有约束条件的点的集合称为可行域,记为D . 求解(1)是指,找D x x x n ∈),,,(**2*1 ,使),,,(**2*1
n x x x f z =是可行域D
上的最大值(或最小值).这个),,,(**2*1n x x x 称为最优解,),,,(**2*1n x x x f 称为最优值.
全局最优解与局部最优解.
最优解又有严格与非严格之分.
模型的最优解是指全局最优解.常简称解. 我们指出:最优化方法求解出的多是模型的局部最优解.由于最优化方法多为迭代法,总有迭代的初始点,所以如果采用不同的初始点将会得到一个或多个局部最优解,然后再从这些局部最优解中找出“全局”最优解.
二、线性规划(LP)
线性规划在银行、教育、林业、石油、运输……等各种行业以及科学的各个领域中有着广泛的应用.
1. 线性规划模型
目标函数、约束函数均为线性函数的最优化模型既是所谓的线性规划模型.
(1)标准形式
.
,,1,0,,,1,..;max 22112211min)
(n j x m i b x a x a x a t s x c x c x c z j i n in i i n n =≥==++++++=或 (2)
这里,
约束i n in i i b x a x a x a =+++ 2211),,1(m i =是对决策变量的主要约束,称为主约束,而约束),,1(0n j x j =≥(),,1(n j x j =称为非负变量)是对决策变量的符号约束;
(1,,)j b i m = 是主约束的右端常数项(通常不妨设为非负数);),,1(n j c j =称为价值系数.
(2)式可以写成如下矩阵形式
.
0,..;
min ≥==x b x A t s x c z T (3)
其中,
⎪⎪⎪⎪⎪⎭
⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=m n n mn m m n n b b b b x x x x c c c c a a a a a a a a a A 2121212122221112
11,,,. 这时T n T x x x ),,(1 =是决策向量,T m b b b ),,(1 =是主约束的右端常数向量,
1(,,)T n c c c = 称为价值向量.
(2)一般形式 1122(min)
112211221122max ;..,1,,,
,1,,,
,1,,,
0,1,,,
,1,,.
n n i i in n i i i in n i i i in n i j j z c x c x c x s t a x a x a x b i p a x a x a x b i p u a x a x a x b i u m x j q x j q n =++++++==+++≥=++++≤=+≥==+ 或任意 (4)
这里,
约束),,1(2211p i b x a x a x a i n in i i ==+++、i n in i i b x a x a x a ≥+++ 2211 ),,1(u p i +=和),,1(2211m u i b x a x a x a i n in i i +=≤+++是主约束,而约束),,1(0q j x j =≥和j x 任意),,1(n q j += (j x ),,1(n q j +=称为自由变量)是符号约束.
一般形式化为标准形式的方法:
(i)将不等式约束转化为等式约束
定义松弛变量),,1(u p i s i +=,且令0≥i s ,则i n in i i b x a x a x a ≥+++ 2211可改写为
i i n in i i b s x a x a x a =-+++ 2211. (5)
定义松弛变量),,1(m u i e i +=,且令0≥i e ,则i n in i i b x a x a x a ≤+++ 2211可改写为
i i n in i i b e x a x a x a =++++ 2211. (6)
(ii)去掉自由变量
设j x 是自由变量,
①用非负变量表示自由变量.设
j j j x x x +
-=-, (7)
并令
0≥+j x ,0≥-j x , (8)
便可去掉自由变量j x .
②取一个包含j x 的等式约束(如果有的话),例如:
11i ij j in n i a x a x a x b ++++= ,
由此解出
11i i in j n ij ij ij
b a a x x x a a a =--- , 代入到目标函数和其它约束函数中,便可去掉自由变量j x .
第一种方法将增加变量的数目,导致问题的维数增大.第二种方法正好相反.
用(5)、(6)两式替换(4)式中的相应不等式约束,然后,例如代入(7)式,去掉目标函数与主约束中的所有自由变量j x ),,1(n q j +=,最后将),,1(0u p i s i +=≥、
),,1(0m u i e i +=≥和),,1
(0,0n q j x x j j +=≥≥-+加入(4)式的符号约束中,(4)式就此化为如下标准形式
.
,,1,0;,,1,0;,,1,0,0;,,1,0,,,1,,,,1,,,,1,..;max 11111111111111111111min)
(m u i e u p i s n q j x x q j x m u i b e x x a x x a x a x a u p i b s x x a x x a x a x a p i b x x a x x a x a x a t s x x c x x c x c x c z i i j j j i i n n in q q iq q iq i i i n n in q q iq q iq i i n n in q q iq q iq i n n n q q q q q +=≥+=≥+=≥≥=≥+=≤+-++-++++=≥--++-+++==-++-+++-++-+++=-+
++++++++++++++++++++++++++++)
()()
()()
()()()(或
2. 线性规划的特点
(1)线性规划的可行域是凸集,而且是凸多边形、凸多面体或空集
.
凸集
非凸集
凸多边形凸多面体
(2)求解线性规划将出现下列4种情况之一.
情况1:有唯一(最优)解.
情况2:有无穷多的(最优)解.
情况3:有无界解.
情况4:无解.
有唯一解有无穷多解有无界解无解
(3)如果线性规划有最优解,那么它一定是可行域的某个顶点.
3. 求解线性规划的方法
有Dantzig单纯形法、大M法和Karmarkar投影法等,其中最常用的是Dantzig单纯形法.软件中一般采用的是Dantzig单纯形法.
Dantzig单纯形法解出的是线性规划的全局最优解.
4. 特殊的线性规划
当所有决策变量都取整数时,称为整数规划(IP).
当所有决策变量只取0或1时,称为0-1规划.
当只有部分决策变量取整数时,称为混合整数规划(混合IP).
解整数规划的方法有分枝定界法、割平面法和穷举法(对大型问题不实际). 常用的是分枝定界法.
隐枚举法是解0-1规划的常用方法.
分枝定界法也适用于求解混合整数规划.
5. 特殊的线性规划问题及其特殊解法
(1)运输问题
运输问题用“运输”单纯形法求解.
(2)转运问题
转运问题可以化为运输问题,所以也用“运输”单纯形法求解.
(3)指派问题
指派问题是特殊的0-1规划,用匈牙利法求解.
6. 线性规划建模实例
在一个线性规划模型中,
(1)决策变量应当完全描述要做出的决策.
(2)决策者都希望由决策变量表示的目标函数最大化(通常为收入或利润)或最小化(通
常为成本).目标函数中的系数反映的是决策变量对目标函数的单位贡献.
(3)主约束条件中决策变量的系数称为“技术”系数,这是因为技术系数经常影响用于“生产”不同“产品”的技术.右端项常表示可用资源的数量.
示例1 一家汽车公司生产轿车和卡车.每辆车都必须经过车身装配车间和喷漆车间处理. 车身装配车间如果只装配轿车,每天可装配50辆;如果只装配卡车,每天可装配50辆.喷漆车间如果只喷轿车,每天可喷60辆;如果只喷卡车,每天可喷40辆. 每辆轿车的利润是1600元,每辆卡车的利润是2400元.公司的生产计划部门须制定一天的产量计划以使公司的利润最大化.
建模过程:公司追求的目标是其利润的最大化,生产计划部门为此要决定每一种车型的产量,所以定义两个决策变量:
=1x 每天生产的轿车数量,=2x 每天生产的卡车数量.
公司每天的利润为2124001600x x +,因此该公司追求利润最大化的目标函数为
2124001600max x x z +=.
决策变量须满足以下2个条件
(如果把每天的时间设为1,那么每天的工作时间应该小于等于1.):
(1)1x 辆轿车和2x 辆卡车的时间应满足 1
11
21≤+x x . (2)所以处理1x 辆轿车和2x 辆卡车的时间应满足
140
160121≤+x x . 以及非负限制 2,1,0=≥j x j .
该汽车公司追求利润最大化的数学模型是如下整数线性规划模型:
12121212max 1600240011..1,5050
111,6040
,.z x x s t x x x x x x =++≤+≤非负整数;
示例2 南部联盟农场是三个农场的一个联合组织.这个组织的整体计划在协作技术办公室制定,目前这个办公室正在制订下一季的产量计划.
每一个农场的农业产出受限于两个量:可使用的灌溉土地量和水利委员会(国家政府办公室)分配的用于灌溉的水量.这些数据见表1.
植的三种农作物.这三种农作物的每亩期望净收益和水的消耗量是不同的.农业部门已经制
定南部联盟农场作物总亩数的最大配额,见表2.
植计划的作物.为确保三个农场均衡,三农场达成一致:每一个农场以相同比例使用它的可使用的可灌溉土地.例如,农场1使用它的土地的400亩中的200亩,那么农场2将使用它的土地600亩中的300亩,农场3将使用它的土地300亩中的150亩.但是作物的任何组合可能在任何农场种植.
协作技术办公室面临的工作是在满足给定的条件下,为每一个农场选择每一种作物的种植量,目标是整体上最大化南部联盟农场净收益.
建模过程:南部联盟农场追求的目标是农场的净收益最大化.协作技术办公室为此要决定为每一个农场选择每一种作物的种植量,所以决策变量)9,,2,1( =j x j 表示九个种植量,见表3.
设z
)(2000)(6000)(8000max 987654321x x x x x x x x x z ++++++++=.
决策变量须满足以下4个条件:
(1)每一个农场使用的土地:
.
300,600,
400963852741≤++≤++≤++x x x x x x x x x
(2)每一个农场的水量分布:
.
37523,80023,
60023963852741≤++≤++≤++x x x x x x x x x
(3)每一种作物的总种植量:
.
325,500,
600987654321≤++≤++≤++x x x x x x x x x
(4)种植作物的土地同等比例要求:
.400
300300
600600
400741963963852852741x x x x x x x x x x x x x x x x x x ++=++++=++++=++,, 以上三式等价于:
.
0)(3)(4,0)(2)(,
0)(2)(3741963963852852741=++-++=++-++=++-++x x x x x x x x x x x x x x x x x x
以及非负限制
9,,2,1,0 =≥j x j .
南部联盟农场追求的目标是农场的净收益最大化的数学模型是如下线性规划模型:
);(2000)(6000)(8000max 987654321x x x x x x x x x z ++++++++=
,
300 ,600 ,
400..963852741≤++≤++≤++x x x x x x x x x t s
,
37523,80023,
60023963852741≤++≤++≤++x x x x x x x x x
,
325,500,
600987654321≤++≤++≤++x x x x x x x x x
.
0)(3)(4,0)(2)(,
0)(2)(3741963963852852741=++-++=++-++=++-++x x x x x x x x x x x x x x x x x x
9,,2,1,0 =≥j x j .
示例3(饮食问题) 有一个美国人的饮食方案要求他吃的所有食物都来自四个“基本食物组”之一(巧克力蛋糕、冰淇淋、苏打水和干酪蛋糕).目前他可以消费的食物有下列4种:胡桃巧克力糖、巧克力冰淇淋、可口可乐和菠萝干酪蛋糕.一块胡桃巧克力糖的价格为50美分,一勺巧克力冰淇淋的价格为20美分,一瓶可口可乐的价格为30美分,一块菠萝干酪蛋糕的价格为80美分.他每天至少必须摄取500卡路里、6盎司巧克力、10盎司糖和8盎司脂肪.表1列出了每种食物每单位的营养含量.这个美国人想以最小成本满足自己每天的营养要求,那他应该怎样做.
建模过程:这个美国人追求的目标是使饮食的费用最少.因此这个美国人必须做出决策:对于每种食物,每天应当吃多少.因此,需要定义下列决策变量:
=1x 每天吃的胡桃巧克力糖的数量(单位:块),
=2x 每天吃的巧克力冰淇淋的数量(单位:勺),
=3x 每天喝的可口可乐的数量(单位:瓶),
=4x 每天吃的菠萝干酪蛋糕的数量(单位:块).
他追求的目标是使饮食的费用最少,因此目标函数为
432180302050max x x x x z +++=.
决策变量必须满足以下4个条件:
(1) 每天摄取的卡路里至少必须达到500卡路里.即
5005001502004004321≥+++x x x x .
(2)每天摄取的巧克力至少必须达到6盎司.即
62321≥+x x .
(3)每天摄取的糖至少必须达到10盎司.即
1044224321≥+++x x x x .
(4)每天摄取的脂肪至少必须达到8盎司.即
85424321≥+++x x x x .
以及非负限制
4,3,2,1,0=≥j x j .
该美国人饮食费用最少的数学模型是如下整数线性规划模型:
123412341212341234max 50203080..400200150500500,
326,
224410,
2458,
,1,2,3,4.
i z x x x x s t x x x x x x x x x x x x x x x i =++++++≥+≥+++≥+++≥=非负整数;
这个问题的最优解是90,1,3,03241=====z x x x x ,表示每天最少花90美分便可得到符合饮食要求的750卡路里、6盎司巧克力、10盎司糖和13盎司脂肪.
列出更现实的食物和营养需求的饮食问题是计算机解决的最早的LP 之一.整数规划已用于计划每周或每月的公共饮食业菜单.菜单计划模型包含反映可口性和多样性要求的约束条件.
示例4 某服务部门一周中每天需要不同数目的雇员:周一到周四每天至少需要50人,周五至少需要80人,周六和周日至少需要90人.规定应聘者需连续工作5天.试确定聘用方案:使在满足需要的条件下聘用的总人数最少.
建模过程:该服务部门追求的目标是一周中聘用的总人数最少.该服务部门因此必须做出决策:每天聘用多少人.为此,定义以下决策决量:
721,,,x x x 分别表示周一至周日聘用的人数.
因此目标函数为 7654321min x x x x x x x z ++++++=.
决策变量必须满足以下7个条件:
周一工作的雇员应是周四到周一聘用的,按照需要至少有50人,即
5076541≥++++x x x x x .
类似地,有
.
90,
90,
80,
50,
50,
50765436543254321743217632176521≥++++≥++++≥++++≥++++≥++++≥++++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 x x x x
人数应该是整数,所以决策变量须是非负的整数变量,即
i x 为非负整数,7,,2,1 =i .
该服务部门聘用总人数最少的数学模型是如下的整数规划模型: 123456714567125671236712347123452345634567min ..50,
50,
50,
50,
80,
90,
90,
,1,2,,7.
i z x x x x x x x s t 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 x x x x x x x x x x i =++++++++++≥++++≥++++≥++++≥++++≥++++≥++++≥= 非负整数;
示例5(工作调度问题) 在每周的不同工作日,一个邮局需要不同数量的专职员工.表1给出了每天需要的专职员工的数量.工会章程规定:每个专职员工每周必须连续工作五天,然后休息两天.这个邮局希望通过只使用专职员工来满足每天的需要,那么这个邮局至少要聘用多少专职员工.
首先来看一个不正确的模型.有许多学生定义决策变量i 为第天上班员工的数量(第1天=星期一,第2天=星期二,依次类推),然后推出邮局(专职员工的数量)=(星期一上班员工的数量)+(星期二上班员工的数量)+…+(星期日上班员工的数量),于是得到如下目标函数
7654321min x x x x x x x z ++++++=.
添加约束条件≥i x (第i 天需要的员工数量)和符号限制条件)7,,2,1(0 =≥i x i 后,得到如下不正确的线性规划模型:
,
11,16,14,19,15,13,17..;
min 765
4
3
2
1
7654321≥≥≥≥≥≥≥++++++=x x x x x x x t s x x x x x x x z
i x 非负整数,7,,2,1 =i .
其实这个目标函数不是专职员工的数量,是专职员工的数量的5倍,而且约束条件不能反映员工连续工作五天然后休息两天的事实.
建模过程:这个邮局追求的目标是聘用尽可能少的专职员工.正确表述这个问题的关键是,定义的决策变量不应该是每天有多少人上班,而是一周中每天有多少人开始上班.定义决策变量:
i x =第i 天开始上班员工的数量.
例如,1x 是星期一开始上班员工的数量(这些人从星期一工作到星期五).那么邮局(专职员工的数量)=(星期一开始上班员工的数量)+(星期二开始上班员工的数量)+…+(星期日开始上班员工的数量).由于每个员工都只在一周的某一天开始上班,所以这个表达式不会重复计算员工.因此,追求聘用尽可能少的专职员工的目标函数为
;min 7654321x x x x x x x z ++++++=
决策变量满足以下约束条件:
在星期一上班员工的数量不少于17人:1776541≥++++x x x x x ;
在星期二上班员工的数量不少于13人:1376521≥++++x x x x x ;
在星期三上班员工的数量不少于15人:1576321≥++++x x x x x ;
在星期四上班员工的数量不少于19人:1974321≥++++x x x x x ;
在星期五上班员工的数量不少于14人:1454321≥++++x x x x x ;
在星期六上班员工的数量不少于16人:1665432≥++++x x x x x ;
在星期日上班员工的数量不少于11人:1176543≥++++x x x x x .
及符号限制条件:
i x 为非负整数,7,,2,1 =i .
邮局追求聘用尽可能少的专职员工的调度方案的数学模型是如下整数规划模型
;min 7654321x x x x x x x z ++++++=
,17 ..76541≥++++x x x x x t s
,13 76521≥++++x x x x x
15 76321≥++++x x x x x ,
19 74321≥++++x x x x x ,
14 54321≥++++x x x x x ,
16 65432≥++++x x x x x ,
11 76543≥++++x x x x x ,
i x 为非负整数,7,,2,1 =i .
这个模型的一个最优解为3,4,0,6,2,4,47654321=======x x x x x x x ,最优值23=z .
该模型存在另外一个问题:只有在周一、周二开始上班的员工才能在周末休息,而在其它时间开始上班的员工永远不会有在公休日与家人团聚的机会.显然这不公平合理.
从该模型的解出发,我们可以设计出如下公平合理的以23周为一个轮转周期的员工调度方案:
·第1-4周:在星期一开始上班
·第5-8周:在星期二开始上班
·第9-10周:在星期三开始上班
·第11-16周:在星期四开始上班
·第17-20周:在星期六开始上班
·第21-23周:在星期日开始上班
员工1将遵守这个调度方案23周,员工2从第2周开始遵守这个调度方案23周(在星期一开始上班的时间为3周,在星期二开始上班的时间为4周,…,在星期日开始上班的时间为3周,在星期一开始上班的时间为1周).以这样的方式继续下去,就可以为每个员工制定一个23周调度方案.例如,员工13的调度方案如下:
·第1-4周:在星期四开始上班
·第5-8周:在星期六开始上班
·第9-11周:在星期日开始上班
·第12-15周:在星期一开始上班
·第16-19周:在星期二开始上班
·第20-21周:在星期三开始上班
·第22-23周:在星期四开始上班
本示例提醒我们,所建立的模型一定要考虑合理性,符合实际.而本示例更符合实际的考虑是员工还有年休假.
在邮局这个示例中,如果邮局可以同时使用专职员工和兼职员工来满足每天的需要,且在每一周,专职员工必须连续工作5天,每天工作8小时;兼职员工必须连续工作5天,每天工作4小时. 专职员工的工资是每小时15美元,而兼职员工的工资只有每小时10美元(没有附加福利).工会把每周的兼职劳动限制在25%,表述一个LP ,使这个邮局每周的劳动力成本最少.
比示例5的单阶段工作调度模型更复杂的是多阶段工作调度模型.
类似的还有多阶段库存模型、多阶段财务管理(投资)模型等.
示例6(指派问题) 某班准备从5名游泳队员中选4人,组队参加学校的1004⨯m 混合泳接力比赛.5名队员4种泳姿的百米平均成绩如表1所示,问应该怎样选拔接力队成员?
建模过程:该班追求的目标是接力队的成绩最好.该班因此要做出决策:从5名队员中选出4人,每人一种泳姿,且4人的泳姿各不相同(容易想到的一个办法是穷举法,组成接力队的方案共有5!=120种.).
设5,4,3,2,1=i 分别代表甲、乙、丙、丁和戊队员,4,3,2,1=j 分别代表蝶泳、仰泳、蛙泳和自由泳泳姿,ij c 表示队员i 的第j 种泳姿的百米平均成绩.
定义决策决量ij x :若选择队员i 参加泳姿j 的比赛(4,3,2,1,5,4,3,2,1==j i ),则1=ij x ,否则0=ij x .
该班追求的目标是接力队的成绩最好(只要对每一方案的成绩作比较,即可找出最优方
案,但显然这不是解决问题的好办法.随着问题规模的变大,穷举法的计算量将是无法接受的).当队员i 入选泳姿j 时,ij ij x c 表示他的成绩,否则0=ij ij x c ,因此目标函数为
∑∑===415
1min j i ij ij x c z .
决策变量必须满足以下2个条件:
(1) 每人最多只能入选4种泳姿之一,即
141
≤∑=j ij x
,5,4,3,2,1=i . (2)每种泳姿必须有1人而且只能有1人入选,即 151=∑=i ij x
,4,3,2,1=j .
以及取值受限
0=ij x 或1,4,3,2,1,5,4,3,2,1==j i .
该班追求接力队成绩最好的数学模型是如下的0-1规划模型:
.
4,3,2,1,5,4,3,2,1,10,4,3,2,1,1,5,4,3,2,1,1..;
min 5
141
415
1======≤=∑∑∑∑====j i or x j x i x
t s x c z ij i ij
j ij j i ij ij 7. 建模说明
对于大规模实际问题,清晰地表述问题,以正确的方式和方法采集(或收集)数据,准确地分析数据是非常重要的.
应该多角度建立既合理又尽可能简单的数学模型.这需要建模者有较高的数学素养,还要有灵性、有想象力、判断力、洞察力.
选择最适合模型的最优化解法,这要求建模者有较多的数学知识储备.
掌握检验、评价模型的基本原理与方法.灵敏度分析常被用在检验与评价模型中.
如果模型的解明显不正确或与实际情况吻合的不好,建模者应该具有发现问题所在的能力:是第1步的问题、第2步的问题,还是第3步的问题.
三、非线性规划(NLP)
1. 非线性规划模型
.
,,1,0),,,(,
,,1,0),,,(..);
,,,(max 212121min)(m p i x x x g p i x x x g t s x x x f z n i n i n +=≥===或 函数),,1(),,,1(,m p i g p i g f i i +==中至少有一个是非线性函数.
2. 非线性规划的特点
非线性规划的可行域及最优解的情况远比线性规划的可行域及最优解复杂的多.既可能有最优解也可能没有最优解.最优解既可能在可行域的内部,也可能在可行域的边界上.
3. 求解非线性规划的方法
求解无约束非线性规划的方法有最速下降法、Newton 法、共轭梯度法、逆Newton 法(DFP 法、BFGS 法)、最小二乘法、单纯形替换法、步长加速法、Power 法等.
求解约束非线性规划的方法有Z-容许方向法、外点法(外部罚函数法)、内点法(内部罚函数法)、乘子法、线性化法、简约梯度法等.
一般解出的是局部最优解.
4. 特殊的非线性规划
二次规划(QPP)
1min ()2..
T T f x x Qx b x c s t Ax p Cx d =++≥=
5. 特殊的非线性规划问题及其特殊解法
数据拟合问题(最小二乘问题)用最小二乘法求解.
6. 非线性规划建模实例
示例1 某公司有6个建筑工地要开工,每个工地的位置(用平面坐标),(b a 表示,距离单位:km)及水泥日用量d (单位:t (吨))由表1给出.目前有两个临时料场位于)1,5(A 和)7,2(B ,日储量各有20t .请回答以下两个问题:
(1)假设从料场到工地之间均有直线道路相连,试制定每天从A 、B 两料场分别向各工地运送水泥的供应计划,使总的吨公里数最小.
(2)为进一步减少吨公里数,打算舍弃目前的两个临时料场,修建两个新料场,日储量仍各为20t ,问建在何处最佳,可以节省多少吨公里数.
表1 工地的位置),(b a 及水泥日用量d 的数据
建模过程:公司追求的目标是每天从A 、B 两料场分别向各工地运送水泥总的吨公里数最小.
为表述该问题,设工地的位置与水泥日用量分别为),(i i b a 和i d (6,,2,1 =i ),料场位置及其日储量分别为),(j j y x 和j e (2,1=j ).定义决策变量ij w (6,,2,1 =i ,2,1=j ):料场j 向工地i 的运送量(6,,2,1 =i ,2,1=j ),在问题(2)中,新建料场位置),(j j y x 也是决策变量.公司追求总的吨公里数最小的目标目标函数f 为
∑∑==-+-=216
122)()(min j i i j i j ij b y a x w f .
决策变量ij w (6,,2,1 =i ,2,1=j )必须满足以下约束条件:
满足各工地的水泥日用量 6,,2,1,21 ==∑=i d w
i j ij .
各料场的运送量不能超过日储量 2,1,61=≤∑=j e w
j i ij .
及符号限制条件:0≥ij w , 6,,2,1 =i ,2,1=j .
(1)公司追求总的吨公里数最小的数学模型是如下线性规划模型
∑∑==-+-+-+-=6
1222612
21)7()2()1()5(min i i i i i i i i b a w b a w f ; 6,,2,1,..21
==∑=i d w
t s i j ij , 2,1,6
1=≤∑=j e w j i ij
, 0≥ij w , 6,,2,1 =i ,2,1=j .
总的吨公里数为136.2275.
(2)这时公司追求总的吨公里数最小的数学模型是如下有约束的非线性规划模型
∑∑==-+-=216
122)()(min j i i j i j ij b y a x c f ;
6,,2,1,..21
==∑=i d w
t s i j ij , 2,1,6
1=≤∑=j e w j i ij
, 0≥ij w , 6,,2,1 =i ,2,1=j .
以(1)的解及临时料场的坐标为初始迭代值,利用Matlab 工具箱求得这个模型的一个数值解,
两个新料场的位置为)3943.4,3875
.6(A 和)1867.7,
7511.5(B 和它们向6个工地运送水泥的计划为总的吨公里数为105.4626,比用临时料场节省约31吨公里.
若初始迭代值取为上面的计算结果,那么得到的数值解为)9194.4,5369.5(A 和)2852.7,8291.5(B 和它们向6个工地运送水泥的计划为
总的吨公里数为103.4760,又节省约2吨公里.
若初始迭代值取为上面的计算结果,却计算不出解.
若初始迭代值取为ij w (6,,2,1 =i ,2,1=j )=[3,5,4,7,1,0,0,0,0,0,], ),(j j y x
(2,1=j )=[5.6348,4.8687;7.2479,7.7499], 那么得到的数值解为)9285.4,6959.5(A 和)7500.7,2500.7(B 和它们向6个工地运送水泥的计划为
总的吨公里数为89.8835,又节省约13.5吨公里.
通过此例可以看出初始迭代值的选取对非线性规划方法的重要性.
总结:以建线性规划模型为第一选择,单纯形法能求到全局最优解.而非线性规划模型往往求不到全局最优解,而且数值解受初始迭代值的影响很大.。