利用邻域启发式算法提升变邻域搜索
在解决优化问题时,邻域启发式算法在变邻域搜索(VNS)中起着至关重要的作用。下面将详细介绍几种邻域启发式算法及其在实验中的表现。
冲突变量启发式算法
- ConflictVar - Star :该启发式算法首先选择一个中心变量 $x_c$,然后在 $neighbors(x_c)$ 的冲突变量中随机选择下一个变量。若这些变量都被选完,则按以下顺序在非空子集里选择新的中心变量:
- 已选变量相邻的冲突变量子集(第 7 行);
- $X_{conflicted}$ 中的冲突变量子集(第 9 行);
- 尚未选择的变量子集(第 10 行)。
选择新中心变量后,允许选择其相邻变量(第 11 行)。每次选择变量时,会更新 $X_{unassigned}$、$X_{conflicted}$ 和 $X_{allowed}$(第 12 - 14 行)。第一个中心变量 $x_{c1}$ 的自由度为 $max(k - 1, conflictDeg(x_{c1}))$,其他变量的自由度在 1 到其自身度之间。
- ConflictVarAndSat - Star :此算法展示了选择非冲突变量的重要性。以一个完整赋值 $A$ 为例,假设存在 $(x_1 = a)$ 和 $(x_2 = a)$,且与 $x_1$ 和 $x_2$ 相关的虚线约束 $c$ 是一个硬等式约束。仅基于冲突的启发式算法会选择 $x_1$ 而不选 $x_2$,但在重建步骤中,由于 $c$ 是硬约束,$x_1
超级会员免费看
订阅专栏 解锁全文
18

被折叠的 条评论
为什么被折叠?



