Next: Typical Applications and Approaches
Up: What is Constraint (Logic)
Previous: What is Constraint (Logic)
The C(L)P programming paradigm has some resemblance to traditional Operations
Research (OR) approach, in that the general path to a solution is:
- 1.
- Analyzing the problem to solve, in order to understand
clearly which are its parts;
- 2.
- determining which conditions/relationships hold among those
parts: these relationships and conditions are key to the solving,
for they will be used to model the problem;
- 3.
- stating such conditions/relationships as equations; to achieve
this step not only the right variables and relationships must be
chosen: as we will see, C(L)P usually offers a series of different
constraint systems, some of which are better suited than others for
a given task;
- 4.
- setting up these equations and solving them to produce a
solution; this is usually transparent to the user, because the
language itself has built-in solvers.
There are, however, notable differences with OR, mainly in the
possibility of selecting different domains of constraints, and in the
dynamic, generation of those constraints. This seamless combination
of programming and equation solving accounts for some of the unique
components of Constraint Programming:
- the use of sound mathematical methods: well-known and proved
algorithms are provided as intrinsic, builtin components of C(L)P
languages and tools;
- the provision of means to perform programmed search, especially
in CLP (were search is implicit in language itself);
- the possibility of developing modular, hybrid models, when
necessary: many C(L)P systems offer different constraint systems,
which can be combined to model the various parts of the problem
using the tool more adequate for them;
- the flexibility provided by the programming language used, which
allows the programmer to create the equations to be solved
dynamically, possibly depending on the input data.
Next: Typical Applications and Approaches
Up: What is Constraint (Logic)
Previous: What is Constraint (Logic)
MCL
1998-12-03