Nowadays many real problems can be modelled as Constraint Satisfaction Problems (CSPs). A search algorithm for constraint programming requires an order in which variables and values should to be considered. Choosing the right order of variables and values can noticeably improve the efficiency of constraint satisfaction. Furthermore, the order in which constraints are studied can improve efficiency, particularly in problems with non-binary constraints. In this paper, we present a preprocess heuristic called Constraint Ordering Heuristic (COH) that studies the constrainedness of the scheduling problem and mainly classifies the constraints so that the tightest ones are studied first. Thus, constrainedness can be known in advance and overall inconsistencies can be found earlier and the number of constraint checks can significantly be reduced.Keywords: Heuristic Search, Constraint ordering, Non-binary Constraints, Constrainedness.1 2
IntroductionNowadays, many real problems can be efficiently modelled as Constraint Satisfaction Problems (CSPs) and solved using constraint programming techniques. Some problems can be modelled naturally using non-binary constraints [26,19,8]. Although, researchers have traditionally focused on binary constraints [24], the need to address issues regarding non-binary constraints has recently started to be widely recognized in the constraint satisfaction literature. Thus, to define heuristics to solve non-binary CSPs becomes relevant.One approach to solving CSPs is to use a depth-first backtrack search algorithm [5]. While the worst-case complexity of backtrack search is exponential, several heuristics to reduce its average-case complexity have been proposed in the literature [6]. However, determining which algorithms are superior to others remains difficult. Theoretical analysis provides worst-case guarantees which often do not reflect average performance. For instance, a backtracking-based algorithm that incorporates features such as variable ordering heuristics will often in practice have substantially better performance than a simpler algorithm without this feature [17], and yet the two share the same worst-case complexity. Similarly, one algorithm may be better than another on problems with a certain characteristic, and worse on another category of problem. Ideally, we would be able to identify this characteristic in advance and use it to guide our choice of algorithm.Many of the heuristics that improve backtracking-based algorithms are based on variable ordering and value ordering [20, 2], due to the additivity of the variables and values. However, constraints are also considered to be additive, that is, the order of imposition of constraints does not matter, all that matters is that the conjunction of constraints be satisfied [2].Thus, a real problem can be modelled as a CSP, and using some of the current ordering heuristics, it can be solved in a more efficient way by some of the backtracking-based search algorithms (Figure 1).In spite of the additivity of constraints, only...