资源描述:
《数学建模8-动态规划和目标规划》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数学建模8-动态规划和目标规划一、动态规划1.动态规划是求解决策过程最优化的数学方法,主要用于求解以时间划分阶段的动态过程的优化问题。但是一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解。2.基本概念、基本方程:(1)阶段(2)状态(3)决策(4)策略(5)状态转移方程:(6)指标函数和最优值函数:(7)最优策略和最优轨线(8)递归方程:3.计算方法和逆序解法(此处较为抽象,理解较为困难,建议结合例子去看)4.动态规划与静态规划的关系:
2、一些静态规划只需要引入阶段变量、状态、决策等就可以用动态规划方法求解(详见书中例4)5.若干典型问题的动态规划模型:(1)最短路线问题:(2)生产计划问题:状态定义为每阶段开始时的储存量xk,决策为每个阶段的产量,记每个阶段的需求量(已知量)为dk,则状态转移方程为(3)资源分配问题:详见例5状态转移方程:最优值函数:自有终端条件:(4)具体应用实例:详见例6、例7。一、目标规划1.实际问题中,衡量方案优劣要考虑多个目标,有主要的,有主要的,也有次要的;有最大值的,也有最小值的;有定量的,也有定性的;有相互补充的,也
3、有相互对立的,这时可用目标规划解决。其求解思路有加权系数法、优先等级法、有效解法等。2.基本概念:(1)正负偏差变量:(2)绝对(刚性)约束和目标约束(3)优先因子(优先等级)与权系数:凡要求第一位达到的目标赋予优先因子P1,次位赋予P2……以此类推。(4)目标规划的目标函数:(5)一般数学模型:1.求解目标规划的解法:(1)序贯式算法(用LINGO软件求解,有编程模板可以使用,下面以书中例3说明,具体还可以参考书中例6-例8):model:sets:level/1..3/:p,z,goal;variable/1..
4、2/:x;h_con_num/1..1/:b;s_con_num/1..4/:g,dplus,dminus;h_con(h_con_num,variable):a;s_con(s_con_num,variable):c;obj(level,s_con_num)/11,22,33,34/:wplus,wminus;endsetsdata:ctr=?;goal=??0;b=12;g=150001615;a=22;c=2003002-14005;wplus=0131;wminus=1130;enddatamin=@sum(
5、level:p*z);p(ctr)=1;@for(level(i)
6、i#ne#ctr:p(i)=0);@for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)*dminus(j)));@for(h_con_num(i):@sum(variable(j):a(i,j)*x(j))
7、evel(i)
8、i#lt#@size(level):@bnd(0,z(i),goal(i)));end(2)多目标规划的MATLAB解法:以书中例5详细说明如下:a=[-1-10000-1-130200302];b=[-30-3012048]';c1=[-100-90-80-70];c2=[0302];[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1))%求第一个目标函数的目标值[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1))%求第二个目标函数的目标值g3=
9、[g1;g2];%目标goal的值[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4,1))