邻里搜索

时间:2018-10-14 12:43:07

标签: python

我正在研究2级车辆路径问题(2E-VRP),我想使用邻域搜索法启发式方法:

  1. 我想知道可变邻域搜索(VNS),大邻域搜索(LNS)和自适应大邻域搜索(ALNS)之间有什么区别。
  2. 我可以在LNS中定义多个销毁运算符吗?如果是,我应该在每次迭代中按顺序使用所有它们,还是只是随机选择其中之一?
  3. 还可以在ALNS中,在每次迭代中使用的所有销毁运算符,还是其中一个根据其得分选择?

1 个答案:

答案 0 :(得分:0)

粗略地说,搜索邻域是指移动或搜索迭代可达到的不同解决方案。我认为,当解决方案似乎陷入局部最优状态时,可变邻域搜索会系统地增加搜索邻域(即,当小邻域不执行任何操作时使邻域更大),而大邻域搜索具有固定但较大的搜索邻域(即,邻域的大小不变)。自适应大邻域搜索将具有对应于不同搜索操作的多个可能邻域-例如不同的破坏或建设启发法-并会尝试了解哪个社区最好。

  

我可以在LNS中定义多个销毁运算符吗?如果可以,我应该   在每次迭代中依次使用所有这些参数,或者只选择其中一个   他们随机吗?

我怀疑只随机选择一个会更有效。

  

在ALNS中,在每次迭代或一次迭代中使用的所有销毁运算符   他们是根据得分来选择的?

ALNS会根据其得分选择一个,但是您可能仍然需要有一个非零的概率来选择任何运算符以适应工作(因为您需要不时地测试所有运算符)。