INTRODUCTION Constraints appear in many areas of human endeavour starting from puzzles like crosswords (the words can only overlap at the same letter) and recently popular Sudoku (no number appears twice in a row) through everyday problems such as planning a meeting (the meeting room must accommodate all participants) till solving hard optimization problems for example in manufacturing scheduling (a job must finish before another job). Though all these problems look like being from completely different worlds, they all share a similar base – the task is to find values of decision variables, such as the start time of the job or the position of the number at a board, respecting given constraints. This problem is called a Constraint Satisfaction Problem (CSP). Constraint processing emerged from AI research in 1970s (Montanary, 1974) when problems such as scene labelling were studied (Waltz, 1975). The goal of scene labelling was to recognize a type of line (and then a type of object) in the 2D picture of a 3D scene. The possible types were convex, concave, and occlud-ing lines and the combination of types was restricted at junctions of lines to be physically feasible. This scene labelling problem is probably the first problem formalised as a CSP and some techniques developed for solving this problem, namely arc consistency, are still in the core of constraint processing. Systematic use of constraints in programming systems has started in 1980s when researchers identified a similarity between unification in logic programming and constraint satisfaction (Gallaire, 1985) (Jaffar & Lassez, 1987). Constraint Logic Programming was born. Today Constraint Programming is a separate subject independent of the underlying programming language, though constraint logic programming still plays a prominent role thanks to natural integration of constraints into a logic programming framework. This article presents mainstream techniques for solving constraint satisfaction problems. These techniques stay behind the existing constraint solvers and their understanding is important to exploit fully the available technology.
[1]
John N. Mordeson,et al.
Fuzzy Graphs and Fuzzy Hypergraphs
,
2000,
Studies in Fuzziness and Soft Computing.
[2]
Vijayan Sugumaran.
Intelligent Information Technologies: Concepts, Methodologies, Tools and Applications
,
2007
.
[3]
Sanjay Sharma,et al.
ADVANCES IN
,
2008
.
[4]
Antonia Azzini,et al.
Evolutionary Approaches for ANNs Design
,
2009,
Encyclopedia of Artificial Intelligence.
[5]
Mirjam Sepesy Maucec,et al.
Statistical Modelling of Highly Inflective Languages
,
2009,
Encyclopedia of Artificial Intelligence.
[6]
Juan R. Rabuñal,et al.
Encyclopedia of Artificial Intelligence (3 Volumes)
,
2009,
Encyclopedia of Artificial Intelligence.
[7]
Vijay Kumar Mago,et al.
Cross-Disciplinary Applications of Artificial Intelligence and Pattern Recognition: Advancing Technologies
,
2011
.
[8]
Jesse Hoey,et al.
Decision Theory Models for Applications in Artificial Intelligence: Concepts and Solutions
,
2011
.
[9]
Sohini Roy Chowdhury,et al.
Mitigation Strategies for Foot and Mouth Disease: A Learning-Based Approach
,
2011,
Int. J. Artif. Life Res..