课程设计报告.docx
《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(16页珍藏版)》请在课桌文档上搜索。
1、率中科技火学课程设计报告题目:基于SAT的数独游戏求解程序课程名称:程序设计综合课程设计专业班级:CS1704学号:U姓名:黄明锋指导教师:袁凌报告日期:计算机科学与技术学院任务书设计内容SAT问题即命题逻辑公式的可满足性问题(satisfiabilityproblem),是计算机科学与人工智能基本问题,是一个典型的NP完全问题,可广泛应用于许多实际问题如硬件设计、安全协议验证等,具有重要理论意义与应用价值。本设计要求基于DP1.1.算法实现一个完备SAT求解器,对输入的CNF范式算例文件,解析并建立其内部表示;精心设计问题中变元、文字、子句、公式等有效的物理存储结构以及一定的分支变元处理策略
2、,使求解器具有优化的执行性能;对一定规模的算例能有效求解,输出与文件保存求解结果,统计求解时间。设计要求要求具有如下功能:输入输出功能:包括程序执行参数的输入,SAT算例cnf文件的读取,执行结果的输出与文件保存等。(15%)公式解析与验证:读取Cnf算例文件,解析文件,基于一定的物理结构,建立公式的内部表示;并实现对解析正确性的验证功能,即遍历内部结构逐行输出与显示每个子句,与输入算例对比可人工判断解析功能的正确性。数据结构的设计可参考文献(15%)DP1.1.过程:基于DP1.1.算法框架,实现SAT算例的求解。(35%)(4)时间性能的测量:基于相应的时间处理函数(参考time,h),记
3、录DP1.1.过程执行时间(以毫秒为单位),并作为输出信息的一部分。(5%)程序优化:对基本DP1.1.的实现进行存储结构、分支变元选取策略等某一方面进行优化设计与实现,提供较明确的性能优化率结果。优化率的计算公式为:(t-Gt*100%,其中t为未对DP1.1.优化时求解基准算例的执行时间,C,则为优化DP1.1.实现时求解同一算例的执行时间。(15%)(6)SAT应用:将数独游戏问题转化为SAT问题陆甸,并集成到上面的求解器进行问题求解,游戏可玩,具有一定的/简单的交互性。应用问题归约为SAT问题的具体方法可参考文献3与6-8。(15%)参考文献1张健著.逻辑公式的可满足性判定一方法、工具
4、及应用.科学出版社,20002TanbirAhmed.AnImplementationoftheDP1.1.Algorithm.Masterthesis,ConcordiaUniversity,Canada,20093陈稳.基于DP1.1.的SAT算法的研究与应用.硕士学位论文,电子科技大学,20114Carsten1izingSTInstancesandRunsoftheDP1.1.Algorithm.JAutomReasoning(2007)39:219-2435 360百科:数独游戏6 TjarkWeber.Asat-basedsudokusolver.In12thInternation
5、alConferenceon1.ogicforProgramming,ArtificialIntelligenceandReasoning,1.PAR2005,pages11-15,2005.7Ins1.ynceandJolOuaknine.SudokuasasatProceedingsofthe9thInternationalSymposiumonArtificialIntelligenceandMathematics,AIMATH2006,Fortger,2006.8 UwePfeiffer,TomasKarnagelandGuidoScheffler.ASudoku-Solverfor1
6、.argePuzzlesusingSAT.1.PAR-17-short(EPiCSeries,vol,13),52-579 SudokuPuzzlesGenerating:fromEasytoEvil.10 RobertGanianandStefanSzeider.CommunityStructureInspiredAlgorithmsforSATand#SAT.InternationalConferenceonTheoryandApplicationsofSatisfiabilityTesting(SAT2015),目录II1口口口引言11.1 X11.2 X31.2.1X71.3 X103
7、203.1 X203.2 XX233.2.1 X253.3 X30440参考文献44附录口45(章为宋体小4号加粗,其余宋体小4号,字母、阿拉伯数字为TimeNeWROman小4号)1口引言1.1 课题背景与意义从I960年至今,SAT问题一直备受人们的关注,世界各国的研究人员在这方面都做了大量的工作,提出了许多的求解算法,取得了一批相当重要的理论和实践成果。尽管命题逻辑的可满足性问题理论研究已趋于成熟,但在SAT求解器被越来越多地应用到各种实际问题领域的今天,探寻解决SAT问题的高效算法仍然是一个吸引人并且极具挑战性的研究方向。1.1.1 (黑体小4号加粗,字母、阿拉伯数字为TimeNewR
8、oman小4号加粗)1.1.2 1.2 口国内外研究现状近十多年来,可满足性问题研究逐渐升温,已成为了国际国内的研究热点。每年可满足性理论和应用方面的国际会议都会组织一次SAT竞赛以求找到一组最快的SAT求解器,而且会详细展示一系列的高效求解器的性能。2003年的SAT竞赛中,就有30多种解决方案针对从成千上万的基准问题中挑选出的一些SAT问题实例同台竞争。国内也经常会组织一些SAT竞赛及研讨会,这些都促进了SAT算法的飞速发展。当前的SAT问题的算法主要包含两类:局部搜索算法和回溯搜索算法。其中,回溯搜索算法大都是基于回溯搜索的,局部搜索算法是基于局部随机搜索的。回溯搜索算法基于穷举法思想,
9、它的优点是能保证找到对应SAT问题的解或证明公式不可满足,但是效率极低,它的平均时间复杂度虽是多项式级的,但是最坏情况下的时间复杂度却是指数级的。一些回溯搜索算法采用了精巧的技术来减小搜索空间和问题规模,提高了算法的时间效率。局部搜索算法相对于回溯搜索算法而言,由于采用了启发式策略来指导搜索,使得求解速度相对较快,但是在某些实例上可能得不到解,它不保证一定能够找到对应SAT问题的解,即它不能证明SAT问题的不可满足性。近十多年来,国际上已提出了各种不同的局部搜索算法和回溯搜索算法,使得SAT求解器解决不同领域中的SAT问题的能力不断增强,能解决的问题的规模不断增大。当前已提出了一大批采用回溯搜
10、索算法的高效的SAT问题求解器,其中绝大多数提出来的回溯搜索算法是对原始的DP1.1.回溯搜索算法的改进。这些改进措施包括:新的变量决策策略,新的搜索空间剪除技术,新的推理和回溯技术以及新的更快的算法思想方案和数据结构等。当前水平的SAT问题求解器已经取得了举足轻重的改进,但是仍有一些问题没有得到高校的解决,已经解决的问题可能还存在更好的求解算法,因此研究并实现高效率的求解算法仍是当前要解决的中心问题之一。1.3 口课程设计的主要研究工作章与章之间插入分页符2口系统需求分析与总体设计2.1口系统需求分析设计一个能求解SAT问题和生成数独并求解的演示系统,在求解SAT问题的时,应当设计能够实现读
11、取Cnf算例文件,解析文件,根据Cnf算例文件设计一定的物理结构,建立公式的内部表示,并实现对SAT问题的求解,打印和保存求解的结果等功能;在生成数独时,应当设计能够实现生成数独棋盘,并且将其转化为Cnf范例,然后对其求解,打印和保存求解结果等功能。22系统总体设计这部分可根据用户需求,设计和规划一个系统,说明清楚系统应该有哪些功能模块,每个模块做什么。最后给出完整的系统模块结构图。系统应当具有display、Cnfparser、solver、SUdokU四个模块。DiSPIay模块:此即主控(Inain)、交互与显示模块,在程序启动时用来选择执行的功能:SAT或SUdOkIb针对不同的功能给
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告
链接地址:https://www.desk33.com/p-136790.html