\ Here the variable x23c4 is 1 or 0 according to \ whether or not the row 2, col 3 square has \ colour number 4 \ The objective is unimportant, since solving Sudoku \ puzzles (or any colouring problems) are feasibility \ questions Maximize x11c1 Subject To \ Values specified by the puzzle x14c3 = 1 x24c2 = 1 x31c3 = 1 x41c4 = 1 \ Square 11 has one of the four colours x11c1 + x11c2 + x11c3 + x11c4 = 1 \ Similarly for all other squares: x12c1 + x12c2 + x12c3 + x12c4 = 1 x13c1 + x13c2 + x13c3 + x13c4 = 1 x14c1 + x14c2 + x14c3 + x14c4 = 1 \ x21c1 + x21c2 + x21c3 + x21c4 = 1 x22c1 + x22c2 + x22c3 + x22c4 = 1 x23c1 + x23c2 + x23c3 + x23c4 = 1 x24c1 + x24c2 + x24c3 + x24c4 = 1 \ x31c1 + x31c2 + x31c3 + x31c4 = 1 x32c1 + x32c2 + x32c3 + x32c4 = 1 x33c1 + x33c2 + x33c3 + x33c4 = 1 x34c1 + x34c2 + x34c3 + x34c4 = 1 \ x41c1 + x41c2 + x41c3 + x41c4 = 1 x42c1 + x42c2 + x42c3 + x42c4 = 1 x43c1 + x43c2 + x43c3 + x43c4 = 1 x44c1 + x44c2 + x44c3 + x44c4 = 1 \ \ Row 1: all colours occur once: x11c1 + x12c1 + x13c1 + x14c1 = 1 x11c2 + x12c2 + x13c2 + x14c2 = 1 x11c3 + x12c3 + x13c3 + x14c3 = 1 x11c4 + x12c4 + x13c4 + x14c4 = 1 \ Same for row 2 x21c1 + x22c1 + x23c1 + x24c1 = 1 x21c2 + x22c2 + x23c2 + x24c2 = 1 x21c3 + x22c3 + x23c3 + x24c3 = 1 x21c4 + x22c4 + x23c4 + x24c4 = 1 \ Same for row 3 x31c1 + x32c1 + x33c1 + x34c1 = 1 x31c2 + x32c2 + x33c2 + x34c2 = 1 x31c3 + x32c3 + x33c3 + x34c3 = 1 x31c4 + x32c4 + x33c4 + x34c4 = 1 \ Same for row 4 x41c1 + x42c1 + x43c1 + x44c1 = 1 x41c2 + x42c2 + x43c2 + x44c2 = 1 x41c3 + x42c3 + x43c3 + x44c3 = 1 x41c4 + x42c4 + x43c4 + x44c4 = 1 \ Same for the columns x11c1 + x21c1 + x31c1 + x41c1 = 1 x11c2 + x21c2 + x31c2 + x41c2 = 1 x11c3 + x21c3 + x31c3 + x41c3 = 1 x11c4 + x21c4 + x31c4 + x41c4 = 1 \ x12c1 + x22c1 + x32c1 + x42c1 = 1 x12c2 + x22c2 + x32c2 + x42c2 = 1 x12c3 + x22c3 + x32c3 + x42c3 = 1 x12c4 + x22c4 + x32c4 + x42c4 = 1 \ x13c1 + x23c1 + x33c1 + x43c1 = 1 x13c2 + x23c2 + x33c2 + x43c2 = 1 x13c3 + x23c3 + x33c3 + x43c3 = 1 x13c4 + x23c4 + x33c4 + x43c4 = 1 \ x14c1 + x24c1 + x34c1 + x44c1 = 1 x14c2 + x24c2 + x34c2 + x44c2 = 1 x14c3 + x24c3 + x34c3 + x44c3 = 1 x14c4 + x24c4 + x34c4 + x44c4 = 1 \ Same for inner squares x11c1 + x21c1 + x12c1 + x22c1 = 1 x13c1 + x23c1 + x14c1 + x24c1 = 1 x31c1 + x41c1 + x32c1 + x42c1 = 1 x33c1 + x43c1 + x34c1 + x44c1 = 1 \ x11c2 + x21c2 + x12c2 + x22c2 = 1 x13c2 + x23c2 + x14c2 + x24c2 = 1 x31c2 + x41c2 + x32c2 + x42c2 = 1 x33c2 + x43c2 + x34c2 + x44c2 = 1 \ x11c3 + x21c3 + x12c3 + x22c3 = 1 x13c3 + x23c3 + x14c3 + x24c3 = 1 x31c3 + x41c3 + x32c3 + x42c3 = 1 x33c3 + x43c3 + x34c3 + x44c3 = 1 \ x11c4 + x21c4 + x12c4 + x22c4 = 1 x13c4 + x23c4 + x14c4 + x24c4 = 1 x31c4 + x41c4 + x32c4 + x42c4 = 1 x33c4 + x43c4 + x34c4 + x44c4 = 1 \ Binary x11c1 x11c2 x11c3 x11c4 x12c1 x12c2 x12c3 x12c4 x13c1 x13c2 x13c3 x13c4 x14c1 x14c2 x14c3 x14c4 x21c1 x21c2 x21c3 x21c4 x22c1 x22c2 x22c3 x22c4 x23c1 x23c2 x23c3 x23c4 x24c1 x24c2 x24c3 x24c4 x31c1 x31c2 x31c3 x31c4 x32c1 x32c2 x32c3 x32c4 x33c1 x33c2 x33c3 x33c4 x34c1 x34c2 x34c3 x34c4 x41c1 x41c2 x41c3 x41c4 x42c1 x42c2 x42c3 x42c4 x43c1 x43c2 x43c3 x43c4 x44c1 x44c2 x44c3 x44c4 End