! `7 }1 S' i( G" ?2 \ 其中k是一个常数,exp表示自然指数,且dE<0。这条公式说白了就是:温度越高,出现一次能量差为dE的降温的概率就越大;温度越低,则出现降温的概率就越小。又由于dE总是小于0(否则就不叫退火了),因此dE/kT < 0 ,所以P(dE)的函数取值范围是(0,1) 。- V8 v# K( G& i
0 ^2 K d* i8 S: ^- H
随着温度T的降低,P(dE)会逐渐降低。6 O* p* C/ b( u7 y! L* B
, F2 u- d: N2 w& i V) t
我们将一次向较差解的移动看做一次温度跳变过程,我们以概率P(dE)来接受这样的移动。( P- z, u5 b+ I8 i
- [- M: K/ g. p' m4 M, a
关于爬山算法与模拟退火,有一个有趣的比喻: $ X0 o# j- q! X) |/ f9 A( E: y1 A. L J8 W
爬山算法:兔子朝着比现在高的地方跳去。它找到了不远处的最高山峰。但是这座山不一定是珠穆朗玛峰。这就是爬山算法,它不能保证局部最优值就是全局最优值。 ' T: b. F% w4 V. ^6 x! v * a1 r0 L. A0 R2 Z3 y' B 模拟退火:兔子喝醉了。它随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。但是,它渐渐清醒了并朝最高方向跳去。这就是模拟退火。