您的位置:首页 > 其它

通用局部搜索算法之WALKSAT

2010-05-26 08:29 1651 查看

通用局部搜索算法之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 在GSAT方法中加入随机噪声,来帮助避免算法陷入局部最优的赋值。特
别地,WalkSAT算法不会持续地选择最小化赋值,偶尔算法会随机选择一个变量并
改变其值。

存在许多的GSAT和WalkSAT算法版本。其中,已经证明WalkSAT算法在求解由自动
规划问题(automated planning problems)转化而来的可满足性问题时非常有用。将
规划问题转化为布尔可满足性问题的方法称为satplan。

MaxWalkSat 是WalkSAT的一个变体,用于求解加权可满足性问题(weighted satisfiability problem),
在加权可满足性问题中,每个子句与一个权值相关,其目标是找到一个赋值,该赋值
可能满足也可能不完全满足合取公式,但是要求最大化满足子句的总权值。
转自:
http://blog.163.com/highway_xxw/blog/static/26754625200972884447799/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: