资源描述:
《二次_动态规划-图论.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、§1二次规划模型数学模型:其中H为二次型矩阵,A、Aeq分别为不等式约束与等式约束系数矩阵,f,b,beq,lb,ub,x为向量。求解二次规划问题函数为quadprog()调用格式:X=quadprog(H,f,A,b)X=quadprog(H,f,A,b,Aeq,beq)X=quadprog(H,f,A,b,Aeq,beq,lb,ub)X=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)X=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)[x
2、,fval]=quadprog(…)[x,fval,exitflag]=quadprog(…)[x,fval,exitflag,output]=quadprog(…)[x,fval,exitflag,output,lambda]=quadprog(…)说明:输入参数中,x0为初始点;若无等式约束或无不等式约束,就将相应的矩阵和向量设置为空;options为指定优化参数。输出参数中,x是返回最优解;fval是返回解所对应的目标函数值;exitflag是描述搜索是否收敛;output是返回包含优化信息的
3、结构。Lambda是返回解x入包含拉格朗日乘子的参数。例1:求解:二次规划问题minf(x)=x1-3x2+3x12+4x22-2x1x2s.t2x1+x2≤2-x1+4x2≤3程序:f=[1;-3];H=[6-2;-28];A=[21;-14];b=[2;3];[X,fval,exitflag]=quadprog(H,f,A,b)结果:X=-0.04550.3636fval=-0.5682exitflag=1例2:求解:二次规划问题minx12+2x22-2x1x2-4x1-12x2s.tx1+x
4、2≤2-x1+2x2≤22x1+x2≤30≤x1,0≤x2程序:H=[2-2;-24];f=[-4;-12];A=[11;-12;21];b=[2;2;3];lb=zeros(2,1);[x,fval,exitflag]=quadprog(H,f,A,b,[],[],lb)结果:x=0.66671.3333fval=-16.4444exitflag=1练习1求解下面二次规划问题sub.to解:则,,在MATLAB中实现如下:>>H=[1-1;-12];>>f=[-2;-6];>>A=[11;-12;
5、21];>>b=[2;2;3];>>lb=zeros(2,1);>>[x,fval,exitflag,output,lambda]=quadprog(H,f,A,b,[],[],lb)结果为:x=%最优解0.66671.3333fval=%最优值-8.2222exitflag=%收敛1output=iterations:3algorithm:'medium-scale:active-set'firstorderopt:[]cgiterations:[]lambda=lower:[2x1double]
6、upper:[2x1double]eqlin:[0x1double]ineqlin:[3x1double]>>lambda.ineqlinans=3.11110.44440>>lambda.lowerans=00说明第1、2个约束条件有效,其余无效。练习2求二次规划的最优解maxf(x1,x2)=x1x2+3sub.tox1+x2-2=0解:化成标准形式:sub.tox1+x2=2在Matlab中实现如下:>>H=[0,-1;-1,0];>>f=[0;0];>>Aeq=[11];>>beq=2;>>
7、[x,fval,exitflag,output,lambda]=quadprog(H,f,[],[],Aeq,beq)结果为:x=1.00001.0000fval=-1.0000exitflag=1output=firstorderopt:0iterations:1cgiterations:1algorithm:[1x58char]lambda=eqlin:1.0000ineqlin:[]lower:[]upper:[]§2 最大最小化模型基本思想:在对策论中,我们常遇到这样的问题:在最不利的条件下
8、,寻求最有利的策略。在实际问题中也有许多求最大值的最小化问题。例如急救中心选址问题就是要规划其到所有地点最大距离的最小值。在投资规划中要确定最大风险的最低限度等等。为此,对每个x∈R,我们先求诸目标值fi(x)的最大值,然后再求这些最大值中的最小值。最大最小化问题的数学模型:求解最大最小化问题的函数为fminimax调用格式:x=fminimax(F,x0,)x=fminimax(F,x0,,A,b)x=fminimax(F,x0,,A,b,Aeq,beq)x=fmi