好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

目标规划问题.docx

9页
  • 卖家[上传人]:re****.1
  • 文档编号:409829545
  • 上传时间:2023-07-23
  • 文档格式:DOCX
  • 文档大小:38.49KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 926目标规划问题9.261基本数学原理前面介绍的最优化方法只有一个目标函数,是单目标最优化方法但是,在许多实际工程问题中,往往希望多个指标都达到最优值,所以它有多个目标函数这种问题称为多目标最优化问题多目标最优化问题的数学模型为:i=1,…,mei=me+1,…,m其中F(x)为目标函数向量由于多目标最优化问题中各目标函数之间往往是不可公度的,因此往往没有唯一解,此时必须引进非劣解的概念(非劣解又称为有效解或帕累托解)定义:若x(x€Q)勺邻域内不存在Ax,使得(x+Ax)€Q,且i=1,…,m对于某些j则称为x*非劣解多目标规划有许多解法,下面列出常用的几种:权和法该法将多目标向量问题转化为所有目标的加权求和的标量问题,即加权因子的选取方法很多,有专家打分法、a方法、容限法和加权因子分解法等该问题可以用标准的无约束最优化算法进行求解L2.£约束法&约束法克服了权和法的某些凸性问题它对目标函数向量中的主要目标Fp进行最小化,将其它目标用不等式约束的形式写出:sub.i=1,…,mizp3.目标达到法目标函数系列为F(X)={F!(x),F2(X),…,Fm(x)},对应地有其目标值系列。

      允许目标函数有正负偏差,偏差的大小由加权系数向量W={W1,W2,…,Wm}控制,于是目标达到问题可以表达为标准的最优化问题:sub.i=1,…,mF1s、F2s指定目标{},定义目标点P权重向量定义从P到可行域空间A(Y的搜索方向,在优化过程中,丫的变化改变可行域的大小,约束边界变为唯一解点4.目标达到法的改进目标达到法的一个好处是可以将多目标最优化问题转化为非线性规划问题,但是,在序列二次规划(SQP)过程中,一维搜索的目标函数选择不是一件容易的事情,因为在很多情况下,很难决定是使目标函数变大好还是使它变小好这导致许多目标函数创建过程的提出可以通过将目标达到问题变为最大最小化问题来获得更合适的目标函数其中i=1,…,m9.262相关函数介绍fgoalattain函数功能:求解多目标达到问题数学模型:其中x,weight,goal,b,beq,lb和ub为向量,A和Aeq为矩阵,c(x),ceq(x)和F(x)为函数,返回向量F(x),c(x)和ceq(x)可以是非线性函数语法:x=fgoalattain(fun,xO,goal,weight)x=fgoalattain(fun,xO,goal,weight,A,b)x=fgoalattain(fun,xO,goal,weight,A,b,Aeq,beq)x=fgoalattain(fun,xO,goal,weight,A,b,Aeq,beq,lb,ub)x=fgoalattain(fun,xO,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,...lb,ub,nonlcon,options)x=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,...lb,ub,nonlcon,options,P1,P2,...)[x,fval]=fgoalattain(...)[x,fval,attainfactor]=fgoalattain(...)[x,fval,attainfactor,exitflag]=fgoalattain(...)[x,fval,attainfactor,exitflag,output]=fgoalattain(...)[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(...)描述:fgoalattain求解多目标达到问题。

      x=fgoalattain(fun,x0,goal,weight)试图通过变化x来使目标函数fun达到goal指定的目标初值为x0,weight参数指定权重x=fgoalattain(fun,x0,goal,weight,A,b)求解目标达到问题,约束条件为线性不等式A*x<=bx=fgoalattain(fun,xO,goal,weight,A,b,Aeq,beq)求解目标达到问题,除提供上面的线性不等式以外,还提供线性等式Aeq*x-beq当没有不等式存在时,设置A=[]、b-[]x-fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)为设计变量x定义下界lb和上界ub集合,这样始终有lb<-x<-ubx-fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)将目标达到问题归结为nonIcon参数定义的非线性不等式c(x)或非线性等式ceq(x)°fgoalattain函数优化的约束条件为(x)<-0和ceq(x)-0f若不存在边界,设置lb-[]和(或)ub-[]x-fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,…options)用options中设置的优化参数进行最小化。

      x-fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonIcon,…options,P1,P2,...)将冋题参数P1,P2等直接传递给函数fun和nonIcon如果不需要参数A,b,Aeq,beq,lb,ub,nonlcon和options,将它们设置为空矩阵[x,fval]-fgoalattain(...)返回解x处的目标函数值[x,fval,attainfactor]-fgoalattain(...)返回解x处的目标达到因子[x,fval,attainfactor,exitflag]-fgoalattain(...)返回exitflag参数,描述计算的退出条件[x,fval,attainfactor,exitflag,output]-fgoalattain(...)返回包含优化信息的输出参数outputf[x,fval,attainfactor,exitflag,output,lambda]-fgoalattain(...)返回包含拉格朗日乘子的lambda参数变量:goal变量目标希望达到的向量值向量的长度与fun函数返回的目标数F相等。

      fgoalattain函数试图通过最小化向量F中的值来达到goal参数给定的目标nonIcon参数:该函数计算非线性不等式约束c(x)<-0和非线性等式约束ceq(x)-0nonIcon函数是一个包含函数名的字符串,该函数可以是M文件、内部函数或MEX文件nonlcon函数需要输入向量x,返回两个变量一x处的非线性不等式向量c和x处的非线性等式向量ceq例如,右nonIcon-'mycon',则M文件的形式如下:function[c,ceq]-mycon(x)c-...%计算x处的非线性不等式ceq-...%计算x处的非线性等式若约束函数的梯度可以计算,且options.GradConstr设为'on',即options-optimset('GradConstr','on')则函数nonIcon也必须在第三个和第四个输出变量中输出c(x)的梯度GC和ceq(x)的梯度GCeq注意,可以通过核对nargout参数来避免计算GC和GCeqfunction[c,ceq,GC,GCeq]=mycon(x)c=...%x处的非线性不等式ceq=...%x处的非线性等式ifnargout>2%被调用的nonIcon函数,有4个输出。

      GC=...%不等式的梯度GCeq=...%等式的梯度end若nonIcon函数返回m元素的向量c和长度为n的x,贝Uc(x)的梯度GC是一个n*m的矩阵,其中GC(i,j)是c(j)对x(i)的偏导数同样,若ceq是一个p元素的向量,贝Uceq(x)的梯度Gceq是一个n*p的矩阵,其中Gceq(i,j)是ceq(j)对x(i)的偏导数options变量优化参数选项你可以用optimset函数设置或改变这些参数的值DerivativeCheck-比较用户提供的导数(目标函数或约束函数的梯度)和有限差分导数Diagnostics-打印将要最小化或求解的函数的诊断信息DiffMaxChange-变量中有限差分梯度的最大变化DiffMinChange-变量中有限差分梯度的最小变化Display-显示水平设置为’off时不显示输出;设置为'iter'时显示每一次迭代的输出;设置为’final'时只显示最终结果GoalExactAchieve-使得目标个数刚好达到,不多也不少GradConstr-用户定义的约束函数的梯度GradObj-用户定义的目标函数的梯度使用大型方法时必须使用梯度,对于中型方法则是可选项。

      MaxFunEvals-函数评价的允许最大次数MaxIter-函数迭代的允许最大次数MeritFunction-如果设为'multiobj',则使用目标达到或最大最小化目标函数的方法若设置为’singleobj',则使用fmincon函数计算目标函数TolCon-约束矛盾的终止容限TolFun-函数值处的终止容限TolX-x处的终止容限weight变量为权重向量,可以控制低于或超过fgoalattain函数指定目标的相对程度当goal的值都是非零值时,为了保证活动对象超过或低于的比例相当,将权重函数设置为abs(goal)(活动对象为阻止解处目标改善的对象集合)1. 当目标值中的任意一个为零时,设置weight=abs(goal)将导致目标约束看起来更象硬约束,而不象目标约束2. 当加权函数weight为正时,fgoalattain函数试图使对象小于目标值为了使目标函数大于目标值,将权重weight设置为负为了使目标函数尽可能地接近目标值,使用GoalsExactAchieve参数,将fun函数返回的第一个元素作为目标attainfactor变量attainfactor变量是超过或低于目标的个数。

      若attainfactor为负,则目标已经溢出;若attainfactor为正,则目标个数还未达到其它参数意义同前注意:当特征值为复数时,本问题不连续,这也说明了为什么收敛速度很慢尽管原始方法假设函数是连续的,该法仍然可以向解的方向前进,因为在解的位置上,没有发生不连续的现象当对象和目标为复数时,fgoalattain函数将试图得到最小二乘意义上的目标算法:多目标优化同时涉及到一系列对象fgoalattain函数求解该问题的基本算法是目标达到法该法为目标函数建立起目标值多目标优化的具体算法在前面进行了更详细的介绍本次实现过程中,使用了松弛变量丫作为模糊变量同时最小化目标向量F(x);goal参数是一系列目标达到值在进行优化之前,通常不知道对象是否会达到目标使用权向量weight可以控制是没有达到还是溢出fgoalattain函数使用序列二次规划法(SQP),前面已经进行了比较多的介绍算法中对于一维搜索和Hessian矩阵进行了修改在一维搜索中,将精确目标函数和文献[2]、[3]中的目标函数一起使用当有一个目标函数不再发生改善时,一维搜索终止修改的Hessian矩阵借助于本问题的结构,也。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.