最优化模型与算法.
优化求解一般步骤
针对具体工程问题建立 优化设计的数学模型 建立目标函数文件 建立约束函数文件 建立调用优化工具函数 的M文件或命令文件 运行优化工具函数的M文 件或命令文件求解
min f (x1, x2, …, xn) s.t. g(x) ≤ 0
不等式约束条件 表示成g(X) ≤ 0的 形式
无约束非线性规划问题的MATLAB函数
设置优化选项参数
初始点
目标函数 返回最优设计变量 返回目标函数值
例 求y=2x13 +4x1x23-10x1x2+x22 的最小值点. 解:>>X=fminsearch('2*x(1)^3+4*x(1)*x(2)^310*x(1)*x(2)+x(2)^2', [0,0]) 结果为: X= 1.0016 0.8335 或在MATLAB编辑器中建立函数文件. function f=myfun(x) f=2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2; 保存为myfun.m,在命令窗口键入 >> X=fminsearch ('myfun', [0,0]) 或 >> X=fminsearch(@myfun, [0,0]) 结果为: X= 1.0016 0.8335
5
MATLAB优化工具箱
常用的优化功能函数
求解线性规划问题的主要函数是linprog。 求解二次规划问题的主要函数是quadprog。 求解无约束非线性规划问题的主要函数是fminbnd、fminunc和
fminsearch。Fra bibliotek 求解约束非线性规划问题的函数是 fmincon 。 多目标优化问题的MATLAB函数有fgoalattain和fminimax。
函数 fmincon 格式 x = fmincon(fun,x0,A,b) x = fmincon(fun,x0,A,b,Aeq,beq) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) [x,fval] = fmincon(…) [x,fval,exitflag] = fmincon(…) [x,fval,exitflag,output] = fmincon(…) [x,fval,exitflag,output,lambda] = fmincon(…) [x,fval,exitflag,output,lambda,grad] = fmincon(…) [x,fval,exitflag,output,lambda,grad,hessian] = fmincon(…)
有约束的多元函数最小值 数学模型形式:
min f (X) s.t. AX≤b (线性不等式约束) AeqX=beq (线性等式约束) C(X)≤0 (非线性不等式约束条件) Ceq(X)=0(非线性等式约束) Lb ≤X ≤Ub (边界约束条件) 其中:x、b、beq、lb、ub是向量,A、Aeq为矩阵,C(x)、 Ceq(x)是返回向量的函数,f(x)为目标函数,f(x)、C(x)、 Ceq(x)可以是非线性函数.
4
优化算法及其分类
什么是优化算法? 专门用于求解优化模型的方法叫做优化算法,优化算法与优化模型有本 质区别。
优化算法可分为两大类 1 梯度类算法 牛顿法、二分法、共轭梯度法、梯度下降法、单纯形法等,该类算法也 称为局部优化算法,明显缺陷是局部优化。Matlab优化工具箱多用该类算法。 2 非梯度类算法 (1)遍历搜索法,在组合优化中称为穷举法,计算量大,适用于小规模计算 求解。 (2)随机搜索法,包括遗传算法、模拟退火算法、群类算法、禁忌搜索法等, 又称为现代优化算法,是一类全局最优算法,求解的准确性与时间长度、迭 代次数直接相关。
参数说明: fun为目标函数,它可用前面的方法定义; nonlcon的作用是通过接受的向量x来计算非线性不等 约束和非线性等式约束分别在x处的估计C和Ceq,通 过指定函数名或函数名句柄来使用,如: >>x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon), 先建立非线性约束函数,并保存为mycon.m: function [C,Ceq] = mycon(x) C=… % 计算x处的非线性不等约束的函数值. Ceq = … % 计算x处的非线性等式约束的函数值. lambda是Lagrange乘子,它体现哪一个约束有效. output输出优化信息; grad表示目标函数在x处的梯度; hessian表示目标函数在x处的Hessian值.
最优化模型与算法
内容概要
优化模型简介 优化模型分类 优化算法及其分类 Matlab优化工具箱 现代智能优化算法
2
优化模型简介——概念、基本形式
什么是优化?就是从各种方案中选取一个最好的。从数学角度看,优化 理论就是研究如何在状态空间中寻找到全局最优点。 一般的优化具有下面形式: min f (x1, x2, …, xn) s.t. g(x) 0,xD 其中x1, x2, …, xnΩ(即问题的可行域,代表问题参数的选择范 围),即minf (X),其中XΩ(矢量形式)。f(x)是决策问题的数学模型, 也是决策问题的目标函数,g(x) 0是决策问题的约束条件, X是决策问 题的决策变量,D是决策问题的定义域(可行域)。问题归结为求极值。 极值点非常多,需要找到全局最小点。 注:求问题的最大和最小是同一个问题,算法完全一样。 分布模型的参数估计问题是典型的优化问题,最大似然估计模型是典型 的优化模型。
3
优化模型分类
1.根据是否存在约束条件 有约束模型,无约束模型 注:有约束问题通常采用转换方法将有约束模型转换为无约束模型再 求解。
2.根据目标函数和约束条件表达式的性质
线性规划,非线性规划,二次规划,多目标规划等 注:最常见的优化模型为非线性规划模型。
3.根据决策变量的连续性
连续性优化模型,离散性优化模型(典型的组合优化问题,最短路) 注:两类模型在求解方法上有较大不同,本次讲解针对前一种。
fminbnd
只求解单变量问题 要求目标函数为连续函数
fminsearch
适用于简单优化问题 可求解单变量和多变量问题
fminunc
可求解复杂优化问题
无约束多元函数最小值函数fminsearch 调用格式
返回算法的终止 指示变量值
[xopt,fopt,exitflag]=fminsearch(fun,x0,options)