approach, we can efficiently allocate resources with the least amount of modification
to the given plan. The latter is important in cases where we are given a problem with
excess resources. We still want to try and use as few resources as needed, while a general
CSP formulation may find a plan that uses all the resources just because they are available.
Iterating through classes ensures that the plans developed with the procedural algorithm
is comparable in quality to those developed by the normal planner. In the rest of this
section, we sketch methods for efficiently handling the special cases. We first illustrate
these methods with corresponding special algorithms. Subsequently, we shall show that the
classes can also be handled within the declarative CSP approach (of Section 4.1). Special
classes can be implemented by different strategies to restrict the domains of variables in
specific ways.