【第22期】观点:IT 行业加班,到底有没有价值?

Matlab优化问题07—fgoalattain

原创 2015年07月07日 01:54:07

说明:fgoalattian是用来求解多目标规划,包括线性规划和非线性规划,因此是一个非常有力的工具,需要注意的是求解之前要建立三个向量,即goal—目标判断向量,weight—权重向量,x0—初始解。其中goal一般为已知,weight一般按照目标比例确定,初始值的选取可以根据条件目测一个,如果看不出来可以随机生成一个(一般不会影响结果)。

1求侧某化工厂拟生产两种新产品AB,其生产设备费用分别为2万元/吨和5万元/吨。这两种产品均将造成环境污染,设由公害所造成的损失可折算为A4万元/吨,B1万元/吨。由于条件限制,工厂生产产品AB的最大生产能力各为每月5吨和6吨,而市场需要这两种产品的总量每月不少于7吨。试问工厂如何安排生产计划,在满足市场需要的前提下,使设备投资和公害损失均达最小。该工厂决策认为,这两个目标中环境污染应优先考虑,设备投资的目标值为20万元,公害损失的目标为12万元。

解:设工厂每月生产产品Ax1吨,Bx2吨,设备投资费为f(x1),公害损失费为f(x2),则问题的数学模型表达为多目标优化问题:


MATLABfgoalattain函数进行求解。

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),则问题的数学模型为多目标规划:


MATLABfgoalattain函数进行求解。

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优化问题02—fminunc

说明:fminunc一般用来求解多元无约束非线性最优化问题,不适于求二次规划问题。 [例1]y=sin(x),求y在x1=0和x2=2附近的极小值。 解:fun003.m function f=fu...

Matlab优化问题01—fminbnd

说明:fminbnd一般用来求解单元无约束非线性最优化问题的极小值。 [例1]  在区间(0,2π)上求函数sin(x)的最小值: 解: fun001.m如下 function f=fun001(x...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

matlab (R2007a、R2009a)绿色单文件版本制做

matlab (R2007a、R2009a)绿色单文件版本制做  大家好,首次发贴,大家多多关照。Matlab每次安装时间都比较长,而且安装好后文件超多、超大(matlab2007a要1G左右,mat...

制作VOC2007 数据 (matlab版) + 抠图工具

抠图工具见链接:http://download.csdn.net/detail/yeyang911/9802496 下面主要有两方面组成 1、由扣取的图像转换成txt , 存成格式如下: %0...

提升Matlab程序运行速度的技巧总结

最近看到有国外学者总结了提升Matlab程序效率和执行速度的技巧, 原帖是英文撰写的, 我把其搬运成中文, 希望能给大家一些参考。 原帖地址请见: http://yagtom.googlecode....

检查matlab版本

%-- Checking the Matlab version and if the specified Toolbox is available    a = ver;   % ud.S...

Faster RCNN 训练自己的数据集(Matlab,python版本)及制作VOC2007格式数据集

一、 faster rcnn环境搭建  下载源码 https://github.com/rbgirshick/py-faster-rcnn Python版本  https://github.com/S...

各个版本matlab下载地址

matlab 2007b下载: http://yunpan.cn/cLVFRLx8AdSke  访问密码 63ce matlab 2009a下载: http://yunpan.cn/...

MatLab2012b/MatLab2013b 分类器大全(svm,knn,随机森林等)

train_data是训练特征数据, train_label是分类标签。Predict_label是预测的标签。MatLab训练数据, 得到语义标签向量 Scores(概率输出)。1.逻辑回归(多项式...

MATLAB安装问题解决方案大集锦

我的安装后的两个问题 第一个: “Microsoft Visual C++ Runtime Library Runtime Error! Program:C:\Matlab7\Rin\Win32...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)