设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>毕设资料 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
基于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

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

                 

打印本页 | 关闭窗口
本类最新文章
台式数控等离子切割机机械结构设计 台式数控等离子切割机机械结构设计 台式数控等离子切割机机械结构设计
基于PLC的罐装加工过程为全自动 基于Python电影推荐系统设计 基于西门子S7-200PLC四层
| 关于我们 | 友情链接 | 毕业设计招聘 |

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