现代优化算法
现代优化算法是 80 年代初兴起的启发式算法。这些算法包括禁忌搜索(tabu search),模拟退火(simulated annealing),遗传算法(genetic algorithms),人工神经网络(neural networks)。它们主要用于解决大量的实际应用问题。目前,这些算法在理论和实际应用方面得到了较大的发展。无论这些算法是怎样产生的,它们有一个共同的目标-求 NP-hard 组合优化问题的全局最优解。虽然有这些目标,但 NP-hard 理论限制它们只能以启发式的算法去求解实际问题。
启发式算法包含的算法很多,例如解决复杂优化问题的蚁群算法(Ant Colony Algorithms)。有些启发式算法是根据实际问题而产生的,如解空间分解、解空间的限制等;另一类算法是集成算法,这些算法是诸多启发式算法的合成。
现代优化算法解决组合优化问题,如 TSP(Traveling Salesman Problem)问题,QAP(Quadratic Assignment Problem)问题,JSP(Job-shop Scheduling Problem)问题等效果很好。
这一章讲解模拟退火的算法过程,之前也介绍过一些简单的模拟退火的思想,上次是基于ACM-ICPC的思想进行介绍的,这次是详细的计算推导过程。
模拟退火
模拟退火算法得益于材料的统计力学的研究成果。统计力学表明材料中粒子的不同结构对应于粒子的不同能量水平。在高温条件下,粒子的能量较高,可以自由运动和重新排列。在低温条件下,粒子能量较低。如果从高温开始,非常缓慢地降温(这个过程被称为退火),粒子就可以在每个温度下达到热平衡。当系统完全被冷却时,最终形成处于低能状态的晶体。
如果用粒子的能量定义材料的状态,Metropolis 算法用一个简单的数学模型描述了退火过程。假设材料在状态 i 之下的能量为
- (1)如果
E(j)≤E(i) ,接受该状态被转换。- (2)如果 E(j)>E(i) ,则状态转换以如下概率被接受:
eE(i)−E(j)KT 其中 K 是物理学中的波尔兹曼常数,
T 是材料温度。在某一个特定温度下,进行了充分的转换之后,材料将达到热平衡。这时材料处于状态 i 的概率满足波尔兹曼分布:
PT(x=i)=e−E(i)KT∑j∈Se−E(j)KT
其中 x 表示材料当前状态的随机变量,S 表示状态空间集合。
显然
limT→∞e−E(i)KT∑j∈Se−E(j)KT=1|S|其中 |S| 表示集合 S 中状态的数量。这表明所有状态在高温下具有相同的概率。而当温度下降时,
limT→0e−E(i)−EminKT∑j∈Se−E(j)−EminKT=limT→0e−E(i)−EminKT∑j∈Smine−E(j)−EminKT+∑j∉Smine−E(j)−EminKT</
- (2)如果 E(j)>E(i) ,则状态转换以如下概率被接受: