有限约束满足问题的算法研究与实践
算法比较的难题
在算法研究领域,对不同算法进行公平比较往往并非易事。因为算法的性能会极大地受到巧妙的数据结构和优化手段的影响,所以目前这仍是一个有待解决的问题。
测试用例生成过程
为了更全面地测试算法,采用了一种测试用例生成程序,具体步骤如下:
1. 起始解设定 :从一个已知解开始,例如设定变量 (v_1: d),(v_2: A),(\cdots),(v_n: c)。
2. 添加可选值 :为每个变量 (v_i) 添加一定数量的可选值。比如 (v_1: d, E),(v_2: A, b),(\cdots),(v_n: c, D) 等。
3. 过滤简单问题 :将生成的问题实例提交给“过于简单”过滤器。该过滤器的工作方式为:
- 为待判断的问题实例构造给定数量 (r) 的随机赋值。
- 检查这些赋值,确定有多少满足 CNF - SAT 实例。
- 如果满足的百分比超过给定阈值,则判定该问题实例过于简单,将其丢弃;否则,将其记录到测试数据库中。
4. 重复生成 :重复上述步骤,直到达到所需的测试用例数量。
相关工作与混合算法
Spears 提出的算法是早期用于解决可满足性问题的神经网络和遗传算法之一,在处理非常困难的可满足性问题上取得了不错的结果。而我们采用了基于混合算法的不同方法,在逻辑约束求解和离散组合优化的七年研究中,开发了针对可满足性问题的混合方法。该方法的主要贡献包括:
有限约束满足问题的算法研究
超级会员免费看
订阅专栏 解锁全文

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



