网站首页 | 经济学论文 | 证券金融 | 管理学 | 会计审计 | 法学论文 | 医药学论文 | 社会学论文 | 教育论文 | 计算机 | 艺术论文 | 哲学论文 | 财务管理 |
写论文网
  • 中国哲学论文
  • 西方哲学论文
  • 思想哲学论文
  • 科技哲学论文
  • 美学论文
  • 国学论文
  • 逻辑学论文
  • 哲学其它论文
  • 您的位置:写论文网 > 哲学论文 > 逻辑学论文 > 数独求解的候选数优化算法设... 正文 2019-08-04 08:38:21

    数独求解的候选数优化算法设计 解数独算法

    相关热词搜索:求解 候选 算法 优化 数独 设计算法求解百马百担问题 c语言百马百担问题

    (2)=…,则说明该九宫格内的数字i 位于同一

    行或同一列中,则适用于策略4;

    策略5 判断算法:在完成搜索第n 行后,

    若对于数字i:1<Counti ≤ 3,且Columni (1)、…、

    Columni (Counti ) 均为m、m+1 或m+2 时(m

    为1 或4 或7),则适用于策略5。

    3.2 数值的初步推断

    欲应用上述策略模式求解数独,需要首

    先根据有限的提示数和数独的基本原则确定各

    未知单元格的候选数,并以此为基础,依次执

    行各项策略判断算法,进而选取恰当的策略,

    将未知单元格的个数及各未知单元格中的候选

    数个数降至最小,从而在最大程度上降低后续

    计算的复杂程度。对于数独问题数值初步推断

    的程序流程图如图3。

    通过执行上述数值初步推断流程,能够使

    各项策略在适当的数值分布状况下得到执行,

    从而保证了程序运算的高效性。

    3.3 基于策略模式的回溯法求解

    对于较高难度的数独,单纯依靠由上述5

    项求解策略构成的数值初步推断是不能将所有

    未知单元格中的数字确定下来的。这时,需要

    在完成数值初步推断,将未知单元格的个数和

    其中候选数的个数降至最低的基础上,采用回

    溯法对各种剩余的可能情况进行验证。而在进

    行回溯计算的过程中,合理采用各项策略,可

    以在最短的搜索路径内将错误的数值排除,从

    而降低回溯运算的迭代次数,提升算法的运算

    效率。

    回溯法求解数独的计算过程如下:

    (1)根据未知单元格及其候选数的情况

    构建多叉树。用多叉树的不同层次代表不同未

    知单元格,而每一层次的各个节点代表未知单

    元格中的候选数。

    (2)对包含了所有未知数可能取值情况

    的多叉树进行深度优先遍历,并在每一次增加

    搜索层次或改变同一层次的搜索节点(即测试

    某一未知单元格中的新候选数)时依次执行判

    定和推断算法。

    (3)判定算法:判断待验证的候选数是

    否与和它处于同一相关限制区域的已知数及测

    试数相同。

    (4)推断算法: 若该数通过判定算法的

    验证,则将该待验证的候选数作为测试数,并

    以整个数独中的所有已知数和测试数作为基

    础,通过执行3.2 中所述五种策略的推断算法

    减少其余未知单元格中的候选数个数。

    (5)若该数未通过判定算法验证,则选

    取该父节点中的其余子节点进行验证。当父节

    点中的所有子节点均未通过验证时,则退回父

    节点所在层次,并搜索其余兄弟节点,并退回

    至第3 步开始执行。

    (6)当搜索至叶子节点并验证成功后,

    将记录下的所有搜索路径作为数独的解。

    4 计算实验

    根据上述计算方法,基于Visual Basic 语

    言编制计算机程序,并通过较高难度的数独算

    例对比上述优化算法与普通的回溯法在运算效

    率方面的区别。

    如图4 所示,为一道高难度的常规数独

    实例及其答案的示意图。图中带有阴影的单元

    格为初始提示数的位置。该数独的难度主要体

    现在通过基于策略模式的数值初步推断后,能

    够确定数值的未知单元格个数十分有限(如图

    5 所示),而欲得出最终结果,必须经过多次

    数值实验并排除大量候选情况。这就能够很显

    著得体现算法在运算效率方面的特点。

    通过计算机程序分别利用普通回溯法和

    本文基于策略模式的数独优化求解算法对该实

    例进行求解,并通过程序记录运算时长和迭代

    次数,以衡量两种算法的求解效率。两种算法

    最终所得结果相同。针对本实例,两种求解算

    法的迭代次数和运算时长如表1 所示。

    为了更为客观的反应两种计算方法的运

    算效率,分别对20 个高难度数独进行求解,

    并计算出求解这些数独的平均迭代次数和运算

    时长(见表1)。从上表中的相关数据可以看出,

    无论是迭代次数还是运算时长,基于策略模式

    的优化求解算法比普通的回溯算法显著减小。

    5 结论

    本文通过将策略模式引入数独的初步数

    值判断和回溯迭代计算中,并利用对应的策略

    判断算法,根据求解进程中出现的不同数值状

    况,实时选择合适的策略进行推导,以求能够

    在最大程度上将数独的未知情况数量降至最

    小,从而在回溯计算的过程中减少迭代次数,

    提升整个算法的运算效率。

    通过计算实验表明,上述基于策略模式

    的优化求解算法能够利用推导的五项数独求解

    策略的合理搭配,在数值初步推断的过程中有

    效降低数独中的未知情况数量,从而在后续的

    回溯迭代计算中通过更少的搜索次数得出最终

    结果。并能够在整个计算过程中,使各项求解

    策略独立于用户而自主执行,是一种智能、高

    效的数独优化求解算法。

    参考文献

    [1] 李昊. 基于图搜索策略的数独问题

    算法与实现[J]. 通化师范学院学

    报,2009,v.30;No.17510:43-45.

    [2] 肖华勇, 田铮, 马雷. 数独基于规则的逐

    步枚举算法设计[J]. 计算机工程与设计,

    2010,v.31;No.26905:1035-1037+1113.

    [3] 程曦, 肖华勇, 吴林波. 数独求解的候

    选数优化算法设计[J]. 科学技术与工

    程,2011,v.1126:6409-6412.

    [4] 肖华勇, 程海礁, 王月兴. 九宫数独

    的方程求解算法研究[J]. 计算机应

    用,2012,v.32;No.26610:2907-2910.

    [5] 王新鑫, 李星, 钟宁. 数独游戏的难度划

    分及创建算法设计[J]. 计算机光盘软件

    与应用,2013,v.16;No.22518:45-46.

    [6] 王琼, 邹晟. 数独问题的求解、评价与生

    成算法的研究[J]. 南京师范大学学报( 工

    程技术版),2010,v.10;No.3701:76-79.

    作者简介

    宋韬(1989-),男,四川省成都市人。工学硕士。

    现为中国民航飞行学院助理讲师。主要研究方

    向为多系统定位信息融合理论与方法。

    作者单位

    中国民航飞行学院空中交通管理学院 四川省

    德阳市 618307

    表1:两种数独求解算法运算效率对比表

    算法名称普通回溯法基于策略模式的优化求解算法

    本算例迭代次数96929 5051

    本算例运算时长110ms 6ms

    平均迭代次数119235 6223

    平均运算时长133ms 7ms

    • 范文大全
    • 教案
    • 优秀作文
    • 教师范文
    • 综合阅读
    • 读后感
    • 说说
    数独求解的候选数优化算法设计 解数独算法》由(写论文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2019 写论文网 All Rights Reserved.