路径规划:模拟退火,模因算法,禁忌搜索

爬山算法 ( Hill Climbing )/模拟退火(SA,Simulated Annealing)

精看过:
https://blog.csdn.net/zhouzi2018/article/details/82118673
浏览过:
https://www.yiibai.com/artificial-intelligence-tutorial/hill-climbing-algorithm-in-ai.html

爬山算法

一. 爬山算法 ( Hill Climbing )

爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方向小幅度移动都不能得到更优的解。

模拟退火算法

一、模拟退火算法基本思想

模拟退火其实也是一种贪心算法,但是它的搜索过程引入了随机因素。在迭代更新可行解时,以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。以下图为例,假定初始解为左边蓝色点A,模拟退火算法会快速搜索到局部最优解B,但在搜索到局部最优解后,不是就此结束,而是会以一定的概率接受到右边的移动。也许经过几次这样的不是局部最优的移动后会到达全局最优点D,于是就跳出了局部最小值。

禁忌搜索

精看过:
https://blog.csdn.net/qq_44384577/article/details/105190912
https://blog.csdn.net/adkjb/article/details/81712969
https://blog.csdn.net/qq_38048756/article/details/109394815
https://blog.csdn.net/zuochao_2013/article/details/72292466
浏览过:
https://www.docin.com/p-846564196.html
https://zhuanlan.zhihu.com/p/46137513

1.邻域

对于组合优化问题,给定任意可行解x,x∈D,D是决策变量的定义域,对于D上的一个映射:N:x∈D→N(x)∈2(D) 其中2(D)表示D的所有子集组成的集合,N(x)成为x的一个邻域,y∈N(x)称为x的一个邻居。

2.候选集合

候选集合一般由邻域中的邻居组成,可以将某解的所有邻居作为候选集合,也可以通过最优提取,也可以随机提取,例如某一问题的初始解是[1,2,3],若通过两两交换法则生成候选集合,则可以是[1,3,2],[2,1,3],[3,2,1]中的一个或几个。

3. 禁忌表

禁忌表包括禁忌对象和禁忌长度。由于在每次对当前解的搜索中,需要避免一些重复的步骤,因此将某些元素放入禁忌表中,这些元素在下次搜索时将不会被考虑,这些被禁止搜索的元素就是禁忌对象;
禁忌长度则是禁忌表所能接受的最多禁忌对象的数量,若设置的太多则可能会造成耗时较长或者算法停止,若太少则会造成重复搜索。

4.评价函数

用来评价当前解的好坏,TSP问题中是总旅程距离。

5.特赦规则

禁忌搜索算法中,迭代的某一步会出现候选集的某一个元素被禁止搜索,但是若解禁该元素,则会使评价函数有所改善,因此我们需要设置一个特赦规则,当满足该条件时该元素从禁忌表中跳出。

6.终止规则

一般当两次迭代得到的局部最优解不再变化,或者两次最优解的评价函数差别不大,或者迭代n次之后停止迭代,通常选择第三种方法。

模因算法

采用遗传算法与局部搜索算法相结合的模因算法解决废物回收车辆路径规划问题。遗传算法能够保证解的多样性,但不能保证求得一个较优解,而局部搜索算法即爬山算法可在遗传算法的基础上,对解进行邻域搜索,实现解的多样性与集中性。算法流程如图5所示。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42754727/article/details/124466969