最优化方法实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
决策变量: X = [x1, x2, · · · , xn ]T
目标函数系数: C=[c1, c2, · · · , c n] T
约束条件系数矩阵: A, Aeq
约束条件常数向量: b, beq
数学实验
13/20
如:生产计划问题
单耗 材料 工时 工人 甲 2 3 3 乙 3 2 2 丙 1 1.5 5 限额 34 36 40
1
2
这里, (0, / 2)
温室
L=inline('2/cos(alpha)+3/sin(alpha)') x [x,Lmin]=fminbnd(L,0,pi/2)
数学实验
=
0.8528
Lmin = 7.0235
9/20
模型二:设梯子长度为L,梯子与温室的距离为 x,
则有
2 L( x) (1 ) x 2 9 x x (0, )
数学实验
x = 5000 3000 z = 4300000
22/20
练习 某工厂生产A、B两种产品;生产每吨产品A需 要用煤9吨,电4千瓦,3个工作日;生产每吨产品B 需要用煤5吨,电5千瓦,10个工作日;若生产每吨产 品A和B分别获利7000元和12000元;该厂现有可利用 资源为:煤360吨,电力200千瓦,工作日300个;问 产品A、B各生产多少吨时,工厂获利最大? 分析:
max z 500 x1 600 x2
数学实验
18/20
但需要满足下面的约束条件 x1 x2 5000
x1 5000 x2 3000 x1, x2 0 将此线性规划化为: min z 500 x1 600 x2 s.t. x1 x2 5000 x1 5000 x2 3000 x1, x2 0
cT [4, 3, 2],xT [ x1 , x2 , x3 ] 2 3 1 34 ,b 36 A 3 2 1.5 40 3 2 5
数学实验
15/20
求解线性规划命令使用格式
[X,Fval]=linprog(C, A, b, Aeq, beq, Lb, Ub) 这里,X表示最优点,Fval表示最优值; 注意: (1)若没有约束,则置相应的参数为[ ]。
290 30
S3
S2
1200
S4
320 690 160 70 170
520
S7
20
160 70
20 30
690
720 88 462
S6
62
110 420
A15
500
202
1100 20 195 306 1150 600 450 80 2 3 104 750 10 5 194 606 10 31 201 680
数学实验
3/20
优化问题的表述:从若干可能的计划(方案)中寻求 某种意义下的最优方案. 如:生产计划问题:
单耗 材料 工时 工人 甲 2 3 3 乙 3 2 2 丙 1 1.5 5 限额 34 36 40
利润(元/件)
4
3
2
在一定的条件下,问生产数量为多少时, 利润达 到最大?
数学实验
4/20
运输问题:
最优化方法实验
电子科技大学 数学科学学院
数学实验
1/20
最优化方法实验
1.1 引言 1.2 主要函数简介 1.3 求解一元函数最小值命令fminbnd
1.4 线性规划模型及求解命令linprog
数学实验
2/20
1.1 引言
最优化是近几十年形成的一门学科,它主要运用数 学方法寻找待优化问题的最佳决策方案,为决策者提 供科学依据。 从数学上说,最优化方法就是求解一元或多元函数 的极小值或最小值的计算方法。 最优化方法已经在经济管理,科学计算、工程设计 等领域得到了广泛地应用。
x = 20.0000
24.0000 z = 428.0000
数学实验
25/20
1.5、 思考题与练习题
1. 用MATLAB命令fminbnd()求一元函数极大值问题 的过程有哪些操作步?
2. 线性规划问题中的约束条件分为几类?
3. MATLAB求线性规划命令linprog()需要哪些输入
参数,其中输入参数的前后次序是如何规定的?
数学实验
14/20
矩阵形式:
max Z 4 x1 3x2 2 x3
利润
max cTx
s.t. Ax≤b x≥0
材料 2 x1 3x2 x3 34 3x 2 x 1.5x 36 工时 1 2 3 s.t. 3x1 2 x2 5x3 40 人力 x1 , x2 , x3 0
S5
220
10
A14
S1
12
70 42
A13
210
10
A12
480
A9
A10
300
A11
A8
S1~S7 钢管厂 铁路 火车站 公路 管道 450里程(km)
A6
205
A7
A5
A4
A2
301
A3
A1
数学实验
5/20
1.2、主要函数简介
函数名
fminbnd() fmincon()
解释 求单变量无约束(箱约 束,边界约束)最优化 问题 求解多变量有约束最优 化问题
数学实验
7/20
例1 求一元函数f(x) = 0.5 – x exp(– x2)在区间[0,2]内 的最小值,并绘出函数图形,标出最小点。
fun=inline('0.5-x.*exp(-x.^2)');
fplot(fun,[0,2])
x0 =
y0 =
0.7071
0.0711
hold on
[x0,y0]=fminbnd(fun,0,2)
x3 = -28.5329
17/20
例 某建筑公司计划承建办公楼和住宅楼;若建办公楼 获得利润为500元/平方米,建住宅楼 获得利润为600元 /平方米;要求建筑面积不少于5000平方米,而办公楼 的面积不能大于5000平方米,住宅楼的面积不能大于 3000平方米;问如何安排计划才能使得建筑公司获得 利润最大? 解:设建筑公司计划承建办公楼和住宅楼分别为x1, x2平方米,则所求问题为
利润(元/件)
4
3
2
利润
线性规划模型:
max Z 4 x1 3x2 2 x3
材料 2 x1 3x2 x3 34 3x 2 x 1.5x 36 工时 1 2 3 s.t. 3x1 2 x2 5x3 40 人力 x1 , x2 , x3 0
数学实验
20/20
x = 5000 3000 z = 4300000
% x=linprog(C, A, b, [ ],[ ], [0;0],[inf;inf])
另解:将此线性规划化为
min z 500 x1 600 x2 s.t. x1 x2 5000 x1 5000 x2 3000 x1, x2 0
数学实验
19/20
1 1 5000 x1 令 X , A 1 0 , b 5000 x 2 0 1 3000 则求解程序为
C=[-500;-600]; A=[-1,-1;1,0;0,1]; b=[-5;5;3]*1000; x=linprog(C, A, b) z=-C’*x
L1
2 2 x 9 x
L2 x 2 9
温室
x
L=inline('(1+2/x)*sqrt(x^2+9)'); [x0,Lmin]=fminbnd(L,0,500)
x0
= 2.6207
7.0235
Lmin =
数学实验
10/20
1.4、线性规划模型及求解命令linprog
要表述一个最优化问题(即建立数学模型),应明明确三样东
plot(x0,y0,'o')
数学实验
8/20
例2 花园靠楼房处有一温室,温室伸入花园2米,高3 米。温室上方是楼房窗台,要将梯子从花园地上放靠 在楼房墙上不损坏温室,梯子长度至少应该为多少米?
模型一:设梯子的长度为L,梯子与地面的夹角为, 则有 2 3 L cos 2 L( ) cos sin L sin 3
数是决策变量的函数。
数学实验
11/20
最优化数学模型的分类: • 线性规划(LP) • 非线性规划(NLP) • 二次规划(QP)
• 整数规划(IP)
•多目标规划 • 动态规划
数学实验
12/20
线性规划模型
min C T X s.t. AX b Aeq X beq Lb X Ub
遗传算法。Matlab r2008a及 其以后版本
数学实验
求解多变量无约束最优 化问题 基于导数的算法:拟牛 顿方法或信赖域方法 求解混合整数线性规划 问题
Matlab r2014b及其以后版 本
6/20
1.3、求解一元函数最小值命令fminbnd
x1 x x2
min f ( x)
命令: [xmin,ymin]=fminbnd(fun, x1, x2) 这里,fun是目标函数,[x1,x2]是最小值点搜索区间, xmin、ymin分别是目标函数的最小点、最小值。
令Leabharlann Baidu
x1 0 5000 x , A 1, 1, b 5000, Lb ,Ub x 0 3000 2
数学实验
21/20
则求解程序为 C=[-500; -600]; A=[-1, -1]; b=-5000; Lb=[0;0]; Ub=[5000;3000]; x=linprog(C, A, b, [ ],[ ], Lb,Ub) z=-C’*x
函数名
linprog()
解释
求解线性规划问题
bintprog() Matlab r2014b及其以后版
本中已被intlinprog代替。
求解0-1整数规划问题
求解多变量无约束最优 化问题 fminsearch() fminunc() 基于免导数的算法: Nelder-Mead单纯形方法 求解困难、复杂、多态 最优化问题的全局最优 ga() intlinprog() 解
数学实验
26/20
4. 某厂生产两种产品;生产一吨甲产品需要用A资源 3吨、B资源 4m3;生产一吨乙产品用A资源 2吨、B 资源 6m3、C资源 7个单位;已知一吨甲产品和乙产 品分别价值7万元和5万元;三种资源分别限制为90吨、 200m3和210个单位;试问如何安排生产计划,使得
西:决策变量、约束条件和目标函数.
决策变量:是决策者(你)所控制的那些变量,它们取什么数
值需要决策者来决策,最优化问题的求解就是找出决策变量的
最优取值。 约束条件:是决策变量在实际问题中所受到的限制,或者说决
策变量在这些限制范围之内取值才有实际意义。 目标函数:代表决策者希望对其进行优化的那个指标。目标函
A 煤 (吨 ) 9 B 5 上限 360
电(千瓦)
工作日(天) 利润(千元)
4
3 7
数学实验
5
10 12
200
300
23/20
解:设生产产品A、B分别为x1,x2吨,则目标函数为
max z 7 x1 12 x 2
约束条件为
9 x1 5 x2 360 4 x1 5 x2 200 3 x1 10 x2 300 x1, x2 0
9 5 360 7 4 5 , b 200 , A 令 C 12 3 10 300
数学实验
24/20
则求解程序为
C=[-7;-12];
A=[9 5;4 5;3 10];
b=[360;200;300]; x=linprog(C, A, b) z=-C'*x
max Z 4 x1 3x2 2 x3
利润
材料 2 x1 3x2 x3 34 3x 2 x 1.5x 36 工时 1 2 3 s.t. 3x1 2 x2 5x3 40 人力 x1 , x2 , x3 0
x2 = 6.0000
数学实验
(2)后面的[ ]可以省略。
(3)若边界约束为X ≥ 0,则Lb,Ub可以省略。
数学实验
16/20
程序:
c=-[4,3,2]; A=[2,3,1;3,2,1.5;3,2,5]; b=[34,36,40]; [x,fmin]=linprog(c,A,b); Pmax=-fmin x1=x(1),x2=x(2),x3=x(3) 输出结果: Pmax = 50.0000 x1 = 22.2664