17、局部搜索与k - SAT问题求解算法

局部搜索与k - SAT问题求解算法

在解决k - SAT(k - 可满足性)问题上,有两种主要的算法思路,它们都基于在汉明空间(Hamming space)的球内进行局部搜索。下面我们将详细介绍这两种算法及其相关概念。

汉明空间与汉明距离

汉明空间(维度为n)是所有长度为n的2ⁿ个二进制字符串的集合。两个二进制字符串之间的汉明距离是指它们对应位置上不同符号的数量。例如,字符串(0, 1, 1, 1, 0)和(1, 1, 1, 0, 0)的汉明距离为2。显然,长度为n的两个字符串之间的距离最多为n。

对于一个具有n个变量的CNF(合取范式)公式,我们可以将其满足赋值看作汉明空间中的元素。通过固定变量的顺序,每个满足赋值对应一个长度为n的二进制字符串。如果第i个变量在满足赋值中为真,则字符串的第i个位置元素为1。我们将所有真值赋值的集合视为汉明空间Hₙ = {0, 1}ⁿ。两个真值赋值a和b之间的汉明距离是这两个赋值不同的比特数,也就是从a得到b需要翻转的比特数。对于一个真值赋值a和整数d,我们用H(a, d)表示以a为中心、半径为d的球,它是所有与赋值a的汉明距离至多为d的真值赋值的集合。与赋值a距离恰好为i的赋值数量为$C_{n}^{i}$,球的体积(即H(a, d)的基数)为$|H(a, d)| = \sum_{i = 0}^{d}C_{n}^{i}$。

随机游走算法求解k - SAT

我们首先介绍一种随机化算法来解决k - SAT问题,其分析基于以下引理。

引理8.1 :设F是一个具有n个变量的可满足公式。假设图8.1中描述的算法k - sat3在F上运行,直到找到一个满足

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值