最优化模型与算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
即:p大于[0,1)区间的随机数,则仍接受状态 j 为当前
状态;否则保留状态 i 为当前状态。
模拟退火算法及模型
物理退火过程
Metropolis准则——以概率接受新状态 p=exp[-(Ej-Ei)/kBT]
在高温下,可接受与当前状态能量差较大的新状态;
在低温下,只接受与当前状态能量差较小的新状态。
求解。 (2)随机搜索法,包括遗传算法、模拟退火算法、群类算法、禁忌搜索法等, 又称为现代优化算法,是一类全局最优算法,求解的准确性与时间长度、迭 代次数直接相关。
5
MATLAB优化工具箱
常用的优化功能函数 求解线性规划问题的主要函数是linprog。 求解二次规划问题的主要函数是quadprog。 求解无约束非线性规划问题的主要函数是fminbnd、fminunc和
3
优化模型分类
1.根据是否存在约束条件 有约束模型,无约束模型 注:有约束问题通常采用转换方法将有约束模型转换为无约束模型再 求解。
2.根据目标函数和约束条件表达式的性质 线性规划,非线性规划,二次规划,多目标规划等 注:最常见的优化模型为非线性规划模型。
3.根据决策变量的连续性 连续性优化模型,离散性优化模型(典型的组合优化问题,最短路) 注:两类模型在求解方法上有较大不同,本次讲解针对前一种。
可求解复杂优化问题
无约束多元函数最小值函数fminsearch 调用格式
[xopt,fopt,exitflag]=fminsearch(fun,x0,options)
返回算法的终止 指示变量值
设置优化选项参数 初始点
目标函数 返回最优设计变量
返回目标函数值
例 求y=2x13 +4x1x23-10x1x2+x22 的最小值点.
15 目标个数
0
Options(15)输入目标个数
16 差分步长 最小值
1e-8
Options(16) 步长的下限或变量的最小梯度值
17 差分步长 最大值
0.1
Options(17)
步长的上限或变量的最大梯度值
18
步长
Options(18) 步长参数,第1次迭代时置1
【例】 求解约束非线性规划:
首先将问题转化为matlab要求的格式;即求出 fun,A,b,Aeq,Beq,X0,Lb,Ub 解:首先建立一个m文件myfun.m function y=myfun(x) y=-exp(x(1))*x(2)^2*(3-exp(x(1))-x(2)^2); 存储为myfun.m
xn)
不等式约束条件
表示成g(X) ≤ 0的
形式
建立调用优化工具函数 的M文件或命令文件
运行优化工具函数的M文 件或命令文件求解
无约束非线性规划问题的MATLAB函数
fminbnd fminsearch
fminunc
只求解单变量问题 要求目标函数为连续函数
适用于简单优化问题 可求解单变量和多变量问题
x = 0.8852 0.7592
f = 6.2043e-016
优化过程演示
为了进一步了解优化模型的求解算法,给 出具体实例的优化过程演示。
例:以共轭梯度优化算法优化某函数进行 演示,并说明计算时间复杂度。
18
现代优化算法
现代优化算法
特点:
遗传算法
• 基于客观世界中的一些自
模拟退火算法
然现象;
function [C,Ceq] = mycon(x) C = … % 计算x处的非线性不等约束的函数值. Ceq = … % 计算x处的非线性等式约束的函数值. lambda是Lagrange乘子,它体现哪一个约束有效. output输出优化信息; grad表示目标函数在x处的梯度; hessian表示目标函数在x处的Hessian值.
算法的提出 模拟退火算法最早的思想由Metropolis等(1953)提出, 1983年Kirkpatrick等将其应用于组合优化。
算法的目的 解决NP复杂性问题; 克服优化过程陷入局部极小; 克服初值依赖性。
物理退火过程
什么是退火: 退火是指将固体加热到足够高的温度,使分子呈随机排 列状态,然后逐步降温使之冷却,最后分子以低能状 态排列,固体达到某种稳定状态。
禁忌搜索算法
• 建立在计算机迭代计算的
蚁群算法
基础上;
粒子群算法
• 都属于随机搜索算法,具
差分进化算法
有全局优化能力;
• 具有普适性,可解决实际
注:群类算法还有鱼群算法、 应用问题。
蜂群算法、鸟群算法等。
现代优化算法
——全局性优化理论的一般性描述
两种搜索方式:单点法和多点法。 单点法是一种串行方式,即从一个初始状态(单个个体)出发,按照某
种方式转移状态进行全局优化,这种方式通常要消耗较多机时; 多点法是一种并行方式,即从可行域的多个初始状态(多个个体)同时
进行搜索寻找全局最优解,但是空间开销大。 根据各态历经假设,理论上二者可以具有相同的搜索效果。事实上,单
CPU情况下的单点法和多点法并没有本质性的区别。
20
模拟退火算法及模型
物理退火过程
题目中有非线性约束条件,所以建立非线性约束m-文件。
然后建立一个 m文件 confun.m function [c,cep]=confun(x) c=[]; % c为非线性不等式 cep=exp(x(1))+x(2)^2-3; % cep为非线性等式 然后存储为confun.m 最后在命令窗口中输入: A=[];b=[];Aeq=[];beq=[];Lb=[];Ub=[]; [x,f]=fmincon(‘myfun’,[1;1],[],[],[],[],[],[],’ confun’)
解:>>X=fminsearch('2*x(1)^3+4*x(1)*x(2)^3-
10*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;
函数 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(…)
围),其即中mx1i,nxf 2(,X…),, x其n中ΩX(即Ω(问矢题量的形可式行)域。,f代(x表)是问决题策参问数题的的选数择学范模型, 也是决策问题的目标函数,g(x) 0是决策问题的约束条件, X是决策问 题的决策变量,D是决策问题的定义域(可行域)。问题归结为求极值。 极值点非常多,需要找到全局最小点。 注:求问题的最大和最小是同一个问题,算法完全一样。 分布模型的参数估计问题是典型的优化问题,最大似然估计模型是典型 的优化模型。
控制参数options
序号
功能
默认值及其含义
说明
1
来自百度文库
输出形式 0,无中间结果 Options(1)=1,按照表格输出结果
输出
Options(1)=-1,隐藏警告信息
2 解x的精度
1e-4
Options(2)设置x解的终止条件
3 函数f的精度
1e-4
Options(3)设置函数f的终止条件
4 约束g的精度
参数说明:
fun为目标函数,它可用前面的方法定义; nonlcon的作用是通过接受的向量x来计算非线性不等 约束和非线性等式约束分别在x处的估计C和Ceq,通 过指定函数名或函数名句柄来使用,如:
>>x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon), 先建立非线性约束函数,并保存为mycon.m:
fminsearch。 求解约束非线性规划问题的函数是 fmincon 。 多目标优化问题的MATLAB函数有fgoalattain和fminimax。
优化求解一般步骤
针对具体工程问题建立 优化设计的数学模型
建立目标函数文件 建立约束函数文件
min s.t.
gf ((xx)1,≤x20,
…,
模拟退火算法及模型
物理退火过程
Metropolis准则——以概率接受新状态
固体在恒定温度下达到热平衡的过程可以用Monte Carlo方法(计算机随机模拟方法)加以模拟,虽然该方 法简单,但必须大量采样才能得到比较精确的结果,计 算量很大。
若在温度T,当前状态i → 新状态j 若Ej<Ei,则接受 j 为当前状态; 否则,以概率 p=exp[-(Ej-Ei)/kBT] 接受j 为当前状态。
最优化模型与算法
内容概要
优化模型简介 优化模型分类 优化算法及其分类 Matlab优化工具箱 现代智能优化算法
2
优化模型简介——概念、基本形式
什么是优化?就是从各种方案中选取一个最好的。从数学角度看,优化 理论就是研究如何在状态空间中寻找到全局最优点。
一般的优化具有下面形式: min f (x1, x2, …, xn) s.t. g(x) 0,xD
组合优化与物理退火的相似性
相似性比较
优化问题 解
最优解 设定初温 Metropolis抽样过程 控制参数的下降 目标函数
金属物体 粒子状态
能量最低的状态 熔解过程 等温过程 冷却 能量
保存为myfun.m,在命令窗口键入
>> X=fminsearch ('myfun', [0,0]) 或 >> X=fminsearch(@myfun,
[0,0])
结果为:
X=
1.0016 0.8335
有约束的多元函数最小值
数学模型形式:
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)可以是非线性函数.
Options(10)输出函数计算次数
11 梯度计算次数
Options(11)输出函数梯度计算次数
12 约束计算次数
Options(12)输出约束计算次数
13 等式约束个数 0,等式约束为0 Options(13)输入等式约束个数
14 最大迭代次数
100n
Options(14)输入最大迭代次数
(n为变量维数)
4
优化算法及其分类
什么是优化算法? 专门用于求解优化模型的方法叫做优化算法,优化算法与优化模型有本
质区别。 优化算法可分为两大类
1 梯度类算法 牛顿法、二分法、共轭梯度法、梯度下降法、单纯形法等,该类算法也
称为局部优化算法,明显缺陷是局部优化。Matlab优化工具箱多用该类算法。 2 非梯度类算法 (1)遍历搜索法,在组合优化中称为穷举法,计算量大,适用于小规模计算
1e-6
Options(4)设置约束g的终止条件
5 选择主要算法
0
Options(5)选择主要优化算法
6 搜索方向算法
0
fmin()函数为无约束优化搜索方向提
供3种算法:
Options(6)=0,拟牛顿法BFGS公式
Options(6)=1,拟牛顿法DFP公式
Options(6)=2,梯度法
7 步长一维搜索
0
fmin()函数为无约束优化的步长一维
搜索提供2种算法:
Options(7)=0,二次和三次混合插值法
Options(7)=1,三次多项式插值法
控制参数options
序号
功能
默认值及其含义
说明
8 函数值输出
Options(8)输出最终迭代函数值
9
梯度检验
0,不检验 Options(9)比较梯度
10 函数计算次数
状态;否则保留状态 i 为当前状态。
模拟退火算法及模型
物理退火过程
Metropolis准则——以概率接受新状态 p=exp[-(Ej-Ei)/kBT]
在高温下,可接受与当前状态能量差较大的新状态;
在低温下,只接受与当前状态能量差较小的新状态。
求解。 (2)随机搜索法,包括遗传算法、模拟退火算法、群类算法、禁忌搜索法等, 又称为现代优化算法,是一类全局最优算法,求解的准确性与时间长度、迭 代次数直接相关。
5
MATLAB优化工具箱
常用的优化功能函数 求解线性规划问题的主要函数是linprog。 求解二次规划问题的主要函数是quadprog。 求解无约束非线性规划问题的主要函数是fminbnd、fminunc和
3
优化模型分类
1.根据是否存在约束条件 有约束模型,无约束模型 注:有约束问题通常采用转换方法将有约束模型转换为无约束模型再 求解。
2.根据目标函数和约束条件表达式的性质 线性规划,非线性规划,二次规划,多目标规划等 注:最常见的优化模型为非线性规划模型。
3.根据决策变量的连续性 连续性优化模型,离散性优化模型(典型的组合优化问题,最短路) 注:两类模型在求解方法上有较大不同,本次讲解针对前一种。
可求解复杂优化问题
无约束多元函数最小值函数fminsearch 调用格式
[xopt,fopt,exitflag]=fminsearch(fun,x0,options)
返回算法的终止 指示变量值
设置优化选项参数 初始点
目标函数 返回最优设计变量
返回目标函数值
例 求y=2x13 +4x1x23-10x1x2+x22 的最小值点.
15 目标个数
0
Options(15)输入目标个数
16 差分步长 最小值
1e-8
Options(16) 步长的下限或变量的最小梯度值
17 差分步长 最大值
0.1
Options(17)
步长的上限或变量的最大梯度值
18
步长
Options(18) 步长参数,第1次迭代时置1
【例】 求解约束非线性规划:
首先将问题转化为matlab要求的格式;即求出 fun,A,b,Aeq,Beq,X0,Lb,Ub 解:首先建立一个m文件myfun.m function y=myfun(x) y=-exp(x(1))*x(2)^2*(3-exp(x(1))-x(2)^2); 存储为myfun.m
xn)
不等式约束条件
表示成g(X) ≤ 0的
形式
建立调用优化工具函数 的M文件或命令文件
运行优化工具函数的M文 件或命令文件求解
无约束非线性规划问题的MATLAB函数
fminbnd fminsearch
fminunc
只求解单变量问题 要求目标函数为连续函数
适用于简单优化问题 可求解单变量和多变量问题
x = 0.8852 0.7592
f = 6.2043e-016
优化过程演示
为了进一步了解优化模型的求解算法,给 出具体实例的优化过程演示。
例:以共轭梯度优化算法优化某函数进行 演示,并说明计算时间复杂度。
18
现代优化算法
现代优化算法
特点:
遗传算法
• 基于客观世界中的一些自
模拟退火算法
然现象;
function [C,Ceq] = mycon(x) C = … % 计算x处的非线性不等约束的函数值. Ceq = … % 计算x处的非线性等式约束的函数值. lambda是Lagrange乘子,它体现哪一个约束有效. output输出优化信息; grad表示目标函数在x处的梯度; hessian表示目标函数在x处的Hessian值.
算法的提出 模拟退火算法最早的思想由Metropolis等(1953)提出, 1983年Kirkpatrick等将其应用于组合优化。
算法的目的 解决NP复杂性问题; 克服优化过程陷入局部极小; 克服初值依赖性。
物理退火过程
什么是退火: 退火是指将固体加热到足够高的温度,使分子呈随机排 列状态,然后逐步降温使之冷却,最后分子以低能状 态排列,固体达到某种稳定状态。
禁忌搜索算法
• 建立在计算机迭代计算的
蚁群算法
基础上;
粒子群算法
• 都属于随机搜索算法,具
差分进化算法
有全局优化能力;
• 具有普适性,可解决实际
注:群类算法还有鱼群算法、 应用问题。
蜂群算法、鸟群算法等。
现代优化算法
——全局性优化理论的一般性描述
两种搜索方式:单点法和多点法。 单点法是一种串行方式,即从一个初始状态(单个个体)出发,按照某
种方式转移状态进行全局优化,这种方式通常要消耗较多机时; 多点法是一种并行方式,即从可行域的多个初始状态(多个个体)同时
进行搜索寻找全局最优解,但是空间开销大。 根据各态历经假设,理论上二者可以具有相同的搜索效果。事实上,单
CPU情况下的单点法和多点法并没有本质性的区别。
20
模拟退火算法及模型
物理退火过程
题目中有非线性约束条件,所以建立非线性约束m-文件。
然后建立一个 m文件 confun.m function [c,cep]=confun(x) c=[]; % c为非线性不等式 cep=exp(x(1))+x(2)^2-3; % cep为非线性等式 然后存储为confun.m 最后在命令窗口中输入: A=[];b=[];Aeq=[];beq=[];Lb=[];Ub=[]; [x,f]=fmincon(‘myfun’,[1;1],[],[],[],[],[],[],’ confun’)
解:>>X=fminsearch('2*x(1)^3+4*x(1)*x(2)^3-
10*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;
函数 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(…)
围),其即中mx1i,nxf 2(,X…),, x其n中ΩX(即Ω(问矢题量的形可式行)域。,f代(x表)是问决题策参问数题的的选数择学范模型, 也是决策问题的目标函数,g(x) 0是决策问题的约束条件, X是决策问 题的决策变量,D是决策问题的定义域(可行域)。问题归结为求极值。 极值点非常多,需要找到全局最小点。 注:求问题的最大和最小是同一个问题,算法完全一样。 分布模型的参数估计问题是典型的优化问题,最大似然估计模型是典型 的优化模型。
控制参数options
序号
功能
默认值及其含义
说明
1
来自百度文库
输出形式 0,无中间结果 Options(1)=1,按照表格输出结果
输出
Options(1)=-1,隐藏警告信息
2 解x的精度
1e-4
Options(2)设置x解的终止条件
3 函数f的精度
1e-4
Options(3)设置函数f的终止条件
4 约束g的精度
参数说明:
fun为目标函数,它可用前面的方法定义; nonlcon的作用是通过接受的向量x来计算非线性不等 约束和非线性等式约束分别在x处的估计C和Ceq,通 过指定函数名或函数名句柄来使用,如:
>>x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon), 先建立非线性约束函数,并保存为mycon.m:
fminsearch。 求解约束非线性规划问题的函数是 fmincon 。 多目标优化问题的MATLAB函数有fgoalattain和fminimax。
优化求解一般步骤
针对具体工程问题建立 优化设计的数学模型
建立目标函数文件 建立约束函数文件
min s.t.
gf ((xx)1,≤x20,
…,
模拟退火算法及模型
物理退火过程
Metropolis准则——以概率接受新状态
固体在恒定温度下达到热平衡的过程可以用Monte Carlo方法(计算机随机模拟方法)加以模拟,虽然该方 法简单,但必须大量采样才能得到比较精确的结果,计 算量很大。
若在温度T,当前状态i → 新状态j 若Ej<Ei,则接受 j 为当前状态; 否则,以概率 p=exp[-(Ej-Ei)/kBT] 接受j 为当前状态。
最优化模型与算法
内容概要
优化模型简介 优化模型分类 优化算法及其分类 Matlab优化工具箱 现代智能优化算法
2
优化模型简介——概念、基本形式
什么是优化?就是从各种方案中选取一个最好的。从数学角度看,优化 理论就是研究如何在状态空间中寻找到全局最优点。
一般的优化具有下面形式: min f (x1, x2, …, xn) s.t. g(x) 0,xD
组合优化与物理退火的相似性
相似性比较
优化问题 解
最优解 设定初温 Metropolis抽样过程 控制参数的下降 目标函数
金属物体 粒子状态
能量最低的状态 熔解过程 等温过程 冷却 能量
保存为myfun.m,在命令窗口键入
>> X=fminsearch ('myfun', [0,0]) 或 >> X=fminsearch(@myfun,
[0,0])
结果为:
X=
1.0016 0.8335
有约束的多元函数最小值
数学模型形式:
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)可以是非线性函数.
Options(10)输出函数计算次数
11 梯度计算次数
Options(11)输出函数梯度计算次数
12 约束计算次数
Options(12)输出约束计算次数
13 等式约束个数 0,等式约束为0 Options(13)输入等式约束个数
14 最大迭代次数
100n
Options(14)输入最大迭代次数
(n为变量维数)
4
优化算法及其分类
什么是优化算法? 专门用于求解优化模型的方法叫做优化算法,优化算法与优化模型有本
质区别。 优化算法可分为两大类
1 梯度类算法 牛顿法、二分法、共轭梯度法、梯度下降法、单纯形法等,该类算法也
称为局部优化算法,明显缺陷是局部优化。Matlab优化工具箱多用该类算法。 2 非梯度类算法 (1)遍历搜索法,在组合优化中称为穷举法,计算量大,适用于小规模计算
1e-6
Options(4)设置约束g的终止条件
5 选择主要算法
0
Options(5)选择主要优化算法
6 搜索方向算法
0
fmin()函数为无约束优化搜索方向提
供3种算法:
Options(6)=0,拟牛顿法BFGS公式
Options(6)=1,拟牛顿法DFP公式
Options(6)=2,梯度法
7 步长一维搜索
0
fmin()函数为无约束优化的步长一维
搜索提供2种算法:
Options(7)=0,二次和三次混合插值法
Options(7)=1,三次多项式插值法
控制参数options
序号
功能
默认值及其含义
说明
8 函数值输出
Options(8)输出最终迭代函数值
9
梯度检验
0,不检验 Options(9)比较梯度
10 函数计算次数