Crossroads in Constraint Programming.

2011 
Constraint programming is a declarative programming paradigm exploiting techniques stemming from research on combinatorial problems in computer vision, and robot planning. The paradigm comes close to the dream that users only need to simply state a problem and the computer will solve it, as underlined in the seminal 1996 article In Pursuit of the Holy Grail by Eugene Freuder. The idea is that programming should be possible by simply stating the problem using a set of constraints. Using the traits of these constraints, appropriate techniques are then automatically selected and applied for solving the problem. Constraints are ubiquitous, and the requirement to satisfy them can be modeled within the framework of the constraint satisfaction problem (CSP). The constraints of a CSP are specified as relations on a set of variables. The choice of these variables and formulation of the constraints turns out to be essential for the efficiency of the obtained program. Many optimization problems can also be addressed with various extensions of constraint programming. Constraints whose satisfaction is optional are called soft constraints. They can be associated with a function that quantifies the desire for their satisfaction. The brute force approach to combinatorial problems is usually considered to be one of either the chronological backtracking or the generate and test method. The research into constraint programming has started with work on local reasoning. Local reasoning combines a subset of the known constraints to infer new constraints. Therefore it is also known as constraint propagation. When a local inconsistency is inferred, the reduction in the size of the search space (Cartesian product of domains for variables) is potentially exponential. Propagation is desirable when the overhead is polynomial and promises exponential speed-up. The propagation process is also referred to as local consistency enforcement since new constraints illustrate clearer what values are allowed. In general, the generation of unary constraints, i.e., removing values from domains, which has lower overhead, has been more successful in solvers, specially when repeatedly applied on subproblems during backtracking. Techniques where all applied operations result only in redundant constraints or in the splitting of the search space guarantee that no solution is lost. Those techniques guaranteeing to find a solution whenever a solution exists are said to be complete. Most past research has focused on complete algorithms, and this is being identified as something that may change in the near future.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    0
    References
    0
    Citations
    NaN
    KQI
    []