1.22k likes | 1.52k Views
最优化方法概述. 最优化技术是一门较新的学科分支。它是在上世纪五十年代初在电子计算机广泛应用的推动下才得到迅速发展,并成为一门直到目前仍然十分活跃的新兴学科。 最优化方法,顾名思义,就是从所有可能方案中选择最合理的一种以达到最优目标的方法。由于其宗旨是追求最优目标,因此它具有广泛的应用性。. 最优化问题的一般形式. 最优化问题的一般形式. 其中 x=[ x 1 , x 2 , … , x n ] T ∈. 最优化问题常用的概念. 目标函数. 不等式约束. 等式约束. x 称为决策变量, 满足所有约束的变量称为可行解或可行点,可行点的集合称为可行域。
E N D
最优化技术是一门较新的学科分支。它是在上世纪五十年代初在电子计算机广泛应用的推动下才得到迅速发展,并成为一门直到目前仍然十分活跃的新兴学科。最优化技术是一门较新的学科分支。它是在上世纪五十年代初在电子计算机广泛应用的推动下才得到迅速发展,并成为一门直到目前仍然十分活跃的新兴学科。 最优化方法,顾名思义,就是从所有可能方案中选择最合理的一种以达到最优目标的方法。由于其宗旨是追求最优目标,因此它具有广泛的应用性。
最优化问题的一般形式 最优化问题的一般形式 其中x=[ x1,x2,…,xn]T∈
最优化问题常用的概念 目标函数 不等式约束 等式约束 • x称为决策变量, • 满足所有约束的变量称为可行解或可行点,可行点的集合称为可行域。 • 问题的求解是指在可行域中找一点x*,使得目标函数在该点取极小值,这样的点称为问题的最优点,也称为最小点,而相应的目标函数值f(x*)称为最优值,(x*,f(x*))称为最优解,习惯上x*称为最优解。
定义1:整体(全局)最优解:若 ,对于一切 ,恒有 则称 是最优化问题的整体最优解。 定义2:局部最优解:若 ,存在某邻域 ,使得对于一切 ,恒有 则称 是最优化问题的局部最优解。其中 严格最优解:当 ,有 则称 为问题的严格最优解。
局部最优解 f(X) 整体最优解
最优化方法的基本方法——迭代法 为什么求最优解要用迭代法?下面举例说明。 例 则最优解必定是方程 的解 , 但x 无法显化。而由于 可知 的解存在
最优化方法的基本方法——迭代法 迭代: 下降:在每次迭代中,后继点处的函数值要有所减少。
最优化方法的基本方法——迭代法 迭代算法的步骤:
线性规划 线性规划问题的数学模型是将实际问题转化为一组线性不等式或等式约束下求线性目标函数的最小(大)值问题, 它都可以化为如下标准(矩阵)形式: c= (c1 , c2 , … , cn ) A = (aij )m×n x≥0指x中的每一个分量xj ≥0 线性规划是求线性目标函数在线性约束条件下的最大值或最小值的问题。
单纯形法 • 单纯形方法基本思路: • 从可行域中某个基础可行解(一个顶点)开始(称为初始基础可行解)。 • 如可能,从可行域中求出具有更优目标函数值的另一个基础可行解(另一个顶点),以改进初始解。 • 继续寻找更优的基础可行解,进一步改进目标函数值。当某一个基础可行解不能再改善时,该解就是最优解。
数学模型 max S = 50x1 + 30x2 s.t. 4x1 + 3x2 ≤ 120 2x1 + x2 ≤ 50 x1 , x2 ≥ 0
数学模型的标准形: maxS = 50x1 + 30x2 s.t. 4x1 + 3x2+ x3 = 120 2x1+ x2 + x4= 50 x1,x2 ,x3 ,x4 ≥0
基础可行解X(1)=(0, 0,120,50)T, 目标函数值 S= 0
X(1)=(0, 0,120,50)T 相当于O(0,0)
X1进基变量, X4出基变量, 主元(2)
新的基础可行解X(2)=(25, 0,20,0)t, 目标函数值 S = 1250 计算检验数
X(2)=(25, 0,20,0)t 相当于Q1(25,0)
X2进基变量, X3出基变量, 主元(1)
基础可行解X(3)=(15,20,0,0)T, 也是最优解,其最优值 S = 1350
X(3)=(15,20,0,0)T 相当于Q2(15,20)
X(1)=(0, 0,120,50)T 相当于O(0,0)
X(1)=(0, 0,120,50)T 相当于O(0,0)
X(2)=(25, 0,20,0)T 相当于Q1(25,0)
X(2)=(25, 0,20,0)T 相当于Q1(25,0)
X(3)=(15,20,0,0)T 相当于Q2(15,20)
用Matlab求解线性规划 模型 用命令 [x, fval]= linprog(f,A,b,A1,b1,lb,ub)
用Matlab求解线性规划 • minf(x)=-5x1-4x2-6x3 s.t. x1-x2+x3≦20 3x1+2x2+4x3≦42 3x1+2x2≦30 0≦x1, 0≦x2,0≦x3
用Matlab求解线性规划 解问题 把问题极小化并将约束标准化
用Matlab求解线性规划 键入c=[-2,-3,5];a=[-2,5,-1]; b=-10;a1=[1,1,1];b1=7;LB=[0,0,0]; [x,y]=linprog(c,a,b,a1,b1,LB) 得当X=(6.4286,0.5714,0.0000)时, z=-14.5714最大.
无约束非线性规划 一元函数无约束优化问题 多元函数无约束优化问题 min{ f (x)| x ∈En }, 这里x =(x1, x2 , …, xn)T.
一元函数无约束优化问题(一维搜索) • 精确线搜索 • 试探法: 黄金分割法、Fibonacci法、二分法 • 函数逼近法: Newton法、割线法、抛物线法、 • 三次插值法 • 非精确线搜索 • Armijo步长规则、Goldstein步长规则、 • Wolfe步长规则
如右图 一元函数无约束优化问题 我们先介绍求解一元函数 y = f (x)极小值的数值迭代算法:一维搜索算法中的黄金分割法(0.618法). 分割法原理:设函数f (x) 在闭区间[a, b] 上是下单峰函数, 即在(a, b) 内f (x) 由唯一的极小点x*, 在x* 的左边f (x) 严格单调下降, 在x* 的右边f (x)严格单调上升. 那么对于(a, b)内任意两点x1<x2, 如果f (x1)<f (x2), 则x*∈[a, x2];否则x*∈[x1, b].
给定下单峰区间 [a, b] 及控制误差>0, 黄金分割法(0.618法)的迭代步骤: ①取x2 = a + 0.618 (b-a), f2= f (x2), 转向②. ②取x1 = a + 0.382 (b-a), f1= f (x1), 转向③. ③若 | b – a |<, 则取x*= (a + b )/2, 停. 否则转向④. ④若f1<f2, 则取b = x2 , x2 = x1, f2 = f1 , 转向②; 若f1= f2 , 则取a = x1, b = x2, 转向①; 若f1>f2 , 则取a = x1, x1= x2, f1 = f2 , 转向⑤. ⑤取x2 = a + 0.618 (b-a), f2= f (x2), 转向③.
函数逼近法:牛顿法 基本思想:在极小点附近用二阶Taylor多项式近似。
算法步骤: 缺点:初始点选择十分重要。如果初始点靠近极小点,则 可能很快收敛;如果初始点远离极小点,迭代产生的点 列可能不收敛于极小点。
例: 解:
用Matlab解无约束优化问题 常用格式如下: (1)x= fminbnd (fun,x1,x2) (2)x= fminbnd (fun,x1,x2,options) (3)[x,fval]= fminbnd(...) (4)[x,fval,exitflag]= fminbnd(...) (5)[x,fval,exitflag,output]= fminbnd(...) 其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。 函数fminbnd的算法基于黄金分割法,它要求目标函数必须是连续函数,并可能只给出局部最优解。
主程序为wliti1.m: f='2*exp(-x).*sin(x)'; fplot(f,[0,8]); %作图语句 [xmin,ymin]=fminbnd (f, 0,8) f1='-2*exp(-x).*sin(x)'; [xmax,ymax]=fminbnd (f1, 0,8)
解 例2 对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大? 先编写M文件fun0.m如下: function f=fun0(x) f=-(3-2*x).^2*x; 主程序为wliti2.m: [x,fval]=fminbnd('fun0',0,1.5); xmax=x fmax=-fval 运算结果为: xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边长为0.5米时水槽的容积最大,最大容积为2立方米.