对于一名一年级的研究生来说,这是一个令人不安的发现,他曾诱使一位资深教授研究他的宠物问题。“我吓坏了。我基本上在一个问题上工作了几个月,却没有意识到这一点,更糟糕的是,我创造了Marijn在这上面浪费时间!” Subercaseaux公司写的在一篇博客文章中重述了他们的工作。
然而,赫勒发现过去的结果令人振奋。这表明,其他研究人员发现这个问题非常重要,值得研究,并证实了他唯一值得获得的结果就是彻底解决这个问题。
他说:“一旦我们发现这个问题已经解决了20年,情况就完全改变了。”。
避开秃鹫
多年来,Heule的职业生涯就是在众多可能的组合中寻找有效的搜索方法。他的方法被称为SAT求解,即“可满足性”的缩写。它涉及到构造一个称为布尔公式的长公式,该公式可以有两个可能的结果:0或1。如果结果为1,则公式为真,问题得到满足。
对于填充着色问题,公式中的每个变量都可以表示给定的单元格是否被给定的数字占用。计算机寻找分配变量的方法以满足公式。如果计算机能做到这一点,你就知道有可能在你设定的条件下将网格打包。
不幸的是,将包装着色问题直接编码为布尔公式可能会扩展到数百万个术语——一台计算机,甚至是一组计算机,可能会永远运行测试其内部分配变量的所有不同方法。
戈达德说:“如果你幼稚地去做,那么尝试这种野蛮的力量需要等到宇宙终结。”。“所以你需要一些很酷的简化,把它归结为可能的事情。”
此外,由于可能的组合相乘的方式,每次你给包装着色问题添加一个数字时,它就会变得困难100倍。这意味着,如果一组并行工作的计算机可以在一天内排除12个计算,则需要100天的计算时间才能排除13个。
在某种程度上,Heule和Subercaseaux认为扩大暴力计算方法的规模是粗俗的。Subercaseaux说:“我们有几个很有前途的想法,所以我们采取了‘让我们尝试优化我们的方法,直到我们能够在集群上用不到48小时的计算时间解决这个问题’的心态。”。
为此,他们必须想出限制计算集群必须尝试的组合数量的方法。
他说:“(他们)不仅想解决这个问题,还想以令人印象深刻的方式解决这个问题。”亚历山大·索伊弗科罗拉多大学科罗拉多斯普林斯分校。
Heule和Subercaseaux认识到许多组合基本上是相同的。如果你试图用八个不同的数字填充一块菱形瓷砖,那么你放置的第一个数字是一个向上的数字,一个在中心方块的右侧,还是一个向下的数字,另一个在中间方块的左侧,这都无关紧要。这两个位置相互对称,并以完全相同的方式约束您的下一步,因此没有理由同时检查它们。