局部搜索算法与调度算法的性能分析
1. 布尔可满足性问题的局部搜索算法
在布尔可满足性问题(SAT)中,有两种重要的局部搜索算法:CSAT和SimpleCSAT。
1.1 CSAT算法
- 输入 :一个合取范式(CNF)公式 $F$,整数 $MAXFLIPS$ 和 $MAXTRIES$。
- 输出 :公式 $F$ 变量的一个真值赋值,或者 “No”。
- 方法 :
- 重复 $MAXTRIES$ 次:
- 随机选取一个赋值 $I$。
- 重复 $MAXFLIPS$ 次:
- 如果 $I$ 满足 $F$,则输出 $I$。
- 随机选择 $F$ 中的一个变量 $v$,使得 $v$ 取反后的赋值 $I(v)$ 比 $I$ 满足更多的子句。若不存在这样的变量,随机选择一个不改变满足子句数量的变量 $v$;若还是不存在,从 $F$ 中所有变量集合里随机选一个变量 $v$。
- 改变 $I$ 中 $v$ 的值。
- 输出 “No”。
- 重复 $MAXTRIES$ 次:
以下是CSAT算法的伪代码:
Input: A formul
超级会员免费看
订阅专栏 解锁全文

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



