数学

sudoku问题

数独网格中的16位数据不足以解决问题解决方案是唯一的。为了证明这一点,必须使用技巧缩短计算的所有网格。

Jean-Paul Delahaye 对于Science N°447
本文保留用于科学用户

这是一种幻觉,相信机器的力量派遣我们思考。关于数独数据的问题,我们将看到快速达到可行的限制,并将其推开,需要聪明才智,数学,仍有很多耐心。

回想一下Sudoku的规则并解决一些条款。一个“完整的数码网格”是9 3 9 = 81盒的方表,每个方框包含1至9的数字,使:

(a)每行,每列都包含每个数字一次;

(b)每个子条目表3 3 3(在九个方块的九个方块中切割栅格的结果)恰好含有每个图。

如果在完整的数独网格中完成网格,则部分网格是“适当的数独问题”,这是游戏的目标。

应该指出的是,在Sudoku,计算机上获胜人类:有大量程序允许计算机击败最佳人类速度。良好的程序找到问题的解决方案,就像它一样困难,在不到千分之一的秒数。因此,我们为运动的乐趣发挥作用。

在尝试制定语句时,如果我们指定太少的框,部分网格不构成正确的问题(如果只恢复一个盒子,则很明显),因为有几种解决方案是可能的。在报纸中,拟议的网格有大约25个填充盒子。然而,众所周知,Sudoku的正确栅极只有17个数据。

最小数据的问题是:颁发商品数量问题的最小数据数量是多少?

示例到17数据显示,此最小值为17或更少。长期以来一直在寻求纠正16个数据的正确问题;因此,我们猜明了17是答案。

至少16或17个盒子?

该问题仍然持续,直到2011年12月,答复由Gary McGuire,来自都柏林大学和他的团队提供。在计算一年内传播并对应于单个处理器的计算800年来,结论是,数时到16个数据没有正确的大门,因此数据D的最小数量为Sudoku的适当问题是17。

这是一个数学定理,因为它是关于Sudoku的数学问题,这要求最大的努力,它将被称为“Sudoku的定理”。导致陈述的工作是一个示范。因为现在越来越多,更常见的是,它是一台计算机的演示。计算的阶段的细节尚未发布,因为它将提供巨大长度的文档。呈现证据的文章只是对所用方法的描述,包括纯粹数学建议的陈述和示范,而不是足够的元素,以便我们可以在不重新编程和重新计算的情况下检查定理。

本文的初步版本可以获得一段时间,但它没有以最终形式出版,即2014年6月12日在实验数学杂志中。尽管这是官方出版物,因此必须考虑严重,并核实另一个团队(2013年9月),一些研究人员,包括南卡罗来纳大学的Joshua Cooper,怀疑了本定理的法规“示范”,特定类型,难度排除了错误的风险。我们会回到它。

作为第一步,介绍了G. McGuire和其他团队所使用的证据方法。我们将坚持初步数学分析的有用性,其他团队的合作(已经开展了其他庞大的计算并从计划传播给G. McGuire和他的团队),必要的方法学严格,精致的专业知识 - 如何进行编程并执行计算,最后,执行令人难以置信的计算量。

是否有一个完整的网格g,其可以提取数据,当它们完成时(尊重Sudoku规则),必然给出网格g?

分辨率方法分为三个步骤:(a)列出所有单数的烤架; (b)对于每次,考虑所有提取16个数据的方法; (c)所提取的每个数据集,操作分辨率方法以便找到至少两个不同的解决方案。

如果所有完整的网格通过此测试,那么将显示,16个数据永远不足,17个是正确的答案。尽管我刚才描述的是这样做的,需要几个世纪的计算。

三个备注节省计算时间,并且采用良好,提供合理的计算时间。

点(a):限制我们发生的完整网格的枚举。

点(b):查找方法避免枚举所有81个元素的16个元素的所有子集,因为有太多!

点(c):是否具有最有效的测试算法可以测试是否是部分网格是正确的问题。

智能和完整的网格目录

请注意,我们可以继续执行以下操作:(a')列出16个数据的所有可能的部分网格,(b')显示每个都有几个解决方案。然而,“不可避免的套装”理论,显着减少了(b)的计算(下文解释),使该方法在三个步骤(abc)比两步方法(a'-b')更有效

