This module contains a crossword-specific implementation of the AC-3 algorithm for establishing
and maintaining arc consistency. For our purposes, a grid is arc-consistent when:
This module implements grid-filling using a backtracking search algorithm that’s mostly based on
recommendations in “Adaptive Strategies for Solving Constraint Satisfaction Problems” by
Thanasis Balafoutis. In addition to maintaining arc consistency using AC-3 and ordering
variables with a variant of the dom/wdeg
heuristic, we incorporate Balafoutis’s “adaptive
branching” concept and randomized restarts.
This module implements code for configuring a crossword-filling operation, independent of the
specific fill algorithm.