Abstract

Publisher Summary Constraint programming is a powerful paradigm for solving combinatorial search problems that draws on a wide range of techniques from artificial intelligence (AI), operations research, algorithms, and graph theory. The basic idea in constraint programming is that the user states the constraints, and a general-purpose constraint solver is used to solve them. Constraints are just relations, and a constraint satisfaction problem (CSP) states the relations that should hold among the given decision variables. A constraint satisfaction problem consists of a set of variables, each with some domain of values, and a set of relations on the subsets of these variables. For example, in scheduling exams at a university, the decision variables might be the times and locations of different exams, and the constraints might be on the capacity of each examination room (e.g., we cannot schedule more students to sit for exams in a given room at any one time than the room's capacity) and on the exams scheduled at the same time (e.g., we cannot schedule two exams at the same time if they share students in common). Constraint solvers take a real-world problem like this represented in terms of decision variables and constraints and find an assignment to all the variables that satisfies the constraints. Extensions of this framework may involve, for example, finding optimal solutions according to one or more optimization criterion (e.g., minimizing the number of days over which exams need to be scheduled), finding all solutions, replacing (some or all) constraints with preferences, and considering a distributed setting where constraints are distributed among several agents.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call