思想
禁忌搜索(Tabu Search, TS)也是属于模拟人类智能的一种优化算法。
原理
禁忌搜索算法是组合优化算法的一种,是局部搜索算法的扩展。禁忌搜索算法是人工智能在组合优化算法中的一个成功应用。禁忌搜索算法的特点是采用了禁忌技术。所谓禁忌就是禁止重复前面的工作。禁忌搜索算法用一个禁忌表记录下已经到达过的局部最优点,在下一次搜索中,利用禁忌表中的信息不再或有选择地搜索这些点。
过程
禁忌
禁忌对象:是指禁忌表中被禁的那些变化元素。禁忌对象的选择可以根据具体问题而制定。例如在旅行商问题(Traveling Salesman Problem,TSP)中可以将交换的城市对作为禁忌对象,也可以将总路径长度作为禁忌对象。
禁忌长度:禁多久(禁掉的东西什么时候放出来?禁忌长度过短,会导致循环;禁忌长度过长,会导致计算时间过长。主要对解的收敛速度有影响)
禁忌表:包括禁忌对象和禁忌长度(总的来说就是:怎么禁?)
候选集:邻域中可行解的选取?(候选集的大小,过大增加计算内存和计算时间,过小过早陷入局部最优)
特赦(藐视)原则
(1)基于评价值的规则,若出现一个解的目标值好于前面任何一个最佳候选解,可特赦;
(2)基于最小错误的规则,若所有对象都被禁忌,特赦一个评价值最小的解;
应用案例1
应用案例2
问题:已知一个旅行商问题为四城市(a,b,c,d)问题,城市间的距离如矩阵D所示,为方便起见,假设邻域映射定义为两个城市位置对换,而始点和终点城市都是a。请分析使用禁忌搜索算法求解该问题的前面三代的过程与主要步骤。
分析:由于题目假设了邻域构造的方式,而且规定了始点和终点都是城市a,因此,在以下的求解过程中,我们不使用城市a和其他城市进行交换,这样的操作并不会影响全局寻优的能力。