通用局部搜索算法之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/
相关文章推荐
- 通用局部搜索算法之爬山法也叫贪婪算法
- 通用局部搜索算法之模拟退火[转]
- 通用局部搜索算法之爬山法也叫贪婪算法 (转)
- 通用局部搜索算法之tabu搜索(转)
- 基于分解的多目标进化算法中的局部搜索-LocalSeach
- N皇后问题:基于局部搜索策略的高效算法
- 优化算法 | N皇后问题启发式算法局部搜索
- 使用STL通用算法find_if()在list中搜索对象
- 图搜索的通用算法
- 通用论坛正文提取算法设计
- 经典算法之二分搜索技术
- 蓝桥杯 算法训练 摆动序列 搜索水题
- HDOJ —2009 翻纸牌游戏——搜索(回溯)算法
- 图算法之广度优先搜索
- 算法系列笔记7(有关图的算法一—搜索,拓扑排序和强连通分支)
- 算法java实现--动态规划--最优二叉树搜索
- 数据结构与算法(4)----->链表、二分搜索
- 通用算法包(记录)
- A星算法-1 A星路径搜索算法入门
- 数据结构与算法-----搜索和排序(C语言库函数的使用)