- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
§18运用目标达到法求解多目标规划
§18. 运用目标达到法求解多目标规划
用目标达到法求解多目标规划的计算过程,可以通过调用Matlab软件系统优化工具箱中fgoalattain函数。Matlab的优化工具箱中,fgoalattain函数用于解决此类问题。
minγ
F(x)-weight ·γ≤goal
c(x) ≤0
ceq(x)=0
A x≤b
Aeq x=beq
lb≤x≤ub
其中,x,weight,goal,b,beq,lb和ub为向量A和Aeq为矩阵c(x),ceq(x)和F(x)为函数
x=fgoalattain(F,x0,goal,weight)
x=fgoalattain(F,x0,goal,weight,A,b)
x=fgoalattain(F,x0,goal,weight,A,b,Aeq,beq)
x=fgoalattain(F,x0,goal,weight,A,b,Aeq,beq,lb,ub)
x=fgoalattain(F,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
x=fgoalattain(F,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options)
x=fgoalattain(F,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2)
[x,fval]=fgoalattain(?)
[x,fval,attainfactor]=fgoalattain(?)
[x,fval,attainfactor,exitflag,output]=fgoalattain(?)
[x,fval,attainfactor,exitflag,output,lambda]=fgoalattain(?)
说明:F为目标函数;x0为初值;goal为F达到的指定目标;weight为参数指定权重;A、b为线性不等式约束的矩阵与向量;Aeq、beq为等式约束的矩阵与向量;lb、ub为变量x的上、下界向量;nonlcon为定义非线性不等式约束函数c(x)和等式约束函数ceq(x);options中设置优化参数。
x返回最优解;fval返回解x处的目标函数值;attainfactor返回解x处的目标达到因子;exitflag描述计算的退出条件;output返回包含优化信息的输出参数;lambda返回包含拉格朗日乘子的参数。
例1:A和B,其生产费用分别为元/和元/。两种产品元/元/。AB产品每月的最大生产能力为5和市场这两种产品总量的每月不少于。试问如何安排生产计划,满足市场需,投资最。问题和表示,它们分别代表A、B产品表示生产A、B两种产品的总投资费用(单位:元);表示生产A、B两种产品获得的总利润(单位:元)。那么,该多目标问题和,使:
而且满足:
求解程序如下:
① 编辑目标函数M文件ff12.m
function f=ff12(x)
f(1)=2*x(1)+4800*x(2);
f(2)=-3600*x(1)–6500*x(2);
② 按给定目标取:
goal=[30000,-45000];
weight=[30000,-45000];
③ 给出:
x0=[2,2];
A=[1 0; 0 1;-1 -1];
b=[5,8,-9];
lb=zeros(2,1);
④ 调用fgoalattain 函数:
[x,fval,attainfactor,exitflag]=fgoalattain(@ff12,x0,goal,weight,A,b,[],[],lb,[])
运行后,输出结果为:
x =
5 4
fval =
29700 -44000
attainfactor =
-0.0100
exitflag =
1
例2:
某企业拟用1000万元投资于A、B两个项目的技术改造。设、分别表示分配给A、B项目的投资(万元)。据估计,投资项目A、B的年收益分别为投资的60%和70%;但投资风险损失,与总投资和单项投资均有关系:。据市场调查显示, A项目的投资前景好于B项目,因此希望A项目的投资额不小B项目。试问应该如何在A、B两个项目之间分配投资,才能既使年利润最大,又使风险损失为最小?
该问题、,使:
而且满足:
求解程序如下:
① 首先编辑目标函数M文件ff13.m
function f=ff13(x)
f(1)=*x(1)-0.7*x(2);
f(2)=0.001*x(1)^2+0.002*x(2)^2+0.001*x(1)*x(2);
② 按给定目标取
文档评论(0)