Evacuation Capacity

In this project you will consider an important public safety problem that faces city planners as well as emergency and homeland security personnel -- namely, how fast could a large population could be evacuated from one point to another in case of an emergency (e.g., hurricane, chemical spills, forest fires, terrorist attacks, etc.)

As seen on TV, when a natural disaster hits (e.g., hurricane Katrina) roads (especially highways) often get clogged since everybody heads out on the same route. Clearly, in addition to highways, there are many other roads that could be used for evacuation, and the question is what is the capacity of this network of roads to carry a population from point A to point B.

The following are fairly detailed suggested steps for you to follow as you develop your project. Stage 1 of your project should include the first 3 steps (more if you want).


Step 1: Identify the problem

In this phase you are expected to get yourself acquainted with the specifics of the "real world" issues involved in estimating the evacuation capacity. In particular, you may want to do some reading or exploration of the subject matter to familiarize yourself with the problem. For example, you may find that articles such as "Mission 2010 New Orleans: Evacuation Capacity" or "A scientific approach to evacuation planning" useful in shedding some light on the complexity of the problem. The purpose from this exercise is not to become an expert in evacuation strategies or evacuation planning, but only to appreciate some of the real world considerations that you may not be aware of (and that for the purposes of this project may indeed decide to ignore).

What you have to produce (~ 1 page): A statement of the real-world problem that makes clear why this is an interesting problem to solve, e.g., impact on public safety, budgets, ...

 

Step 2: Build a basic model

As with all real-world problems we consider in this class, the first step is always to build the simplest model within which you would be able to pose a well-defined questioned and hopefully get an answer. In this project, you will use "graphs" as the mathematical object for modeling the problem.

To make your model simple, you will have to make some simplifying assumptions. In particular, for the basic model you will start with, you should make the following assumptions:

  • You are given a map of the city major roads (and intersections thereof) -- see map for an example.

  • Each road is associated with an evacuation capacity, representing the maximum number of people per minute that can flow on that road (e.g., based on number of lanes, average number of people in cars, expected speed of cars on the road, ...)  Think about that number as the number of people that can go through one point on the road per minute.

  • There are two intersections of interest: The first is where people are supposed to be evacuated from (the source) and the second is where people are supposed to be evacuated to (the destination).

  • Your objective is to figure out the maximum number of people per minute that can be evacuated using the given map -- noting that there might be multiple paths between the source and the destination.

  • ...and any other assumptions you feel are necessary.

What you have to produce (~ 0.5 page): The specification of a graph that could be used as a model of the real world for the purposes of the problem at hand. Specifically, what constitutes the nodes and the edges of the graph? are edges directed or not? are the edges labeled and if so, what is the meaning of these labels? what constitutes a correct solution of the problem with respect to the graph? given two correct solutions, how do you determine which one is better quantitatively?


Step 3: Evaluate a simple single-path solution

In order to reason about various possible solutions, it is always helpful to try such solutions on some "toy examples". In other words, rather that working on a model for a real city, it is helpful to work with a small-scale example. One possible example is the one shown in the graph below, where the source is node A and the destination is node B and the evacuation capacity of the roads (in people per minute) are as shown. You should feel free to come up with other example graphs (suggested size of graph ~ 20 nodes).

Your first attempt at solving the problem is based on the observation that in an emergency, people often take the "shortest path" from the source to the destination. Here shortest path could be defined as the path with the least number of road segments between the source and the destination.

