- Applied Hamming distance and Manhattan distance heuristics
- Implemented Simple backtracking and forward-checking solvers with different variable ordering and value ordering heuristics
- Implemented various constructive (DSatur algorithm, largest degree, random ordering) and perturbative heuristics (Kempe-chain interchange, Pair-swap operator)
- Implemented random and safe moves based on discarding diagonal neighbor cells