首页 > 编程知识 正文

多目标非线性规划matlab,matlab多元函数优化问题

时间:2023-05-04 19:58:01 阅读:171729 作者:2674

11.1.3多目标优化

前面介绍的优化方法只有一个目标函数,是单目标优化方法。 但是,在很多实际工程问题中,由于很多指标都希望达到最优值,所以有多个目标函数,将这样的问题称为多目标优化问题。

多目标计划有很多解法。 以下是几种常用的方法。

(1)化多为少法)将多目标问题作为只有一个或两个目标的问题,用简单的决策方法进行求解。 最常用的是线性加权法。

)2)层次排序法)将所有目标按其重要程度排序,首先求出第一个(最重要的)目标的最优解,然后在保证上一个目标最优解的前提下依次求出下一个目标的最优解,直到求出最后一个目标。

(3)直接求出非劣化解法)首先求出非劣化解组,按照事先决定的评价标准从中找出一个满意的解。

(4)目标规划法:在所有目标函数和约束条件都是线性的情况下,可以采用20世纪60年代初由lydds和zydhb提出的目标规划法。 该方法事先给每个目标函数赋予期望值,在满足制约条件集合的情况下,找到使目标函数最接近期望值的解。

(5)多属性效用用法: MAUM )用各自的效用函数表示各目标,通过构成多目标综合效用函数来评价各可执行方案的优劣。

(6)层次分析法) 1980年由叔萨提出。 该方法通过主观判断目标、约束条件、方案等,综合权衡各种方案,评定优劣。

(7)排序顺序法)用其他方法排除本来难以比较的非劣解的优劣顺序。 此外,还有多目标群决策和多目标模糊决策等方法。

针对多目标优化问题,MATLAB提供fgoalattain和fminimax函数求解。 由于篇幅有限,这里只举例说明fgoalattain函数的使用方法,fminimax函数的使用方法可以让读者自己参考帮助文档。

【例11-7】某工厂根据生产需要采购一种原材料。 市场上这种原材料有两个档次,甲级单价2元/公斤,乙级单价1元/公斤。 所涉总费用不超过200元,采购原材料总量要求在100公斤以上,其中甲级原材料要求在50公斤以上,询问如何确定最佳采购方案。

x1、x2分别作为采购甲级和乙级原材料的数量(公斤),要求尽量减少总采购费用,尽量增加总采购重量,尽量多采购甲级原材料。

首先,需要创建所需函数的m文件myfun4.m,并返回所需的计算值。 具体代码如下。

函数f=我的函数4 (x )

f(1)=2*x(1)1) x ) 2;

f(2)=-x )1)-x ) 2;

f(3)=-x ) 1;

给定目标后,根据目标的比例决定权重,被赋予初始值。 具体代码如下。

goal=[200 -100 -50]; %要实现的目标

weight=[2040 -100 -50]; %每个目标的权重

x0=[55 55]; %搜索的初始值

%约束

A=[2 1; 1-1; -10 );

b=[200 -100 -50];

lb=zeros (2,1 );

调用fgoalattain函数进行多目标优化

[x,fval,attainfactor,exitflag]=.

foalattain(@myfun4,x0,goal,weight,a,b,[],[],[],lb,[] ) )

计算结果为MATLAB输出的计算结果如下:

50 50

150 -100 -50

属性因子=

3.4101e-010

所以,对于给定的权重比例,最好的采购方案是分别采购甲级原材料和乙级原材料各50公斤。 此时,采购总费用为150元,总重量为100kg,甲级原材料总重量为50kg。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。