Backtracking with forward checking, minimum remaining value heuristic, and least constrained value heuristic in progress