当前位置:文档之家› 常见优化问题求解

常见优化问题求解

三、 示例:
1、 生产决策问题: 某厂生产甲、乙两种产品,已知制成一吨产品甲需要用资源 A:3
吨,资源 B:4 立方米;制成一吨产品乙需要用资源 A:2 吨,资源 B:6 立方米,资源 C:7 个单位。若一吨产品甲和乙的经济价值分别为 7 万元 和 5 万元,三种资源的限制量分别为 90 吨、200 立方米和 210 个单位。 试决定应生产这两种产品各多少吨才能是创造的总价值最高?
min f1 (x) = 2x1 + 5x2 min f 2 (x) = 4x1 + x2 s.t x1 ≤ 5
x2 ≤ 6 x1 + x2 ≥ 7 x1 ,x2 ≥ 0 %编写目标函数的 M-文件 function f=myfun(x); f(1)=2*x(1)+5*x(2); f(2)=4*x(1)+x(2); %给定目标的权重,按目标比例确定,给出初始值 goal=[20 12]; weight=[20 12]; x0=[2 5]; %给出约束条件的系数矩阵 A=[1 0;0 1;-1 -1]0.3354 fval = 1.7087e-010 exitflag =
1
2.求侧面积为常数 150 平方米的体积最大的长方体体积。 解:设长方体的长、宽、高分别为 x1, x2, x3
模型建立: min z = −x1x2x3 s.t 2(x1x2 + x3x2 + x1x3) = 150
7
吉林农业大学 信息技术学院数学系 2011-10-16
lb=[0 0 0]; [x,fval,exitflag]=fgoalattain('myfun',x0,goal,weight,A,b,[],[], lb,[])
x=
2.9167 fval =
4.0833
26.2500 15.7500
四、 实验内容与要求:(其中 3,4 任选一题)
min z = cX 求解问题的模型: s.t AX ≤ b
Aeq • X = beq vlb ≤ X ≤ vub
3)命令格式: [x,fval,exitflag,output]=linprog(c,A,b,Aeq,beq,vlb,vub)
参数说明: c:目标函数系数向量; A,b:A 矩阵和 b 向量分别为线性不等市约束的系数矩阵和右端向量; Aeq,beq:Aeq 矩阵 beq 向量分别为线性等式约束系数矩阵和右端向
3)多目标规划的 matlab 表达形式
min γ x,γ
F (x) − weight ⋅ γ ≤ goal c(x) ≤ 0 求解数学模型: ceq(x) = 0 A⋅x ≤b Aeq ⋅ x = beq lb ≤ x ≤ ub 4)命令格式: [x,fval]= fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
message: [1x144 char]
SQP,
Quasi-Newton,
5
吉林农业大学 信息技术学院数学系 2011-10-16 6
吉林农业大学 信息技术学院数学系 2011-10-16
3. 某化工厂拟生产新产品 A 和 B,其生产的设备费用分别为:A:2 万元/
吨;B;5 万元/吨。这两种产品均造成环境污染,设由公害所造成的损失 可折算为:A:4 万元/吨;B;1 万元/吨。由于条件限制,工厂生产产品 A 和 B 各为每月 5 吨和 6 吨,而市场需要这两种产品的总量每月不少于 7 吨。试问工厂如何安排生产计划,在满足市场需要的前提下,使设备投资 和公害损失均达最小。该工厂决策认为,这两个目标中环境污染应优先考 虑,设备投资的目标值为 20 万元,公害损失的目标为 12 万元。 解:设工厂每月生产产品A为x1吨,B为x2吨,设备投资费为f1 (x),公害损失费为f2 (x), 则该问题可以表达为多目标优化问题:
x=
5.0000 5.0000 5.0000
fval =
-125.0000 exitflag =
1
output =
iterations: 7 funcCount: 34 lssteplength: 1
stepsize: 1.1431e-006 algorithm: 'medium-scale:
line-search' firstorderopt: 6.8502e-007
解:生产产品甲乙的数量分别为: x1吨,x2吨
3
吉林农业大学 信息技术学院数学系 2011-10-16
max z = 7x1 + 5x2 s.t 3x1 + 2x2 ≤ 90
4x1 + 6x2 ≤ 200 7x2 ≤ 210 x1 , x2 ≥ 0
c=[-7 -5]; A=[3 2;4 6;0 7]; b=[90;200;210]; lb=zeros(2,1); [x,fval,exitflag]=linprog(c,A,b,[],[],[],lb) x=
Matlab 中fminunc 的基本命令是
[X,FVAL]=FMINUNC(FUN,X0,OPTIONS) 3、 求解多目标规划问题:fgoalattain(参见 matlab 帮助):
1) 求解思路:加权系数法、优先等级法、有效解法;
2
吉林农业大学 信息技术学院数学系 2011-10-16
2)目标规划的目标函数 目标规划的目标函数(准则函数)是按各目标约束的正、负偏差变量 和赋于相应的优先因子而构造的。当每一目标值确定后,决策者的要 求是尽可能缩小偏离目标值。因此目标规划的目标函数只能是min z = f (d + ,d − )。其基本形式有三种: (1)要求恰好达到目标值,即正、负偏差变量都要尽可能地小,这时 min z = f (d + + d − ) (2)要求不超过目标值,即允许达不到目标值,就是正偏差变量要尽 可能地小,这时min z = f (d + ) (3)要求超过目标值,即超过量不限,但必须是负偏差变量要尽可能 地小,这时min z = f (d − ) 对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优 先因子来构造目标函数
2、 求解 NLP 问题:fmincon(详情参见 matlab 帮助): 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线
性规划问题。
1
吉林农业大学 信息技术学院数学系 2011-10-16
1)非线性规划问题的 matlab 表达形式: min F (x) s.t Ax ≤ b Aeq • X = beq G(X ) ≤ 0 Ceq( X ) = 0 vlb ≤ X ≤ vub
lue2……)
注:fun 和 nonlcon:调用函数的 M- 文件名。
Function [c,ceq]=mycon(x)
C(i)=…
%约束条件中的第 i 个条件不等
式;
ceq(i)=…
%约束条件中的第 i 个条件等式;
3) matlab 中求解无约束极值问题:
基本形式 求函数的极小值 min f (x) ,其中 x 可以为标量或向量。
量; vlb,vub:vlb,vub 分别为 x 的上限和下限向量; x:由优化函数求得的值。若 exitflag>0,则 x 为解;否则 x 不是最
终的解,它只是迭代终止时优化过程中的解; fval:解 x 处的目标函数值; exitflag:描述算法退出条件:
exitflag>0 目标函数收敛于解 x 处; exitflag=0 已经达到函数评价或收敛迭代的最大次数; exitflag<0 目标函数不收敛。 Output:包含优化结果信息的输出结构: Iterations:迭代次数; Algorithm:所采用的算法; cgiterations:共轭梯度迭代步数,仅仅用于大型优化算法; message:算法终止信息。
帮助文档) options 中常用的几个参数的名称、含义: [1]Display:显示水平。取值为“off”时,不显示输出;取值 为“iter”时,显示每次迭代的信息;取值为“final”时,显 示最终的结果,默认值为“final”; [2]MaxFunEvals:允许进行函数评价的最大次数,取值为正值; [3]MaxIter:允许进行迭代的最大次数,取值为正整数;
控制参数 options 可以通过函数 optimset 创建和修改: [1]options=optimset(‘optimfun’)
创建一个含有所有参数名,并与优化函数 optimfun 相关的 默认值的选项结构; [2]options=optimset(‘param1’,value1,’param2’,va
Tries to make the objective functions supplied by fun attain the goals specified by goal by varying x, starting at x0, with weight specified by weight.Subjects the goal attainment problem to the nonlinear inequalities c(x) or nonlinear equality constraints ceq(x) defined in nonlcon. fgoalattain optimizes such that c(x) <= 0 and ceq(x) = 0. Set lb=[] and/or ub=[] if no bounds exist.
吉林农业大学 信息技术学院数学系 2011-10-16
实验二 常见优化问题求解
一、 实验目的:
1. 用 matlab 解决线性规划和非线性规划问题; 2. 用 matlab 解决多目标规划;
相关主题