启发式算法之蚁群算法、模拟退火算法

  什么是启发式算法?

   启发式算法(heuristic algorithm)是相对于最优化算法提出的。一个问题的最优算法求得该问题每个实例的最优解。启发式算法可以这样定义:一个基于直观或经验构造的算法,在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解,该可行解与最优解的偏离程度一般不能被预计。                                 

                                                                                                                                             -----百度百科

   人话:最优化问题中,相对于暴力枚举的解决方法,通过一些大自然中发现的规律规则来进行“有经验的、启发式”的枚举求近似解,这就是启发式算法。

启发式算法的应用有很多,蚁群算法(启发于蚁群找食物)、模拟退火算法(启发于水加热降温)、人工神经网络(启发于生物神经网络,虽然有人不承认……)

蚁群算法

  蚁群算法来源:意大利学者Dorigo、Maniezzo在观察蚂蚁寻觅食物时,整体上总是会选择最短的路径,他们观察并发现了原因。

  原因:蚂蚁在寻觅食物的道路上会留下信息素,而他们寻找食物的方向也是根据某个方向信息素的多少而决定的。也就意味着,当一个蚂蚁在某条路径上找到了食物,很快就会有其他蚂蚁也踏上这条路,释放更多的信息素,而较短的路径因为短,蚂蚁来回的速度快,信息素就会相对更多,聚集而来的蚂蚁就会越来越多,最后几乎所有的蚂蚁全部被集中在这条已知最短路径上。

模拟退火算法

  模拟退火算法与退火有什么具体关系没有查到太多,只知道一点——模拟算法中使用了一个概率公式,这个公式参考了金属冶炼的退火过程。

  原理:

  目标:A点开始,寻找上图中最低点C点。

  how:一般的贪心算法会A开始向下走,下一步比当前点更低,就更新为下一步。但是这种贪心算法或导致直接收敛至B,无法到达全局最优C。为了能够找到全局最优C,我们想办法跳过B点C点之间的山谷,模拟退火法的思想是在到达B点时能够继续向右走一回(类似于小球从高处落下来带有一定的能量,冲上高坡,甚至冲上山谷,判断在当前点是否有能量能爬坡的公式即为之前提到的概率公式——ΔT=C(S′)-C(S),其中C(S)为评价函数

模拟退火算法详细原理以及实现:https://www.cnblogs.com/ranjiewen/p/6084052.html

发布了88 篇原创文章 · 获赞 28 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_35946969/article/details/87857520