1 / 55
文档名称:

蒙特卡罗最优化课件.ppt

格式:ppt   大小:3,502KB   页数:55页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

蒙特卡罗最优化课件.ppt

上传人:yzhfg888 2022/9/13 文件大小:3.42 MB

下载得到文件列表

蒙特卡罗最优化课件.ppt

文档介绍

文档介绍:MonteCarloOptimization
主要内容
一、数值优化方法(Numericaloptimizationmethods)
二、应用于求解随机优化问题的蒙特卡罗方法
(1)模拟退火算法(SimulatedAnnealing)
MonteCarloOptimization
主要内容
一、数值优化方法(Numericaloptimizationmethods)
二、应用于求解随机优化问题的蒙特卡罗方法
(1)模拟退火算法(SimulatedAnnealing)
(2)EM算法(TheEMalgorithm)

-findinginonedimension
假设f:R→R为一连续函数,则方程f(x)=c的根x,满足g(x)=f(x)-c=(x)=0形式的方程求根问题。使用数值方法求此方程的根,可以选择是使用f的一阶导数还是不使用导数的方法。Newton方法或者Newton-Raphson方法是使用一阶导数的方法,而Brent的最小化算法是不使用导数的一种求根方法。
(二分法)
如果f(x)在区间[a,b]上连续,以及f(a)和f(b)有相反的符号,则由中值定理知道存在a<c<b,使得f(c)=0。二分法通过在每次迭代中简单的判断f(x)在中点x=(a+b)/2处的符号来寻求方程的根。如果f(a)和f(x)有相反的符号则区间就被[a,x]代替,否则就被[x,b]代替。在每次迭代中,包含根的区间长度减少一半。即
可以看出,二分法不会失效,达到指定精度所需要的迭代次数也是事先可以得到的。如果在区间[a,b]里方程有多个根,则二分
常用的收敛准则有:
绝对收敛
时停止迭代。此准则可以不考虑x的单位情况下达到指定的精度。
法会找到一个根。二分法的收敛速度是线性的。
相对收敛
while(it<1000&&abs(y[2])>eps){
it<-it+1
if(y[1]*y[2]<0){
r[3]<-r[2]
y[3]<-y[2]
}else{
r[1]<-r[2]
y[1]<-y[2]
}
r[2]<-(r[1]+r[3])/2
y[2]<-f(r[2],a=a,n=n)
print(c(r[1],y[1],y[3]-y[2]))
}
}
bisec(0,5*n)
运行结果:
trueroots-
’smethod
二分法是一种特殊的括入根算法。Brent通过逆二次插值方法将括入根方法和二分法结合起来。其使用y的二次函数来拟合x。如果三个点为(a,f(a)),(b,f(b)),(c,f(c)),其中b为当前最好的估计,则通过Lagrange多项式插值方法(y=0)对方程的根进行估计,
在R中,函数uniroot就是应用Brent方法求解一元方程的数值根。
例3使用Newton方法求例1方程的根。
程序:
nt<-function(b0){
a<-
n<-20
f<-function(y,a,n){
a^2+y^2+2*a*y/(n-1)-(n-2)
}
fd<-function(y,a,n){
2*y+2*a/(n-1)
}
b1<-b0
b0<-b0-1
eps<-.Machine$^
it<-0
while(it<1000&&abs(b1-b0)>eps){
it<-it+1
b0<-b1
b1<-b0-f(b0,a,n)/fd(b0,a,n)
cat(it,c(b0,b1,abs(b1-b0)),"\n")
}
}
输入:nt(5)
输出结果:



-08
Newton方法依赖于f的形状和初值。该方法从初值开始就发散。
运行结果:
运行结果:


模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。根据Metropolis准则,粒子在温度T时趋于平衡的概率为e-ΔE/(kT),其中E为温度T时的内能,ΔE为其改变量,k为Boltzmann常数。用固体退火模拟组合优化问题,将内能E模拟为目标函数值f,温度T演化成控制参数t,即得到
解组合优化问题的