Tabu Search
禁忌搜索从一个初始状态出发,选择一系列的特定搜索方向作为试探,选择让
算法过程
- 给定一个禁忌表,选定一个初始状态
- 如果满足停止规则,停止搜索
- 否则,在
的邻域中选出满足不受禁忌约束的候选集 ,在 中选择一个 最高的状态 ,把 当作新的状态进行邻域搜索,同时把这一切记载进入历史
禁忌长度
控制其他变量,单从禁忌长度来讲,禁忌长度越短,机器内存占用越少,解禁范围更大,但容易造成搜索循环(实际搜索的范围很小),禁忌长度过长容易导致计算时间长
特赦原则
对于在禁忌中的状态,如果出现下面的情况,不管现在状态的禁忌长度如何,均设为
- 基于评价值的规则:若出现一个解的目标值,好于前面任何一个最佳候选解,可特赦
- 基于最小错误的规则:若所有对象都被禁忌,特赦一个评价值最小的解
- 基于影响力的规则:可以特赦对目标值影响大的状态
候选集
候选集的大小,过大增加计算内存和计算时间,过小过早陷入局部最优,可以选择所有邻居,也可以选择表现较好的邻居,还可以随机选择几个邻居
评价函数
评价函数分为直接评价函数和间接评价函数,直接评价函数没什么好讲的,间接评价函数是一个反映目标函数特性的函数,会比目标函数的计算更加简洁,用以减少计算时间等