a resource allocation procedure could very well be to identify fundamental conflicts. .... dependent background knowledge in the form of a concept hierarchy (Fig. .... A conflict is defined by the set of delayed resources at a branching node of the.
Interactive Resource Allocation by Problem Decomposition and Temporal Abstractions
1
Long version Technical Report No. TR-94/43
Berthe Y. Choueiry and Boi Faltings Laboratoire d’Intelligence Artificielle D´epartement d’Informatique EPFL, Ecublens CH-1015 Lausanne, Switzerland
(
E-mail :
choueiry faltings
)
@lia.di.epfl.ch
Fax: +41-21-693.52.25
January, 1994 Abstract Abstractions are generally thought to reduce the complexity of problem solving. In this report, we present two abstraction techniques and one partitioning heuristic to solve resource allocation problems. The clustering heuristic decomposes the resource allocation problem into easy and difficult components interacting through abstracted pools of resources. The hierarchy of resource pools allows the user to intervene in conflict resolution at the most appropriate level of abstraction. The temporal abstraction techniques simplify the decoupled components. They also aid the user in assessing the tightness of the problem and the types of missing resources. We propose an algorithm that interleaves these processes. The main advantages of our approach are limiting the need for backtracking, providing an interactive framework for conflict resolution, and offering a comprehensive view of resource contention.
1
A shorter version of the report appears in the proceedings of the Second European Workshop on Planning [Choueiry and Faltings, 1994].
1
Contents 1 Introduction, motivation and report outline
1
2 Problem definition
2
3 Solution outline
3
4 Abstraction 4.1 Summarization 4.2 Generalization
:::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::
4 5 5
5 The use and computation of summarizations in resource allocation
6
6 Value-Assignment Delay Heuristic
8
7 Conflict detection
10
8 The Broad Brush Effect and its resolution
11
9 Automatic conflict resolution
11
10 The solution method applied to a real-world example
12
11 Related work
16
12 Use of a Temporal Truth Maintenance System
18
13 Implementation and results
19
14 Main characteristics and conclusions
20
15 Further research
21
16 Acknowledgements
22
i
List of Figures 1
2 3
4 5 6 7 8 9 10 11 12 13 14
Left: A schedule of seven tasks whose start time and duration has been determined in the scheduling phase. For each task a set of possible resources is shown. Right: the corresponding constraint graph. : : : : : : : : : : : : : : Role of the VAD heuristic and temporal abstractions in solving a resource allocation problem. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : Summarization of temporal intervals by interval union. In the domain of allocating operation rooms to surgical operations, op1 takes place in room-1 followed by op2 and op3 in the same room. In summary, all these operations are taking place in room-1 over the entire time interval. : : : : : : : : : : : : : : : : : Generalization using structured background knowledge. : : : : : : : : : : : : Left: Token representation of tasks located in one cluster. Center: Comparability graph. Right: After elimination of arcs of transitive precedence. : : : : : : Left: An example of the list coloring problem. Right: Applying the valueassignment delay heuristic to this simple example. : : : : : : : : : : : : : : : Conflict isolation. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : Left: Four tasks and their possible resources. Right: Illustration of the broad brush effect. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : The constraint graph of an illustrative example. : : : : : : : : : : : : : : : : Decomposition by the VAD heuristic. : : : : : : : : : : : : : : : : : : : : : Leaf nodes have been summarized and conflicts detected. : : : : : : : : : : : Operations claiming delayed values fMohamad, Sunthorn, Sylvain, Olivierg. : Resource allocation has been heuristically solved. : : : : : : : : : : : : : : : Non-monotonic temporal TMS maintains correctness of temporal and atemporal data. : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
ii
:
2
:
3
: :
5 6
:
7
: :
9 10
: : : : : :
11 13 14 15 15 16
:
18
1 Introduction, motivation and report outline Planning, scheduling and resource allocation are closely related tasks. Because they intervene at different time scales, they can be decoupled. Consider, for instance, the problem of managing flights of an airline company. Purchasing airplanes, hiring personnel, setting flight timetables as well as large investment decisions are planned for a relatively long period of time and are subject to general company policies. Regular maintenance work for airplanes and working time shifts for personnel are scheduled for a shorter time horizon, say on a monthly basis. On a much finer time scale, human operators must decide how to allocate the available resources, (e.g. airplanes, crew, maintenance teams etc.) in order to execute the scheduled tasks for the next day or week. Unforeseen events may occur any time and directly affect the daily resource allocation; rescheduling must then be considered. In our case study, we concentrate on solving the resource allocation problem 2, a task usually entrusted to one or more human operators. Execution times for individual tasks have already been set and the problem is to distribute the available resources in a suitable manner. Humans are overwhelmed by the complexity of this task, especially when the size of the problem increases. Because they fail to grasp the interactions among the many components of a problem, they tend to make bad decisions and bad compromises. We propose a division of labor between the user and the computer. The machine decouples a problem into abstract subcomponents which serve to simplify interactive human decision making. Another use of the abstraction techniques is to provide useful input to rescheduling and feedback to the planning and scheduling tasks. For example, conflicts and their characteristics are recorded and abstracted out, then reported to the coarser time scale scheduling and planning tasks. These abstractions can be used to improve future predictions and decisions. These functionalities are described in [Choueiry and Faltings, 1992b]. This report is organised as follows. First we define the resource allocation problem, Section 2. Then we introduce abstractions and propose two abstraction techniques summarization and generalization, Section 4. We discuss how temporal abstractions are computed in order to reduce the size of a problem, Section 5. In Section 6, we propose a new heuristic to decompose a problem into interacting components. Some of these components are easy to solve and some others are over-constrained. This decomposition generates a tree structure where the interactions among over-constrained components are made visible. These interactions define conflicts. We discuss conflict detection in Section 7. In Section 8, we introduce a shortcoming of the decomposition strategy, namely the broad brush effect, and we propose to overcome this problem by defining alliances among the conflicting problem components. The hierarchical problem decomposition, the conflict isolation and the alliance formation procedures define an environment where the users can intervene locally in problem resolution and enforce their own preferences interactively. We argue that the structure of the clustering tree can accommodate 2
The architecture of the whole problem, planning, scheduling, resource allocation and rescheduling, is discussed in [Berry et al., 1992].
1
a variety of heuristic strategies for automatic conflict resolution, Section 9. In Section 10, we interleave the various methods introduced previously in one solution framework that we apply to a real-world problem. Then we compare our approach to other methods in the literature, Section 11. In Section 12, we discuss the advantages of temporal truth maintenance. In Section 13, we describe the implementation and comment on the experiments we carried out. In Section 14, we recall the main characteristics of our approach and draw directions for future research, Section 15.
2 Problem definition In Fig. 1, we show a simple example of a resource allocation problem. For each task, we define a set of resources that can execute the task. T1 T2 T3
T1
{R1,R3}
{R1,R3,R4}
T5 T7
T4
{R1,R3}
{R1,R3} {R1,R3}
T6
{R1,R2,R3}
{R2,R4}
{R1,R2,R3}
{R2,R4}
T5
T7
T2 {R1,R3}
T4 {R1,R2,R3} {R2,R4} T6 {R2,R4}
T3 {R1,R3}
Time
Figure 1: Left: A schedule of seven tasks whose start time and duration has been determined in the scheduling phase. For each task a set of possible resources is shown. Right: the corresponding constraint graph. The resource allocation problem can be expressed as a discrete Constraint Satisfaction Problem (CSP) [Mackworth, 1977]. A constraint graph is associated with the CSP where nodes represent tasks to be executed, values are resources, and arcs link nodes that intersect in time and indicate that one resource cannot be allocated to more than one task at a time. Such constraint graphs are generally highly connected and they often have no solution at all. Thus the output of a resource allocation procedure could very well be to identify fundamental conflicts. We can easily map the resource allocation problem to a list coloring problem3 of a special kind of perfect graphs called interval graphs [Golumbic, 1980; Lov`asz, 1983]. Although the usual graph coloring problem in interval graphs is known to be linear [Golumbic, 1984], list coloring is NP-complete [Arkin and Silverberg, 1987]. 3
The graph coloring problem, also called minimal coloring, is the problem of coloring the nodes of a given graph with a given number of colors. Each node can be assigned any of the colors available. Two adjacent nodes should not be given the same color. In list coloring problems, each node has a predefined set of colors it can be assigned and these sets are usually not the same for all nodes. In the literature, list coloring is also called restricted coloring [Kubale, 1992] and feasible coloring [Gr¨oflin, 1992].
2
3 Solution outline One way to approach this NP-complete problem is to structure the graph so that a solution method is less likely to encounter a combinatorial explosion. We propose an architecture in which we use three techniques: summarization, the Value-Assignment Delay (VAD) heuristic and generalization. Summarization groups successive tasks which can be executed by the same resource into a single one, thus reducing the size of a problem. In general, a summarization over-simplifies the problem and thus might miss feasible solutions. Therefore we must first gradually refine the original problem to intermediate abstraction levels until safe summarizations can be applied. The tree of subproblems which reflect safe summarizations, illustrated in Fig. 2, is constructed by a problem decomposition strategy called the VAD heuristic. The problem partitioning strategy, B
Constraint graph of the initial problem A
Conflicting paths competing for the same resources− Conflict isolation
B
C and D B
A
Leaf cluster
B
B
Intermediate cluster A
A VAD heurisitc separates
A B
B
B
B
B
cluster into least Interacting components
B Temporal Abstractions reduce cluster’s size A
C Temporal Abstractions B
B
assist in conflict resolution
D Temporal Abstractions operating bottom−up help assessing problem tightness
Figure 2: Role of the VAD heuristic and temporal abstractions in solving a resource allocation problem.
3
based on the VAD heuristic, iteratively decomposes a resource allocation problem, expressed as a CSP, into a tree structure of interacting sub-components, Fig. 2. At each step in this clustering process, tests are carried out to check whether a summarization of the sub-component could yield a feasible solution; if not, further refinement is applied. At the end of the clustering process, the leaves of the generated tree constitute isolated components of the initial problem. Some components are under-constrained and can be solved independently, some others are over-constrained and interact among each other along the tree structure. These interactions define conflicts over resource pools located on the trunk of the tree. As shown in Fig. 2, the partitioning strategy provides a framework that is well suited for conflict isolation and for interactive problem solving, in which the human operator can intervene to select between conflicting paths in the clustering tree. This is a very important feature, especially in application domains for which preferences are difficult to formalize and quantify. A third abstraction technique is called generalization and is based on concept generalization proposed in [Dietterich and Michalski, 1984]. The process of generalization generates abstractions bottom up along the tree structure of Fig. 2, starting at the conflicting leaf nodes identified by the conflict resolution procedure. Up to this point, tasks have been treated as simple nodes in the constraint graph. Generalization uses more complete information about the attributes of the tasks along with a concept hierarchy of attribute values. The generalization procedure forms the most specific common generalization of the conflicting tasks. This is used as a feedback support for the analysis and evaluation of conflicts and problem tightness, and also as an aid in rescheduling.
4 Abstraction Abstraction methods have been proposed as promising techniques to reduce the complexity of problem solving and have been applied to a large number of domains. Abstraction can be defined as follows, see also [Giunchiglia and Walsh, 1990b]: Abstraction is the mapping of a problem representation into a simpler one that satisfies some desirable properties in order to reduce the complexity of reasoning. The problem is solved in a simplified abstract space and the solution is then mapped back to the more complex ground space. We propose two processes for building temporal abstractions: summarization and generalization. Summarizations group temporal intervals and are built considering only time related information, while generalizations group classes of similar objects within one proposition to form a more general one. While these methods are independent of the adopted temporal formalism, our examples are based on the one proposed in the Time Map Manager (TMM), [Dean and McDermott, 1987]. 4
The basic unit of the TMM representation are temporal tokens, which are structures associating a proposition to a time interval. Abstractions are themselves temporal tokens which represent a characterization of a group of tokens. In general, abstractions are only approximations and lose some of the information associated with the detailed tokens. By linking abstractions to the originating tokens using a TMS4 structure, the user has access to the detailed information wherever necessary, as proposed by Doyle and Williams in [Doyle, 1979; Williams, 1986].
4.1 Summarization Summarization is the replacement of a collection of time tokens by a single one. The interval of the summarization is the smallest interval that encompasses all intervals of the component tokens. The property of the summarization is a combination of the properties of the constituent tokens, see Fig. 3. (location (op1 op2 op3) Room−1)
TMS−dependency links (location op1 Room−1)
(location op2 Room−1)
(location op3 Room−1)
Figure 3: Summarization of temporal intervals by interval union. In the domain of allocating operation rooms to surgical operations, op1 takes place in room-1 followed by op2 and op3 in the same room. In summary, all these operations are taking place in room-1 over the entire time interval. The resulting property can be understood as a disjunction of the constituent properties. Note that the time interval of the summarization may be non-liquid, i.e. the property does not necessarily hold for every sub-interval. After summarization, the abstract space comprises a subset of the initial set of possible solutions and any solution found in the abstract space can be safely mapped back to a concrete solution. In the example of Fig. 3, the tasks have been grouped so that they will be assigned the same resource, for instance a surgeon. Alternative solutions, for example assigning a different surgeon for operations op2 and op3 , have been deliberately ruled out and dropped from the solution space.
4.2 Generalization Generalization does not affect the temporal extension of a time token, instead, it operates only 4
TMS, Truth Maintenance System, is also called RMS, Reason Maintenance System.
5
on its propositional expression or property. It provides a way to replace a disjunction of terms, within one proposition, by a single more general term. Generalization is based on domain dependent background knowledge in the form of a concept hierarchy (Fig. 4). It corresponds to using the climbing the generalization tree structure heuristic described by Dietterich and Michalski [Dietterich and Michalski, 1984]. Hospital−Section1
Hospital−Section2
(Instrument−tech Section−1 missing) TMS−dependency
urology
pediatrics
(Instrument−tech (cardiology urology) missing)
cardiology
TMS−dependency op3
op2
op1
op14
(Instrument−tech (op1 op2 op3) missing)
op20
Figure 4: Generalization using structured background knowledge. Fig. 4 gives an example of generalizing a proposition obtained by summarization using the generalization hierarchy shown. Generalizations suppress the detailed descriptions of specific entities by mapping them to more generalized categories. Thus decisions made on the basis of the general categories alone might violate constraints that refer to the specific entities.
5 The use and computation of summarizations in resource allocation In this section we discuss how summarizations are applied in resource allocation. Examples of the use of abstraction methods in rescheduling and in assessing problem tightness are discussed in [Choueiry and Faltings, 1992b]. The goal here is to simplify the problem by reducing the number of tasks and thus the size of the search space, at the expense of reduced flexibility. Each leaf cluster identified by the VAD is a set of tasks with similar resource requirements. Summarizations are applied to the leaf clusters in order to reduce their size. A leaf cluster “contains” a collection of intervals such as those shown in Fig. 5 (left). Groups of intervals which do not overlap are identified and replaced by a unique summarized interval. A regular resource allocation procedure can finally be applied to assign one value per “summarized task”. The first step is to arrange the time tokens, by topological sorting, in a directed graph5 reflecting their temporal succession (Fig. 5 center). Nodes denote time tokens, links are built 5
This is a directed acyclic graph and is called a comparability graph.
6
between nodes that do not overlap, and arrows reflect their precedence order. Every path in this graph represents a possible sequence of tasks that can be carried out by one and the same resource, and thus a possibly useful summarization. Obviously, accepting large gaps between (Task A) (Task B)
(Task C) Task A (Task D)
(Task E) Task D
(Task F)
(Task G)
Time
Task F
Task B
Task C Task E Task G
Task A
Task F
Task G
Task B
Task C
Task D
Task E
Figure 5: Left: Token representation of tasks located in one cluster. Center: Comparability graph. Right: After elimination of arcs of transitive precedence. successive tasks may be wasting resource capacity. The user may control the maximum interval between two successive tasks and the arcs that exceed this interval are omitted from the graph. Competing summarizations are apparent in the graph as different paths between the same nodes. Those that arise as a result of transitive precedences are eliminated to simplify the graph6. If the users have some unquantifiable criteria (subjective preferences) for grouping tasks, they can be presented with the graph of Fig. 5 (right) so they can interactively select the most suitable summarizations. They can thus apply criteria which are difficult to formalize in a computer program, and obtain solutions which are more acceptable in practice. In [Choueiry et al., 1994], we describe four algorithms for selecting the most compact summarizations, see Table 1. The goal is to replace the set of intervals by the set of summarized intervals of minimum cardinality. This can be done by coloring the intervals with the minimum number of colors then summarizing those intervals with the same color. In addition, and in order to generate the most useful summary, a preference criterion is needed to distinguish among competing possibilities. While trying to keep paths as long as possible, we consider three criteria for establishing this order:
maximize the minimum distance between consecutive tasks (allowing the maximum break time, for machine cleaning or surgical theater preparation), minimize the maximum distance (resulting in a minimum resource idle time between task execution in a manufacturing application), and choose the tasks which happen at the same geographic location or at a close geographic distance. 6
Eliminating transitive links is the problem of finding the minimum equivalent graph (MEG). For directed acyclic graphs, MEG is also transitive reduction and vice versa. This operation can be done in less than O(n3 ) [Aho et al., 1972].
7
Algorithm Greedy-1 [Gupta et al., 1979] Greedy-min Greedy-max Minimal-change
Optimization Criterion Complexity None O(n) Min. minimal distance O(n) Max. minimal distance O(n) Min. change of location O(k:n2)
Table 1: Four algorithms for building compact summarizations. The complexity measure assumes that intervals are given by the interval orders and sorted in ascending value order of their endpoints. n is the number of tasks and k is the number of geographical location of these tasks (k n).
6 Value-Assignment Delay Heuristic This section proposes a new heuristic called the value-assignment delay heuristic (VAD) useful for solving list coloring problems. An arc in the constraint graph of a resource allocation problem, expressed as a CSP as defined in Section 2, indicates a mutually exclusive binary constraint between the nodes it links. This means that nodes linked cannot be given the same value. In interval graphs, two nodes are linked if and only if their time interval intersect and they have at least one value (i.e. resource) in common. Since, in practical applications, many tasks are to be executed at the same time and many resources are solicited by many tasks at the same time, the corresponding constraint graphs tend to be densely connected. One can limit the high degree of interdependency among tasks by hiding the shared resources. This operation, when applied repeatedly to the most commonly shared values, will result in a progressive elimination of arcs in the constraint graph, gradually separating it into independent clusters. We show how this applies to a simple example. In Fig. 6 (top), we show a simple example of a list coloring problem with four nodes: 1 2 3 and N4 . Each node has a set of values it can be assigned. These sets are given in Fig. 6. Links between two nodes indicate that they cannot be given the same value.
N ;N ;N
A backtrack-search procedure that starts by assigning value a to either find a solution before going through a significant amount of backtracking.
N
1
or
N
2
will not
On the bottom of Fig. 6, we apply iteratively the value-assignment delay heuristic to the initial cluster then, to the generated clusters. Using the value-assignment delay heuristic, the most common value, a, is delayed, thus splitting the initial cluster into two parts. In Cluster1, one can assign value e to N2 without hesitation. In Cluster2, the three nodes are still competing for common values, and they share, as a reserve, a set of delayed values, delay = fag . At the next step, value b is delayed, and unsolved Cluster2 is split further, into two parts. One of these, Cluster3, can be assigned a value without further delay, and the remaining cluster is left with an empty set of possible values. It claims the delayed values a and b. A subsequent conflict resolution procedure assigns one delayed value to each unsolved node in this cluster. 8
Initial Cluster N1 { a b c d }
{ae}
N2
{ab}
{ab}
N4
N3
Delay value {a} N1 {abcd}
N2 Cluster 2
{ae} Cluster 1
N1
N2 {e} {ab}
{ab}
N3
N4
{bcd}
delay={a} N4 {b}
N3 delay={a} { b }
delay={a}
delay={a}
Solved Delay values { b}
Cluster 3 N1
{cd} delay={a,b}
Solved
Cluster 4 N3
{}
delay={a,b}
N4
{}
delay={a,b}
Claiming delayed values {a. b}
Figure 6: Left: An example of the list coloring problem. Right: Applying the value-assignment delay heuristic to this simple example. The main idea of the VAD heuristic can be expressed as follows: Delay the assignment of the most solicited values and try to solve the simplified problem without them. Let the variables compete over other possible assignments. Finally, distribute the delayed values to those variables that really cannot do without them. The choice of values to be delayed is obvious in the example above. We should delay first the value, or set of values, that appears in the largest number of connected nodes. In [Choueiry and Faltings, 1992b], we propose and discuss a method for selecting the values to be delayed that is applicable in the case of interval graphs. This method is based on measurements of resource contention similar to [Berry, 1991; Sadeh, 1991]. Various techniques have been developed to measure value contention in order to focus the attention during the search process, [Ow and Smith, 1988; Berry, 1991; Sadeh, 1991]. The 9
VAD heuristic provides a visually pertinent, dynamically built, hierarchical structure to evaluate where the contented resources are most needed. Importantly, the VAD heuristic can be thought of as an abstraction technique by itself. By grouping values on the trunk of the partitioning tree and by pushing variables into the leaves, it implicitly builds aggregates of objects: it abstracts out the features of each atomic object only to retain the similarities and differences among these entities as far as value contention is concerned.
7 Conflict detection In the example of Fig. 7, Cluster1 and Cluster3 could be solved independently. Cluster4 is claiming values fag and fbg delayed higher up in the tree hierarchy and are not yet solved. For each set of delayed values claimed by one or more unsolved cluster we define a conflict. Delay value {a}
Conflict over {a}
Conflict over {b}
Cluster 1
Solved
Cluster 3
Solved
Delay values { b}
Cluster 4 N3
{}
delay={a,b}
N4
{}
delay={a,b}
Claiming delayed values {a. b}
Figure 7: Conflict isolation. A conflict is defined by the set of delayed resources at a branching node of the clustering tree and the tasks downstream that solicit these resources 7 . A conflict resolution is the decision to allocate the delayed resources in a given conflict to any of the soliciting tasks. The conflict detection procedure starts by identifying all conflicts. The user can view each conflict through the graphical user interface and force in his or her preferences for conflict resolution and value assignment. 7 Only the downstream tasks need to be considered because the partitioning of the initial problem implies that a task upstream needs none of the resources delayed downstream.
10
8 The Broad Brush Effect and its resolution During the conflict resolution procedure, clusters downstream of a given branching node in the tree hierarchy might compete for values delayed at a higher level in the hierarchy. This does not imply that all tasks in different clusters necessarily compete for the values delayed since their time intervals do not necessarily intersect. They could both be assigned the same delayed value without generating inconsistencies. This apparent competition among tasks belonging to separate clusters is caused by what we call the broad brush behavior of the clustering procedure. The broad brush effect is encountered when two leaf clusters compete for the same set of delayed resources and when some tasks in these clusters do not intersect in time. These tasks could be assigned the same delayed resource simultaneously. When the tasks in two apparently competing clusters do not all intersect in time8, the two clusters define a possible coalition or alliance. They can be merged and the non-intersecting tasks can be summarized, thus reducing the overall resource contention. a
Task K, {a b c} Task L, {a b}
b
Task M, {a} Task N, {a b c}
Task K {c} Task N {c}
Task M Task L
Two allies forming a coalition for resource a
Figure 8: Left: Four tasks and their possible resources. Right: Illustration of the broad brush effect. The example of Fig. 8 is a very simple illustration of the broad brush effect. One way to overcome the broad brush effect is to find possible alliances among leaf clusters. Upon user’s request, the conflict detection procedure identifies all alliances and measures the corresponding decrease of resource contention. The best alliances are the ones that reduce most the resource contention.
9 Automatic conflict resolution Although our goal is to allow the users to selectively participate in the conflict resolution by viewing and manipulating conflicts and alliances determined in the previous steps, we also 8
In the general case of list coloring, the broad brush effect appears between nodes linked by no constraint in the initial graph.
11
provide an automatic conflict resolution procedure. This procedure may integrate domain dependent knowledge and adopt any of the following strategies:
Allocate a delayed value to the first node encountered going in the reverse order of that used to create the tree (i.e. from the last visited leaf up to the root), When two tasks are competing for a delayed value, give it to the task that temporally contains the other, or the one with the longest temporal duration, Allocate a delayed value to the tasks that participate in the least number of alliances, thus adopting a least commitment strategy, Select the alliance that most reduces the demand on delayed resources. The clusters defined by this alliance form a strong coalition, and their combined claim for the delayed value is stronger, and Use domain dependent heuristic knowledge to distribute delayed resources over unsolved clusters. For instance, one may want to allocate a resource to those tasks that show some geographic proximity. These strategies are partially implemented and will be tested and evaluated. Further investigation into conflict resolution is necessary. Naturally, the conflict resolution procedure exhibits exponential complexity. It actually concentrates in itself the difficulty inherent to resource allocation. However, since parts of the problem may have been solved by the previous procedure, and the size of the remaining parts is thus reduced, the problem solving is rendered more efficient.
10 The solution method applied to a real-world example In this section, we propose an interactive framework for solving resource allocation problems that integrates the techniques introduced and discussed above. This solution method is made of four components, namely: (1) a clustering algorithm based on the composition of the VAD heuristic and of temporal summarization, (2) a conflict resolution procedure where conflicting needs of groups of tasks for the delayed values are identified and, either interactively or heuristically, solved, and (3) a generalization procedure carried out over unsatisfied tasks. This last procedure provides an assessment of problem tightness and, when repeated periodically in a given environment, predicts needs and gives guidance for future investments. This component has not been yet implemented and will not be described in this report. The details of the clustering algorithm can be found in [Choueiry and Faltings, 1992b; Choueiry and Faltings, 1993]. Here, we apply the solution method to a real-world case study: The allocation of operating rooms and of a variety of technicians to surgical operations in a 12
hospital. Fig. 9 shows the constraint graph associated with the problem of allocating technicians of type gar¸con to a set of surgical operations. The CSP parameters of this problem [Benson and Freuder, 1992] are hn; a; t; di = 35; 8; 0:088; 0:428. We demonstrate, in Fig. 10 to 12, how a solution could be completed successfully.
Figure 9: The constraint graph of an illustrative example. First, a node consistency check is run to determine the resources that can be allocated to each task. Then the initial constraint graph is built and separated into independent connected graphs. Nodes that are not linked to the rest of the graph are isolated: those can be either nodes with no adequate resource to execute them (see op39 in Fig. 10) or nodes with enough resources (in Fig. 10, Adel can be allocated to op29 with no loss of generality). The clustering procedure is applied to each of the remaining components. It uses the VAD heuristic, summarization, the second graph reduction operator introduced by Cheeseman et al. 13
Figure 10: Decomposition by the VAD heuristic. [Cheeseman et al., 1991], and a heuristic for selecting the set of delayed resources at each step of the clustering procedure. Both the adaptation of the reduction operator to our problem and the heuristic for computing the set of delayed resources are explained in detail in [Choueiry and Faltings, 1992b]. The complexity of clustering is assumed to be polynomial [Aho et al., 1974], but this still need to be investigated. In Fig. 10, we show the resources delayed at the branching clusters. For each leaf cluster, we display the tasks (surgical operations) and the resources still available but not the links between the tasks as in a constraint graph. We have built a user interface that makes it possible to view the constraint graphs and the interval graphs of any leaf cluster. The proposition of a surgical operation x to be allocated a resource of type gar¸con has the following format (garcon op missing ). The set of resources following the proposition is the set of values that have not been delayed and are still directly available. op35 and op36 are the only tasks reduced by the second reduction operator of [Cheeseman et al., 1991] . x
The resources remaining in a leaf cluster are solicited equally by the tasks in the cluster. The summarization process described is Section 4.1 is applied to these tasks to reduce the size of 14
the corresponding leaf cluster. Fig. 11 shows the tree after the leaf clusters have been reduced by summarization, hence the clusters in this diagram are smaller than the corresponding ones in Fig. 10.
Figure 11: Leaf nodes have been summarized and conflicts detected.
Figure 12: Operations claiming delayed values fMohamad, Sunthorn, Sylvain, Olivierg . At this point, the user can view any of the current conflicts. For example, the conflict at the highlighted node in Fig. 11 shows 4 delayed resources solicited by 7 tasks belonging to 3 clusters. The user may intervene directly in the resolution of any conflict and specify an arbitrary allocation of resources. The alliance formation procedure identifies all possible alliances between clusters claiming the same delayed resources. In Fig. 11 such an alliance is shown between two clusters, the one
15
containing op(8 9), op15 , op13 and op4 with that containing op14 and op5 , because (op4 , op5 ) and (op14 , op15 ) can be merged by summarization as one can check in Fig. 12. ;
Finally, in Fig. 13, the automatic conflict resolution succeeded in allocating resources to all tasks after merging the allied clusters. Although other possible alliances exist, only one was needed to solve all conflicts.
Figure 13: Resource allocation has been heuristically solved.
11 Related work Least commitment strategies and opportunistic approaches to decision making are features common to many AI systems, [Newman and Kempf, 1985]. Our contribution is to provide an overall structure to guide the decision process. A delayed evaluation method has been proposed by Zweben et al. in [Zweben and Eskey, 1989]. However, the essence of this technique is very different from the VAD heuristic we propose: It is not a problem solving strategy but a programming technique in Common Lisp which delays the evaluation of items in data structures until they are accessed, [Sangal, 1991]. Zweben et al. use streams to represent the sets of values for variables in a CSP. Then they
16
use delayed evaluation to access these sets in a classical forward checking scheme to solve scheduling. In [Bose, 1992], Bose abstracts resources by building resource pools in certain time slots. It is not clear how his method can actually be considered as an abstraction technique rather than an indexing scheme, and whether the use of resource pools reduces the complexity of reasoning at all. In [Hadavi et al., 1992], Hadavi et. al discuss the abstraction of constraints and time where hierarchal tree structures are used to represent schedules and constraints. These tree hierarchies are used to select the appropriate level of the constraints to be applied while referring to different time scales. The tree structure seems to be pre-compiled, rather than a dynamically built construct. These structures seem to be more of a representation issue than a model for reasoning. In contrast, our abstractions are techniques for problem space reformulation. Recently, there have been some contributions to reduce constraint satisfaction problems by clustering either variables or values into equivalence classes or partitions. In [Cheeseman et al., 1991], Cheeseman et al. propose three operators to reduce variables of graph-coloring problems. We can only use the second one, see [Choueiry and Faltings, 1992b]. It did very few reductions in the real-world test cases we have run. In [Freuder, 1991], Freuder defines the concept of constraint interchangeability, also studied and improved by Haselbo¨ ck [Haselb¨ock, 1993]. Basically, this concept defines equivalence classes among values in a CSP. The VAD heuristic introduced in this report creates equivalence classes for both values and variables simultaneously. In [Ellman, 1993a; Ellman, 1993b], Ellman proposes two heuristics to cluster either variables or values as an abstraction approach to solve CSPs. The user has to select, at compile time, the number of partitions (size of the abstract space) as well as the one feature function which guides the clustering. Ellman shows that the performance of the proposed method depends significantly on the predefined number of partitions, a crucial parameter. The VAD heuristic does not suffer from this shortcoming since the number of task clusters (variables) and resource pools (values) is determined dynamically during the clustering process. The feature function in our case is whether or not a resource is suitable for a given task independently of the various attributes of the resource. In [Lansky, 1990], Lansky discusses how activities and events in planning problems can be “clustered into groups—regions whose boundaries impose barriers on various forms of domai n interaction”. She further discusses how such a partitioning allows one to localize domain properties. We think that this idea of localization is very close to the spirit of our proposed partitioning heuristic: The VAD heuristic separates the problem at hand into components, some of these components can be solved easily in a straightforward manner and some others interact through conflicts defined around pools of resources. Furthermore, it determi nes these localizations and interactions dynamically at run time whereas in [Lansky, 1990] they depend on the skill of the domain expert. The use of the temporal abstraction methods proposed in Section 4 can be extended to general reasoning about physical systems, such as diagnosis, as we have suggested in [Choueiry
17
and Faltings, 1992a]. In an independently developed work [Shahar and Musen, 1993], Shahar et al. propose three different kind of temporal abstractions, namely point temporal abstraction, temporal inference, and temporal interpolation, which are very close to the essence of temporal summarization and generalization. This fact shows the adequacy of the use of these methods to reason about applications as different as patient monitoring, diagnosis and resource allocation. Shahar and al. also recognized the importance of the use of TMS in temporal abstractions to keep track of the validity of temporal abstractions in a dynamic environment.
12 Use of a Temporal Truth Maintenance System Truth Maintenance dependency links are used to maintain correctness of temporal and atemporal knowledge and decisions. We have not yet investigated the use of TMS in the reasoning process. Fig. 14 shows how the decisions (scheduling decision #27) and the (resource allocation decision #31), made by the scheduling and resource allocation procedures, support the temporal data (technician job1 missing) and (technician job1 John). These intervals are also supported by some temporal and atemporal data stating that the user wants to consider job1, the execution of this job demands a technician, and that John is on duty during the execution of this job. The retraction of any of these assertions causes the retraction of the decisions (technician job1 missing) or (technician job1 John). Furthermore, whenever a decision to allocate a resource to a task is taken, it is added, at run time, as a negative support to the datum stating that the considered task is lacking a resource. Notice that according to our data structure, more than (consider job1) (Sched−decision #27) (need job1 technician) (RA−decision #31) (on−duty John) temporal condition: (execution job1) 14:00 during 7:00 (working John)
(execution job1) 8:00
(selected−for job1 John)
10:00
(technician job1 John) 8:00
(technician job1 missing) 8:00
(technician job1..)
10:00
justification node just. positive support just. negative support
10:00
Figure 14: Non-monotonic temporal TMS maintains correctness of temporal and atemporal data. one technician can be allocated to the same task. This may seem contradictory, but we have 18
decided that such contradictions should be handled directly by the reasoning process and not by the TMS. This design decision is convenient and useful in the application we are tackling, it might not be the case in the most general case. Another use of TMS is made during the abstraction process. Dependency links keep a trace between the ground data and their abstractions. These links are used to travel up and down a generated abstraction hierarchy, as suggested by [Doyle, 1979]; users are presented with the most general results, but they can access more accurate information at an increasing level of detail by moving along the TMS links, see Fig. 3 and 4.
13 Implementation and results We have adopted a hybrid representation: objects and propositions. The world model is an object hierarchy in CLOS. The entities of the world, such as resources and tasks, are described using an object oriented hierarchical representation in CLOS. This representation accurately captures the structure of the world while allowing the handling of exceptions by the use of multiple inheritance and method overriding. The temporal information, such as task execution activities and resource allocation decisions, is expressed as propositions, e.g. (surgeon operation12 Mary ). These propositions are defined in a temporal reasoning framework, the Time Map Manager (TMM) by Dean [Dean and McDermott, 1987]. Our framework provides an expressive temporal representation of the world close to the human user frame of mind. We think that this is an essential feature in such applications. Additionally, the TMM provides a conflict detection mechanism, a non-monotonic truth maintenance system, and time conditioned inferencing mechanisms that are useful for the representation of the resource allocation decisions and also for the construction and manipulation of temporal abstractions. The sample problems tested were taken from the daily archives of a large size hospital9. A backtrack search with forward checking, backjumping, and some variable ordering heuristics was also coded. Although the forward checking search could quickly find a solution, often those solutions were not acceptable to the human operator: A technician was often allocated to distant operating rooms, some technicians were not given any load at all while some others were overloaded and, not surprisingly, some technicians were allocated to appropriate tasks but, because they do not get along well with the surgeon, the human operator rejected this decision. Interestingly enough, for those cases where no solutions existed, the backtrack search would thrash forever and the users could not guess whether to wait for an outcome, or whether the problem was over-constrained and why. This is unacceptable. Our algorithm performs very well in under-constrained cases but misses some solutions in In terms of CSP measures, the tests show the following order parameters, hn; a; t; di see [Benson and Freuder, 1992; Haselb¨ock, 1993]: number of variables n = 22 to 72, mean domain size a = 5 to 31, constraint tightness jforbidden tuplesj = 0.037 to 0.108, constraint density d = e?emin = 0.376 to 0.570, where e is the number t = jall tuplesj emax ?emin 9
of constraints, emin = (n ? 1) and emax = n(n2?1) . Only one or two variable reductions using the second reduction operator introduced in [Cheeseman et al., 1991] were discovered for each of these tests.
19
tightly constrained ones: This is due to the simplification introduced by summarization and also by the “incomplete least-commitment conflict resolution” procedure. The solutions to those cases were rated badly by the expert anyway, and mainly because technicians would have to move too often between distant operating rooms. In over-constrained cases, the conflict detection and problem decomposition proved to be valuable. The expert felt uncomfortable referring to a task by its identifier or by the name of the patient only. She wished the tasks could sometimes be referred to by the geographical location and sometimes by their surgical types etc., depending on the goal set by a query. This encourages us to investigate abstractions further and with special attention to the issue of multiple generalization hierarchies. All in all, tests were positive. However, tests on randomly generated problems should be carried out before we can draw any pertinent conclusions. This is an on-going task.
14 Main characteristics and conclusions Traditional techniques used for solving the resource allocation problem are based on variations of the backtrack search mechanism and are inevitably undermined by risks of combinatorial explosion. Importantly, they fail to point out the reasons for failure when it occurs. Implementing the proposed algorithm and testing it yield the remarks discussed below. Arc-consistency methods are not suitable for this kind of interactive application because ensuring local arc-consistency rules out values which, although they do not participate in a feasible global solution, may be a good backup choice when the user is willing to relax some constraints. Concept formation: One major advantage of this method is that it provides a visually pertinent tree structure that gives the user an understanding of the highly solicited resources, and, through summarization and generalization over conflict sets, the size and types of missing resources to be increased in the future. We propose to use this generated abstract information as a basis for rescheduling and explanation10. Interactive dialog: This method generates a comfortable framework for allowing an interactive dialog with the users giving them a chance to explore solutions which also satisfy some unquantifiable preferences. Conflict isolation: An important feature of the proposed method is conflict isolation. In many constraint-based systems, contradictions are solved by relaxing one or more constraints11 , as in GARI [Descotte and Latombe, 1985], ISIS [Fox and Smith, 1990], OPIS [Ow and Smith, 1989], and DAS [Burke and Prosser, 1991]. Choosing the minimum set of constraints to be relaxed is 10
The use of constraint interchangeability to motivate concept formation is also suggested in [Freuder, 1991]. Often, domain dependent heuristic knowledge is used to select the set of constraints to be removed. Constraints are organized into hierarchies [Borning et al., 1987], or according to priority orders, preferences or relative importance [Fox, 1987]. 11
20
known to be NP-complete12, [Feldman and Golumbic, 1990]. The framework proposed in this report avoids falling into such traps by separating the easy and difficult parts of the problem and isolating the probable sources of inconsistency. The minimal conflict sets are organized in a hierarchy which can also be exploited to monitor a complete backtracking procedure in a more informed way. Abstractions of variable size: The values delayed along the trunk of the clustering tree constitute pools of resources, [Bose, 1992]. The tasks clustered in the leaves constitute aggregates with similar requirements. The individual features of the resources and tasks are abstracted out. These pools and aggregates are are built dynamically: Their size and number are not set beforehand. Applicability: The VAD heuristic can be used as a general procedure for solving list coloring in general graphs, a problem known to represent a large family of real world applications. However, the solution method proposed in Section 10 is applicable to interval graphs and is rendered more efficient by the use of domain dependent knowledge during the summarization process. Efficiency: Clustering alone performs very well for under-constrained problems with a high density of solutions in the solution space. Its efficiency in over-constrained cases depends on that of the conflict resolution procedure, especially because of the broad brush behavior of the clustering reported in Section 9. Feasibility vs. optimality: Primarily, we are interested in finding feasible solutions: Optimality is not an issue in most resource allocation problems in dynamic environments. However, we think that decoupling the problem into “easy parts” can help finding better (optimality-wise) solutions. The algorithm proposed in Section 10 divides the problem into least interacting clusters. In these self-sufficient clusters it is easier to search for locally optimal solutions that might globally yield a near-optimal solution. We suspect that this method will find a better near-optimal overall solution, because we avoid the situation where a few bad local minima are numerically compensated by good local optima within one solution.
15 Further research We are considering the following directions for further research:
Explore the third component of the solution method, i.e. the generalization procedure and the use of multiple generalization hierarchies. The issues and difficulties of the generalization process are discussed in [Choueiry and Faltings, 1992b]. 12 In [Freuder and Wallace, 1992], Freuder and Wallace propose an exponential complexity Branch and Bound method for solving a CSP while minimizing the number of violated constraints. This method fails to show clearly where alternative choices arise.
21
Investigate strategies to support incremental change and rescheduling. Investigate how incremental change affects the structure of the clustering tree. Try to see to what extent, the tree structure helps delimit the disturbance created by a given change, the bubble, a set of tasks and resources, affected by the modification. Study and evaluate the graceful degradation. Study and evaluate a multi-agent architecture. The proposed solution method is very well suited for a multi-agent approach where clusters are implemented as independent agents and temporal abstractions constitute the language of negotiation and coordination among agents. This is being done at the University of Geneva. The overall architecture of the final system, as well as the agents definition, role, and behavior are discussed in [Berry et al., 1992; Berry, 1993; Berry et al., 1993].
16 Acknowledgements This research is supported by the Swiss National Science Foundation Project#5003-034284, a collaboration with the Centre Universitaire Informatique of the University of Geneva. The authors are indebted to the following persons for insightful discussions: Dean Allemang, Erika Foelling, Alain Hertz, Simon Leinen, and Beat Liver.
References Aho, Hopcroft, and Ullman (1974). The Design and Analysis of Computer Algorithms. Addison Wesley, Reading, MA. Aho, A. V., Garey, M. R., and Ullman, J. D. (1972). “The Transitive Reduction of a Directed Graph”. SIAM J. Comput., 1, No 2:131–136. Arkin, E. and Silverberg, E. (1987). “Scheduling Jobs with Fixed Start and End Times”. Discrete Applied Mathematics, 18:1–8. Benson, B. W. and Freuder, E. C. (1992). “Interchangeability Preprocessing Can Improve Forward Checking Search”. In Proc. of the 10 ECAI, pages 28–30, Vienna, Austria. th
Berry, P. M. (1991). A Predictive Model for Satisfying Conflicting Objectives in Scheduling Problems. PhD thesis, Department of Computer Science, University of Strathclyde, Glasgow, UK. Berry, P. M. (1993). “Uncertainty in Scheduling: Probability, Problem Reduction, Abstractions and the User”. IEE Colloquium on Advanced Software Technologies for Scheduling, Digest No: 1993/163, April 26 1993, London, UK.
22
Berry, P. M., Choueiry, B. Y., and Friha, L. (1992). “A Multi-Agent Architecture for a Distributed Approach to Resource Allocation using Temporal Abstractions”. Technical Report TR-92/18, EPFL and Universit´e de Gen`eve, Switzerland. Available by anonymous ftp on liasun3.epfl.ch:/lia. Berry, P. M., Choueiry, B. Y., and Friha, L. (1993). “A Distributed Approach Based on Temporal Abstractions for Planning, Scheduling and Resource Allocation”. In Working notes of the Workshop on Knowledge-Based Production Planning, Scheduling and Control, IJCAI-93, pages 23–31, Chamb´ery, France. Borning, A., Duisberg, R., Freeman-Benson, B., Kramer, A., and Woolf, M. (1987). “Constraint Hierarchies”. In Proc. of the OOPSLA-87: Conference on Object-Oriented Programming Systems, pages 48–60, Languages and Applications, Orlando, FL. Bose, P. (1992). “An Abstraction-based Search and Learning Approach for Effective Scheduling”. In Famili, A., Nau, D. S., and Kim, S. H., editors, Artificial Intelligence Applications to Manufacturing, pages 187–197. AAAI-Press/The MIT-Press, Menlo Park, California. Burke, P. and Prosser, P. (1991). “A Distributed Asynchronous System for Predictive and Reactive Scheduling”. Computational Mechanics Publication, 6 (3):106–124. Cheeseman, P., Kanefsky, B., and Taylor, W. M. (1991). “Where the Really Hard Problems Are”. In Proc. of the 12 IJCAI, pages 331–337, Sidney, Australia. th
Choueiry, B. Y. and Faltings, B. (1992a). “Building Temporal Abstractions”. In Working Notes of the Workshop on Approximation and Abstraction of Computational Theories, AAAI-92, pages 47–51, San Jose, CA. Available by anonymous ftp on liasun3.epfl.ch:/lia. Choueiry, B. Y. and Faltings, B. (1992b). “Interactive Resource Allocation using Temporal Abstractions and Value-Assignment Delay Heuristic: A CSP Perspective”. Technical Report TR-92/17, EPFL, Lausanne, Switzerland. Available by anonymous ftp on liasun3.epfl.ch: /lia. Choueiry, B. Y. and Faltings, B. (1993). “Temporal Abstractions and a Partitioning Heuristic for Interactive Resource Allocation”. In Working notes of the Workshop on KnowledgeBased Production Planning, Scheduling and Control, IJCAI-93, pages 59–72, Chamb´ery, France. Available by anonymous ftp on liasun3.epfl.ch:/lia. Choueiry, B. Y. and Faltings, B. (1994). “Interactive Resource Allocation by Problem Decomposition and Temporal Abstractions”. In B¨ackstr¨om, C. and Sandewall, E., editors, Current Trends in AI Planning: EWSP’93–2nd European Workshop on Planning, in series Frontiers in AI and Applications. IOS Press, Amsterdam, The Netherlands. Available by anonymous ftp on liasun3.epfl.ch:/lia. Choueiry, B. Y., Faltings, B., and Noubir, G. (1994). “Abstraction Methods for Resource Allocation”. Submitted for publication. 23
Dean, T. and McDermott, D. (1987). “Temporal Data Base Management”. Artificial Intelligence, 32:1–55. Descotte, Y. and Latombe, J.-C. (1985). “Making Compromises among Antagonist Constraints in a Planner”. Artificial Intelligence, 27:183–217. Dietterich, T. G. and Michalski, R. S. (1984). “A Comparative Review of Selected Methods for Learning from Examples”. In Michalski, R. S., Carbonell, J. G., and Mitchell, T. M., editors, Machine Learning: An Artificial Intelligence Approach, pages 41–81. Springer, Berlin, Heidelberg. Doyle, J. (1979). “A Truth Maintenance System”. Artificial Intelligence, 12:231–272. Ellman, T. (1993a). “Abstraction via Approximate Symmetry”. In Proc. of the 13 pages 916–921, Chamb´ery, France.
th
IJCAI,
Ellman, T. (1993b). “Synthesis of Abstraction Hierarchies for Constraint Satisfaction by Clustering Approximately Equivalent Objects”. In Tenth International Conference on Machine Learning, Amherst, MA. Feldman, R. and Golumbic, M. C. (1990). “Optimization Algorithms for Student Scheduling via Constraint Satisfiability”. The Computer Journal, 3 No. 4:356–364. Fox, M. (1987). Constraint Directed Search: A Case Study of Job-Shop Scheduling. Morgan and Kaufmann, Los Altos, CA. Fox, M. S. and Smith, S. F. (1990). “ISIS: A Knowledge-Based System for Factory Scheduling”. In Allen, J. F., Hendler, J., and Tate, A., editors, Readings in Planning, pages 336–360. Kaufmann, San Mateo, CA. Freuder, E. C. (1991). “Eliminating interchangeable values in constraint satisfaction problems”. In Proc. of AAAI-91, pages 227–233, Anaheim, CA. Freuder, E. C. and Wallace, R. J. (1992). “Partial Constraint Satisfaction”. Artificial Intelligence, 58:21–70. Giunchiglia, F. and Walsh, T. (1990b). “A Theory of Abstraction”. Technical Report IRST 9001-14, Istituto per la Ricerca Scientifica e Tecnologica, University of Trento, Trento, Italy. Golumbic, M. C. (1980). Algorithmic Graph Theory and Perfect Graphs. Academic Press Inc., New York, New York. Golumbic, M. C. (1984). “Algorithmic Aspects of Perfect Graphs”. Annals of Discrete Mathematics, 21:301–323.
24
Gr¨oflin, H. (1992). “Feasible Graph Coloring and a Generalization of Perfect Graphs”. Research note 199, Institute for Automation and Operations Research, University of Fribourg, Fribourg, Switzerland. Gupta, U. J., Lee, D. T., and Leung, J. Y.-T. (1979). “An Optimal Solution for the Channel Assignment Problem”. IEEE Transactions on Computers, C-28 (11):807–810. Hadavi, K., Hsu, W.-L., Chen, T., and Lee, C.-N. (1992). “An Architecture for Real Time Distributed Scheduling”. In Famili, A., Nau, D. S., and Kim, S. H., editors, Artificial Intelligence Applications to Manufacturing, pages 215–234. AAAI-Press/The MIT-Press, Menlo Park, California. Haselb¨ock, A. (1993). “Exploiting Interchangeabilities in Constraint Satisfaction Problems”. In Proc. of the 13 IJCAI, pages 282–287, Chamb´ery, France. th
Kubale, M. (1992). “Some Results Concerning the Complexity of Restricted Colorings of Graphs”. Discrete Applied Mathematics, 36:35–46. Lansky, A. L. (1990). “Localized Representation and Planning”. In Allen, J., Hendler, J., and Tate, A., editors, Readings in Planning, pages 670–674. Kaufmann, San Mateo, CA. Lov`asz, L. (1983). “Perfect Graphs”. In Beineke, L. W. and Wilson, R. J., editors, Selected Topics in Graph Theory, 2, pages 55–87. Academic Press Inc., London. Mackworth, A. K. (1977). “Consistency in Networks of Relations”. Artificial Intelligence, 8:99–118. Newman, P. A. and Kempf, K. G. (1985). “Opportunistic Scheduling for Robotic Machine Tending”. In Proc. of the 2nd IEEE Conference on AI Applications, pages 168–175, Miami Beach, Florida. Ow, P. S. and Smith, S. F. (1988). “Viewing Scheduling as an Opportunistic Problem-Solving Process”. Annals of Operations Research, 12:85–108. Ow, P. S. and Smith, S. F. (1989). “Toward an Opportunistic Scheduling System”. In Proc. of 19th International Conference on System Sciences, Hawaii. Sadeh, N. (1991). Look-ahead Techniques for Micro-Opportunistic Job Shop Scheduling. PhD thesis, Department of Computer Science, Carnegie Mellon University, Pittsburgh, PA. Sangal, R. (1991). Programming Paradigms in LISP, chapter Streams and Delayed Evaluation, pages 187–210. McGraw-Hill, Inc., New York. ´ ´ A Temporal-Abstraction System for Patient Shahar, Y. and Musen, M. A. (1993). “RESUM E: Monitoring”. Computers and Biomedical Research, 26:255–273. Williams, B. C. (1986). “Doing Time: Putting Qualitative Reasoning on Firmer Ground”. In Proc. of AAAI-86, pages 105–112, Philadelphia, PA. 25
Zweben, M. and Eskey, M. (1989). “Constraint Satisfaction with Delayed Evaluation”. In Proc. of the 11 IJCAI, pages 875–880, Detroit, MI. th
26