版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数独算法简介目录一,数独介绍二,基本参考文献三,数独难度衡量四,数独之遗传算法五,数独之回溯法六,习题一,数独介绍一,数独介绍数独(sudoku),起源于瑞士,于1970年代由美国的一家数学逻辑游戏杂志首先发表,当时名为NumberPlace。及后在日本大力推广下得以发扬光大,于1984年取名“数独”,即“独立的数字”的省略说法。“中国大陆是在2007年2月28日正式引入数独。。。成为世界谜题联合会的39个成员之一。”(维基百科)一,数独介绍游戏规则:以经典的9X9数独为例:要求:每行、每列和每个宫(即3x3的大格)均出现1至9中的所有数字。“规则简单,老少皆宜!”一,数独介绍(MCM2008B)DevelopanalgorithmtoconstructSudokupuzzlesofvaryingdifficulty.Developmetricstodefineadifficultylevel.Thealgorithmandmetricsshouldbeextensibletoavaryingnumberofdifficultylevels.Youshouldillustratethealgorithmwithatleast4difficultylevels.Youralgorithmshouldguaranteeauniquesolution.Analyzethecomplexityofyouralgorithm.Yourobjectiveshouldbetominimizethecomplexityofthealgorithmandmeettheaboverequirements.一,数独介绍翻译要点:1,设计数独游戏的生成算法。定义合适的测度来衡量数独的难度级别。2,至少要对4个难度级别来说明该算法。3,算法应该保证有唯一解。4,分析你们的算法的复杂性。二,基本参考文献4,张艳宗."数独的难度衡量,生成及微粒群算法."Master'sthesis,浙江大学,2009.注1:文献1有2006和2007两个版本注2:文献4提到了文献1和文献2三,数独难度衡量直观感觉:1,越花时间,越困难。。。分析:时间怎么算出来呢?用什么算法来求解所花的时间呢?需要思考更多细节。。。。三,数独难度衡量事实上,一个全部为空的数独比部分为空的数独更难吗?例子:可以很容易就生成一个4阶的终盘数独,但是有限制条件则不一定。三,数独难度衡量3,求解策略越复杂,则越困难。简单排除法就比较容易,三,数独难度衡量行列排除法更难三,数独难度衡量文献1采用的衡量标准:用遗传算法求解数独所花的平均时间;文献2采用的衡量标准:用hsolve算法求解数独所花的平均时间;hsolve:模拟人类选手的求解技巧三,数独难度衡量文献3和文献4采用的衡量标准:“数独的备选总数越大,则越困难”我们将介绍这种方法三,数独难度衡量此标准的主要优点:1,数独不需要求解,即可算出其复杂度;2,计算速度很快此标准的主要缺点:举个例子,从算式来看,空数独的难度最大,但是空数独的难度真的最大吗?三,数独难度衡量另外,不管采用哪一种指标,不要忘记以实际的数独例子来拟合你的指标,以此说明你的指标的合理性(重要!),就像文献3中所做的那样。四,数独之遗传算法例:[892564731......785632149]四,数独之遗传算法2,生成个体的方法每一宫赋以一个1。。。9的排列,当然,我们不能改变预先给定位置的元素四,数独之遗传算法方法2:四,数独之遗传算法方法3:(推荐!)四,数独之遗传算法也可以讲前面的几种方法组合起来:四,数独之遗传算法5,三要素之交叉(crossover)交叉策略:交换不同解的相同宫四,数独之遗传算法6,三要素之变异(mutate)在某一宫中作若干两两交换,当然,我们要避开给定的位置。四,数独之遗传算法7,加速技巧为加快收敛速度,扩大搜索范围,可用如下策略:四,数独之遗传算法文献1中介绍,此遗传算法收敛速度尚可,但经过我个人的编程实践,阶数较小的数独用回溯法比较快!五,数独之回溯法遗传算法等启发式算法都不能保证找到最优解,更多的时候是给出次优解或近似解,回溯法是精确算法,一定能找到最优解,但可能耗时很多,也可能耗时极多…五,数独之回溯法在问题解空间的结构未知的情况下,所有的精确算法都可算是穷举法或者有策略的穷举法例子:旅行商问题(TSP问题)简单穷举:n^n种可能性改进穷举:n!种可能性进一步改进:(n-1)!种可能性五,数独之回溯法回溯法的算法思想:“走不通,就调头”本质上是一种深度优先搜索。例子:八皇后问题五,数独之回溯法backtrack(TypeSol*sol,TypeProb*prob):k=0;while(k<numStep){if(getStep(k,step,sol,prob))doStep(k,step,sol,prob);else{undoStep(k-1,step,sol,prob);k=k-2;}k++;if(k<0)break;}六,习题智慧金字塔
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论