模拟退火
现在有一个多峰函数,要求最小值。
温度为 \(T\) ,代表下一次会走的步长,每次以一定的衰减系数减小。
设初始温度为 \(T_0\) ,终止温度为 \(T_E\) ,衰减系数为 \(0.999\) (意为每次 \(T=T\times 0.999\)) 。
现在随机选择一个点,设 \(f(新点)-f(当前点)=\triangle E\)。
则分两种情况。
-
\(\triangle E\lt 0\) ,则跳到新点
-
\(\triangle E\gt 0\) ,则以 \(e^{-\frac{\triangle E}{T}}\) 的概率跳到新点
(double)rand()/RAND_MAX 就是取 \(0\) 到 \(1\) 之间的随机数。

浙公网安备 33010602011771号