贪婪随机自适应搜索(Greedy Randomized Adaptive Search,GRAS)

Greedy Randomized Adaptive Search 算法超详细解析,附代码实现TSP问题求解

GRASP(贪婪随机自适应搜索)

介绍

  • 在算法的每次迭代中,主要由两个阶段组成:构造(construction)和局部搜索( local search)
  • 构造(construction)阶段主要用于生成一个可行解,而后该初始可行解会被放进局部搜索进行邻域搜索,直到找到一个局部最优解为止

整体框架
伪代码

GRASP伪代码
GRAS主要由两部分组成:

  1. Greedy_Randomized_Construction:在贪心的基础上,加入一定的随机因素,构造初始可行解。
  2. Local Search:对上面构造的初始可行解进行邻域搜索,直到找到一个局部最优解。

Greedy_Randomized_Construction伪代码
贪婪随机构造伪代码
  1. 一开始解是一个空集。
  2. 初始化候选元素的集合,这里候选元素是指能放进Solution的元素(也就是目前Solution里面没有的),比如1,2,3……。
  3. 对候选集合的每个元素进行评估,计算将元素x放入Solution会导致目标函数f改变量△x。
  4. 根据△x对各个元素排序,选取部分较好的候选元素组成RCL表(贪心性体现在这里)。
  5. 随机在RCL中选取一个元素放进Solution。(算法的随机性)
  6. 更新候选元素集合,然后对每个元素进行重新评估计算△值。(算法的自适应性体现在这里)

α参数主要是控制RCL的长度

  • 当α=0时,纯贪心,只能选取最优的候选元素。
  • 当α=1时,纯随机,所有候选元素都可随机选。

你可能感兴趣的:(贪婪随机自适应搜索(Greedy Randomized Adaptive Search,GRAS))