During a rescue problem, a room or edge may be destroyed at some specified time. Robots that have not completed their rescue operation at that time are then to be reallocated to complete remaining rescues at minimum total cost.
1. The original rescue problem is solved as in Subsection 3.3 and, for each minimum cost path, the partial costs to reach each node on the path are recorded. We assume that these partial costs give the times at which a robot reaches a node.
2. The adjacency matrices for each are updated to allow for the destruction of a room or edge. A room I is removed by deleting row I and column I of the original adjacency matrix. An edge (i,j) is removed by setting aij to 0 or infinity in full storage mode, or deleting the entry in sparse storage mode.
3. The position of each robot at the time of the node or edge destruction is determined. The robots are separated into “active” robots that have not completed their rescue mission and inactive robots that have completed their mission.
4. The rescue problem for the active robots is solved using the algorithm given in Subsection 3.3. The adjacency matrices for the active robots are constructed by selecting appropriate rows and columns from the updated adjacency matrices obtained in stage 2. The “start” node for each active robot is taken as the position of that robot at the time of the destruction of the node or edge. The active set of “target” nodes is taken as the subset of the original target nodes that have not yet been reached by any robot. Of course, if a target node is the node that was destroyed then this node cannot be included in the active set of “target” nodes.