《人工智能基础》实验报告-实验名称:数独游戏设计与实现.docxVIP

  • 30
  • 0
  • 约1.15万字
  • 约 23页
  • 2021-10-13 发布于四川
  • 举报

《人工智能基础》实验报告-实验名称:数独游戏设计与实现.docx

完成总结报告 |精. |品. |可. |编. |辑. |学. |习. |资. |料. * | * | * | * | |欢. |迎. |下. |载.  项目名称:数独嬉戏设计与实现 二〇一七年十二月二十四日 问题描述 问题说明 数独嬉戏起源于瑞士,由十八世纪的瑞士数学家欧拉创造,是一种数字拼图嬉戏,其嬉戏规章是: ①在 9× 9 的大九宫格内,已给定如干数字,其他宫位留白,玩家需自己依据规律推敲出剩下的空格里是什么数字; ②必需满意的条件:每一行与每一列都有 1 到 9 的数字,每个小九宫格里也 有 1 到 9 的数字,并且一个数字在每行、每列及每个小九宫格里只能显现一次, 既不能重复也不能少; ③每个数独嬉戏都可依据给定的数字为线索,推算解答出来; 第 1 页,共 20 页 |精. |品. |可. |编. |辑. |学. |习. |资. |料. * | * | * | * | |欢. |迎. |下. |载. 数独求解描述 由于数独嬉戏的推广与普及, 在当今世界上有着大量的数独爱好者, 本项目的目的就是依据数独的嬉戏规章, 通过对数据结构的分析和人工智能算法的讨论, 利用运算机程序来实现对已知数独嬉戏的快速求解; 数独出题描述 数独嬉戏挑战者的水平各异, 对数独题目的难度要求各不相同, 所以本项目致力于设计一种算法, 使其在尽可能短的时间内生成不同难度等级的数独题, 以满意不同水平嬉戏者的需求; 同时, 该算法仍要考虑到三个方面要求: 可变化的难度、解的唯独性和算法复杂度最小化; 功能分析 数独求解 数独虽然号称是数学问题 , 但在求解时几乎用不上数学运算方法, 事实上它更像是一种思维方式; 数独嬉戏开头后, 要想在空格中填入正确的数字, 先要依据数独嬉戏规章对 1-9 分别进行规律判定, 然后挑选正确的数字填入空格; 另外, 由于某个格子填入数据时, 有可能仍要对原先已填入的数据进行修正, 所以可以考虑使用递推和回溯搜寻来求解数独问题; 数独出题 出题时,要能保证算法生成的数独题具有可变化的难度和唯独解 , 该算法内部应当包含有对数独题的求解和评级功能; 本项目使用了一种基于 “挖洞” 思想的数独题生成算法, 将该算法的设计工作分为评级、 求解和生成三部分工作; 利用随机数显现的概率不同来确定不同的难度, 通过防止重填一个被 “挖去” 的格子,或者回溯到一个曾经无法“挖去”的格子,来降低算法的复杂性; 第 2 页,共 20 页 题目储存 当用户需要退出却仍没有完成数独题目的解答时, 可以挑选是否储存当前的求解进度;假如需要, 本系统会帮忙用户将目前未完成的数独题目的解答进度储存起来,以便用户下次使用本系统时,可以连续解答上次未完成的题目; 题目读取 |精. |品. |可. |编. |辑. |学. |习. |资. |料. * | * | * | * | |欢. |迎. |下. |载. 用户可以在程序开头运行后,选就读取一道之前储存起来的题目进行解答, 被读取的题目将会显示到程序界面上; 系统设计 功能结构图 本程序主要有数独求解和数独出题两个功能,数独求解包括题目检验、解题和输入输出,数独出题包括答案检验、难度挑选、出题和输入输出; 第 3 页,共 20 页 业务流程图 |精. |品. |可. |编. |辑. |学. |习. |资. |料. * | * | * | * | |欢. |迎. |下. |载.  类图 SudokuDlg 类:程序的界面类; Solve 类:实现数独题目求解功能; 第 4 页,共 20 页 Make类:实现数独题目出题功能; Pre 类:对数据进行预处理; 界面设计 |精. |品. |可. |编. |辑. |学. |习. |资. |料. * | * | * | * | |欢. |迎. |下. |载.  算法设计 3.5.1 数独求解算法 解决该数独求解问题时的要考虑的主要方面有: ①判定题目合法性, 即验证给出数据本身是否符合嬉戏规章, 行、列以及小九宫中从不重复地显现数字 1-9 ; ②采纳递推算法, 如可以填入数字就填入数字, 并入栈以便回溯, 否就回溯

文档评论(0)

1亿VIP精品文档

相关文档