- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数独问题.doc
教学实践报告
实习内容: 数学建模实践
题目:数独问题
学生姓名
专 业 数学与应用数学 1123601
学 号 201120360114 201120360117
指导教师 许志军老师
2013年6月20日
数独问题
摘要
本文主要研究数独问题,通过Lingo和Matlab编程实现对芬兰数学家设计出最难数独的求解及分析,画出图形并推广及一般数独问题,同时设计出不同难度的数独。
对于问题一,我们建立整数规划模型,采用三维0-1 变量的方法,利用Lingo编程求解,最终得到的结果如表1所示。
对于问题二,我们使用的是穷举搜索法,通过建立一堆栈,将所有的候选数字填入栈中,利用搜索匹配得到最终解。得到的结果如表1所示。
对于问题三,对该数独进行画图并求解,我们利用Matlab的画图功能,一横一竖将此9×9九宫格画出来并填入数字,得到结果。
对于问题四,设计十个唯一解的数独问题,我们采用挖洞法将设定好的数独随机挖去几个数,得到一个新的数独。
8 1 2 7 5 3 6 4 9 9 4 3 6 8 2 1 7 5 6 7 5 4 9 1 2 8 3 1 5 4 2 3 7 8 9 6 3 6 9 8 4 5 7 2 1 2 8 7 1 6 9 5 3 4 5 2 1 9 7 4 3 6 8 4 3 8 5 2 6 9 1 7 7 9 6 3 1 8 4 5 2 表1:数独问题的解
关键词:整数规划 Lingo编程 穷举法 Matlab画图 挖洞法 问题的重述
问题的提出
数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。 每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。
芬兰一位数学家号称设计出全球最难的“数独游戏”,并刊登在报纸上,让大家去挑战。该数独图形如下:
据介绍,目前,数独游戏的难度的等级有一道五级,一是入门等级,五则比较难。不过这位数学家说,他所设计的数独游戏难度等级是十一,可以说是所以数独游戏中,难度最高的等级
他还表示,他目前还没遇到解不出来的数独游戏,因此他认为“最具挑战性”的数独游戏并没有出现。
具体问题
根据以上描述,试完成以下问题:
问题一: 建立数独的规划模型并给出Lingo求解;
问题二: 用matlab进行穷举搜索法求解数独;
问题三: 利用matlab画出此数独的图形及解答;
问题四: 利用matlab软件出10道相对较难的数独题并给出参考答案(有唯一答案的题)。
模型的假设
1、本题数独初盘不存在任何数据错误。
2、该数独问题存在唯一解。
符号说明
表示数k是否填入数独方中的(i,j)处
表示往空格处填入0后数独方中(i,j)处的数
表示经过求解后数独方中(i,j)处的数
模型的建立与求解
2.1问题一
4.1.1问题的分析
问题一中需要用Lingo编程解决数独问题,我们选择了对九宫数独建立整数规划模型进行程序设计。并且利用@floor(x)能够返回x的整数部分。为了加快求解速度和在已知条件不充分也能够求解,在程序中增加min=@sum(link:x),进行调试并得出结果。
4.1.2模型的建立
引进三维变量,令
1 表示数k填入 n 阶数独方矩阵的(i,j)处
=
0 表示数k不填入(i,j)处
通过对数独这个问题的分析可以得到如下约束条件:
(1)每一(i,j)处只能填一个数 k;
(2)第i 行只有一个 k;
(3)第j 列只有一个 k;
(4)第一个区只有一个k;
由上述分析可建立该9阶数独方的整数规划模型如下:
注:
(7)式表示数独方中每一(i,j)处只能填入一个数k;
(8)式表示每一行只能有一个数k;
(9)式表示每一列只能有一个数k;
(10)式表示每一个区内只能有一个数k;
(11)式表示只能取0或1;
(12)上所有式中
4.1.3模型的求解
要想求解问题中给出的数独问题,首先可将题目中的所有空格处填入同一常数a,不妨取 a=0,如表2所示。记 是表3中(i,j)处的数,是数独求解后(i,j)处的数,是三维的0和1 变量
表2 往空格填入0后的数独方
8 0 0 0 0 0 0 0 0 0 0 3 6 0 0 0 0 0 0 7 0 0 9 0 2 0 0 0 5 0 0 0 7 0 0 0 0 0 0 0 4 5 7 0 0 0 0 0 1 0 0 0 3 0 0 0 1 0 0 0 0 6 8 0 0 8 5 0 0 0 1 0
文档评论(0)