博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
建模算法(十一)——目标规划
阅读量:6300 次
发布时间:2019-06-22

本文共 1178 字,大约阅读时间需要 3 分钟。

求解多目标规划的思路

1、加权系数法

       为每一个目标加一个权系数,把多目标模型转化成单一目标模型。但是困难时确定合理的权系数,以反映不同目标之间的重要程度。

2、优先等级法

       将各目标按其重要程度分为不同的优先等级,转化为单目标模型。

3、有效解法

       寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个解,即得到满意的解。但是有效解太多,无法挑选

一、目标规划的数学模型

1、正、负偏差变量

2、绝对约束和目标约束

(1)绝对约束:一定要达到的要求,线性规划的约束条件都是

(2)软约束(目标约束):就是在这个目标值允许有一定的正负偏差存在。

3、优先因子(优先等级)与权系数

     一个规划问题如果有多个目标,可以按照重要性来规定一个优先因子P,越重要的越优先。

4、目标规划的目标函数

     每一个目标值确定后,要求是尽可能小的缩小偏差。因此目标函数只能是,有三种形式

(1)要求恰好达到目标值,即正负偏差都要小

              

(2)要求不超过目标值,正偏差小

             

(3)要求超过目标值,负偏差小

               

5、目标规划的一般数学模型

二、求解目标规划的序贯式模型

解题思路:

       按照优先级的先后次序,将目标规划问题分解成一系列的单项目标规划问题。然后再依次求解。(由于使用LINGO求解,暂时忽略)

三、多目标规划的MATLAB解法

1、一般模型

2、MATLAB封装的函数

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

(1)fun是用M文件定义的目标向量函数

(2)x0是初值,一般弄个随机列向量

(3)weight为权重,一般为goal的绝对值

(4)A,b定义不等式约束A*x<=b,Aeq,beq定义等式约束

(5)nonlcon是用M文件定义的非线性约束条件c(x)<=0,ceq(x)=0

(6)返回值,x是最优解,fval是最优值

3、例子

function F=Fun(x)F(1)=-100*x(1)-90*x(2)-80*x(3)-70*x(4);F(2)=3*x(2)+2*x(4);
a=[-1  -1  0  0    0  0  -1  -1     3  0  2  0    0  3  0  2];b=[-30  -30  120  48]';c1=[-100  -90  -80  -70];c2=[0  3  0 2 ];[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1))[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1))g3=[g1;g2];[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4,1));

转载地址:http://stgta.baihongyu.com/

你可能感兴趣的文章
何时该用无服务器,何时该用Kubernetes?
查看>>
支持多种小程序!阿里云ARMS推出小程序监控
查看>>
你不知道的 JS 错误和调用栈常识
查看>>
微服务架构适用场景分析
查看>>
基于requirejs的vue2项目 (一)
查看>>
上学还是坐牢?百年老校“监控”学生惹争议
查看>>
关于HTTPOXY漏洞的分析说明
查看>>
最重要的就是做正确的事
查看>>
敏捷和架构设计分道而行,又最终拥抱彼此成为朋友
查看>>
用户故事 | 刷算法面试题的4种思考方式
查看>>
书评:《All About Java 8 Lambdas》
查看>>
在市场营销中使用敏捷方法:过程、团队与成功案例
查看>>
新书问答:Agile Management
查看>>
苹果将iOS应用带入macOS
查看>>
react入门
查看>>
NPM发布新的安全功能
查看>>
VUE高仿饿了么app
查看>>
针对Kubernetes软件栈有状态服务设计的思考
查看>>
中国在两年内赶超美国AI?李开复:不一定
查看>>
你的可用性达标了吗?云端业务性能高可用的深度实践
查看>>