数学建模第五章数学规划模型.ppt
《数学建模第五章数学规划模型.ppt》由会员分享,可在线阅读,更多相关《数学建模第五章数学规划模型.ppt(117页珍藏版)》请在三一办公上搜索。
1、数学建模(Mathematical Modeling),黑龙江科技学院理学院工程数学教研室,第五章 数学规划模型,理学院,第五章 数学规划模型,数学规划论起始20世纪30年代末,50年代与60年代发展成为一个完整的分支并受到数学界和社会各界的重视。七八十年代是数学规划飞速发展时期,无论是从理论上还是算法方面都得到了进一步完善。时至今日数学规划仍然是运筹学领域中热点研究问题。从国内外的数学建模竞赛的试题中看,有近1/4的问题可用数学规划进行求解。,理学院,动态规划模型,非线性规划模型,重点:数学规划模型的建立和求解,难点:数学规划模型的基本原理及数值计算,线性规划模型,理学院,建模举例,多目标规
2、划模型,整数规划模型,1、例1:,某机床厂生产甲、乙两种机床,每台销售后的利润分别为4000元与3000元。生产甲机床需用A,B机器加工,加工时间分别为每台2小时和1小时;生产乙机床需用A,B,C三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时数分别为A机器10小时、B机器8小时和C机器7小时,问该厂应生产甲、乙机床各几台,才能使总利润最大?,理学院,设该厂生产x1台甲机床和x2台乙机床时总利润最大,则x1,x2应满足:目标函数:约束条件:,理学院,一般线性规划问题的标准型为,线性规划的Matlab标准形式,理学院,线性规划模型矩阵的形式:例如线性规划 Matlab标准型为,理学
3、院,4、线性规划的图解法,本例的最优解为 最优目标值,理学院,5、求解线性规划的Matlab解法 单纯形法是首先由George Dantzig于1947年提出的,近60年来,虽有许多变形体已被开发,但却保持着同样的基本观念。由于有如下结论:若线性规划问题有有限最优解,则一定有某个最优解是可行区域的一个极点。基于此,单纯形法的基本思路是:先找出可行域的一个极点,据一定规则判断其是否最优;若否,则转换到与之相邻的另一极点,并使目标函数值更优;如此下去,直到找到某一最优解为止。,理学院,Matlab2008b中线性规划的标准型为:基本函数形式为linprog(c,A,b),它的返回值是向量的值。还有
4、其它的一些函数调用形式(在 Matlab 指令窗运行 help linprog 可以看到所有的函数调用形式),如:x,fval=linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)这里fval返回目标函数的值,Aeq和beq对应等式约束,LB和UB分别是变量的下界和上界,是的初始值,OPTIONS是控制参数。,理学院,例5.1.2 求解下列线性规划问题,解(i)编写M文件c=2;3;-5;a=-2,5,-1;b=-10;aeq=1,1,1;beq=7;x=linprog(-c,a,b,aeq,beq,zeros(3,1)value=c*x(ii)将M文件存盘,并命名为
5、example1.m。(iii)在Matlab指令窗运行example1即可得所求结果。,理学院,例5.1.3 求解线性规划问题,解 编写Matlab程序如下:c=2;3;1;a=1,4,2;3,2,0;b=8;6;x,y=linprog(c,-a,-b,zeros(3,1),理学院,例5.15拟分配n人去干n项工作,每人干且仅干一项工作,若分配第i人去干第j项工作,需花费cij单位时间,问应如何分配工作才能使工人花费的总时间最少?引入变量xij,若分配i干j工作,则取xij=1,否则取xij=0。上述指派问题的数学模型为:,指派问题,理学院,可行解既可以用一个矩阵(称为解矩阵)表示,其每行每
6、列均有且只有一个元素为1,其余元素均为0,也可以用1,n中的一个置换表示。求解指派问题的匈牙利算法 由于指派问题的特殊性,又存在着由匈牙利数学家D.Konig提出的更为简便的解法匈牙利算法。算法主要依据以下事实:如果系数矩阵C=cij一行(或一列)中每一元素都加上或减去同一个数,得到一个新矩阵B=bij,则以C或B为系数矩阵的指派问题具有相同的最优指派。,理学院,可将原系数阵C变换为含零元素较多的新系数阵B,而最优解不变。若能在B中找出n个位于不同行不同列的零元素,令解矩阵中相应位置的元素取值为1,其它元素取值为0,则所得该解是以B为系数阵的指派问题的最优解,从而也是原问题的最优解。由C到B的
7、转换可通过先让矩阵C的每行元素均减去其所在行的最小元素得矩阵D,D的每列元素再减去其所在列的最小元素得以实现。,理学院,例 求解指派问题,其系数矩阵为,将第一行元素减去此行中的最小元素15,同样,第二行元素减去17,第三行元素减去17,最后一行的元素减去16,得,理学院,再将第3列元素各减去1,得 以B2为系数矩阵的指派问题有最优指派,即,理学院,例5.1.7 求解系数矩阵C的指派问题解 先作等价变换如下,理学院,容易看出,从变换后的矩阵中只能选出四个位于不同行不同列的零元素,但n=5,最优指派还无法看出。此时等价变换还可进行下去。步骤如下:(1)对未选出0元素的行打;(2)对行中0元素所在列
8、打;(3)对列中选中的0元素所在行打;重复(2)、(3)直到无法再打为止。可以证明,若用直线划没有打的行与打的列,就得到了能够覆盖住矩阵中所有零元素的最少条数的直线集合,找出未覆盖的元素中的最小者,令行元素减去此数,列元素加上此数,则原先选中的0元素不变,而未覆盖元素中至少有一个已转变为0,且新矩阵的指派问题与原问题也等价。,理学院,上述过程可反复采用,直到能选取出足够的0元素为止。例如,对例变换后的矩阵再变换,第三行、第五行元素减去2,第一列元素加上2,得 最优指派为,理学院,建模举例:营养配餐问题,每种蔬菜含有的营养素成份是不同的,从医学上知道,每人每周对每种营养成分的最低需求量。某医院营
9、养室在制定下一周菜单时,需要确定表2-4中所列六种蔬菜的供应量,以便使费用最小而又能满足营养素等其它方面的要求。规定白菜的供应一周内不多于20千克,其它蔬菜的供应在一周内不多于40千克,每周共需供应140千克蔬菜,为了使费用最小又满足营养素等其它方面的要求,问在下一周内应当供应每种蔬菜各多少千克?,理学院,表5-4,理学院,问题分析,设 分别表示下一周内应当供应的青豆、胡萝卜、菜花、白菜、甜菜及土豆的量,费用目标函数为:,约束条件:,铁的需求量至少6个单位数:,磷的需求量至少25个单位数:,理学院,问题分析,维生素A的需求量至少17500个单位:,维生素C的需求量至少245个单位:,烟酸的需求
10、量至少5个单位数:,每周需供应140千克蔬菜,即,理学院,模型的建立,0 x140 0 x240 0 x3400 x420 0 x540 0 x640,理学院,模型求解,利用Matlab软件编程序:%营养配餐ch21%文件名:ch21 mc=5;5;8;2;6;3;A=(-1)*1,1,1,1,1,1;0.45,0.45,1.05,0.40,0.50,0.50;10,28,59,25,22,75;415,9065,2550,75,15,235;8,3,53,27,5,8;0.30,0.35,0.60,0.15,0.25,0.80;b=(-1)*140;6;25;17500;245;5;xLB=
11、zeros(6,1);xUB=40;40;40;20;40;40;nEq=1;x0=0*ones(6,1);x=lp(c,A,b,xLB,xUB,x0,nEq);,理学院,模型求解,执行输出,disp(青豆需要的份数)x(1)disp(胡罗卜需要的份数)x(2)disp(菜花需要的份数)x(3)disp(白菜需要的份数)x(4)disp(甜菜需要的份数)x(5)disp(土豆需要的份数)x(6),理学院,执行输出,模型求解,青豆需要的份数ans=40胡罗卜需要的份数 ans=40.0000菜花需要的份数 ans=0白菜需要的份数 ans=20.0000,理学院,甜菜需要的份数 ans=0土豆需
12、要的份数ans=40最小费用 ans=560.0000,模型求解,执行输出,理学院,5.2 整数规划模型,有些LP往往要求全部或部分决策变量取非负整数值,如计件产品的生产计划、合理下料、设施的配备决策等,这样的LP称为整数线性规划。,目前所流行的求解整数规划的方法,往往只适用于整数线性规划。目前还没有一种方法能有效地求解一切整数规划。,理学院,1.整数规划的分类如不加特殊说明,一般指整数线性规划。对于整数线性规划模型大致可分为两类:(i)变量全限制为整数时,称纯(完全)整数规划。(ii)变量部分限制为整数的,称混合整数规划。(iii)变量只能取0或1时,称之为0-1整数规划。2.整数规划特点(
13、i)原线性规划有最优解,当自变量限制为整数后,其整数规划解出现下述情况:原线性规划最优解全是整数,则整数规划最优解与线性规划最优解一致。整数规划无可行解(ii)整数规划最优解不能按照实数最优解简单取整而获得。,理学院,分枝定界法,对有约束条件的最优化问题(其可行解为有限数)的可行解空间恰当地进行系统搜索,这就是分枝与定界内容。通常,把全部可行解空间反复地分割为越来越小的子集,称为分枝;并且对每个子集内的解集计算一个目标下界(对于最小值问题),这称为定界。在每次分枝后,凡是界限不优于已知可行解集目标值的那些子集不再进一步分枝,这样,许多子集可不予考虑,这称剪枝。这就是分枝定界法的主要思路。,理学
14、院,设有最大化的整数规划问题A,与它相应的线性规划为问题B,从解问题B开始,若其最优解不符合A的整数条件,那么B的最优目标函数必是A的最优目标函数Z*的上界,记作;而A的任意可行解的目标函数值将是Z*的一个下界Z。分枝定界法就是将B的可行域分成子区域再求其最大值的方法。逐步减小 和增大Z,最终求到Z*。,理学院,例 求解下述整数规划 解(i)先不考虑整数限制,即解相应的线性规划,得最优解为:可见它不符合整数条件。这时Z是问题A的最优目标函数值Z*的上界,记作。而x1=0,x2=0显然是问题A的一个整数可行解,这时Z=0,是Z*的一个下界,记作,即0Z*356。,s.t.,因为x1,x2当前均为
15、非整数,故不满足整数要求,任选一个进行分枝。设选x1进行分枝,把可行集分成2个子集:,因为4与5之间无整数,故这两个子集内的整数解必与原可行集合整数解一致。这一步称为分枝。这两个子集的规划及求解如下:问题B1:最优解为:,s.t.,问题B2最优解为:,s.t.,以此类推找出最优解。,从以上解题过程可得用分枝定界法求解整数规划(最大化)问题的步骤为:开始,将要求解的整数规划问题称为问题A,将与它相应的线性规划问题称为问题B。(i)解问题B可能得到以下情况之一:(a)B没有可行解,这时A也没有可行解,则停止(b)B有最优解,并符合问题A的整数条件,B的最优解即为A的最优解,则停止。(c)B有最优解
16、,但不符合问题A的整数条件,记它的目标函数值为。,(ii)用观察法找问题A的一个整数可行解,一般可取xj=0,j=1,n试探,求得其目标函数值,并记作Z。以Z*表示问题A的最优目标函数值;这时有 进行迭代。第一步:分枝,在B的最优解中任选一个不符合整数条件的变量xj,其值为bj,以bj表示小于bj的最大整数。构造两个约束条件 将这两个约束条件,分别加入问题B,求两个后继规划问题B1和B2。不考虑整数条件求解这两个后继问题。,定界,以每个后继问题为一分枝标明求解的结果,与其它问题的解的结果中,找出最优目标函数值最大者作为新的上界。从已符合整数条件的各分支中,找出目标函数值为最大者作为新的下界Z,
17、若无作用Z=0。第二步:比较与剪枝,各分枝的最优目标函数中若有小于Z者,则剪掉这枝,即以后不再考虑了。若大于Z,且不符合整数条件,则重复第一步骤。一直到最后得到Z*=Z为止。得最优整数解 xj*,j=1,n.,0-1型整数规划 0-1型整数规划是整数规划中的特殊情形,它的变量xj仅取值0或1。这时称为0-1变量,或称二进制变量。xj仅取值0或1这个条件可由下述约束条件:整数所代替,是和一般整数规划的约束条件形式一致的。在实际问题中,如果引入0-1变量,就可以把有各种情况需要分别讨论的线性规划问题统一在一个问题中讨论了。我们先介绍引入0-1变量的实际问题,再研究解法。,例5.2.4 某公司拟在市
18、东、西、南三区建立门市部。拟议中有7个位置(点)Ai(i=1,2,7)可供选择。规定在东区:由A1,A2,A3三个点中至多选两个;在西区:由A4,A5两个点中至少选一个;在南区:由A6,A7两个点中至少选一个。如选用Ai点,设备投资估计为bi元,每年可获利润估计为ci元,但投资总额不能超过B元。问应选择哪几个点可使年利润为最大?,解 先引入0-1变量xi,i=1,2,7令于是问题可列写成:,0-1型整数规划解法之一(过滤隐枚举法)解0-1型整数规划最容易想到的方法,和一般整数规划的情形一样,就是穷举法,即检查变量取值为0或1的每一种组合,比较目标函数值以求得最优解,这就需要检查变量取值的2n个
19、组合。对于变量个数n较大,这几乎是不可能的。因此常设计一些方法,只检查变量取值的组合的一部分,就能求到问题的最优解。这样的方法称为隐枚举法,分枝定界法也是一种隐枚举法。当然,对有些问题隐枚举法并不适用,所以有时穷举法还是必要的。,理学院,例 求解思路及改进措施:(i)先试探性求一个可行解,易看出(x1,x2,x3)=(1,0,0)满足约束条件,故为一个可行解,且相应的目标函数值为z=3。,s.t.,理学院,ii)因为是求极大值问题,故求最优解时,凡是目标值z3的解不必检验是否满足约束条件即可删除,因它肯定不是最优解,于是应增加一个约束条件(目标值下界):称该条件为过滤条件)。从而原问题等价于:
20、,a,b,c,d,e,f,若用全部枚举法,3个变量共有8种可能的组合,我们将这8种组合依次检验它是否满足条件(a)(e),对某个组合,若它不满足(a),即不满足过滤条件,则(b)(e)即可行性条件不必再检验;若它满足(a)(e)且相应的目标值严格大于3,则进行(iii)。(iii)改进过滤条件。(iv)由于对每个组合首先计算目标值以验证过滤条件,故应优先计算目标值大的组合,这样可提前抬高过滤门槛,以减少计算量。按上述思路与方法,例的求解过程可由下表来表示:,从而得最优解,最优值,整数规划的计算机解法,整数规划问题的求解可以使用Lingo等专用软件。对于一般的整数规划规划问题,无法直接利用Mat
21、lab的函数,必须利用Matlab编程实现分枝定界解法和割平面解法。但对于指派问题等特殊的0-1整数规划问题或约束矩阵A是幺模矩阵时,有时可以直接利用Matlab的函数linprog。,求解下列指派问题,已知指派矩阵为,解 编写Matlab程序如下:c=3 8 2 10 3;8 7 2 9 7;6 4 2 7 5 8 4 2 3 5;9 10 6 9 10;c=c(:);a=zeros(10,25);for i=1:5a(i,(i-1)*5+1:5*i)=1;a(5+i,i:5:25)=1;end b=ones(10,1);x,y=linprog(c,a,b,zeros(25,1),ones(
22、25,1),求得最优指派方案为,5.3 非线性规划,如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不象线性规划有单纯形法这一通用方法,非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围。,例(投资决策问题)某企业有个项目可供选择投资,并且至少要对其中一个项目投资。已知该企业拥有总资金元,投资于第个项目需花资金元,并预计可收益元。试选择最佳投资方案。,解 设投资决策变量为,限制条件,由于xi只取值0或1,最佳投资方案应是投资额最小而总收益最大的方案,所以这个最佳投资决策问题归结为总资金以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 第五 规划 模型
链接地址:https://www.31ppt.com/p-6578023.html