用包含-排除原理的迭代求解SAT

Gábor Kusper, C. Biró
{"title":"用包含-排除原理的迭代求解SAT","authors":"Gábor Kusper, C. Biró","doi":"10.1109/SYNASC.2015.38","DOIUrl":null,"url":null,"abstract":"Our goal is to present a basic, novel, and correct SAT solver algorithm, show its soundness, compare it with a standard SAT solver, give some ideas in which cases might it be competitive. We do not present a fine-tuned, state-of-the-art SAT solver, only a new basic algorithm. So we introduce CCC, a SAT solver algorithm which is an iterative version of the inclusion-exclusion principle. CCC stands for Counting Clear Clauses. It counts those full length (in our terminology: clear) clauses, which are subsumed by the input SAT problem. Full length clauses are n-clauses, where n is the number of variables in the input problem. A SAT problem is satisfiable if it does not subsume all n-clauses. The idea is that in an n-clause each of n variables is present either as a positive literal or as a negative one. So we can represent them by n bits. CCC is motivated by the inclusion-exclusion principle, it counts full length clauses as the principle does in case of the SAT problem, but in an iterative way. It works in the following way: It sets its counter to be 0. It converts 0 to an n-clause, which is the one with only negative literals. It checks whether this n-clause is subsumed by the input SAT problem. If yes, it increases the counter and repeats the loop. If not, we have a model, which is given by the negation of this n-clause. We show that almost always we can increase the counter by more than one. We show that this algorithm always stops and finds a model if there is one. We present a worst case time complexity analysis and lot of test results. The test results show that this basic algorithm can outperform a standard SAT solver, although its implementation is very simple without any optimization. CCC is competitive if the input problem contains lot of short clauses. Our implementation can be downloaded and the reader is welcome to make a better solver out of it. We believe that this new algorithm could serve as a good basis for parallel algorithms, because its memory usage is constant and no communication is needed between the nodes.","PeriodicalId":6488,"journal":{"name":"2015 17th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC)","volume":"284 1","pages":"189-190"},"PeriodicalIF":0.0000,"publicationDate":"2015-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":"{\"title\":\"Solving SAT by an Iterative Version of the Inclusion-Exclusion Principle\",\"authors\":\"Gábor Kusper, C. Biró\",\"doi\":\"10.1109/SYNASC.2015.38\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Our goal is to present a basic, novel, and correct SAT solver algorithm, show its soundness, compare it with a standard SAT solver, give some ideas in which cases might it be competitive. We do not present a fine-tuned, state-of-the-art SAT solver, only a new basic algorithm. So we introduce CCC, a SAT solver algorithm which is an iterative version of the inclusion-exclusion principle. CCC stands for Counting Clear Clauses. It counts those full length (in our terminology: clear) clauses, which are subsumed by the input SAT problem. Full length clauses are n-clauses, where n is the number of variables in the input problem. A SAT problem is satisfiable if it does not subsume all n-clauses. The idea is that in an n-clause each of n variables is present either as a positive literal or as a negative one. So we can represent them by n bits. CCC is motivated by the inclusion-exclusion principle, it counts full length clauses as the principle does in case of the SAT problem, but in an iterative way. It works in the following way: It sets its counter to be 0. It converts 0 to an n-clause, which is the one with only negative literals. It checks whether this n-clause is subsumed by the input SAT problem. If yes, it increases the counter and repeats the loop. If not, we have a model, which is given by the negation of this n-clause. We show that almost always we can increase the counter by more than one. We show that this algorithm always stops and finds a model if there is one. We present a worst case time complexity analysis and lot of test results. The test results show that this basic algorithm can outperform a standard SAT solver, although its implementation is very simple without any optimization. CCC is competitive if the input problem contains lot of short clauses. Our implementation can be downloaded and the reader is welcome to make a better solver out of it. We believe that this new algorithm could serve as a good basis for parallel algorithms, because its memory usage is constant and no communication is needed between the nodes.\",\"PeriodicalId\":6488,\"journal\":{\"name\":\"2015 17th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC)\",\"volume\":\"284 1\",\"pages\":\"189-190\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2015-09-21\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"5\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2015 17th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/SYNASC.2015.38\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2015 17th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SYNASC.2015.38","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5

摘要

我们的目标是提出一个基本的、新颖的、正确的SAT求解算法,展示其合理性,将其与标准的SAT求解器进行比较,并给出一些在哪些情况下它可能具有竞争力的想法。我们没有提出一个微调的,最先进的SAT求解器,只有一个新的基本算法。因此,我们引入了一种SAT求解算法CCC,它是包含-不排除原理的迭代版本。CCC代表计数明确条款。它计算那些完整长度(用我们的术语来说是:clear)子句,这些子句包含在输入SAT问题中。全长子句是n子句,其中n是输入问题中变量的数量。一个SAT问题是可满足的,如果它不包含所有的n子句。其思想是,在n子句中,n个变量中的每一个都以正文本或负文本的形式出现。所以我们可以用n位表示它们。CCC是由包容-排除原则驱动的,它和SAT问题的原则一样计算全长从句,但以迭代的方式计算。它的工作方式如下:它将计数器设置为0。它将0转换为n子句,即只有负字面量的子句。它检查这个n子句是否包含在输入SAT问题中。如果是,则增加计数器并重复循环。如果不是,我们有一个模型,它由n子句的否定给出。我们证明,几乎总是可以将计数器增加1以上。我们证明了该算法总是停止并找到一个模型,如果有一个。给出了最坏情况下的时间复杂度分析和大量的测试结果。测试结果表明,尽管该算法的实现非常简单,但其性能优于标准的SAT求解器。如果输入问题包含大量短条款,则CCC具有竞争性。我们的实现可以下载,欢迎读者从中做出更好的求解器。我们认为这种新算法可以作为并行算法的良好基础,因为它的内存使用是恒定的,并且节点之间不需要通信。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Solving SAT by an Iterative Version of the Inclusion-Exclusion Principle
Our goal is to present a basic, novel, and correct SAT solver algorithm, show its soundness, compare it with a standard SAT solver, give some ideas in which cases might it be competitive. We do not present a fine-tuned, state-of-the-art SAT solver, only a new basic algorithm. So we introduce CCC, a SAT solver algorithm which is an iterative version of the inclusion-exclusion principle. CCC stands for Counting Clear Clauses. It counts those full length (in our terminology: clear) clauses, which are subsumed by the input SAT problem. Full length clauses are n-clauses, where n is the number of variables in the input problem. A SAT problem is satisfiable if it does not subsume all n-clauses. The idea is that in an n-clause each of n variables is present either as a positive literal or as a negative one. So we can represent them by n bits. CCC is motivated by the inclusion-exclusion principle, it counts full length clauses as the principle does in case of the SAT problem, but in an iterative way. It works in the following way: It sets its counter to be 0. It converts 0 to an n-clause, which is the one with only negative literals. It checks whether this n-clause is subsumed by the input SAT problem. If yes, it increases the counter and repeats the loop. If not, we have a model, which is given by the negation of this n-clause. We show that almost always we can increase the counter by more than one. We show that this algorithm always stops and finds a model if there is one. We present a worst case time complexity analysis and lot of test results. The test results show that this basic algorithm can outperform a standard SAT solver, although its implementation is very simple without any optimization. CCC is competitive if the input problem contains lot of short clauses. Our implementation can be downloaded and the reader is welcome to make a better solver out of it. We believe that this new algorithm could serve as a good basis for parallel algorithms, because its memory usage is constant and no communication is needed between the nodes.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Incremental Reasoning on Strongly Distributed Multi-agent Systems Extensions over OpenCL for Latency Reduction and Critical Applications An Improved Upper-Bound Algorithm for Non-preemptive Task Scheduling Adaptations of the k-Means Algorithm to Community Detection in Parallel Environments Improving Malware Detection Response Time with Behavior-Based Statistical Analysis Techniques
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1