数学建模:线性规划与多目标规划 |
您所在的位置:网站首页 › 多起点多终点的线性规划解法 › 数学建模:线性规划与多目标规划 |
目录
单目标线性规划多目标线性规划理想解法线性加权法最大最小法目标规划法模糊数学解法
单目标线性规划
MATLAB中有一个专门求解线性规划问题的函数:linprog(),其使用方法如下: [x,fval]=linprog(c,A,b,Aeq,beq,lb,ub,x0,options) 用于求解以下模型 例:
如果只是线性规划,lingo更好用 多目标线性规划多目标线性规划是多目标最优化理论的重要组成部分,由于多个目标之间的矛盾性和不可公度性,要求使所有目标均达到最优解是不可能的,因此多目标规划问题往往只是求其有效解(非劣解)。目前求解多目标线性规划问题有效解的方法,有理想点法、线性加权和法、最大最小法、目标规划法,模糊数学解法等。为了求得多目标规划问题的非劣解,常常需要将多目标规划问题转化为单目标规划问题去处理。实现这种转化,有如下几种建模方法。 效用最优化模型罚款模型约束模型目标达到法目标规划模型 效用最优化模型(线性加权法) 思想:规划问题的各个目标函数可以通过一定的方式进行求和运算。这种方法将一系列的目标函数与效用函数建立相关关系,各目标之间通过效用函数协调,使多目标规划问题转化为传统的单目标规划问题。罚款模型(理想点法) 思想: 规划决策者对每一个目标函数都能提出所期望的值(或称满意值);通过比较实际值与期望值之间的偏差来选择问题的解。约束模型(极大极小法) 理论依据:若规划问题的某一目标可以给出一个可供选择的范围,则该目标就可以作为约束条件而被排除出目标组,进入约束条件组中。假如,除第一个目标外,其余目标都可以提出一个可供选择的范围,则该多目标规划问题就可以转化为单目标规划问题。目标达到法 首先将多目标规划模型化为标准形式,在求解之前,先设计与目标函数相应的一组目标值理想化的期望目标与每一个目标对应的权重系数,再设松弛因子,对多目标规划问题进行转化。目标规划模型(目标规划法) 需要预先确定各个目标的期望值,同时给每一个目标赋予一个优先因子和权系数,假定有K个目标,L个优先级( L≤K),再通过建立目标规划模型进行求解。多目标线性规划模型是有两个或两个以上的目标函数,且所有的目标函数和约束条件都是线性的,数学模型表示为:
对第一个目标求解的matlab程序为: f=[3;-2]; a=[2 3;2 1]; b=[18;10]; lb=[0;0]; ub=[]; [x,favl]=linprog(f,a,b,[],[],lb,ub);输出结果为:x=0.0000 6.0000,favl=-12.0000,所以最大值为12.0000 对第二个目标求解的matlab程序为: f=[-4;-3]; a=[2 3;2 1]; b=[18;10]; lb=[0;0]; ub=[]; [x,favl]=linprog(f,a,b,[],[],lb,ub);输出结果为:x=3.0000 4.0000,favl=-24.0000,所以最大值为24.0000 于是得到理想点:(12,24)
输出结果为:x1=0.0000,x2=6.0000,对应的目标值为f1=12.0000,f2=18.0000 最大最小法
然后输入 x0=[0;0]; a=[2 3;2 1]; b=[18;10]; lb=[0;0]; [x,favl]=fminimax('mutiplesubjiect',x0,a,b,[],[],lb,[]) 目标规划法
输出结果为:x1=0.0000,x2=6.0000,对应的目标值为f1=12.0000,f2=18.0000 模糊数学解法
求解的matlab程序为: f=[0;0;-1]; a=[3 -2 27 -4 -3 24 2 3 0 2 1 0]; b=[15;0;18;10]; lb=[0;0;0]; ub=[]; [x,favl]=linprog(f,a,b,[],[],lb,ub); f1=-3*x(1)+2*x(2); f2=4*x(1)+3*x(2);输出结果为:x1=1.0253,x2=5.3165,x3=0.8354,对应的目标值为f1=7.5570,f2=20.0506 参考链接: https://blog.csdn.net/wzl1997/article/details/79120323 https://blog.csdn.net/weixin_44035915/article/details/108421283 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |