在Bundeswettberweb Infomatik 2010/2011中,存在一个有趣的问题:
对于固定,找到一个最小值和一个映射 ,这样就没有三元组其中。ķ φ :{ (我,Ĵ )| 我≤ Ĵ ≤ Ñ } → { 1 ,... ,ķ } (我,Ĵ ),(我+ 升,Ĵ ),(我+ 升,Ĵ + 升)φ (我,Ĵ )= φ (我+ 升,
也就是说,我们正在寻找三角形的最小颜色,以使没有均匀着色的等边子三角形(下图显示了无效的着色,因为突出显示的顶点形成了这种均匀着色的等边子三角形):
实际上,他们要求较小,并且在解决方案中(用德语编写),他们指出,贪婪方法会产生种颜色的着色,可以通过将颜色随机化直到a 达到。找到有效的解决方案。n = 1000 27 n = 1000 15
我对精确的解决方案感兴趣(对于较小的)。该解决方案表示,回溯产生的种颜色足以满足而足以满足,其中,对于,回溯已经非常慢。2 Ñ ∈ { 2 ,3 ,4 } 3 5 ≤ ñ ≤ 17 Ñ = 17
首先,我尝试使用ILP公式和Gurobi在得到一些结果,但是它太慢了(已经对于)。然后,我使用了SAT求解器,因为我注意到有一个简单的公式表示为SAT实例。n = 17
通过这种方法,我能够在分钟内生成种颜色的解决方案:n = 18 10
但是要确定种颜色是否足以满足这已经太慢了。是否有一些不同的方法可以给出精确解?当然我们不能期望多项式算法。Ñ = 19 Ñ ≥ 19