关闭

Matlab优化问题07—fgoalattain

标签: Matlab优化工具箱fgoalattain实例多目标规划
2829人阅读 评论(0) 收藏 举报
分类:

说明: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元的损失)。



2
0
查看评论

MATLAB fgoalattain()函数 解…

多目标规划可以归结为 fgoalattain()函数 解决多目标规划的问题" TITLE="MATLAB fgoalattain()函数 解决多目标规划的问题" /> 其中x,weight,goal,b,lb和ub是向量,A和Ae...
  • qq278672818
  • qq278672818
  • 2017-03-14 10:49
  • 524

最优化方法的Matlab实现

9.1  概   述       利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)...
  • shengwenj
  • shengwenj
  • 2015-10-11 14:34
  • 12853

目标规划matlab算法

  • 2010-03-02 14:30
  • 1KB
  • 下载

Matlab优化问题08—fminimax

设某城市有某种物品的10个需求点,第i个需求点Pi的坐标为(ai,bi),道路网与坐标轴平行,彼此正交。现打算建一个该物品的供应中心,且由于受到城市某些条件的限制,该供应中心只能设在x界于[5,8],y界于[5.8]的范围之内。问该中心应建在何处为好? P点的坐标为: ai 1 4 ...
  • LZX19901012
  • LZX19901012
  • 2015-07-09 01:18
  • 3355

matlab优化算法基础篇

  • 2017-08-17 11:21
  • 13.96MB
  • 下载

最优化方法的Matlab实现

       现在看一段 摄像机标定的程序里面涉及到最优化求解方程的函数,从网上找到了下面的资源,只是里面的公式显示不出来,贴在这里,做为工具查阅,如果找到原文的出处,再做修改。在生活和工作中,人们对于同一个问题往往会提出多个解决...
  • luckydongbin
  • luckydongbin
  • 2007-01-29 20:23
  • 55749

matlab凸优化工具箱——cvx简介

matlab中的凸优化工具箱 ——cvx简介 这学期选了王书宁的凸优化这门课,教材也是用的祂翻译的教材,平时作业都是用matlab编写。最近无意发现原来还有CVX这样专门的工具箱,想的这下能节省不少时间,下面介绍一下cvx的安装和用法。 matlab本身是没有cvx的工具箱,需要到[cvx主页...
  • q__y__L
  • q__y__L
  • 2015-12-09 23:51
  • 17546

[高清文字版]MATLAB优化算法案例分析与应用.pdf

  • 2017-05-27 07:42
  • 14.34MB
  • 下载

基本粒子群优化算法(PSO)的matlab实现

粒子群优化算法是一种模拟鸟群社会行为的群体搜素算法。它分为全局最佳粒子优化和局部最佳粒子优化,对于全局最佳PSO,或者叫做gbest PSO,每个粒子的邻域都是整个群,其算法伪代码如下: 创建并初始化一个n维的粒子群 repeat for 每个粒子i=1,2,…n do ...
  • yi_tech_blog
  • yi_tech_blog
  • 2016-11-01 16:25
  • 7086

Matlab优化函数中options选项的修改

关于非线性优化fminbnd函数的说明(仅供新手参考) 初学matlab优化,迭代中止后,经常一头雾水。参看帮助后仍似懂非懂。下面关于fminbnd函数的说明(也可作为fmincon函数的参考)对于新手也许会有帮助,不当之处请指正。 目标函数fun: 需要最小化的目标函数。fun函数需要输入标...
  • jianwushuang
  • jianwushuang
  • 2015-09-15 21:28
  • 9946
    个人资料
    • 访问:177746次
    • 积分:2965
    • 等级:
    • 排名:第14073名
    • 原创:116篇
    • 转载:3篇
    • 译文:0篇
    • 评论:26条