自2003年以来,Mark Brader似乎是不同综合网格的数量,但它是2006年,由Bertram Felgenhauer和Frazer Jarvis的一份文件。这个数字巨大,等于9! 3 213 3 34 3 27 704 267 971 =

6 670 903 752 021 072 936 960 = 6.6 ... 3 1021.

按大小,所有计算机设备(包括手机)的累积数字存储器,以及这些设备的累积数字存储器都是每秒约1021指令。这些数字是不精确的,特别是因为我们无法知道哪些机器已经停止工作,但是对于一个因素10,它们表示我们在哪里。

处理Sudoku网格,以了解它是否已更正了16个数据子片段是一项大工作。甚至通过将所有土地计算设备放到任务中,甚至不会解决问题。减少研究的网格数是数学帮助G. McGuire的团队的第一点。

如果在Sudoku的完整大门中,我们每1次更换每一个,每9位1,我们得到了另一门Sudoku。如果首先承认对16个数据的正确问题,那么第二个问题:从一个正确的问题开始,首先从一个正确的问题开始,我们将1 in 9和9中的9更改为1,而第二个问题是第二个问题。因此,它足以研究两者中的一个。 1和9的交换不是导致找到等效网格的唯一转变。实际上,从一个完整的网格,九个数字1,2,...,9的任何允许允许为我们的问题构建另一个等价物。对于每个网格,这种方法给出

9! = 9 3 8 3 7 3 6 3 5 3 4 3 3 3 2 =

362 880等效网格。这已经是计算的计算已经很大。

但是,数字的排列不是获得等效网格的唯一方法。以下是应用于完整网格的其他一些操作的列表,给出等效网格。

- 选择两个水平磁带并交换。水平带是一系列三个方格3 3 3放置在其他方面一个(顶部有三个:一个在中间,一个下一个)。

- 交换两个垂直频带。垂直条带是一系列三个方块3 3 3,放置在其他方面(右侧有三个:一个:一个在中心,左侧)。

- 交换两列相同的垂直条带。

- 交换两行相同的水平频带。

- 转换网格(第1行变为列1,第2行变为列2等)。

最后,网格相当于大量的其他网格。网格组合在一起,只需处理每个班级的网格。

使用组理论群体,包括烧伤的引理 (参见2006年12月的奇迹“LEMME DE BURCHSIDE”类别),使得可以知道完整的非等效网格的确切数量:有5 472 730 538÷5.5 3 109。

AT&T Laboratories的研究员Glenn Fowler是通过每个等价类别持有一个网格的完整网格目录。一个专门设计的Sudoku格栅压缩算法使得可以将所有G. Fowler目录存储在六个千兆字节上,这是非常显着的,因为该算法只能大致使用一个字节(8位)。通过网格。

寻找“不可避免的套装”

如果我们遗漏,对于所选的每个网格,我们必须考虑所有提取16个数据的方法。但是有33,594,090,947,249,0853,43,1016选择16箱从81中选择16箱。这将导致解决每次有两个或更多解决方案时发现大量的数独问题。这个数字会很大,因为等于:

5 472 730 538 3 33 594 090 947 249 085 = 183 851 407 423 359 414 572 057730≥1,83 1026。

我们知道这个数字远远超出了所想到的,即使使用地球上的所有计算能力也是如此。数学再次不得不提出一个有趣的想法,适用于其他问题,“不可避免的套装”方法。让我们解释这个想法,了解全门G的例子。

要使用此网格G构建正确的问题,问题数据必须是网格顶部的蓝色中的四个框之一。实际上,只有在蓝色的四个框中只交换的另一个完整的网格G'非常接近g,在蓝色的四个框中,如果部分网格的数据没有表示关于这四个框的任何东西,它如果解决方案是g或g',则是不可能知道的,因此问题将不正确。与橙色的六个框相同:要切换三个数据(7,2,1)和(1,7,2)的两个矩形,只有在一个指定至少一个中时才会排除网格g''六个盒子。

这样的一套丹麦人不可避免的集合。如果对于完整的网格G,我们发现k,并且它们被脱离,然后一个是一个导致g导致g的任何部分网格将在每个不可避免的集合中至少有一个数据,因此至少有k。当某些不可避免的集合具有常见的交叉点时,情况,更困难,在通往G.的任何部分网格中都施加了最小数量的数据。

