《数学建模的运筹学方法课件.ppt》由会员分享,可在线阅读,更多相关《数学建模的运筹学方法课件.ppt(65页珍藏版)》请在三一办公上搜索。
1、数学建模的运筹学方法,线性规划整数规划动态规划层次分析法(决策论)非线性规划排队论存贮论对策论,运筹学,Matlab软件Optimization Toolbox,linprog 求解线性规划bintprog 求解0-1整数规划fmincon 求解带约束的非线性规划 fminunc 求解无约束非线性规划ga 采用遗传算法求解规划问题,例1 混合配料问题某糖果厂用原料A,B,C加工成三种不同牌号的糖果甲、乙、丙。已知各种牌号糖果中A、B、C含量、原料成本、各种原料的每月限制用量,三种牌号糖果的单位加工费及售价,如表1-17所示。问该厂每月生产这三种牌号糖果各多少kg,才能使其获利最大。试建立这个问
2、题的线性规划的数学模型。,线性规划,解 用i=1,2,3分别代表原料A,B,C,用j=1,2,3分别代表甲、乙、丙三种糖果,xij为生产第j种糖果耗用的第i种原料的kg数量。该厂的获利为三种牌号糖果的售价减去相应的加工费和原料成本,三种糖果的生产量分别为:x甲,x乙,x丙,计算采用Matlab软件x,feval=linprog(f,A,b,Aeq,beq,lb,ub)结果:,Matlab code,f=-0.9 1.4 1.9 0.45 0.95 1.45 -0.05 0.45 0.95;A=1 0 0 1 0 0 1 0 0; 0 1 0 0 1 0 0 1 0; 0 0 1 0 0 1 0
3、 0 1; -0.4 0.6 0.6 0 0 0 0 0 0; -0.2 -0.2 0.8 0 0 0 0 0 0; 0 0 0 -0.7 0.3 0.3 0 0 0; 0 0 0 -0.5 -0.5 0.5 0 0 0; 0 0 0 0 0 0 -0.6 -0.6 0.4;b=2000 2500 1200 0 0 0 0 0;lb=zeros(9,1);x,feval=linprog(f,A,b,lb),x11=0.5800e+003x21= 0.2862e+003x31= 0.1005e+003 x12=1.4200e+003 x22=2.2138e+003x32= 1.0995e+003
4、 x13=0.0000 x23=0.0000 x33= 0.0000最优值=5.4500e+003,计算结果,整数规划( Integer Programming ),整数规划的特点及应用分支定界法,主要内容:,整数规划(简称:IP)要求一部分或全部决策变量取整数值的规划问题称为整数规划。不考虑整数条件,由余下的目标函数和约束条件构成的规划问题称为该整数规划问题的松弛问题。若该松弛问题是一个线性规划,则称该整数规划为整数线性规划。,整数线性规划数学模型的一般形式:,整数线性规划问题的种类:,纯整数线性规划:指全部决策变量都必须取整数值的整数线性规划。 混合整数线性规划:决策变量中有一部分必须取整
5、数值,另一部分可以不取整数值的整数线性规划。 0-1型整数线性规划:决策变量只能取值0或1的整数线性规划。计算软件:Maltab软件:求解0-1整数规划 bintprogLingo软件:整数规划,整数规划的典型例子,例2 工厂A1和A2生产某种物资。由于该种物资供不应求,故需要再建一家工厂。相应的建厂方案有A3和A4两个。这种物资的需求地有B1,B2,B3,B4四个。各工厂年生产能力、各地年需求量、各厂至各需求地的单位物资运费cij,见下表:,工厂A3或A4开工后,每年的生产费用估计分别为1200万或1500万元。现要决定应该建设工厂A3还是A4,才能使今后每年的总费用最少。,解:这是一个物资
6、运输问题,特点是事先不能确定应该建A3还是A4中哪一个,因而不知道新厂投产后的实际生产物资。为此,引入0-1变量:,再设xij为由Ai运往Bj的物资数量,单位为千吨;z表示总费用,单位万元。则该规划问题的数学模型可以表示为:,混合整数规划问题,例3 现有资金总额为B。可供选择的投资项目有n个,项目j所需投资额和预期收益分别为aj和cj(j1,2,.,n),此外由于种种原因,有三个附加条件:若选择项目1,就必须同时选择项目2。反之不一定项目3和4中至少选择一个;项目5,6,7中恰好选择2个。应该怎样选择投资项目,才能使总预期收益最大。,解:对每个投资项目都有被选择和不被选择两种可能,因此分别用0
7、和1表示,令xj表示第j个项目的决策选择,记为:,投资问题可以表示为:,例4 指派问题或分配问题。人事部门欲安排四人到四个不同岗位工作,每个岗位一个人。经考核四人在不同岗位的成绩(百分制)如表所示,如何安排他们的工作使总成绩最好。,设,数学模型如下:,要求每人做一项工作,约束条件为:,变量约束:,整数规划问题解的特征:,整数规划问题的可行解集合是它松弛问题可行解集合的一个子集,任意两个可行解的凸组合不一定满足整数约束条件,因而不一定仍为可行解。 整数规划问题的可行解一定是它的松弛问题的可行解(反之不一定),但其最优解的目标函数值不会优于后者最优解的目标函数值。,整数规划问题的求解方法:,分支定
8、界法和割平面法 匈牙利法(指派问题),分支定界法,1)求整数规划的松弛问题最优解;若松弛问题的最优解满足整数要求,得到整数规划的最优解,否则转下一步;2)分支与定界:任意选一个非整数解的变量xi,在松弛问题中加上约束:xixi 和 xixi+1组成两个新的松弛问题,称为分枝。新的松弛问题具有特征:当原问题是求最大值时,目标值是分枝问题的上界;当原问题是求最小值时,目标值是分枝问题的下界。,分支定界法的解题步骤:,检查所有分枝的解及目标函数值,若某分枝的解是整数并且目标函数值大于(max)等于其它分枝的目标值,则将其它分枝剪去不再计算,若还存在非整数解并且目标值大于(max)整数解的目标值,需要
9、继续分枝,再检查,直到得到最优解。,分支定界法,例5 用分枝定界法求解整数规划问题,解:首先去掉整数约束,变成一般线性规划问题(原整数规划问题的松驰问题),LP,IP,用图解法求松弛问题的最优解,如图所示。,x1,x2,3,(18/11,40/11),2,1,1,2,3,x118/11, x2 =40/11Z=218/11(19.8)即Z 也是IP最小值的下限。,对于x118/111.64,取值x1 1, x1 2对于x2 =40/11 3.64,取值x2 3 ,x2 4先将(LP)划分为(LP1)和(LP2),取x1 1, x1 2,分支:,分别求出(LP1)和(LP2)的最优解。,先求LP
10、1,如图所示。此时在B点取得最优解。x11, x2 =3, Z(1)16找到整数解,问题已探明,此枝停止计算。,x1,x2,3,3,(18/11,40/11),1,1,B,A,C,同理求LP2,如图所示。在C 点取得最优解。即:x12, x2 =10/3, Z(2)56/318.7 Z(2) Z(1)16 原问题有比16更小的最优解,但 x2 不是整数,故继续分支。,在IP2中分别再加入条件: x23, x24 得下式两支:,分别求出LP21和LP22的最优解,x1,x2,3,3,(18/11,40/11),1,1,B,A,C,D,先求LP21,如图所示。此时D 在点取得最优解。即 x112/
11、52.4, x2 =3, Z(21)-87/5-17.4 Z(1)=-16但x112/5不是整数,可继续分枝。即 3x12。,求LP22,如图所示。无可行解,故不再分枝。,在(LP21)的基础上继续分枝。分别加入条件3x1 x1 2有下式:,分别求出(LP211)和(LP212)的最优解,x1,x2,3,3,(18/11,40/11),1,1,B,A,C,D,E,F,先求(LP211),如图所示。此时 在E点取得最优解。即 x12, x2 =3, Z(211)17找到整数解,问题已探明,此枝停止计算。,求(LP212),如图所示。此时 F在点取得最优解。即x13, x2 =2.5, Z(212
12、)31/215.5 Z(211) 如对LP212继续分解,其最小值也不会低于15.5 ,问题探明,剪枝。,分支定界法,原整数规划问题的最优解为: x1=2, x2 =3, Z* =17以上的求解过程可以用一个树形图表示如右:,LP1x1=1, x2=3Z(1) 16,LPx1=18/11, x2=40/11Z(0) 19.8,LP2x1=2, x2=10/3Z(2) 18.5,LP21x1=12/5, x2=3Z(21) 17.4,LP22无可行解,LP211x1=2, x2=3Z(211) 17,LP212x1=3, x2=5/2Z(212) 15.5,x11,x12,x23,x24,x12
13、,x13,分配问题与匈牙利法,指派问题的数学模型的标准形式:,设n 个人被分配去做n 件工作,规定每个人只做一件工作,每件工作只有一个人去做。已知第i个人去做第j 件工作的效率( 时间或费用)为Cij(i=1.2n;j=1.2n)并假设Cij 0。问应如何分配才能使总效率( 时间或费用)最高?,设决策变量,分配问题与匈牙利法,指派问题的数学模型为:,分配问题与匈牙利法,克尼格定理 :如果从分配问题效率矩阵aij的每一行元素中分别减去(或加上)一个常数ui,从每一列中分别减去(或加上)一个常数vj,得到一个新的效率矩阵bij,则以bij为效率矩阵的分配问题与以aij为效率矩阵的分配问题具有相同的
14、最优解。,指派问题的求解步骤:,1) 变换指派问题的系数矩阵(cij)为(bij),使在(bij)的各行各列中都出现0元素,即 从(cij)的每行元素都减去该行的最小元素; 再从所得新系数矩阵的每列元素中减去该列的最小元素。,2) 进行试指派,以寻求最优解。 在(bij)中找尽可能多的独立0元素,若能找出n个独立0元素,就以这n个独立0元素对应解矩阵(xij)中的元素为1,其余为0,这就得到最优解。,简化c(x),一、多阶段决策问题(Multi-Stage decision process)多阶段决策过程特点:,多阶段决策过程的最优化,二、动态规划求解的多阶段决策问题的特点 通常多阶段决策过程
15、的发展是通过状态的一系列变换来实现的。一般情况下,系统在某个阶段的状态转移除与本阶段的状态和决策有关外,还可能与系统过去经历的状态和决策有关。因此,问题的求解就比较困难复杂。而适合于用动态规划方法求解的只是一类特殊的多阶段决策问题,即具有“无后效性”的多阶段决策过程。所谓无后效性,又称马尔柯夫性,是指系统从某个阶段往后的发展,仅由本阶段所处的状态及其往后的决策所决定,与系统以前经历的状态和决策(历史)无关。,动态规划方法的基本思想,动态规划方法属较科学有效的算法。它的基本思想是,把一个比较复杂的问题分解为一系列同类型的更易求解的子问题,便于应用计算机。整个求解过程分为两个阶段,先按整体最优的思
16、想逆序地求出各个子问题中所有可能状态的最优决策与最优路线值,然后再顺序地求出整个问题的最优策略和最优路线。计算过程中,系统地删去了所有中间非最优的方案组合,从而使计算工作量比穷举法大为减少。,例l 设从A到E铺设输油管道,中间经过三个站。,(3),(5),(5),(8),(5),(12),(10),(7),(12),(10),最短路问题的特性:如果最短路通过点p,则这条路线从p至终点的部分,对于从p至终点的所有路线(称为p的后部路线)而言,必定也是最短的路线。,2 动态规划的基本概念和最优性原理,阶段(stage) 阶段变量 k 状态(state) 状态变量 sk,允许状态集合 Sk 决策(d
17、ecision) ui(si) 策略(policy) p1n=u1(s1),u2(s2),un(sn),k后部子过程 ,k 后部子过程策略, pkn 状态转移方程(state transfer equation) sk+1=T(sk,uk(sk) 阶段效应 效应函数(利润、成本、距离), dk(sk,uk) 最优指标函数 第k阶段的状态sk,当采取最优策略(uk, uk+1, un)后,从阶段k到阶段n可获得的总效应,称为最优指标函数,记为fk(sk)。,2 动态规划的基本概念和最优性原理,最优性原理: “作为整个过程的最优策略具有这样的性质:无论过去的状态和决策如何,相对于前面决策所形成的状
18、态而言,余下的决策序列必然构成最优子策略。”,1.动态规划的四大要素 状态变量及其可能集合 xk Xk 决策变量及其允许集合 uk Uk 状态转移方程 xk+1= Tk (xk ,uk ) 阶段效应 dk ( xk , uk ),2. 动态规划基本方程 fn+1(xn+1) = 0 (边界条件) fk(xk) = opt udk ( xk , uk ) + fk+1(xk+1) k = n,1,例 有某种机床,可以在高低两种不同的负荷下进行生产,在高负荷下生产时,产品的年产量为g,与年初投入生产的机床数量u1的关系为g=g(u1)=8u1,这时,年终机床完好台数将为au1,(a为机床完好率,0
19、a1,设a=0.7).在低负荷下生产时,产品的年产量为h,和投入生产的机床数量u2的关系为h=h(u2)=5u2,相应的机床完好率为b(0b1,设b=0,9),一般情况下ab。 假设某厂开始有x=1000台完好的机床,现要制定一个五年生产计划,问每年开始时如何重新分配完好的机床在两种不同的负荷下生产的数量,以使在5年内产品的总产量为最高。,解:首先构造这个问题的动态规划模型。 1变量设置 (1)设阶段变量k表示年度,因此,阶段总数n=5。 (2)状态变量sk表示第k年度初拥有的完好机床台数,同时也是第k-1年度末时的完好机床数量。,(3)决策变量uk,表示第k年度中分配于高负荷下生产的机床台数
20、。于是sk- uk便为该年度中分配于低负荷下生产的机床台数 这里sk与uk均取连续变量,当它们有非整数数值时可以这样理解:如sk0.6,就表示一台机器在k年度中正常工作时间只占6/10;uk=0.4时,就表示一台机床在 k年度只有4/10的时间于高负荷下工作 2状态转移方程为 k=1,2,,6,3允许决策集合,在第k段为4目标函数。设dk(sk,uk)为第k年度的产量,则dk(sk,uk)=8uk+5(sk-uk),因此,目标函数 为 k1,2,5 5条件最优目标函数递推方程。 令fk(sk)表示由第k年的状态sk出发,采取最优分配方案到第5年度结束这段时间的产品产量,根据最优化原理有以下递推
21、关系: k=1,2,3,4,5,6.边界条件为 下面采用逆序递推计算法,从第5年度开始递推计算。 k=5时有 显然,当u5*=s5时,f5(s5)有最大值,相应的有f5(s5)=8s5 k=4时有,= =,因此,当u4*=s4时,有最大值f4(s4)=13.6s4,k=3 时有 可见,当u3*=s3时,f3(s3)有最大值f3(s3) =17.55s3. k=2 时有 = + =此时,当取u2*=0时有最大值,即f2(s2)=20.8s2,其中s2=0.7u1+0.9(s1-u1),=,k=1时有 + = 当取u1*=0时, f1(s1)有最大值,即f1(s1)=23.7s1,因为s1=100
22、0,故f1(s1)=23700个产品 按照上述计算顺序寻踪得到下述计算结果:,上面所讨论的最优决策过程是所谓始端状态s1固定,终端状态s6自由,练 习 题,企业是一个有机的整体,企业管理是一个完整的系统,由许多子系统组成。在企业的管理中,非常关键的一部分是科学地安排生产。对于生产、库存与设备维修更新的合理安排对企业的生存和发展具有重要的意义。 已知某工厂要生产7种产品,以I,II,III,IV,V,VI,VII来表示,但每种产品的单件利润随市场信息有明显波动,现只能给出大约利润如下。,该厂有4台磨床、2台立钻、3台水平钻、1台镗床和1台刨床可以用来生产上述产品。已知生产单位各种产品所需的有关设备台时如下表。,从1月到6月,维修计划如下:1月1台磨床,2月2台水平钻,3月1台镗床,4月1台立钻,5月1台磨床和1台立钻,6月1台刨床和1台水平钻,被维修的设备当月不能安排生产。 又知从16月市场对上述7中产品最大需求量如下表所示。,每种产品当月销售不了的每件每月存储费为5元,但规定任何时候每种产品的存储量均不能超过100件。1月初无库存,要求6月末各种产品各储存50件。若该工厂每月工作24天,每天两班,每班8小时,问该厂应如何安排生产,可使总利润达到最大。,