You're a next-generation web start-up, and you aim to out-do route-planners like Mapquest by providing time-sensitive routes. In particular, you have surveyed the road system to determine the expected travel time between pairs of endpoints based on the date and time information. Examples of time-sensitive information relevant to route-planning include:
We model the road network as a directed graph, with nodes corresponding to geographic markers such as towns, and directed edges corresponding to one-way roads between markers. A two-way road is modeled as two one-way roads, which allows traffic to be worse in one direction than the other, i.e., may be larger or smaller than . We assume without loss of generality that there is only one road from any given marker to any other marker. (If there were roads, we can just add new markers on of them.)
The journey is described by a start marker , and an end marker . The journey could start at any time, and the first part of your task is to calculate the shortest path from to for every possible departure time from , to the minute granularity.
You will not know the function , and will have to treat it as a
``black box.'' Nevertheless, you can make some reasonable assumptions
about . First
An interesting consequence of the equation above is that cannot have any downward discontinuities, where a link becomes suddenly faster. (Why?) Also, there is a limit to how rapidly can decrease. (What is the limit?) Upward discontinuities are still possible. (What would be a real-world example?)
These restrictions on may make the shortest-path computation simpler. For more information about how to compute shortest paths with time-varying delays, see http://portal.acm.org/citation.cfm?doid=79147.214078 and http://ieeexplore.ieee.org/iel5/10757/33902/01617378.pdf.
The second part of your task is to present a single page, static representation of the entire set of shortest paths between a fixed pair of points, where the start time could be anywhere in a 24-hour period. If this is an insufficient challenge, then also try to include the travel times in the representation. The representation should be intelligible when printed on a single letter-sized piece of paper. Imagine that this picture is a page in a street directory that a motorist uses to travel from to . If special instructions are needed to interpret the diagram, then those instructions also need to appear on the page.
The shortest path may change a lot, or a little, depending on . It may change at a few discrete times, or periodically. Alternative paths may share many markers or just a few. Your representation should be robust, and it will be tested with a variety of different geographies and functions . Some of these will be unseen, i.e., only distributed after the final code submission deadline.
At the end of the project, the instructor will conduct a ``user study'' in which a variety of individuals (we'll decide in class what kind of people to approach) will be asked to evaluate the outputs from each group.
Hints: Project 2 from 2004 was looking at a related mapping problem. Some groups used accurate geographic maps, anticipating that users would bring some prior knowledge to interpreting the pictures. Others distorted the geometry to make the directions easier to draw. Yet others abandoned graphics altogether, and used plain text to show a table of numbers. Think carefully about the style of design you think is best. If you're ambitious, you could try to be adaptive, using a design style that is suited to the data.