最后的斗争

处理完整网格G的工作并表明它总是需要至少17个数据,然后减少到尽可能多的不可避免的组件的搜索和操作。在各种测试之后,研究人员采用了以下策略,该策略适用于G. Fowler目录的55亿个全网格中的每一个。

(a)确定(通过开发必要的算法)所有不可避免的组少于13个盒子。查找所有不可避免的集合,无需尺寸限制,这 先验 似乎更好,总共导致更多的计算。

(b)推断(始终用必要的算法仔细地拼写)所有16个适用于这个不可避免的集合集的子级,也就是说,每个不可避免的集合中的至少一个元素。该部分考虑了比3,4 3,11016部分网格相当较少的部分网格到16个元素 先验 可能的。平均而言,Sudoku的完整大门有360个不可避免的盒子,盒子不到13盒。

(c)保留的部分网格,使用测试程序,该测试程序指示是否存在单个解决方案。

将所有这一切都在适当的中,并尽可能有效地编程,有必要在不可避免的集合上开发一些数学结果,尤其是在算法的编程中进行小心。

这个质量的G.McGuire团队的课程获得了与中国队的比赛(达到了同样的结果,但稍后超过一年)。然而,汉语的计算没有,因为通过通向相同的结果,它支持断言,这是数独的适当部分网格的最小数据数量。

该方法的最后一部分要求使用程序来解析数数,这必须能够指示部分网格不正确,因为它允许多个解决方案。

再次,研究人员之间的计划免费分享有用。该团队而不是开发自己的数独决议计划,而不是开发的人。由于Brian Turner,他们的选择,他们的选择专注于开源程序(如此没有使用,可控和可编辑的) 谷歌 为其乐趣开发游戏软件。但是,该计划进一步加速,可以在第二个50,000个数据问题中进行测试。

一旦所有的元素都在进足并验证,已经启动了搜索部分数据网格的目录的探索。经过一年的计算,答案到了:没有人!

肯定解决了?

这种巨大的集体和计算机工作要成功地展示“数独的定理”,因此提出了问题:我们可以基于一系列精致的程序来信任这一计算,整整一年的数百个不同的处理器,哪个n'拥有从一个非常紧密的方法以来只检查了一次?

使其难以绝对确定的点是由于计算的性质,这只是对正确网格的不成功搜索到16个数据。当计算机找到问题的解决方案并且该解决方案比搜索阶段更快地使用其他方法(如第一个数字狩猎)时,几乎没有理由怀疑找到的解决方案的准确性。第一个程序可以包括由于内部错误或操作系统引起的错误或功能障碍,程序也可以忘记程序员计划等的计算部分。如果在计算结束时,这一切都没有认真,提出了其他程序的快速和独立控制的东西;我们将取笑可能很长的初步阶段,这对数学肯定并不重要。

在这里,情况是反对:该计划已经追求了一年的东西,没有找到任何东西,它必须确定什么都没有被遗忘。因此,有必要确定数学思想每个都完全控制并解决,程序已经写入没有任何错误,机器的操作系统中没有错误(这可能会吹执行一部分指令的执行)并且在每个时刻的计算都被引导,因为它应该不受硬盘故障或宇宙射线的干扰。恐惧是可以理解的。

只有对该主题的工作继续,开发新方法,数学或技术,导致其他确认(如果可能的话,如果可能的速度更快,独立的计划)将提供预期的确定性。证明助手几乎没有用,因为它是必须的,即它会太慢(验证计算否则在这里重做它们,即使是证明助手)。计算机很有用,但仍然了解计算机证据中可能的错误,不存在,这不应与存在的证据相同。不是

订阅和ACC.édez à plus de 20 ans d'archives !

12号éros + 4 hors-série
在纸张版本+ numérique

+ ACC.ès illimité à plus de 20 ans d'archives

我是'abonne

订阅和ACC.édez à plus de 20 ans d'archives !

12号éros + 4 hors-série
在纸张版本+ numérique

+ ACC.ès illimité à plus de 20 ans d'archives

我是'abonne

我们的上一篇出版物

回到顶部