通用局部搜索算法之WALKSAT
设施区位及算法 2009-08-28 20:44:47 阅读29 评论0 字号:大中小
通用局部搜索算法之WALKSAT
GSAT 和 WalkSat 是用于求解布尔可满足性问题(boolean satisfiability problems)
的局部搜索算法。
两种算法均需要将问题表示为/或转化为合取规范形式(conjunctive normal form)。
算法的基本框架为:
(1)为合取式中的每个变量赋以一个随机值;
(2)如果该赋值满足所有的子句(clauses),则算法结束,并返回该赋值;
(3)否则,选择某个变量并重新对其赋值,然后重复上述过程。
WalkSAT和GSAT的区别在于选择重新赋值的变量的方法不同。
GSAT 和 WalkSat 是用于求解布尔可满足性问题(boolean satisfiability problems)
的局部搜索算法。
两种算法均需要将问题表示为/或转化为合取规范形式(conjunctive normal form)。
算法的基本框架为:
(1)为合取式中的每个变量赋以一个随机值;
(2)如果该赋值满足所有的子句(clauses),则算法结束,并返回该赋值;
(3)否则,选择某个变量并重新对其赋值,然后重复上述过程。
WalkSAT和GSAT的区别在于选择重新赋值的变量的方法不同。
GSAT 要求在新的赋值中最小化未满足子句的数量,如果经过一定数量的迭代仍未
找到满足的赋值,算法会重新开始一个新的随机赋值;如果一个满足的赋值找到,
则算法结束,或者重新开始的次数超过一个给定的最大值。
WalkSAT 在GSAT方法中加入随机噪声,来帮助避免算法陷入局部最优的赋值。特
别地,WalkSAT算法不会持续地选择最小化赋值,偶尔算法会随机选择一个变量并
改变其值。
存在许多的GSAT和WalkSAT算法版本。其中,已经证明WalkSAT算法在求解由自动
规划问题(automated planning problems)转化而来的可满足性问题时非常有用。将
规划问题转化为布尔可满足性问题的方法称为satplan。
MaxWalkSat 是WalkSAT的一个变体,用于求解加权可满足性问题(weighted satisfiability problem),
在加权可满足性问题中,每个子句与一个权值相关,其目标是找到一个赋值,该赋值
可能满足也可能不完全满足合取公式,但是要求最大化满足子句的总权值。
别地,WalkSAT算法不会持续地选择最小化赋值,偶尔算法会随机选择一个变量并
改变其值。
存在许多的GSAT和WalkSAT算法版本。其中,已经证明WalkSAT算法在求解由自动
规划问题(automated planning problems)转化而来的可满足性问题时非常有用。将
规划问题转化为布尔可满足性问题的方法称为satplan。
MaxWalkSat 是WalkSAT的一个变体,用于求解加权可满足性问题(weighted satisfiability problem),
在加权可满足性问题中,每个子句与一个权值相关,其目标是找到一个赋值,该赋值
可能满足也可能不完全满足合取公式,但是要求最大化满足子句的总权值。