毕业作品网站

 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>毕设资料 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopinvvp QQ:1015083682   

基于QT实现的数独游戏DPLL的SAT求解器设计 任务书

文章来源:www.biyezuopin.vip   发布者:毕业作品网站  

任 务 书

题目名称

基于SAT的数独游戏求解程序

题目内容

SAT问题即命题逻辑公式的可满足性问题(satisfiability problem),是计算机科学与人工智能基本问题,是一个典型的NP完全问题,可广泛应用于许多实际问题如硬件设计、安全协议验证等,具有重要理论意义与应用价值。

对于任一布尔变元x,x与其非“¬x”称为文字(literal)。对于多个布尔变元,若干个文字的或运算l1∨l2∨…∨lk称为子句(clause)。只含一个文字的子句称为单子句。不含任何文字的子句称为空子句,常用符号□表示。子句所含文字越多,越易满足,空子句不可满足。

SAT问题一般可描述为:给定布尔变元集合{x1, x2, ..., xn}以及相应的子句集合{c1, c2, ..., cm},对于合取范式(CNF范式):F = c1∧c2∧...∧cm,判定是否存在对每个布尔变元的一组真值赋值使F为真,当为真时(问题是可满足的,SAT),输出对应的变元赋值(一组解)结果。一个CNF公式也可以表示成子句集合的形式:S={c1,c2,...,cm}.

DPLL算法是经典的SAT完备型求解算法,对给定的一个SAT问题实例,理论上可判定其是否满足,满足时可给出对应的一组解。本设计要求实现基于DPLL的算法与程序框架,包括程序的改进也必须在此算法的基础上进行。

本设计要求基于DPLL算法实现一个完备SAT求解器,对输入的CNF范式算例文件,解析并建立其内部表示;精心设计问题中变元、文字、子句、公式等有效的物理存储结构以及一定的分支变元处理策略,使求解器具有优化的执行性能;对一定规模的算例能有效求解,输出与文件保存求解结果,统计求解时间。

题目要求

功能要求

本设计要求精心设计问题中变元、文字、子句、公式等有效的物理存储结构,基于DPLL过程实现一个高效SAT求解器,对于给定的中小规模算例进行求解,输出求解结果,统计求解时间。要求具有如下功能:

⑴ 输入输出功能:包括程序执行参数的输入,SAT算例cnf文件的读取,执行结果的输出与文件保存等。(15%)

⑵ 公式解析与验证:读取cnf算例文件,解析文件,基于一定的物理结构,建立公式的内部表示;并实现对解析正确性的验证功能,即遍历内部结构逐行输出与显示每个子句,与输入算例对比可人工判断解析功能的正确性。数据结构的设计可参考文献[1-3]。(15%)

⑶ DPLL过程:基于DPLL算法框架,实现SAT算例的求解(数据结构不要使用C++现有的vector等类库)。(35%)

⑷ 时间性能的测量:基于相应的时间处理函数(参考time.h),记录DPLL过程执行时间(以毫秒为单位),并作为输出信息的一部分。(5%)

⑸ 程序优化:对基本DPLL的实现进行存储结构、分支变元选取策略[1-3]等某一方面进行优化设计与实现,提供明确的性能优化率结果。优化率的计算公式为:[(t-to)/t]*100%,其中t 为未对DPLL优化时求解基准算例的执行时间,to则为优化DPLL实现时求解同一算例的执行时间。(15%)

功能(1)至(5)为基础功能,占功能分值的85%。

(6)SAT应用:将数独游戏[5]问题转化为SAT问题[6-8],并集成到上面的求解器进行数独游戏求解,游戏可玩,具有一定的/简单的交互性。应用问题归约为SAT问题的具体方法可参考文献[3]与[6-8]。(15%)

测试算例要求

不少于18个SAT算例,其中可满足的算例不少于15个,不满足的算例不少于3个,大中小算例各占三分之一。鉴于大家实现的可能只是初级求解器,对算例规模的要求为:小型算例变元数为100个左右;中型算例变元数介于200-500个; 大型算例变元数600个以上。本设计提供部分cnf算例集,同学们可寻找与选择、扩充测试算例。在设计报告的测试分析部分列表给出每个测试算例下列信息:算例名、算例变元数、子句数与变元数比值、满足还是不满足或不确定、DPLL求解时间(t与to)以及优化率等信息。课堂检查时,主要对基准算例进行测试。

输出文件要求

对每个算例的求解结果要求输出到一个与算例同名的文件(文件扩展名为.res),文件内容与格式要求如下:

s求解结果//1表示满足,0表示不满足,-1表示在限定时间内未完成求解

v -1 2 -3 … //满足时,每个变元的赋值序列,-1表示第一个变元1取假,2表示第二个变元取真,用空格分开,此处为示例。

t 17     //以毫秒为单位的DPLL执行时间,可增加分支规则执行次数信息

参考文献

[1] 张健著. 逻辑公式的可满足性判定—方法、工具及应用. 科学出版社,2000

[2]Tanbir Ahmed. An Implementation of the DPLL Algorithm. Master thesis, Concordia University,Canada,2009

[3] 陈稳. 基于DPLL的SAT算法的研究与应用.硕士学位论文,电子科技大学,2011

[4]Carsten Sinz.Visualizing SAT Instances and Runs of the DPLL Algorithm.J Autom Reasoning (2007) 39:219–243

[5] 360百科:数独游戏https://baike.so.com/doc/3390505-3569059.html

[6] Tjark Weber. A sat-based sudoku solver. In 12th International Conference on Logic forProgramming, Artificial Intelligence and Reasoning, LPAR 2005, pages 11–15, 2005.

[7]Ins Lynce and Jol Ouaknine. Sudoku as a sat problem.In Proceedings of the 9th InternationalSymposium on Artificial Intelligence and Mathematics, AIMATH 2006, Fort Lauderdale.Springer,2006.

[8] Uwe Pfeiffer, Tomas Karnagel and Guido Scheffler. A Sudoku-Solver for Large Puzzles using SAT. LPAR-17-short (EPiC Series, vol. 13), 52–57

[9] Sudoku Puzzles Generating: from Easy to Evil.

http://zhangroup.aporc.org/images/files/Paper_3485.pdf

[10] Robert Ganian and Stefan Szeider. Community Structure Inspired Algorithms for SAT and #SAT. International Conference on Theory and Applications of Satisfiability Testing(SAT 2015),223-237360

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopinvvp QQ:1015083682     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
手部康复指板屈伸按摩装置的机构设 智能电表控制电路设计 论文指导记 家用光伏发电系统逆变电源设计 开
家用光伏发电系统逆变电源设计 任 家用光伏发电系统逆变电源设计 选 钢筋调直机机械结构设计 开题报告
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopinvvp QQ:1015083682  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!