Constraint-based reasoning has been used in many areas of artificial intelligence: vision, language, planning, diagnosis, scheduling, configuration, design, temporal reasoning, defeasible reasoning, truth maintenance, qualitative physics, logic programming, and expert systems. This research focusses on the constraint satisfaction problem paradigm, which underlies many of these applications. The research objectives are: (1) characterizing tractable problem classes, (2) developing new algorithms, (3) addressing knowledge representation issues, (4) addressing knowledge acquisition issues, (5) studying extensions of the basic constraints satisfaction problem paradigm.