56多目标规划问题

5.6 多目标规划问题

多目标规划是指在一组约束下,对多个不同目标函数进行优化。它的一般形式为 min[f1(x),f2(x),L,fm(x)]

sub.to gj(x)≤0j=1,2,L,p

其中:x=(x1,x2,L,xn)。

在同一约束下,当目标函数处于冲突状态时,不存在最优解x使所有目标函数同时达到最优。此时,我们使用有效解,即如果不存在x∈S,使得fi(x)≥fi(x*),i=1,2,…m, 则称x*为有效解。

在MATLAB中,多目标问题的标准形式为

minimizeγ x,γ

sub.to F(x)−weight⋅γ≤goal

C(x)≤0

Ceq(x)=0

A⋅x≤b

Aeq⋅x=beq

lb≤x≤ub

其中:x、b、beq、lb、ub是向量;A、Aeq为矩阵;C(x)、Ceq(x)和F(x)是返回向量的函数;F(x)、C(x)、Ceq(x)可以是非线性函数;weight为权值系数向量,用于控制对应的目标函数与用户定义的目标函数值的接近程度;goal为用户设计的与目标函数相应的目标函数值向量;γ为一个松弛因子标量;F(x)为多目标规划中的目标函数向量。

在MATLAB5.x中,它的最优解由attgoal函数实现。

函数 fgoalattain

格式 x = fgoalattain(fun,x0,goal,weight)

x = fgoalattain(fun,x0,goal,weight,A,b)

x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)

x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)

x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)

x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)

[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(…)

参数说明:

x0为初始解向量;

fun为多目标函数的文件名字符串,其定义方式与前面fun的定义方式相同; goal为用户设计的目标函数值向量;

weight为权值系数向量,用于控制目标函数与用户自定义目标值的接近程度;

A、b满足线性不等式约束A⋅x≤b,没有时取A=[ ],b=[ ];

Aeq、beq满足线性等式约束Aeq⋅x=beq,没有时取Aeq=[ ],beq=[ ];

lb、ub为变量的下界和上界:lb≤x≤ub;

nonlcon的作用是通过接受的向量x来计算非线性不等约束C(x)≤0和等式约束

Ceq(x)=0分别在x处的值C和Ceq,通过指定函数柄来使用。

如:>>x = fgoalattain(@myfun,x0,goal,weight,A,b,Aeq,beq,lb,ub,@mycon),

先建立非线性约束函数,并保存为mycon.m:function [C,Ceq] = mycon(x)

C = … % 计算x处的非线性不等式约束C(x)≤0的函数值。

Ceq = … % 计算x处的非线性等式约束Ceq(x)=0的函数值。

options为指定的优化参数;

fval为多目标函数在x处的值;

attainfactor为解x处的目标规划因子;

exitflag为终止迭代的条件;

output为输出的优化信息;

lambda为解x处的Lagrange乘子

例5-14 控制系统输出反馈器设计。

设如下线性系统

&=Ax+Bu x

y=Cx

0⎤⎡−o.50⎡10⎤⎡100⎤其中:A=⎢0−210⎥ B=⎢−22⎥ C=⎢⎥ ⎢⎥⎢⎥001⎣⎦⎢⎢1−2⎥⎣0⎦⎣01⎥⎦

要求设计输出反馈控制器K,使闭环系统

&=(A+BKC)x+Bu x

y=Cx

在复平面实轴上点[-5,-3,-1]的左侧有极点,并要求 −4≤Kij≤4(i,j=1,2)

解:上述问题就是要求解矩阵K,使矩阵(A+BKC)的极点为[-5,-3,-1],这是一个多目标规划问题。

先建立目标函数文件,保存为eigfun.m:

function F = eigfun(K,A,B,C)

F = sort(eig(A+B*K*C)); % 估计目标函数值

然后,输入参数并调用优化程序:

A = [-0.5 0 0; 0 -2 10; 0 1 -2];

B = [1 0; -2 2; 0 1];

C = [1 0 0; 0 0 1];

K0 = [-1 -1; -1 -1]; % 初始化控制器矩阵

goal = [-5 -3 -1]; % 为闭合环路的特征值(极点)设置目标值向量

weight = abs(goal) % 设置权值向量

lb = -4*ones(size(K0)); % 设置控制器的下界

ub = 4*ones(size(K0)); % 设置控制器的上界

options = optimset('Display','iter'); % 设置显示参数:显示每次迭代的输出

[K,fval,attainfactor] = fgoalattain(@eigfun,K0,goal,weight,[],[],[],[],lb,ub,[],options,A,B,C)

结果为:

weight =

5 3 1

Attainment Directional

Iter F-count factor Step-size derivative Procedure

1 6 1.885 1 1.03

2 13 1.061 1 -0.679

3 20 0.4211 1 -0.523 Hessian modified

4 27 -0.06352 1 -0.053 Hessian modified twice

5 34 -0.1571 1 -0.133

6 41 -0.3489 1 -0.00768 Hessian modified 7 48 -0.3643 1 -4.25e-005 Hessian modified

8 55 -0.3645 1 -0.00303 Hessian modified twice 9 62 -0.3674 1 -0.0213 Hessian modified 10 69 -0.3806 1 0.00266

11 76 -0.3862 1 -2.73e-005 Hessian modified twice 12 83 -0.3863 1 -1.22e-013 Hessian modified twice Optimization terminated successfully:

Search direction less than 2*options. TolX and maximum constraint violation is less than options.TolCon

Active Constraints:

1

2

4

9

10

K =

-4.0000 -0.2564

-4.0000 -4.0000

fval =

-6.9313

-4.1588

-1.4099

attainfactor =

-0.3863

5.6 多目标规划问题

多目标规划是指在一组约束下,对多个不同目标函数进行优化。它的一般形式为 min[f1(x),f2(x),L,fm(x)]

sub.to gj(x)≤0j=1,2,L,p

其中:x=(x1,x2,L,xn)。

在同一约束下,当目标函数处于冲突状态时,不存在最优解x使所有目标函数同时达到最优。此时,我们使用有效解,即如果不存在x∈S,使得fi(x)≥fi(x*),i=1,2,…m, 则称x*为有效解。

在MATLAB中,多目标问题的标准形式为

minimizeγ x,γ

sub.to F(x)−weight⋅γ≤goal

C(x)≤0

Ceq(x)=0

A⋅x≤b

Aeq⋅x=beq

lb≤x≤ub

其中:x、b、beq、lb、ub是向量;A、Aeq为矩阵;C(x)、Ceq(x)和F(x)是返回向量的函数;F(x)、C(x)、Ceq(x)可以是非线性函数;weight为权值系数向量,用于控制对应的目标函数与用户定义的目标函数值的接近程度;goal为用户设计的与目标函数相应的目标函数值向量;γ为一个松弛因子标量;F(x)为多目标规划中的目标函数向量。

在MATLAB5.x中,它的最优解由attgoal函数实现。

函数 fgoalattain

格式 x = fgoalattain(fun,x0,goal,weight)

x = fgoalattain(fun,x0,goal,weight,A,b)

x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)

