禁忌搜索算法

976 阅读1分钟

算法思路

  • 第一步:初始化参数,禁忌表长度
  • 第二步:随机生成初始解,将初始解当做最优解。
  • 第三步:通过在初始解在其邻域内变化,得到候选解集。
  • 第四步:从候选解集中选择最优好的一个解。
  • 第五步:用最优候选解与最优解比较,若比最优解好,就运用“藐视准则”,不管其在不在禁忌表内,都接受他,并将它重新加入禁忌表中,若它在禁忌表中,则需要删除该找对象,最后将最优候选解作为下次迭代的初始解;若最优候选解比最优解差,则判断是否处于禁忌表中,若不存在其中,就将其加入其中,若存在则抛弃,继续用这次迭代的初始解作为下次迭代的初始解。

注意

为了逃离局部最小值,禁忌搜索算法必须能够接受劣解,一旦接受了劣解,算法迭代可能陷入循环,为了必反循环,算法将最近接受的移动放入禁忌表中。所以不管最优候选解是否优于当前解,只要其不存在与禁忌表中,都应将其作为下次迭代的初始解。

改进

遗传禁忌搜索算法

先用遗传算法进行全局搜索,将遗传算法得到的解作为禁忌搜索的初始解进行禁忌搜索。

参考文献

[1]陈竑翰,熊福力,王冬源,杜瑶,储梦伶.基于混合遗传禁忌算法的预制构件调度研究[J].价值工程,2020,39(17):247-250.