En el Bundeswettberweb Infomatik 2010/2011, hubo un problema interesante:
Para fijo , encuentre un mínimo y un mapa , de modo que no haya triple con .k φ : { ( i , j ) | i ≤ j ≤ n } → { 1 , … , k } ( i , j ) , ( i + l , j ) , ( i + l , j + l ) φ ( i , j ) = φ ( i + l ,
Es decir, estamos buscando la cantidad mínima de colores para un triángulo, de modo que no haya un subtriángulo equilátero de color uniforme (la siguiente imagen muestra una coloración no válida ya que los vértices resaltados forman un subtriángulo equilátero de color uniforme):
De hecho, pidieron una razonablemente pequeña para y en la solución (escrita en alemán) notaron que un enfoque codicioso produce una coloración con colores para , que puede reducirse a aleatorizando colores hasta que Se encuentra una solución válida.
Estoy interesado en soluciones exactas (para menor ). La solución dice que el retroceso produce que colores son suficientes para y son suficientes para , donde el retroceso ya es realmente lento para .
Primero intenté usar una formulación de ILP y Gurobi para obtener algunos resultados para , pero fue demasiado lento (ya para ). Luego usé un solucionador SAT , porque noté que hay una formulación directa como una instancia SAT.
Con ese enfoque pude generar una solución con colores para en minutos:
Pero para decidir si colores son suficientes para ya es demasiado lento. ¿Hay algún enfoque diferente que brinde soluciones exactas para ? Ciertamente, no podemos esperar un algoritmo polinomial.n = 19 n ≥ 19