一个关于OPT优化的一个很透彻的理解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

优化

英文optimization,从本质上来讲,是数学问题,为了严谨起见,我们也要先从数学定义说起,只是我的数学描述是根据我的理解来的,相当粗略,有些符号还打不出来:

定义:

如果有一个函数,它是变量x或者一个变量集{x1, x2, ... xn}(这个我们也可以称为矢量,或者向量X)的函数,我们可以把它写为f(x)或者f(X),通过改变变量,来找到函数的最大值或者最小值

注意:

1。这里对函数没有明确的限制(比如品优,连续之类的)

2。这里的函数f必须是many to one function,而不能是one to many function。也就是说同样的x必须给出同样的f值。

3。最小化f(x)相当于最大化-f(x),对于X是矢量的情况,也是一样

对我们量化来说,这个f值通常就是能量,而变量基本上不会是单一的,而是会有一系列的变量,对于能量优化(单点计算)而言,这一系列的变量就是LCAO 的MO轨道的系数值

对于几何优化,就是一系列的键长,键角之类的。对于一般的程序几何优化,那就是转化为一系列的体系的坐标,guassian默认几何优化是用冗余内坐标。

我们也经常碰到“势能面”这个概念,它就是能量关于坐标的函数。这里的坐标是广义的。

量化中的优化就是找极值点,平衡构型搜索是找势能面极小点,而过渡态的则是找势能面的鞍点。

之所以叫做“优化”,主要原因就在于无法(或者很难)找到“最”,而是很快找到“可接受”。这是优化的含义所在。如果是得到“最”,那叫做“解”,而不能叫做“优化”。

什么是全局优化?什么是局域优化?

我们讲最小化,从数学上来说,就是

在其定义域内,我们能找到这样的x*

使得f(x)>f(x*)

这就是全局优化(最小化),最大化可以同样定义。

局域优化,就是

在一个小的范围内,即x属于[-d,d],d是个实数,一般这个数都比较小

能找到这样的x*

使得f(x)>f(x*)

我们在文献中常常看到全局最小,局部最大之类,那就是local minima,global maxima

在化学反应研究中经常会提到过渡态,中间体,在这里就很容易联系起来了。

量化中的优化也根据此分为两大类:

局部优化就是

原始构型并不处于势能面的极小点上,通过搜索让构型到达邻近的极小点

全局优化就是找到能量最低的构型。

局部优化的方法通常有爬坡法、最速下降法和牛顿法,其中爬坡法适用于任何情况,最速下降法要求势能面的一阶导数不变号,牛顿法则要求二阶导数也不变号,在后面的帖子中会陆续介绍。收敛速度最快的算法适应的条件最苛刻。在guassian中采用一种称为Berny搜索的算法,实际上是对这三种算法的综合运用

(这句话出处:

http://210.34.15.126/cgi-bin/topic.cgi?forum=1&topic=2036&show=0)。在guassian中,SCF计算的最陡下降法是scf=qc,opt中计算的最陡下降法是steep,而newton就是用牛顿法。berny计算优化可以参看gusssian手册。

退火算法和遗传算法是最常用的全局构型搜索,它们都检测附近的多个构型,以获得最低的一个(这句话的出处

http://210.34.15.126/cgi-bin/topic.cgi?forum=1&topic=2036&show=0)。由于运算程序不可能直接获得整个势能面,所以理论上不可能确保找到能量最低的构型。

要确保最低构型,唯一的办法就是做势能面扫描,但是如果变量很多的话,这个扫描就只能停留在理论上了。

一般的量化程序用的都是局部优化方法,所以从理论上没有办法保证你优化得到的就是能量极值。

相关文档
最新文档