【数学建模】第二十三章 现代优化算法

模型简介

玄学算法大全,主要包括禁忌搜索(好诡异的名字)、模拟退火、遗传算法、人工神经网络。主要用于解决大量的实际应用问题。

模拟退火算法

这是一个由物理学中模拟退火的思想得来的算法。

在材料力学中,在高温条件下,粒子的能量较高,可以自由运动和重新排列。在低温条件下,粒子能量较低。如果从高温开始,非常缓慢地降温(这个过程被称为退火),粒子就可以在每个温度下达到热平衡。当系统完全被冷却时,最终形成处于低能状态的晶体。

所有状态在高温下具有相同的概率。而当温度下降时,材料会以很大概率进入最小能量状态。

嗯,玄学吧。我还没放公式,公式更玄学。

接下来,如果我们在考虑一个寻找最小值的优化问题,我们可以将这种模拟退火的物理学思想运用到算法中。

考虑一个组合优化问题:优化函数为 $f:x\rightarrow R^+$ ,其中 $x\in S$ ,它表示优化问题的一个可行解,$R^+=\{y|y\in R,y>0\}$ ,$S$ 表示函数的定义域,$N(x)\subseteq S$ 表示 $x$ 的一个邻域集合。

首先给定一个初始温度 $T_0$ 和该优化问题的一个初始解 $x(0)$ ,并由 $x(0)$ 生成下一个解 $x^{‘}\in N(x(0))$ ,是否接受 $x^{‘}$ 作为一个新解 $x(1)$ 依赖于下面的概率:

简化版:已知一个优化函数,可以用蒙特卡洛先求出一个可行解,在这个解的邻域中再找一个新的解。然后用上面这个概率来判断是否接受这个新的解。

简单来讲,就是说如果生成的这个新的 $x^{‘}$ 的函数值比前一个解的函数值更小,就接受 $x(1)=x^{‘}$ 作为一个新的解。否则以概率 $e^{-\frac{f(x^{‘})-f(x(0))}{T_0}}$ 接受 $x^{‘}$ 作为一个新解。

所以说,对于某一个温度 $T_i$ 和该优化问题的一个解 $x(k)$ ,可以生成 $x^{‘}$ 。接受 $x^{‘}$ 作为下一个新的解 $x(k+1)$ 的概率为:

在温度$T_i$ 下,经过很多次的转移之后,降低温度 $T_i$ ,得到 $T_{i+1}<T_i$ 。在 $T_{i+1}$ 下重复上述过程。因此整个优化过程就是不断寻找新解和缓慢降温的交替过程。最终的解就是对该问题寻优的结果。

由于在每个 $T_i$ 下,所得到的一个新状态 $x(k+1)$ 完全依赖于前一个状态 $x(k)$ ,可以和前面的状态 $x(0),…,x(k-1)$ 无关,我们可以得到以下结论:
从任何一个状态 $x(k)$ 生成 $x^{‘}$ 的概率,在 $N(x(k))$ 中是均匀分布的,且新状态 $x^{‘}$ 被接受的概率满足式(1)。

那么经过有限次的转换,可以得出在温度 $T_i$ 下的平衡态 $x_i$ 的分布:

这说明如果温度下降十分缓慢,而在每个温度都有足够多次的状态转移,使之在每一个温度下达到热平衡,则全局最优解将以概率 1 被找到。因此可以说模拟退火算法可以找到全局最优解。

注意:要确定在每一温度下状态转换的结束准则。

遗传算法

基于自然选择原理和自然遗传机制的搜索(寻优)算法,是模拟自然界中的生命进化机制,在人工系统中实现特定目标的优化。遗传

Author: iwannaeat
Link: https://iwannaeat.github.io/2020/02/12/【数学建模】现代优化算法/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.