x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub)

x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)

x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)

[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(…)

参数说明:

x0为初始解向量;

fun为多目标函数的文件名字符串,其定义方式与前面fun的定义方式相同; goal为用户设计的目标函数值向量;

weight为权值系数向量,用于控制目标函数与用户自定义目标值的接近程度;

A、b满足线性不等式约束A⋅x≤b,没有时取A=[ ],b=[ ];

Aeq、beq满足线性等式约束Aeq⋅x=beq,没有时取Aeq=[ ],beq=[ ];

lb、ub为变量的下界和上界:lb≤x≤ub;

nonlcon的作用是通过接受的向量x来计算非线性不等约束C(x)≤0和等式约束

Ceq(x)=0分别在x处的值C和Ceq,通过指定函数柄来使用。

如:>>x = fgoalattain(@myfun,x0,goal,weight,A,b,Aeq,beq,lb,ub,@mycon),

先建立非线性约束函数,并保存为mycon.m:function [C,Ceq] = mycon(x)

C = … % 计算x处的非线性不等式约束C(x)≤0的函数值。

Ceq = … % 计算x处的非线性等式约束Ceq(x)=0的函数值。

options为指定的优化参数;

fval为多目标函数在x处的值;

attainfactor为解x处的目标规划因子;

exitflag为终止迭代的条件;

output为输出的优化信息;

lambda为解x处的Lagrange乘子

例5-14 控制系统输出反馈器设计。

设如下线性系统

&=Ax+Bu x

y=Cx

0⎤⎡−o.50⎡10⎤⎡100⎤其中:A=⎢0−210⎥ B=⎢−22⎥ C=⎢⎥ ⎢⎥⎢⎥001⎣⎦⎢⎢1−2⎥⎣0⎦⎣01⎥⎦

要求设计输出反馈控制器K,使闭环系统

&=(A+BKC)x+Bu x

y=Cx

在复平面实轴上点[-5,-3,-1]的左侧有极点,并要求 −4≤Kij≤4(i,j=1,2)

解:上述问题就是要求解矩阵K,使矩阵(A+BKC)的极点为[-5,-3,-1],这是一个多目标规划问题。

先建立目标函数文件,保存为eigfun.m:

function F = eigfun(K,A,B,C)

F = sort(eig(A+B*K*C)); % 估计目标函数值

然后,输入参数并调用优化程序:

A = [-0.5 0 0; 0 -2 10; 0 1 -2];

B = [1 0; -2 2; 0 1];

C = [1 0 0; 0 0 1];

K0 = [-1 -1; -1 -1]; % 初始化控制器矩阵

goal = [-5 -3 -1]; % 为闭合环路的特征值(极点)设置目标值向量

weight = abs(goal) % 设置权值向量

lb = -4*ones(size(K0)); % 设置控制器的下界

ub = 4*ones(size(K0)); % 设置控制器的上界

options = optimset('Display','iter'); % 设置显示参数:显示每次迭代的输出

[K,fval,attainfactor] = fgoalattain(@eigfun,K0,goal,weight,[],[],[],[],lb,ub,[],options,A,B,C)

结果为:

weight =

5 3 1

Attainment Directional

Iter F-count factor Step-size derivative Procedure

1 6 1.885 1 1.03

2 13 1.061 1 -0.679

3 20 0.4211 1 -0.523 Hessian modified

4 27 -0.06352 1 -0.053 Hessian modified twice

5 34 -0.1571 1 -0.133

6 41 -0.3489 1 -0.00768 Hessian modified 7 48 -0.3643 1 -4.25e-005 Hessian modified

8 55 -0.3645 1 -0.00303 Hessian modified twice 9 62 -0.3674 1 -0.0213 Hessian modified 10 69 -0.3806 1 0.00266

11 76 -0.3862 1 -2.73e-005 Hessian modified twice 12 83 -0.3863 1 -1.22e-013 Hessian modified twice Optimization terminated successfully:

Search direction less than 2*options. TolX and maximum constraint violation is less than options.TolCon

Active Constraints:

1

2

4

9

10

K =

-4.0000 -0.2564

-4.0000 -4.0000

fval =

-6.9313

-4.1588

-1.4099

attainfactor =

-0.3863


相关文章

  • 基于多目标规划的人力资源优化配置
  • 经管视线 基于多目标规划的人力资源优化配置 石俊 西南石油大学经济管理学院 摘要:一个组织的结构是否合理,活动是否有效,不在于组织拥有的优秀人才的绝对数量,而在于该组织内部人力资源配置是否合理,岗位要求.人员能力是否匹配.而科学.合理的人力 ...查看


  • 环境管理小论文
  • 金 华 职 业 技 术 学 院 JINHUA COLLEGE OF PROFESSION AND TECHNOLOGY 环境管理课程小论文 (2010级) 题 目 学 院 专 业 班 级 学 号 姓 名 年 月 日 十一五环境规划评价 姓名 ...查看


  • 学校发展规划制定中存在的问题及规避措施
  • 中国教育先锋网 2007-07-16 陈玉云 近年来,随着学校发展规划理论与实践探索的不断深入,实施成效的逐渐凸现,学校发展规划项目已逐步在全国范围内推广,正在深刻影响着学校管理理念和学校管理方式的变革.许多教育管理工作者和教育专家均认为: ...查看


  • 员工职业规划讲座
  • 员工职业生涯规划讲座(草稿) 目 录 一. 什么是职业生涯规划 二. 为什么要搞职业生涯规划 三. 制定职业生涯规划应遵循哪些原则 四. 职业生涯规划应考虑哪些因素 五. 职业生涯规划的基本步骤 六. 职业生涯设计表 七. 职业生涯管理 八 ...查看


  • 战略管理办法
  • 中铁二局股份有限公司战略管理办法 第一章 总则 第一条为规范战略管理工作,进一步完善战略管理体系,提高企业发展战略规划的科学性,确保公司发展战略目标的实现,根据国资委<中央企业发展战略和规划管理办法(试行) >.<中铁二局 ...查看


  • 运筹学习题集第四版判断题
  • 复习思考题 第一章 11判断下列说法是否正确: (a)图解法与单纯形法虽然求解的形式不同,但从几何上理解, 两者是一致的. 正确. (b)线性规划模型中增加一个约束条件,可行域的范围一般将缩小,减少一个约束条件,可行域的范围一般将扩大.正确 ...查看


  • 国家"十三五"规划目标的监测评估分析
  • 摘要:文章根据国家"十三五"规划提出的25项具体经济社会发展指标,结合实际情况,分别构建计量经济模型,并结合动态离散规划优化理论,分别求解这25项具体经济社会发展指标在2016-2020年的最优发展路径,从而为" ...查看


  • 电力关系到国民经济的发展
  • 电力关系到国民经济的发展,关系到人民生活,关系到社会稳定.电网安全是社会公共安全的重要组成部分,确保电网安全和电力有序供应,是构建社会主义和谐社会的基本要求.电网规划要充分发挥市场在资源配臵中的基础性作用,充分体现行业规划的宏观性和指导性, ...查看


  • 探究线性规划的实际应用
  • 探究线性规划的实际应用 班级:信息与计算科学1142 姓名:萧明峰 学号:[1**********]9 摘要:在生产管理和经济活动中,经常遇到这些问题,如生产计划问题,即如何合理利用有限的人.财.物等资源,以便得到最好的经济效果:材料利用问 ...查看


  • 城乡一体化背景下的城市与区域规划
  • (河南省豫建设计院,河南,郑州,450012) [摘要]随着我国市场化.城市化的加速,现有的规划理论和方法已不能满足需要,规划编制和实施存在的问题也不断地暴露出来.尤其是在目前城乡一体化要求下,如何提高城市与区域规划的可行性就成了迫在眉捷要 ...查看


热门内容