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.
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.
What you have to produce (~ 1 page): Free form!
Azer Bestavros (2010-04-06)