24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1009  |  回复: 9
【奖励】 本帖被评价8次,作者csfn增加金币 7
当前主题已经存档。

csfn

荣誉版主 (知名作家)


[资源] 计算优化方法入门介绍

本文作者:supi    文章来源:量子化学网

在所有涉及计算化学的书籍中,这方面的知识介绍的不多,我希望能够抛砖引玉,利用我的所学和掌握的一些资料,能对大家有所启发。在叙述中我会紧紧结合我们量化的实际来讲。

优化
英文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/top ... pic=2036&show=0)。 在guassian中,SCF计算的最陡下降法是scf=qc,opt中计算的最陡下降法是steep,而newton就是用牛顿法。berny计算优化可以参看gusssian手册。

 退火算法和遗传算法是最常用的全局构型搜索,它们都检测附近的多个构型,以获得最低的一个(这句话的出处
http://210.34.15.126/cgi-bin/top ... pic=2036&show=0)。
由于运算程序不可能直接获得整个势能面,所以理论上不可能确保找到能量最低的构型。

 要确保最低构型,唯一的办法就是做势能面扫描,但是如果变量很多的话,这个扫描就只能停留在理论上了。
一般的量化程序用的都是局部优化方法,所以从理论上没有办法保证你优化得到的就是能量极值。

另外提及一下论坛相关的讨论:
http://210.34.15.126/cgi-bin/top ... pic=6103&show=0


[ Last edited by csfn on 2008-1-6 at 16:14 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

★★★ 三星级,支持鼓励

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

日常生活中,我们都在用“优化”,而几乎很少会求“解”。
例如:虽然理论上我们都趋于用最低的价格买东西,但我们实际上都是按照“可接受”的价格成交的。
再如:搞对象,理论上你趋于和所有适龄异性都谈谈,但实际上也是按照“可接受”的程度完成人生大事的。

啰嗦这么几句,只是提醒:“最/解”和“优化/可接受”的这个区别。
2楼2008-01-07 21:35:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)


★★★ 三星级,支持鼓励

呵呵,支持楼上……
3楼2008-01-08 10:55:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xg00lwj

金虫 (著名写手)


★★★★★ 五星级,优秀推荐

老帖也是帖,坚决顶起来
4楼2008-01-25 12:52:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jielimi

银虫 (小有名气)


引用回帖:
Originally posted by yalefield at 2008-1-7 21:35:
之所以叫做“优化”,主要原因就在于无法(或者很难)找到“最”,而是很快找到“可接受”。这是优化的含义所在。如果是得到“最”,那叫做“解”,而不能叫做“优化”。

日常生活中,我们都在用“优化”,而几 ...

这个我看明白了
5楼2008-01-25 21:19:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ldld76

金虫 (小有名气)


★★★★★ 五星级,优秀推荐

谢谢了
6楼2008-02-14 15:09:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 csfn 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见