现代优化算法学习:模拟退火、遗传算法与蚁群算法
2025 年 8—9 月准备数学建模时,我集中学习了模拟退火、遗传算法和蚁群算法。它们都不保证得到严格的全局最优解,但能在解析方法困难、搜索空间很大或目标函数不可导时寻找质量较好的可行解。
模拟退火:允许暂时走向更差的解
模拟退火从一个初始解出发,不断产生邻域解。新解更好时直接接受;新解更差时,仍以一定概率接受:
\[P=\exp\left(-\frac{\Delta E}{T}\right).\]温度较高时,算法具有更强的探索能力;温度逐渐降低后,搜索趋于稳定。其关键参数包括初始温度、降温系数、每个温度下的迭代次数和终止温度。它实现简单、对小规模组合优化很实用,但冷却过快容易陷入局部最优,冷却过慢又会增加计算时间。
遗传算法:在种群中进行选择和变异
遗传算法同时维护一组候选解。每个候选解被编码为“个体”,再经历适应度评价、选择、交叉和变异。选择保留较好的方向,交叉组合已有信息,变异则维持种群多样性。
它适合连续或离散参数优化,也能处理没有显式梯度的黑盒目标函数。不过,种群规模、交叉概率和变异概率都会影响收敛速度;如果适应度设计不合理,算法可能优化了错误的目标。
蚁群算法:用信息素积累搜索经验
蚁群算法常用于路径与组合优化。蚂蚁从可行邻域中选择下一节点时,同时考虑边上的信息素浓度和局部启发信息:
\[P_{ij}^{k}=\frac{\tau_{ij}^{\alpha}\eta_{ij}^{\beta}} {\sum_{s\in\mathcal{N}_{k}(i)}\tau_{is}^{\alpha}\eta_{is}^{\beta}}.\]较短路径会留下更多信息素,使后续搜索更倾向于优质路径;信息素挥发则避免历史经验无限累积。它与路径结构结合自然,但在节点很多时计算量较大,而且信息素过快集中会导致早熟收敛。
三种算法怎样选择
| 算法 | 搜索对象 | 优点 | 主要风险 |
|---|---|---|---|
| 模拟退火 | 单个当前解及其邻域 | 结构简单,容易实现 | 对降温策略敏感 |
| 遗传算法 | 一组候选解 | 适用范围广,可并行评价 | 参数较多,适应度设计关键 |
| 蚁群算法 | 多条逐步构造的路径 | 适合 TSP、VRP 等路径问题 | 收敛较慢,可能信息素停滞 |
这次学习带来的认识
我最初把这些算法理解成可以直接套用的“高级工具”,后来意识到真正重要的是解的表示、邻域或生成规则、目标函数、约束处理和停止条件。算法名称并不能替代建模:只有先把问题表达正确,搜索过程得到的结果才有意义。
下一步我希望在同一组 TSP 数据上统一实现三种算法,记录最优值、平均值、运行时间和多次重复实验的方差,而不是只展示一次看起来不错的路径图。
Enjoy Reading This Article?
Here are some more articles you might like to read next: