资源下载地址:https://download.csdn.net/download/sheziqiong/85634352
资源下载地址:https://download.csdn.net/download/sheziqiong/85634352
目 录
1 引言 1
1.1 课题背景与意义 1
1.2 国内外研究现状 1
1.3 课程设计的主要研究工作 2
2 系统需求分析与总体设计 3
2.1 系统需求分析 3
2.1.1 SAT求解器 3
2.1.2 数独游戏 3
2.2 系统总体设计 3
2.2.1 SAT求解器 3
2.1.2 数独游戏 4
3 系统详细设计 6
3.1 有关数据结构的定义 6
3.1.1 数据结构定义 6
3.1.2 数据结构关联 9
3.1.3 相关常量声明 10
3.2 主要算法设计 11
3.2.1 CNF范式操作 11
3.2.2 DPLL算法 18
3.2.3 数独生成算法 19
3.3 程序优化 24
3.3.1 结构优化 24
3.3.2 函数递归转非递归 24
3.3.3 文字选取策略的优化 25
3.3.4 程序优化结果测试 27
4 系统实现与测试 29
4.1 系统实现 29
4.1.1 cnf文件 29
4.1.2 DPLL文件 31
4.1.3 Sudoku文件 32
4.2 系统测试 32
4.2.1 SAT求解器模块测试 33
4.2.2 数独功能模块测试 42
5 总结与展望 49
5.1 全文总结 49
5.2 工作展望 49
6 体会 51
参考文献 52
附录 53
1 引言
1.1 课题背景与意义
对于计算机科学与技术、信息安全与物联网专业大二学生,在前三个学期已经学习了C语言程序设计、数据结构两门面向编程知识与技术的基础理论课,以及C语言程序设计实验、数据结构实验两门编程实践课程,不仅具有较为系统性的C语言、常用数据结构基本知识,而且具有初步的程序设计、数据抽象与建模、问题求解与算法设计的能力,奠定了进行复杂程序设计的知识基础。但两门实验课仍属于对基本编程模型与技术的验证性训练,而“综合程序设计”课程设计正是使大家从简单验证到综合应用,甚至在编程中实现智慧与风格升华的重要实践环节,为后续学习与进行计算机系统编程打下坚实的基础,让综合编程技能成为大家的固有能力与通向未来专业之门的钥匙。
1.2 国内外研究现状
近十多年来,可满足性问题研究逐渐升温,已成为了国际国内的研究热点, 取得了一批相当重要的理论和实践成果,应该说当前的SAT问题研究比十多年前 已取得了很大的突破,并直接或间接地推动了其他相关领域(比如形式验证,人 工智能等领域)的发展。
国际上已提出了各种不同的局部搜索算法和回溯搜索算法,使得SAT解决器解决不同领域中的SAT问题的能力不断增强,能解决的问题的规模不断增大。其中局部搜索算法显示出对于随机的SAT问题特别有用,而回溯搜索算法则 被用来解决大规模实际应用领域中的SAT问题。事实上,国际上已提出了一大批 采用回溯搜索算法的高效的SAT问题解决器,其中绝大多数提出来的回溯搜索算 法是对原始的DPLL回溯搜索算法的改进算法。这些改进措施包括:新的 变量决策策略,新的搜索空间剪除技术,新的推理和回溯技术以及新的更快的算 法实现方案和数据结构等。当前水平的SAT问题求解器已能够轻松解决以前传统 SAT问题解决器完全无法解决的可满足性问题。
尽管当前的SAT问题解决器已取得了相当重要的进步,但是研究的脚步不会停止,我们还可以提出一些值得研究的问题。比如,是否存在新的更高效的SAT 问题处理技术可以集成到DPLL算法框架内;是否可以找到除局部搜索,回溯搜 索之外的其他SAT算法来更有效地解决SAT问题;是否能提出更好的SAT改进算 法和实现方案。
1.3 课程设计的主要研究工作
本次实验中,实验者选择了 “基于SAT的数独游戏求解程序”作为实验课题,实现SAT求解器和数独游戏两个功能。
SAT求解器基于DPLL的完备算法,对CNF范式算例文件进行求解,输出答案,并可选择遍历验证答案或将答案存入文件;数独游戏可转化为SAT问题,用本系统实现的SAT求解器可以快捷地对数独问题转化的CNF文件进行求解,再以变元真值数据转化的数独盘格式输出求解答案。本系统具有一定的交互功能,用户可以利用本系统进行数独游戏,系统将自动判断解的正确性,并输出正确答案。
包含:文档+任务书+源码清单+操作手册+项目源码
本文转载自:http://www.biyezuopin.vip/onews.asp?id=16238























资源下载地址:https://download.csdn.net/download/sheziqiong/85634352
资源下载地址:https://download.csdn.net/download/sheziqiong/85634352

