Next: Intervals
Up: Introduction
Previous: Suspended Goals: suspend
  Index
Subsections
The standard constraint solver offered by most constraint programming
systems is the finite domain solver, which applies constraint
propagation techniques developed in the AI community
[23].
ECLiPSe supports finite domain constraints via the fd library.
This library implements finite domains of integers, and the usual
functions and constraints on variables over these domains. In
addition ECLiPSe offers finite domains of non-numeric values, for example
red, green, blue.
Whilst there is a standard set of constraints supported by the
fd library in ECLiPSe and in
most constraint programming systems, many more finite domain
constraints have been introduced which have uses in specific
applications and do not belong in a generic constraint programming
library.
The behaviour of these constraints is to prune the finite domains of
their variables, in just the same way as the standard
constraints.
Therefore ECLiPSe offers several further libraries which implement more
constraints using the fd library.
One such library is fd_global.
It supports a variety of constraints, each of which takes as an argument
a list of finite domain variables, of unspecified length.
Such constraints are called ``global'' constraints [2].
Examples of such constraints, available from the fd_global library
are
alldifferent/1, maxlist/2, occurrences/3 and
sorted/2.
There are several ECLiPSe libraries implementing global constraints for
scheduling applications. The constraints have the same semantics,
but different propagation. The constraints take a list
of tasks (start times, durations and resource needs), and a maximum
resource level. They reduce the finite domains of the task start times
by reasoning on resource bottlenecks [13]. Three ECLiPSe libraries
implementing scheduling constraints are
cumulative, edge_finder and edge_finder3.
ECLiPSe offers two libraries which implement finite sets.
These libraries make use of the fd solver to reason about set
cardinality and about variables belonging to the sets [10].
The first library conjunto admits both symbolic and numeric
values. The second library fd_sets has some extra
functionality and optimised implementation, but only handles sets of
integers.
Next: Intervals
Up: Introduction
Previous: Suspended Goals: suspend
  Index
Warwick Harvey
2002-05-15