What you have to produce (~ 0.5 page): Given a graph (such as the above), provide a detailed algorithm for computing the evacuation capacity using a shortest-path route from the source to the destination (recall Disjkstra's algorithm described in lectures and notes). How long would your algorithm take? How does the running time of your algorithm change with the size of the graph? Show how your algorithm works using the example graph above. What is the evacuation capacity you obtained for your example graph? Does following the shortest path make sense? In particular, can you identify a better alternative path that results in a higher evacuation capacity?


Step 4: Try to improve your single-path solution

As you should realize by now, following the shortest path may not be advisable. Thus, your next idea is to identify the single best possible path for evacuation purposes. One way to do so is to come up with an "algorithm" that enumerates all possible paths between the source and destination, and then to figure out the best one and select that as your solution of the problem. How much "work" is involved in following this "brute force" algorithm? How does your answer change as a function of the size of the graph. 

What you have to produce (~ 0.5 page): Write down the steps of your improved algorithm. Provide a clear explanation of how your improved algorithm should work. In particular, it should be possible by reading your algorithm and explanation to apply your algorithm to any example graph. You may want to provide illustrations by showing the steps for a small graph of your choice (e.g., the above graph). In addition, provide a measure of the complexity of your new algorithm (basically, a repeat of step 3 but for your new improved algorithm).


Step 5: Using multiple paths

In your attempts in steps 4 and 5, you assumed that all people will follow a single path (e.g., the shortest path). But, clearly, in an emergency, rather than using the shortest path between points A and point B, one would want to use all possible paths between A and B for evacuation purposes. The question then is what is the overall capacity of the network of roads between A and B? This problem is also known as the "max flow" problem as it aims to find out the maximum rate with which "traffic" can flow between two points in a network. The max flow problem has many applications not only in urban planning, but also in networking, electric grid design, among other applications.

In step 4, you were able to identify the best "single-path" to take from the source to the destination. If we remove that single path from the graph, we can identify the second-best path between the source and the destination, which should provide additional evacuation capacity.Now, we can remove that second-best path as well and identify the third-best path, which in turn will provide yet more evacuation capacity... This process of identifying a path, calculating its capacity, adding that capacity to the total evacuation capacity calculated so far, and then removing that path from the graph and repeating this process until there are no more paths to follow from the source and the destination should provide us with a better solution of the problem!

In the above solution, we identify a path and then "remove it" and repeat... But, what does it mean to "remove a path" from a graph? By removing a path, it is meant that the capacity of the roads on that path are reduced by the overall evacuation capacity of that path. For example, if the overall evacuation capacity of a path is 100, then removing that path means that we would reduce the capacity of all the roads on that path by 100. So, if a road on that path has a capacity of 500, removing the path would reduce the capacity of that road to 400.

What you have to produce (~ 1.5 pages): Write down the steps of an algorithm for computing the evacuation capacity using multiple path, as described above. In particular, you should provide the specific steps needed to identify the best path in a graph, and the specific steps to remove an identified path, etc. Provide a clear explanation of how your improved algorithm should work. In particular, it should be possible by reading your algorithm and explanation to apply your algorithm to any example graph. You may want to provide illustrations by showing the steps for a small graph of your choice (e.g., the above graph). In addition, provide a measure of the complexity of your new algorithm (basically, a repeat of step 3 but for your new improved algorithm).


Step 6: So what?

Having gone through the process of abstraction (modeling) and using the model to solve an important problem, this last step should provide some conclusions and some thoughts about the process -- e.g., limitations, possible improvements, ...  This is an opportunity to look back at what you have done and provide comments. Some ideas are below.

  • You may want to critique your modeling of the problem -- what aspects of the model could be made more realistic? For example, is it a good assumption to say that there is only one source and one destination for evacuation purposes? What happens if we assume we have a single source but multiple destinations? How about multiple sources and multiple destinations? If you are given a semester instead of two weeks to work on this problem, what else could you have done? 

  • Are there special types of graphs (patterns of roads) for which the solution of the problem would be very easy to come up with? For example, you may want to think about a "planned" neighborhood that is organized more or less as a grid (think of Manhattan).

  • Could the analysis/algorithms you come up with be helpful for planning purposes. For example, if you are given a budget to increase the capacity of one of the roads in the city, which road would you select?

What you have to produce (~ 1 page): Free form!

 

Azer Bestavros (2010-04-06)