Matlab优化问题07—fgoalattain
来源:互联网 发布:mac下载的搜狗输入法 编辑:程序博客网 时间:2024/06/06 01:23
说明:fgoalattian是用来求解多目标规划,包括线性规划和非线性规划,因此是一个非常有力的工具,需要注意的是求解之前要建立三个向量,即goal—目标判断向量,weight—权重向量,x0—初始解。其中goal一般为已知,weight一般按照目标比例确定,初始值的选取可以根据条件目测一个,如果看不出来可以随机生成一个(一般不会影响结果)。
【例1】求侧某化工厂拟生产两种新产品A和B,其生产设备费用分别为2万元/吨和5万元/吨。这两种产品均将造成环境污染,设由公害所造成的损失可折算为A为4万元/吨,B为1万元/吨。由于条件限制,工厂生产产品A和B的最大生产能力各为每月5吨和6吨,而市场需要这两种产品的总量每月不少于7吨。试问工厂如何安排生产计划,在满足市场需要的前提下,使设备投资和公害损失均达最小。该工厂决策认为,这两个目标中环境污染应优先考虑,设备投资的目标值为20万元,公害损失的目标为12万元。
解:设工厂每月生产产品A为x1吨,B为x2吨,设备投资费为f(x1),公害损失费为f(x2),则问题的数学模型表达为多目标优化问题:
用MATLAB的fgoalattain函数进行求解。
fun009.m
function f=fun009(x)
f(1)=2*x(1)+5*x(2);
f(2)=4*x(1)+x(2);
主程序:
clear
clc
goal=[20 12];
weight=[20 12];
x0=[5 5];
A=[1 0;0 1;-1 -1];
b=[5;6;-7];
lb=zeros(2,1);
ub=[];
[x,fval,ddyz,exitflag]=fgoalattain(@fun009,x0,goal,weight,A,b,[],[],lb,ub)
解得:
x =
2.9167 4.0833
fval =
26.2500 15.7500
ddyz =
0.3125
exitflag =
4
所以生产A2.9167吨,B4.0833,设备投资费26.25万元,公害损失费15.75万元。达到因子为0.3125,求解过程正常收敛。
【例2】某工厂生产两种产品甲和乙,已知生产甲产品100公斤需6个工时,生产乙产品100公斤需8个工时。假定每日可用的工时数为48工时。这两种产品每100公斤均可获利100元。乙产品较受欢迎,且若有个老顾客要求每日供应他乙种产品500公斤,问应如何安排生产计划?
解:设生产甲产品x1百公斤,乙产品x2百公斤,产品加工耗费工时f1(x),获利f2(x),满足老客户需求量f3(x),则问题的数学模型为多目标规划:
用MATLAB的fgoalattain函数进行求解。
fun010.m
function f=fun010(x)
f(1)=6*x(1)+8*x(2);
f(2)=-100*x(1)-100*x(2);
f(3)=-x(2);
主程序:
goal=[48 -800 -5];
weight=[48 -800 -5];
x0=[3;3];
A=[6 8;0 -1];
b=[48;-5];
lb=zeros(2,1);
[x,fval,attainfactor,exitflag]=fgoalattain(@fun010,x0,goal,weight,A,b,[],[],lb,[])
解得:
x =
1.3333
5.0000
fval =
48.0000 -633.3333 -5.0000
attainfactor =
9.9341e-10
exitflag =
4
时间已过 0.047322 秒。
即生产甲133.33公斤,乙500公斤,工时刚好为48,可获利633.3333元,刚好满足老客户的需求(这其实是损失了当天800-633.3333= 166.6667元的损失)。
- Matlab优化问题07—fgoalattain
- MATLAB fgoalattain()函数 解…
- Matlab优化问题01—fminbnd
- Matlab优化问题02—fminunc
- Matlab优化问题03—fminsearch
- Matlab优化问题05—fmincon
- Matlab优化问题06—quadprog
- Matlab优化问题08—fminimax
- MATLAB简单优化问题
- MATLAB 优化问题
- 优化问题的matlab解法
- MATLAB 求解最优化问题
- MATLAB求多目标优化问题——fminimax
- Matlab优化问题04_1—linprog(基础)
- Matlab优化问题04_2—linprog(高级)
- Matlab优化问题09—A\b解线性方程组
- MATLAB 函数在优化问题中的应用
- 粒子群算法求解优化问题(MATLAB)
- SQLAlchemy使用笔记--简介
- iOS验证邮箱, 手机号, 密码, 账户名 --- 正则表达式
- C语言获取系统时间
- xcode 自己常用到的快捷键
- Add and Search Word - Data structure design
- Matlab优化问题07—fgoalattain
- GET 与POST一句话理解!
- 快速排序
- iosGET同步、异步请求
- ios 苹果自带的get请求
- java HashMap以及concurrenHashMap
- #leetcode#Implement strStr()
- 【hello,world 也打脸】记storm-starter在某知名IDE下的悲催调试经历
- 计算机网络基础知识