基于QT实现的数独游戏DPLL的SAT求解器设计相关推荐

  1. 基于DPLL的SAT求解器

    SAT问题 什么是SAT问题? SAT问题即命题逻辑公式的可满足性问题(satisfiability problem),是计算机科学与人工智能基本问题,是一个典型的NP完全问题. 对于任一布尔变元x, ...

  2. 【QT/C++】基于QT开发的一款A-SOUL元素的视频播放器(附源码)

    [QT/C++]基于QT开发的一款关于A-SOUL的视频播放器(附源码) 前言 一.软件使用说明 1.运行软件的界面如下 2.操作软件的步骤 二.软件设计说明 1.UI界面的设计 2.主代码中的部分函 ...

  3. 赛桨PaddleScience v1.0 Beta:基于飞桨核心框架的科学计算通用求解器

    近年来,关于AI for Science的主题被广泛讨论,重点领域包含使用AI方法加速设计并发现新材料,助力高能物理及天文领域的新问题探索,以及加速智慧工业实时设备数据与模型的"数字孪生&q ...

  4. [内附完整源码和文档] 基于Java实现的数独游戏

    一.本游戏背景介绍 相传数独源起于拉丁方阵(Latin Square),1970年代在美国发展,改名为数字拼图(Number Place),之后流传至日本并发扬光大,以数字智力游戏智力拼图游戏发表.在 ...

  5. 基于JavaSwing开发联机坦克游戏(服务器+客户端) 课程设计 大作业

    基于JavaSwing开发联机坦克游戏(服务器+客户端):   (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse+Jdk 运行效果图: 基于JavaSwing开发联机坦克 ...

  6. 基于QT的网络五子棋游戏

    系统采用当今广为流行的五子棋游戏为模版,利用C++的第三方GUI设计工具Qt为程序设计界面,并结合软件工程的思想开发一款基于网络的五子棋游戏对弈软件.本软件采用P2P的模式,利用一个服务端来辅助各个客 ...

  7. 基于JavaScript和VUE数独游戏设计与实现

    全套资料下载地址:https://download.csdn.net/download/sheziqiong/85595640 全套资料下载地址:https://download.csdn.net/d ...

  8. 基于QT的跨平台扫雷游戏

    扫雷介绍 <扫雷>是一款大众类的益智小游戏,于1992年发行.游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输. 扫雷游戏区包括雷区.地雷 ...

  9. 基于Qt的飞机小游戏实现

    目录 前言 一.准备工作 二.基本功能实现 1.主菜单 2.核心玩法 3.其他 资源文件 前言 这是学习Qt时期做的一个小项目,现在看感觉有很多可优化的地方,放在这里给新人朋友们提供一个参考. 一.准 ...

  10. 基于Qt的网络五子棋游戏对战

    运行说明:先运行服务器,再运行客户端.输入房间号和昵称,会匹配到同一房间的人进行游戏对战. 软件下载:http://39.106.175.147/ftp/qtchess.exe 源码连接:http:/ ...

最新文章

  1. 内地计算机学校,全球大学计算机实力排名:清北人工智能内地前2
  2. MHP GEM基础
  3. 在C#程序中实现插件架构
  4. DOM——创建节点及节点属性与内部插入append()和appendTo()
  5. Java在远程方法调用中运用反射机制
  6. nodejs mysql mvc_一种nodejs的MVC框架
  7. 484个PHP必备的函数集
  8. Eclipse—如何为Eclipse开发工具中创建的JavaWeb工程创建Servlet
  9. android中menu菜单扩增_创意菜单效果
  10. 蕊动矿机linux cpu超频,蚂蚁l3矿机超频方法!最佳超频参数!  |  呆毛网
  11. 【正点原子MP157连载】 第二十二章 ADC实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
  12. 高一计算机基础知识ppt课件,高一信息技术课件
  13. GIS应用知识解读!
  14. L298N模块的使用介绍
  15. ZK宕机重启数据恢复
  16. 盘点Hadoop生态圈:13个让大象飞起来的开源工具
  17. 大规模机器集群-单机/集群/服务/机房/从零恢复的快速交付
  18. 笔记本计算机的功率一般多少,笔记本的功耗的一般值和实测值【图文】
  19. 芒果改进YOLOv7系列:超越ConvNeXt结构,原创结合Conv2Former改进结构,Transformer 风格的卷积网络视觉基线模型,高效涨点
  20. matlab中除号的有效字符,乘号(x)、除号(÷)、双引号()等字符实体的HTML代码...

热门文章

  1. 30分钟学会iOS 11开发环境xcode 9图文教程
  2. python蓝牙模块_Python蓝牙模块lightblue在mac osx 10.8上不起作用
  3. ArcGIS软件中的坐标系及数据类型的概念
  4. 想以游戏纸娃娃系统专利主张暴雪的暗黑3侵权? 先过暗黑2这关!
  5. win7网络改局域网计算机名,局域网共享一键修复工具(支持win7) 修复windows7各种共享问题...
  6. php后台登录验证(含验证码)
  7. Java实现DFA算法敏感词过滤
  8. 基于STM32的智能鱼缸设计
  9. BFC详解【CSS面试题】
  10. java voip 的sip服务器搭建_SIP服务器,搭建自己的VoIP平台 | 学步园