Eco-Friendly Fleet Management

In this project you will consider the problem that faces many local communities -- how to come up with the best routing strategies for a fleet of vehicles used to accomplish a basic service. The following are some examples:

  • Planning the routes of garbage trucks for trash collection

  • Planning the routes of K-12 school buses

  • Planning the routes of snow plows for clearing up roads

  • Planning the routes of the US Mail delivery trucks

  • Planning the routes of newspaper delivery

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 pick a particular problem from the list above (or preferably any other similar problem you may be able to come up with) and to get yourself acquainted with the specifics of the "real world" issues involved. In particular, you may want to do some reading or exploration of the subject matter to familiarize yourself with the problem that interests you. For example, if you are interested in planning the routes of garbage trucks, you may find an article such as "High-Tech Mapping Streamlines City's Bulk Trash Pickups" in the Washington Post useful, or you may find some existing companies such as C2Logix or SmartRoute that provide such services useful. The purpose from this exercise is not to become an expert in route planning but only to appreciate some of the real world considerations that you may not be aware of.

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 society, environment, 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, we 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 planning the route of a single vehicle (you have a fleet of size one).

  • You have one objective, namely minimizing the distance traveled to provide the service.

  • You have a map showing all stops and all roads connecting these stops to one another.

  • The cost of using any direct road between two stops is the same.

  • Any stop has at least one road into it and one road out of it (no dead ends).

  • The vehicle's first and last stops are given to you.

  • ...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: Try and evaluate a brute-force solution

Your first attempt at solving the problem is to use an "algorithm" that enumerates all correct solutions to the graph problem you defined in step 2, and then to figure out the best one and select that as your solution of the problem. For example, you will come up with all the ways to pick up the town's kids on the school bus (e.g., stop by Amy's house first and then by David's house and then by Stephanie's house versus David's then Amy's and then Stephanie's, etc.) And after enumerating all such possibilities you would pick up the best one. How much "work" is involved in following this "brute force" algorithm? How does your answer change as a function of the number of stops that the vehicle must make -- in other words, the size of the town.  In this class, you will see examples of how this is done -- in particular it is an accounting of the number of basic steps it takes to complete the algorithm as a function of the "size" of the problem. You will see these in class and in homework assignments. 

What you have to produce (~ 1 page): First, you have to define what is a basic step in your algorithm.  Next, you have to derive the "complexity" of the algorithm. Next, you would show how this complexity changes with the size of the town. In particular, assuming that the basic step of your algorithm takes (say) one second, how long would your algorithm take for a town of 5 houses,  10 houses, 50 houses, 100 houses, 500 houses? What size town would you consider too big to use this brute-force algorithm on?


Step 4: Try to improve your solution

Assuming that the brute-force approach is not going to cut it for a town of any realistic size, in this step, you will try to think creatively about a smarter way to solve (or attempt to solve) the problem. This is the "open ended" part of your project. Here are two possible directions that you may want to consider (using ideas similar to things covered in the class):

  • Reduce the size of the map by aggregating close-by stops together into "super stops". Solve the problem for the smaller-sized problem first (i.e., use brute-force approach to find the best route that takes you through all "super stops"), and then consider each "super stop" as a separate problem that needs to be solved (using brute-force again). Using this "divide and conquer" approach, to figure out a route for 100 stops, you figure out a route that takes you through the 10 "super stops" and then for each of these you figure out a route that takes you through all 10 stops in the super stop.

  • In class we discussed a "greedy" strategy for a different problem (also requiring the identification of paths) -- namely Disjkstra's algorithm for solving the shortest-path problem from one source to all destinations. The idea in that algorithm was that at each step, we greedily identify the next stop to which we can come up with a "shortest path". If you adapt this approach for the problem at hand, after each stop, you would select the next stop as the one that is yet to be visited that is closest to the current stop.

  • Feel free to think about others...

What you have to produce (~ 1.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. Provide a measure of the complexity of your new algorithm (basically, a repeat of step 3 but for your new improved algorithm). Can you come up with examples for which your algorithm would provide an answer that is not optimal?


Step 5: 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 all roads between two stops are of equal cost? What happens if we assume we have multiple vehicles? If you are given a semester instead of two weeks to work on this problem, what else could you have done? 

  • You may want to discuss the limitations of your "improved" solution -- for example show that while it may take much less time than the brute-force algorithm, it does not necessarily produce the "best" solution. Here you may want to give an example graph where the "improved" algorithm does not result in the best route.

  • Are there special types of graphs (patterns of roads) for which the solution of the problem are 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).

  • How does this problem compare to other problems related to graphs -- in particular, the traveling salesman problem?

  • Can you think of other applications that do not involve fleets or vehicles that can be thought of as being similar to this problem?

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

 

Azer Bestavros (2010-04-06)