5.2 Randomised Iterative Improvement Algorithms 随机迭代改进算法

迭代改进算法的主要限制源于它们陷入给定评估函数的局部最小值的事实。 处理此问题的一种简单方法是偶尔允许不改进的搜索步骤,即,从当前邻域中选择邻居s'∈N(s),其中g(s')≥g(s)。实现这种方法的机制有很多;其中许多使用了随机决策,以平衡不断恶化的搜索步骤的多样化效果和迭代改进提供的搜索强化效果。

随机迭代改进(RII)是迭代改进的扩展,其中在每个步骤中具有固定概率wp,从当前邻域N(s)随机均匀地选择位置s' - 这被称为随机游走步骤; 否则(即,概率为1-wp),执行标准II步骤。注意,使用这种机制,可以执行任意长的(可能更糟的)随机游走步骤序列。因此,只要给定的邻域图是连通的(即,通过一系列的搜索步骤,可以得到任意两个候选解),RII在任意长时间运行时,会找到任何概率接近1的可解决问题实例的解,即,,其中Ps(RT≤t)是在最多t时间内找到解的概率。具有此属性的算法称为概率近似完整(PAC)。

The Min Conflicts Heuristic with Random Walk (WMCH) 最小冲突启发式与随机游走(WMCH)

利用一种简单的随机游动机制扩展最小冲突启发式,得到一种称为WMCH的随机迭代改进算法[116]。在每个WMCH步骤中,首先从冲突集合中随机均匀地选择变量xi(如在MCH中)。然后,在概率wp≥0的情况下,执行随机游走步骤,即,从其随机均匀选择的域Di分配xi。 在其余情况下,即概率为1-wp,选择并分配冲突最小化值,如在传统的MCH步骤中那样。步行概率(The walk probability)wp(也称为噪声设置)对算法的行为具有关键影响。 对于wp = 0,该算法等效于标准的MinCon流量启发式,因此基本上不完整,但是对于wp> 0,WMCH在概率上近似完整(PAC)。直观地说,对于低的遍历概率,搜索过程很可能难以逃脱搜索空间的局部极小区域,而对于非常高的遍历概率,它的行为开始类似于一个不知情的随机遍历,它将越来越缺乏针对解决方案的有效启发式指导。然而,对于适当选择的wp设置,WMCH在随机重启时的表现明显优于MCH[101]。

WMCH中的随机游走步骤总是涉及一个出现在当前不受约束的约束中的变量; 因此,它们也被称为冲突导向随机游走步骤。 然而,与WMCH之前和启发WMS的GWSAT算法[92](如下所述)不同,WMCH中的冲突导向随机游走步骤不一定能满足任何先前不令人满意的约束。 WMCH可以稍微变化,使得在每个随机游走步骤中,在选择当前违反的约束C中涉及的变量xi之后,为xi分配值v使得C变得令人满意; 如果不存在这样的v,则随机选择一个值。 发现该变体比WMCH [101]中使用的随机游走机制略微好一些。

GSAT with Random Walk (GWSAT)  具有随机游走的GSAT

通过使用类似于WMCH中使用的随机游走机制扩展它,可以显着改进基本的GSAT算法。 这里,在每个冲突导向的随机游走步骤中,从当前不满足条款中出现的所有变量的集合中随机均匀地选择要被变换的变量。 请注意,作为任何此类步骤的结果,至少一个先前不满意的条款将变得令人满意。 这种机制与Papadimitriou的冲突导向随机游走算法密切相关(实际上受其启发),已被证明可以在二次预期时间内解决2-SAT [80]。

具有随机游走的GSAT(GWSAT)[92]是基本GSAT的变体,其在每个局部搜索步骤中概率地决定执行基本GSAT步骤和冲突定向随机游走步骤(如先前所解释的)。 选择具有固定步行概率wp的后一类步骤,否则执行基本GSAT步骤。 虽然对于wp = 0,GWSAT相当于基本的GSAT,但已经证明,对于任何wp> 0,它在概率上近乎完整(PAC)[47]。

对于适当选择的步行概率设置(在问题实例之间变化,但在许多情况下可能高达0.5),GWSAT实现了比基本GSAT更好的性能[92]。 此外,已经表明,当使用足够高的噪声设置时,GWSAT不会遭受停滞行为; 此外,对于硬SAT实例,它通常显示指数运行时分布(RTD)[44,45]。 因此,静态重启是无效的,并且可以通过多个独立运行并行化来获得最佳加速[52]。 对于低噪声设置,经常观察到停滞行为; 最近,有证据表明相应的RTD可以通过指数分布的混合来表征[46]。

WalkSAT

WalkSAT算法在概念上与GWSAT和MCH密切相关;它最初由Selman、Kautz和Cohen[92]发表,现在俗称WalkSAT/SKC。该算法后来被扩展到一个称为WalkSAT architecture的算法框架[73],该框架包括最初的WalkSAT/SKC算法以及其他几种针对SAT的高性能SLS算法(其中有几种将在本章后面的章节中介绍)。此外,已经为CSP实例的更一般类以及约束优化问题开发了WalkSAT的变体(参见5.6节)。

WalkSAT / SKC(和所有其他WalkSAT算法)基于类似于MCH中使用的2阶段变量选择过程。 在每个局部搜索步骤中,首先从所有当前不满足条款的集合中随机均匀地选择子句c。然后,出现在c中的变量之一被填充以获得新的赋值。 该变量的选择基于启发式评分函数得分b(x),该得分函数得分b(x)通过移动给定变量x来计算将被破坏(即变得不令人满意)的当前满意条款的数量。使用此评分函数,应用以下变量选择方案:如果在阶段1中选择的子句c中存在具有得分b(x)= 0的变量x,即,如果c可以在不破坏另一个条款的情况下得到满足,那么x就会被淹没(这称为零损坏步骤)。如果c中存在多个这样的变量,则随机均匀地选择其中一个变量并进行变换。 如果不存在这样的变量,具有一定概率1-p,则选择具有最小得分b值的变量(贪婪步骤;随机均匀地断开连接); 在其余情况下,即,以概率p(所谓的噪声设置),随机均匀地选择来自c的变量之一(随机游走步骤)。

请注意 - 就像在GWSAT中一样,但与MCH不同 -  WalkSAT / SKC中的每一步都保证满足至少一个先前不满足的条款(但同时可能导致许多其他条款变得不满足)。否则,WalkSAT / SKC使用相同的随机搜索初始化,静态随机重启机制和终止标准作为GSAT。

虽然已经证明具有固定maxTries参数的WalkSAT / SKC在应用于2-SAT时具有PAC属性[16],但是在一般情况下不知道该算法是否是PAC。 实际上,当使用足够高(实例特定的)噪声设置时,WalkSAT / SKC似乎没有任何停滞行为,在这种情况下,其运行时行为以指数RTD为特征[44,45,49]。与GWSAT的情况一样,低噪声设置经常观察到停滞行为,并且有证据表明相应的RTD可以通过指数分布的混合来表征[46]。

通常,当使用(有些实例特定的)优化噪声设置时,WalkSAT / SKC的性能明显优于GWSAT。此外,由于它的两阶段变量选择方案,WalkSAT/SKC(与所有其他WalkSAT算法和mchvariant)可以高效地实现,而无需使用GSAT和GWSAT高效实现所必需的渐进评分更新技术。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值