Dalam Bundeswettberweb Infomatik 2010/2011, ada masalah yang menarik:
Untuk fix , temukan minimal k dan peta φ : { ( i , j ) | i ≤ j ≤ n } → { 1 , ... , k } , sedemikian sehingga tidak ada tiga ( i , j ) , ( i + l , j ) , ( i + l , j + l ) dengan φ ( i .
Yaitu kami sedang mencari jumlah minimal warna untuk sebuah segitiga, sehingga tidak ada subtriangle sama sisi berwarna seragam (gambar berikut menunjukkan pewarnaan yang tidak valid karena simpul yang disorot membentuk subtriangle sama sisi berwarna sama):
Bahkan mereka meminta cukup kecil untuk n = 1000 dan dalam solusi (ditulis dalam bahasa Jerman) mereka mencatat bahwa pendekatan rakus menghasilkan pewarnaan dengan 27 warna untuk n = 1000 , yang dapat dikurangi menjadi dengan mengacak warna hingga solusi yang valid ditemukan.
Saya tertarik pada solusi yang tepat (untuk lebih kecil ). Solusinya mengatakan bahwa backtracking menghasilkan 2 warna yang cukup untuk n ∈ { 2 , 3 , 4 } dan cukup untuk 5 ≤ n ≤ 17 , di mana backtracking sudah sangat lambat untuk n = 17 .
Pertama saya mencoba menggunakan formulasi ILP dan Gurobi untuk mendapatkan beberapa hasil untuk , tapi itu terlalu lambat (sudah untuk n = 17 ). Kemudian saya menggunakan pemecah SAT , karena saya perhatikan bahwa ada formulasi lurus ke depan sebagai instance-SAT.
Dengan pendekatan itu saya dapat menghasilkan solusi dengan warna untuk n = 18 dalam 10 menit:
Tetapi untuk memutuskan apakah warna sudah cukup untuk n = 19 sudah terlalu lambat. Apakah ada beberapa pendekatan berbeda yang memberikan solusi tepat untuk n ≥ ? Tentu saja kita tidak dapat mengharapkan algoritma polinomial.