多目的优化与决策的根本方法基于Matlab的一种现代方法Elementary Method for Multiobjective Optimization&DecisionA Modern Approach in Matlab系统工程概论单元讨论目的Unit Object教科书多目的优化问题非劣解及约束法目的规划法扩展到工程领域与非线性优化Matlab R14 SP1的Optimization Toolbox详细讲解fgoalattain,大致对应目的规划法,但是扩展到非线性多目的优化的数学描画Multiobjective optimization modeliGxFy为满足所有目标的参数 组成的参数空间为根据 按照目标函数 映射的组成的目标函数空间留意,这里以及留意,这里以及之后的一切讲述之后的一切讲述同时适宜于线性同时适宜于线性和非线性的多目和非线性的多目的优化的优化多目的优化的非劣解集Noninferior solution for the model*xxx(xx)x若,且对于 不存在,使得:与能同时成立,那么则定义 为多目标优化问题的非劣解例如:A,B点属于非劣解,由于不满足定义条件约束法Constraint Method原理:选出一个主目的函数原理:选出一个主目的函数Fp,将其他,将其他目的函数转换成约束。
目的函数转换成约束优点:可以获得加权法在非凸空间漏掉优点:可以获得加权法在非凸空间漏掉的解,易了解的解,易了解缺陷:缺陷:获得适宜的非劣解剧烈依赖于获得适宜的非劣解剧烈依赖于,而,而计算要插值且对于计算要插值且对于n个目的,个目的,有有rn-1个组合可选择,如何选择缺乏有个组合可选择,如何选择缺乏有效方法,每个组合都会获得不同的效方法,每个组合都会获得不同的选择主目的函数在实践运用中随意性选择主目的函数在实践运用中随意性大,有些问题很难确定同加权法同大,有些问题很难确定同加权法同样会漏解计算量大,大规模问题无样会漏解计算量大,大规模问题无法运用我放弃!目的规划法目的规划法Goal Attainment Method 引入目的概念:引入目的概念:F*,令非劣解集到目的的,令非劣解集到目的的间隔或称范数最小,选出一个非劣解间隔或称范数最小,选出一个非劣解Wi引入了一个松弛度的概念,松弛度最引入了一个松弛度的概念,松弛度最小的一个非劣解就是对于目的小的一个非劣解就是对于目的F*的最可行的最可行解优点:不漏解,目的明确,计算量小优点:不漏解,目的明确,计算量小缺陷:对于非线性规划设计:运用延续缺陷:对于非线性规划设计:运用延续二次形规划二次形规划(SQP-sequential quadratic programming),线性的权值松弛在部分,线性的权值松弛在部分搜索范围内,会导致回绝可大幅改良总体搜索范围内,会导致回绝可大幅改良总体目的的小步搜索。
只针对延续问题,能目的的小步搜索只针对延续问题,能够只能给出部分最优解够只能给出部分最优解改良:阅读改良:阅读Matlab Optimization Toolbox 3.0.1 Users Guide中中Algorithm Improvements for Goal Attainment Method一节内容一节内容Matlab优化工具箱Matlab Optimization Toolbox 优化工具箱提供了普通和大型的非线性优化函数,同时还提供了线性规划,二次规划,非线性最小二乘以及非线性方程求解的工具主要特性:无约束非线性极小化问题 约束性线性极小化、极大极小、多目的优化,半无穷极小化问题二次规划和线性规划问题 非线性最小二乘和边境曲线拟合问题 非线性系统方程求解问题 约束线性最小二乘问题 大型问题的特殊算法fgoalattain普通用法普通用法Solve multiobjective goal attainment problem x,fval=fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)nonlcon是一个用户定义的函数,是一个用户定义的函数,function c,ceq=mycon(x),根据形状向,根据形状向量量x计算非线性约束:计算非线性约束:c(x)=0 和非线性等式约束:和非线性等式约束:ceq(x)=0 其中其中fun(x),c(x)和和ceq(x)可以为非线性函数,应该接受和前往向量,可以为非线性函数,应该接受和前往向量,x,weight,goal,b,beq,lb和和ub 为向量,为向量,A 和和Aeq是矩阵。
是矩阵函数函数fgoalattain前往根据初始前往根据初始x0形状向量,经多目的优化找到的形状向量:形状向量,经多目的优化找到的形状向量:x,以及按照这个解计算出的以及按照这个解计算出的F(x)值向量fgoalattain实例实例线性系统输出反响极点配置线性系统输出反响极点配置BC+AuxyK+线性系统实际P283页结论6.15对于完全能控和能观测对于完全能控和能观测n维联络维联络LTI系统,设系统,设rank(B)=p,rank(C)=q,那么,那么采用输出反响采用输出反响u=Ky+v,可队数目为,可队数目为minn,p+q-1的闭环系统极点进展的闭环系统极点进展“恣恣意接近式配置,即使其可恣意地接近人给的期望极点位置意接近式配置,即使其可恣意地接近人给的期望极点位置vPractical fgoalattain seeking KA=-0.5 0 0;0 -2 10;0 1 -2;B=1 0;-2 2;0 1;C=1 0 0;0 0 1;%Suppose we wish to design an output feedback controller,x,to have%poles to the left of the location-5,-3,-1 in the complex plane.%The controller must not have any gain element exceeding an absolute%value of 4.goal=-5,-3,-1%Set the weights equal to the goals to ensure same percentage%under-or over-attainment in the goals.weight=abs(goal)%Initialize output feedback controllerx0=-1-1;-1-1;%Set upper and lower bounds on the controllerlb=repmat(-4,size(x0)ub=repmat(4,size(x0)%Create a vector-valued function eigfun that returns the eigenvalues of the%closed loop system.This function requires additional parameters(namely,%the matrices A,B,and C);the most convenient way to pass these is through%an anonymous function:eigfun=(x)sort(eig(A+B*x*C)%To begin the optimization we call FGOALATTAIN:x,fval,attainfactor,exitflag,output,lambda=.fgoalattain(eigfun,x0,goal,weight,lb,ub,options);%The attainment factor indicates the level of goal achievement.%A negative attainment factor indicates over-achievement,positive%indicates under-achievement.The value attainfactor we obtained in%this run indicates that the objectives have been over-achieved by%about 39 percent:attainfactor%Suppose we now require the eigenvalues to be as near as possible%to the goal values,-5,-3,-1.%Set options.GoalsExactAchieve to the number of objectives that should%as near as possible to the goals(i.e.,do not try to over-achieve):%All three objectives should be as near as possible to the goals.options=optimset(options,GoalsExactAchieve,3);%We are ready to call the optimization solver:x,fval,attainfactor,exitflag,output,lambda=.fgoalattain(eigfun,x0,goal,weight,lb,ub,options);%This time the eigenvalues of the closed loop system are as follows:eigfun(x)%These values are also held in output fval%The attainment factor is the level of goal achievement.A negative%attainment factor indicates over-achievement,positive indicates%under-achievement.The low attainfactor obtained indicates that the%eigenvalues have almost exactly met the goals:attainfactor教科书上工厂消费车辆优化问题%fun_optim.mfunction y=fun_optim(x)y=zeros(1,2);y(1)=-(100*x(1)+90*x(2)+80*x(3)+70*x(4);y(2)=3*x(2)+2*x(4);%factory_goal.mA=-1-1 0 0;0 0-1-1;3 0 2 0;0 3 0 2;b=-30-30 120 48;lb=zeros(1,4);x0=20,10,30,0;y0=10000,40;x_opt=18 12 33 0;x fval=fgoalattain(fun_optim,x0,y0,1 2e-4,A,b,lb,)教科书有误,按照这个解才干算出书上(-5520,36)的答案。
工厂消费两种型号汽车,其中y(1)代表利润,y(2)代表加班时间,形状变量x1,x2是A型车在正常和加班两种情况下的产量,x3,x4是B型车在正常和加班两种情况下的产量参考文献Bibliography 夏绍玮、杨家本、杨振斌,系统工程概论 Matlab Optimization Toolbox 3.0.1 Users Guide 郑大钟,线性系统实际第2版 本讲义下载:scn/ericguo/。