作者:禅与计算机程序设计艺术
1.简介
模拟退火算法(Simulated Annealing)是一种通过小批量的变化来逼近全局最优的方法,该算法根据物理学的温度退火模型,不断随机化和降低当前解的解的能量值,直到达到一定温度后,解即达到局部最优或全局最优。
它的特点是不需要精确解的梯度信息,也无需高阶导数信息,只需要目标函数的评价值即可,能够在较短的时间内搜索出较优解,且不易陷入局部最优而导致收敛困难的问题。
从实际的应用角度看,模拟退火算法通常用于解决优化问题,如求解最佳字母排列组合、最佳布局方案、最大流问题等。
传统的遗传算法与模拟退火算法可以说是求解优化问题的两种主要算法。虽然它们的初始原理与方法有很大不同,但其共同点是寻找目标函数极值的过程中采用一种自然的、模拟系统的搜索策略。因此,对这两类算法的了解、比较和运用至关重要。
2.基本概念及术语
2.1 组合优化问题
组合优化问题又称为多重背包问题,是指给定一组固定的物品集合和一个容量限制,如何选择一组物品,使得这些物品的总体价值最大,同时每个物品仅限被选择一次。换言之,就是要选择一些物品,使得所获得的“利益”(满意度、实惠程度)最大,而且这些物品不能超