\documentstyle[bk11, psfig, named]{article} 
\newcommand{\ignore}[1]{} \newcommand{\circlelet}[1]{\makebox[.85em]{\sc #1}\raisebox{.03em}{$\!\!\!\!\!\!\:\!\bigcirc\!$}} 
\textwidth       6.75in  
\textheight      9.6in  
\topmargin      -1.in 
\oddsidemargin  -0.25in
\evensidemargin -0.25in
\headheight      4ex  %this gets rid of an annoying error message 

\ignore{ [RS89] Riesbeck & Schank. Inside Case-Based Reasoning. Hillsdale, N.J.: LEA,       1989. } 

% Margin notes
\newcommand{\note}[1]{\marginpar{\it #1}}
\newcommand{\scenario}[1]{\begin{quote} {\bf Example: }{\it #1}
\end{quote}}
\newcommand{\subsubsubsection}[1]{
\vspace{.10in}  

{\bf #1} 

\vspace{.10in}}
\newcommand{\subsubsubsubsection}[1]{} 

%\raggedright 

\renewcommand{\textfraction}{.1}
\renewcommand{\topfraction}{.9}
\renewcommand{\bottomfraction}{.9} 

\renewcommand{\baselinestretch}{1.75} 

\title{Localizing the affect of changing a Planning decision} 

\date{\today}
\author{Garrett A. Pelton}
\begin{document}           % End of preamble and beginning of text.
\bibliographystyle{named}
\abstract{ 
Some previous planning decisions can be changed in a local manner. 

\ignore{This malleability of previous decisions is very useful in solving Logistics problems, where  It is the basis of using scheduling to change resources. So we know how to change WHAT decisions in a local manner, and this leads us towards knowing when to change HOW decisions. It also gives us hints as to which HOW decisions need to change. However how and when it is possible to change HOW decisions is unclear.}
} 
\maketitle 
\section{Introduction} 


Planning is interesting and hard when subproblems interact, but when the subproblems primarily interact over the available resources, standard planing search techniques are not effective at finding a viable plan. This loss of planning effectiveness is due to not having a method for localizing changes to previous planning decisions. This paper shows two methods for changing planning decisions in a local manner. The changeable decisions form two separate groups each with a different changing mechanism. The first group of decisions describe the activities and the orderings of those activities that planning produces. This group describes {\it how} to achieve a goal. The second group defines {\it what} resources will be used to achieve the goal. When later decisions cause a resource conflict, this grouping limits the number of applicable methods for resolving that conflict. For example, in planning the solution to a logistics problem that has many subgoals, such as battling a forest fire, a classical planner decides {\it how} to deploy the firefighters and their associated equipment. The planner can also pick the resources (like what planes, trucks, etc.) the plan's implementation should use. However, many of the resources may be interchangeable, and backtracking to change a compatible resource discards other good decisions that will have to be remade. This type of resource changing occurs often, since the solution of such a logistics problem not only achieves the goal but also attempts to minimize some plan-quality criteria (e.g. achievement by some time, or within some cost limit). In these problems, the proper selection of resources {\it is} both the most time-consuming component and often the critical aspect of the solution. Thus a simple resource selection approach coupled with chronological backtracking is unlikely to come up with a good solution in any reasonable amount of time.

As an example, consider the military deployment problem shown on the right of Figure~\ref{deployment-plan}. The goal in this problem is to achieve air-superiority over City-1 and City-2 by a certain date (called the due-date). Air-superiority simply means that your air forces control the air space. The plans for the actual force deployment are complex, because they include all of the previously learned safety and effectiveness dependencies. Airplanes needing a safe place to land, is the start of such a chain of dependencies. Infantry troops can create a safe place for aircraft to land, but first the surrounding area must be secure. Securing an area might involve deploying other different aircraft, anti-aircraft forces, specialized security forces and possibly temporarily destroying the airport and then repairing it. The right set of activities depends upon both the other forces and amount of support in the area.

\begin{figure*}[tb]
%\psfig{figure=figures/constraint-ex.ps} 

The left side has a simple map 

The right side has a more complex goal-tree.

\caption{Plan for achieving air superiority over two cities using resource types.} 
\label{deployment-plan}
\end{figure*}

A plan tree showing the considered planning operators is given on the right of Figure~\ref{deployment-plan}. Each planning operator represents doing some activity (e.g. moving some entity), but no specific resources have been assigned. Instead each planning operator works with a resource type, and in many cases these types represent aggregates of individual resources (i.e., an infantry-battalion or a C-5 transport plane squadron) that might be individually assigned. Working with resource types simplifies the planning problem in Figure~\ref{deployment-plan} but to determine if the plan can meet the due-date, the resources have to be assigned. A post planning scheduling process assigns the resources. This scheduling process can be thought of as a refinement in a planning abstraction hierarchy, where the abstract plans (without specific resource assignments) are made more concrete by assigning resources. A scheduling system is used rather than a planner, because the scheduling system can handle the large resource assignment problems that will occur later.

Unfortunately, the generated plans for Figure~\ref{deployment-plan} do not make the desired due-date when the planner works with just resource types. The only solutions that can make the due-date require splitting the aggregate resources among plans in a way that requires the planner to occasionally handle individual resources. If individual resources  are always considered\footnote{Actually the number of individuals in an infantry battalion was divided by 10 and the capacity of the transports was also divided by 10 just to make the problem tractable.}, then the planning problem in Figure~\ref{deployment-plan} with YYY bindings for the operators expands to XXX {\it experiment needs to be run but calculation leads to 200,000} bindings for the operators. Since the two problems interact over resources, going to the higher level of detail in assigning resources causes backtracking over the resource assignments to occur (enough heuristic knowledge was added to this experiment so that no backtracking was necessary when working with resource types.). This backtracking removes perfectly valid decisions and gives us possibly an exponential explosion in the number of operators considered as the different possible bindings are tried.

The two areas marked in grey on Figure~\ref{deployment-plan} denote the planing associated with deploying one of the two available infantry battalions to City-1 and City-2. This simple subproblem contains a large number of the issues that this paper addresses. Extracting this subproblem from the larger problem provides a way to describe various solutions to those issues. What should be remembered though is that, what look like local decisions affect the much larger set of nodes. This propagation of planning decisions exacerbates any problems by increasing the number of decisions that have to be re-considered.

As will be shown in Section~\ref{example-prob} these two sub-problems interact over resources in such a way that neither the planner nor scheduler alone can generate a reasonable solution in a reasonable time without detailed domain knowledge. The planner's problems comes from having to work with individual planes rather than aggregate resource types which makes the problem XXX times harder. The scheduler's problems come from having to consider contingency plans for each resource assignment rather than consider contingency plans for just the difficult resource assignments. However, together the planner and scheduler can operate in a straight forward synergistic manner and solve this small subproblem. Even more important is that when embedded in the larger deployment plan in Figure~\ref{deployment-plan}, this problem solving does not need to alter the other parts of the deployment plan. This localization of effort should mean this solution methodology will scale to large logistic problems. This paper is partly a proposal to test this localization hypothesis.

\section{Example Problem}
\label{example-prob}

\begin{figure*}[tbp]
\psfig{figure=figures/2-deploy-map.eps} 
\renewcommand{\baselinestretch}{.97} 
\begin{minipage}[t]{3.25in}
{\small
\begin{verbatim}
Goals
  An infantry battalion at City-1 by 1/2
  An infantry battalion at City-2 by 1/2

Current State -
  Infantry battalion A at City-3
  Infantry battalion B at City-4
     An infantry battalion consists of
     200 soldiers and 50 tons equipment
     The equipment includes 
       12 4 ton trucks
  2 C5s at City-3
     C5s can carry 50 tons of Cargo and
     40 passengers
  4 C141s at City-4
     C141s can carry 10 tons of Cargo and
     140 passengers
  Current date is 1/1 

Resource Compatibility
  C-5s can land at City-1, City-2, City-4, 
                   City-5, City-7
  C-141s can land at all Cities
\end{verbatim}
}
\end{minipage}
\begin{minipage}[t]{3in}
{\small
\begin{verbatim}
Operators

Send (ground-unit trans-rsc from-loc to-loc)
  (:activity-type transport :agent trans-rsc)
   preconditions
     ground-unit is deployed at from-loc
     trans-rsc is deployed at from-loc
     from-loc is a location compatible with trans-rsc 
     to-loc is a location compatible with trans-rsc
   postconditions
     trans-rsc is deployed at to-loc
     ground-unit is deployed at to-loc

Move (trans-rsc from-loc to-loc)
  (:activity-type transport :agent trans-rsc)
   preconditions
     trans-rsc is deployed at from-loc
     from-loc is a location compatible with trans-rsc
     to-loc is a location compatible with trans-rsc
   postconditions
     trans-rsc is deployed at to-loc
\end{verbatim}
}
\end{minipage}

\caption{Example problem of moving two groups of troops} 
\label{examp-prob-fig-1}
\end{figure*}

Figure~\ref{examp-prob-fig-1} shows the problem of getting two infantry battalions to two different cities within one day. It doesn't make any difference to the solution which battalion is in which city. However, unit cohesiveness demands that each battalion be entirely deployed in the same city on the third day. Splitting the battalions up permanently is not a valid solution. 

In this example, the planner has a preference for the shortest-path solutions and a preference for not using common resources. Without the shortest-path preference the planner is perfectly willing to plan out a long byzantine path, that will probably fail because of exceeding the due-date. With the shortest path heuristic, all the paths of length $n$ are all tried before paths of length $n+1$. The shortest-path preference is a crude method of limiting the planning effort in a way that maximizes the likelihood of the plan's completion by the due-date. This heuristic also gives a breadth first search characteristic to searching for solution paths. This breadth-first issue will be discussed in Section~\ref{search-heuristics}. The second preference (not to use common resources) is again a crude method of deciding between plans that use common resources and those that don't. It represents an attempt to keep the utilization of the common resources (planes) as low as possible. Since the common resources are costly (planes) not using them except when necessary is an attempt to limit the cost of the solution.

The presentation will first describe the planning algorithm and give a high level view of the scheduler. Then using the described planner we investigate an example similar to that in Figure~\ref{examp-prob-fig-1} except with a slightly changed initial state where all the infantry and planes start off in one location. This example shows how knowledge of a plan's interchangeable resources provides a great deal of power to the scheduling process in selecting the resources for the plan. After showing the usefulness interchangeable resources, the next section comes back to Figure~\ref{examp-prob-fig-1} and shows both why interchangeable resources are not the answer to this problem, and how a close interaction between the planner and scheduler provides a range of solutions.

\subsection{Planner description}
\label{planner-description}

\begin{figure*}[tbp]
\renewcommand{\baselinestretch}{1} 
{\small
\begin{tabbing}
MM\=M\=M\=M\=M\=MMM\=MMM\=MMMMMMMMMMMMMMMMMMMMM\=\kill
\>{\it Planning algorithm}\>\>\>\>\>\>\> Execution trace\\
PLAN-IT(Goals, Operators, State) \\
1\>{\it Do for each unachieved goal}\\
2\>\>{\it Select Goal}\>\>\>\>\>\>Infantry battalion at City-1\\
\>\>\>\>\>\>\>\>(SEND, MOVE)\\
3\>\>{\it Do for each possible operator}\\
4\>\>\>{\it Select Applicable Operator}\>\>\>\>\>SEND\\
\>\>\>\>\>\>\>\> SEND Inf-A using C141s to City-1,\\
\>\>\>\>\>\>\>\> SEND Inf-B using C5s to City-1,\\
\>\>\>\>\>\>\>\> SEND Inf-B using C141s to City-1)\\
5\>\>\>{\it Do for each possible binding}\\
6\>\>\>\>{\it Select binding}\>\>\>\>SEND Inf-A using C5s to City-1\\
7\>\>\>\>{\it if operator has unresolved preconditions}\\
8\>\>\>\>\>{\it result = PLAN-IT(Goals - }\\
\>\>\>\>\>\>{\it selected-goal + unresolved-preconditions,}\\
\>\>\>\>\>\>{\it Operators, State)}\\
9\>\>\>\>{\it else result = PLAN-IT(Goals - selected-goal, Operators,}\\
\>\>\>\>\>\>{\it State modified by operator)}\\
10\>\>\>\>{\it if result = SUCCESS return SUCCESS}\\
11\>\>\>\>{\it End-Do on bindings}\\
12\>\>\>{\it End-Do operators}\\
13\>\>{\it End-Do goals}\\
14\>{\it if unachieved goals return FAILURE}\\
15\>{\it else return SUCCESS}
\end{tabbing}
}
\caption{Total order state space planner.} 
\label{simple-planner}
\end{figure*}

At this point, the details of planning start to become important. Figure~\ref{simple-planner} shows a simple planning algorithm on the left and a trace for part of the transport problem on the right. This algorithm is similar to total order state space planners like Prodigy \cite{}\footnote{The algorithm is actually a simplification of the Prodigy algorithm that leaves out the dual search characteristics of the Prodigy algorithm because they aren't important to our arguments}. The arguments given in this section will be shown in Section~\ref{plan-space} to also apply to plan space planners, like UCPOP \cite{} with a few changes. 

The algorithm in Figure~\ref{simple-planner} has 3 choice points: selecting a goal, selecting an operator and selecting a binding. Selecting the goal is a meta-planning decision that determines how the planning should proceed. In our example trace, the planner arbitrarily picks sending the troops to City-1 as the first goal to work on.

Once a goal is selected, the planner looks for operators that can achieve the goal. An operator consists of a generators, pre-conditions and actions. Each operator component consists of a set of propositions with variables and constants. Given a selected goal, the planner uses Means Ends Analysis \cite{NeweS72} (MEA) to find a set of operators that can achieve that goal. MEA finds the operators whose actions unify with the selected goal implying the operator could achieve the selected goal. The planner selects a single operator from this set of operators via some heuristic process. This operator decision is a decision about how to achieve the goal. In the example trace, two operators can deploy troops. The MOVE operator has the troops going by themselves (driving on their trucks), and the SEND operator has the troops being sent via some common resource (planes). The planner selects the SEND operator because a previously tried MOVE operator failed. The MOVE operator failed because of the ocean between the source and destination locations made truck travel impossible.

Once an operator is selected, the planner propagates the goal-bound variable bindings to all the variables with the same name on the pre-condition side. The planner creates the set of possible bindings for the non-goal bound variables, by creating the cross product of all the possible values for each variable as defined by the operator's generators. The operator's generators provide all possible values of a particular type. The cross product of these possible values along with the goal-promoted values form the set of possible bindings for the chosen operator.

Figure~\ref{simple-planner} shows the planner selecting one of these bindings. This selection again can be heuristically guided. One of the most useful domain independent heuristics is to pick a binding associated with the smallest set of unfulfilled pre-conditions. An unfulfilled pre-condition is one that will not unify with the current state after being unified with the bindings. The unfulfilled pre-conditions get added to the set of goals as the algorithm recurses, and the smallest set heuristic, means the goal-set grows at the slowest rate determinable strictly from local decisions. If no unfulfilled pre-conditions exist for a binding, then in the algorithm of Figure~\ref{simple-planner} the state is changed.  Changing the state \footnote{Stone and Veloso \cite{stonV95} show that postponing this changing of the state can be beneficial for some problem classes. However, whether the state changing is delayed or not does not affect this proposal.} means the planner's representation of the state is changed according to the actions in the operator. This modification ensures that all the actions of the operator are considered in the plan. Side effects (non-goal associated actions) of an operator can affect the planning process, and by simulating the operator actually taking effect the planning process can handle all the operator's effects.

\subsection{Scheduler description}
\label{scheduler-description}


Scheduling solves constraint satisfaction problems, where the search involves finding values for a set of variables given some consistency criteria. In the logistic domain this translates into assigning a temporal-duration of a resource (the value) to a set of plan-actions (the variables) so the plan-actions can all occur. The consistency criteria in the logistics domain can include meeting due-dates, not exceeding resource bounds, reducing waiting time and activity ordering. Scheduling is searching for reasonable resources to assign to a set of plan-actions. To do the resource allocation the scheduler has to consider all the possible resources, and the time-varying utilization of those resources for each plan-action in each plan. Just assigning resources to plan-actions is an NP-hard problem (similar to bin-packing\cite{GareJ79}). The time-varying availability of the resources makes the problem harder by expanding the number of assignment choices, because a single resource can be considered multiple times. 

However, at the cost of search completeness, schedulers can take advantage of knowledge of both the domain and time. This knowledge can be used to create special operators that can skip around in the search space, reducing the search space considerably while still providing for flexibility in the actual scheduling.  An example of domain knowledge in the logistics domain, is the recognition of commonality in the processes\cite{Smith} used to achieve independent goals. This commonality allows the scheduler to aggregate these processes scheduling them together as a group. The temporal knowledge is domain independent and allows the scheduler to operate while knowing how time flows. This allows the scheduler to shift groups of operations from one time slot to either some earlier or later time. This shift will open up a hole where perhaps a new operation can be scheduled. By themselves these aggregate and temporal operators don't affect the completeness of the search, instead when applicable they can reduce the number of steps to a solution by adapting a currently valid schedule to new information. Since these operators must also be considered at each step in the resource assignment process, including them could actually increase the search space. However, when combined with a strong commitment process the search space does get reduced. 

The scheduler used in this work (Ditops\cite{}) doesn't backtrack over commitments once they are made. The scheduler searches for the most appropriate resource time-slice and once a time-slice is found, it doesn't renege on that commitment. Instead, it now uses the schedule-adaptation operators to change previous commitments in known valid ways. However, these schedule-adaptation operators do not cover all the possible resource assignments, and thus lead to a fast, but incomplete, search of the possible resource assignments. 

\subsection{Same City}

The problem in Figure~\ref{examp-prob-fig-1} would be simple if  both infantry battalions were currently at the same city, say City-3. If this were the case, then the SEND operator could be used to deploy each battalion with one C-5 (50 tons cargo and 40 people) and two C-141s (160 people). Thus the problem is doable, the issue is just how to organize the resources to accomplish it.

To achieve the above resource distribution, required a fairly smart assignment strategy that always assigned the most reducing resource. The most reducing resource is the one that given a goal of moving a set of heterogeneous cargo, it picks the resource that can reduce the goal the most. In our example, an infantry battalion contains 200 people and 50 tons of material. The resource that can reduce the 200 by the most is picked (C141). Then a C5 is picked to reduce the cargo to 0 and the leftover passenger list to 20. Now we have a choice, and can pick either a C5 or a C141. It doesn't make any difference which one we pick for this goal. Thus we have a plan (call it Plan-A) of using 3 planes to transfer Infantry-A to to City-1. For the sake of discussion lets say a C-5 was picked as the third plane.

Picking the second C5 makes it impossible for the plans for the second goal to finish by the due-date. In general the scheduler/planner will not have all the information required for the best choices before making commitments. Localizing the repair to the interacting nodes is important. In this case, the localization is easy because the scheduler could be told that the choice of the second C5 was an arbitrary pick from a set of equivalently good choices. Thus the scheduler could simply change this choice, without changing Plan-A at all.

To generalize this idea, one aspect of logistics problems is that many of the planner's choices are under-constrained making the choice arbitrary. The planner's initial choice though reasonable at that time, might be unreasonable in the future. The scheduler operates as the decision procedure for the planner by ordering the set of planning choices according to a set of preferences. In addition, if no choices exist, then the scheduler will assess whether to create new choices for the planner. As in the example above, one method of creating a choice is by changing a previous decision, another method is by relaxing a constraint (say due-date). If creating a choice is reasonable, then the newly created choice will be presented to the planner and, if necessary, a new task will be added for the planner to handle the implications of the change (e.g. filing a new flight plan for the C5). 

To determine whether a plan step depends upon a previous choice, the planning choices are grouped into equivalence classes by the unmatched pre-conditions each of the choices engenders. The elements of a particular class are considered equivalent by the planner. This keeping of sets in planning is similar . When a plan step is proposed that includes an element of a set, the planner creates a new set with the original set elements that could also be included in the plan step. At any time, the elements of a particular set represent the set of equivalent values from the planner's point of view and any choice from this set is considered arbitrary. These arbitrary choices are made by the scheduler according to its preferences, and can be changed without changing the plan. 

\subsection{Planner knows cities, resource types}

This solution abstracts away from specific resource information in the planner and assumes the post-planning scheduler will handle the assignments of resources. The planner considers the infantry battalions and planes as large aggregate resources. The planner is looking for a sequence of operators that will describe how to deploy the troops. By abstracting away from the individuals, the planner gains in efficiency but as we will see, loses the ability to generate the plans that correspond to a satisfactory solution by itself. This loss occurs because the only solution to the problem has an aggregate resource split over the two sub-plans having different lengths. The planner can't work with the aggregate resources and generate plans of differing lengths. Some of the C5s have to fly to City-4 to pick up cargo, the C141s by themselves can only move 40 tons of the cargo. Similarly some of the C-141s have to fly to City-3 to pick up passengers, as the C5s can only carry 80 passengers. In this particular case, the planner can generate both the one step (SEND Infantry to City-1) plan and the two step (MOVE plane to intermediate city, SEND Infantry to City-1) plan for the scheduler and the scheduler can handle the individual assignments, however, by itself the planner must consider individual planes.

\begin{figure*}[tb]
\psfig{figure=figures/2-deploy-colocated.eps} 
\caption{Plan for achieving goal of deploying Infantry-A at City-1}
\label{abs-solution}
\end{figure*}

Figure~\ref{abs-solution} shows the plan generated for the first goal (call it Plan-A). The figure shows that planning considered both the MOVE and the SEND operators as possible methods for achieving the goal. The MOVE operators though were found to be dead-ends when no bindings could be found. This lack of bindings comes from the infantry's inability to drive over the oceans and having no way to create a truck-friendly path, like a bridge, over the oceans. This required ocean transport can only be achieved by the SEND operators when the planes are bound to trans-rsc.

The SEND operators however, require the transportation resource and items to be transported (ground-units) to be at the same source location. A one step plan is only possible when the ground-unit and the transportation-resource are co-located.  One step plans occur with the bindings of (City3, Infantry-A, C5s) or (City-4, Infantry-B, c141s) as the source location, ground-unit and transportation resources respectively.Two step, and more byzantine paths though are also possible. Given the preference for short plans the planner arbitrarily picks a binding that leads to a one step plan (say City-3  set). This scheduling effort fails. Not enough C5 resources exist to move Infantry-A by the due-date. The scheduler includes in its failure message that more resources are needed at City-3 for the plan to succeed. The planner can respond to this request by viewing it as a new goal to repair the original plan. This new goal causes the planner to suggest to MOVE C141s to City-3 from City-4. The scheduler gets the new plan and uses the moved C141, in the earlier plan, reporting success for both the earlier plan and the repair plan.

All is fine until the planning of the second high level goal is attempted (call it Plan-B). The same scenario as in the previous paragraph is taken. As before the simple SEND plan fails for lack of resources. However, no resources exist for the MOVE repair plan and the planning effort fails. The planner could go back and attempt various longer length plans, but they will all fail. Plan-A needs to give some of its cargo carrying C5 resources to Plan-B to fix the problem.

The scheduler could look at the temporal interval where Plan-B needs resources, and notice that the needed resources could be found in Plan-A. However, it would need to release the right resources in Plan-A (a C5) and Plan-B (a C141). The main problem with this approach is that it is simply a backtracking bin-packing type of search, that is computationally infeasible for problems only a small size larger than this one. 

Rather than attempt to switch resources in the scheduler to solve the problem,
the planner could be used again. In this scenario the error from the scheduler
notifies the planner that resources from Plan-A are needed in City-4 to pick up
the left over cargo and deliver it to City-2 in addition to whatever its
delivery schedule is for Plan-A. In addition, the scheduler can include an
analysis of the temporal interval overwhich the transport activity can take
place. This information could include that the C5 from Plan-A has
substantial cargo space and slack time in its schedule. 

A supervisory process makes the above decision between the planning approach and the scheduling approach. This supervisory process has a cost/benefit model for both the planning and scheduling components. At this time, each cost model is based on an analysis of the decision graph with smaller fan-out being considered cheaper than a large fan-out. In a similar manner, the benefit model at this time always returns a constant. In the above example, the cost of doing the bin-packing search in the scheduler was considered large because of the large fan-out of how choices affected other committed choices. In contrast, since the airplane was already selected, the cost of planning was considered relatively low, because the fan-out from binding choices was relatively limited. The benefit of succeeding was considered equal for both systems.

\subsection{Search Heuristics}
\label{search-heuristics}

\subsubsection{Breadth-first expansion of paths}

\subsection{Plan Space planners}
\label{plan-space}



\section{Related Work}
One way to think about this work is as a planning approach to repairing schedules. The space telescope scheduler \cite{} craft successful solutions by a repair strategy that attempts to remove a resource needed from Plan-B from Plan-A and then look for a replacement resource for Plan-A. This repair strategy works because it makes early decisions malleable when new information is known. are removes a resource from a plan allocating it to a different plan, and then attempting to find a new resource that can accomplish what the original resource was doing. 

The localization of change effects is somewhat similar to Ginsburg's Dynamic
Backtracking.


\bibliography{research} 
\end{document}     


