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求多目标优化问题——fminimax

MATLAB求多目标优化问题使用fminimax求解,包括模型、fminimax函数说明以及实例。

第一次做的

添加代码: static string   connstring = "server=NET2-15//NET2;database=BMS;UID=sa;Pwd=server";    SqlConn...

Matlab优化问题06—quadprog

说明:quadprog一般用来求解多元二次规划问题,其目标函数为二次,约束条件为线性。全调用格式为:[x,fval,exitflag,output,lambda]=quadprog(H,f,A,b,A...

Matlab优化问题08—fminimax

设某城市有某种物品的10个需求点,第i个需求点Pi的坐标为(ai,bi),道路网与坐标轴平行,彼此正交。现打算建一个该物品的供应中心,且由于受到城市某些条件的限制,该供应中心只能设在x界于[5,8],...

Matlab优化问题03—fminsearch

说明:fminsearch一般用来求解多元无约束问题的极小值。它与fminunc类似但是在求高度非线性问题时比fminunc稳健,不适于求二次规划问题。 【例1】求一维函数f(x)=sin(x)+3在...

Matlab优化问题05—fmincon

说明:fmincon一般用来求解多元有约束非线性最优化问题,其中约束可以包含等式约束和非线性约束。其全调用格式为: [x,fval,exitflag,output,lambda,grad,hessia...

Matlab优化问题01—fminbnd

说明:fminbnd一般用来求解单元无约束非线性最优化问题的极小值。 [例1]  在区间(0,2π)上求函数sin(x)的最小值: 解: fun001.m如下 function f=fun001(x...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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