Arc Consistency in MAC: A New Perspective?

AC refers to algorithms that enforce arc consistency on a constraint network while MAC refers to a backtracking search scheme where after each instantiation of a variable, arc consistency is maintained (or enforced) on the new network. In this paper, we use mac to denote maintaining arc consistency in MAC. In all existing studies, mac is simply taken as an associate of an AC algorithm. In this paper, we argue that it is worth taking mac as an entity separated from AC. Based on an observation that mac is invoked many times during a search, we propose three schemes to improve the efficiency of mac. First, the results of constraint checks are cached. Second, values remained in the auxiliary data structures used by sophisticated AC algorithms are better exploited. Third, we adopt a non-invariant ordering on domain values. Algorithms are also presented for these schemes. Their performances are discussed in terms of time complexity, space complexity, number of checks, and running time. In our experimental setting, we find that it is possible to design a mac algorithm which is simple to implement and runs faster as well as uses less space.