Nel Bundeswettberweb Infomatik 2010/2011, si è verificato un problema interessante:
Per fisso , trova una minima e una mappa , in modo tale che non vi sia tripla con .k φ : { ( i , j ) | i ≤ j ≤ n } → { 1 , … , k } ( i , j ) , ( i + l , j ) , ( i + l , j + l ) φ ( i , j ) = φ ( i + l ,
Vale a dire che stiamo cercando la quantità minima di colori per un triangolo, in modo tale che non ci sia un sottotiangolo equilatero di colore uniforme (la figura seguente mostra una colorazione non valida poiché i vertici evidenziati formano un sottotiangolo equilatero di colore uniformemente):
In effetti hanno chiesto una ragionevolmente piccola per e nella soluzione (scritta in tedesco) hanno notato che un approccio avido produce una colorazione con colori per , che può essere ridotta a randomizzando i colori fino a un è stata trovata una soluzione valida.n = 1000n = 1000 15
Sono interessato a soluzioni esatte (per più piccole ). La soluzione afferma che il backtracking produce che colori sono sufficienti per e sono sufficienti per , dove il backtracking è già molto lento per .2 n ∈ { 2 , 3 , 4 } 3 5 ≤ n ≤ 17 n = 17
Per prima cosa ho provato ad usare una formulazione ILP e Gurobi per ottenere alcuni risultati per , ma era troppo lento (già per ). Quindi ho usato un solutore SAT , perché ho notato che esiste una formulazione semplice come istanza SAT.n = 17
Con questo approccio sono stato in grado di generare una soluzione con colori per entro minuti:n = 18 10
Ma per decidere se colori sono sufficienti per è già troppo lento. Esiste un approccio diverso che fornisce soluzioni esatte per ? Certamente non possiamo aspettarci un algoritmo polinomiale.n = 19 n ≥ 19