SONG 2 - Simulator of Network Growth version 2

SONG2.1.0, powered by NEXUS, is developed to predict the growth of the Twin Cities road network 20 years from now. This model has been calibrated. The calibration process starts from the 1990 network (Linkinfo_1990m.txt), exogenous 1990,1995,2000,2005 link capacities (read from Linkinfo_1990m, 1995m, 2000m, 2005m .txt, respectively), runs the travel demand model without investment and calibrates to match the station counts in 2005.The model starts from the 2005 network incorporating existing links, legacy links, and potential links (Linkinfo_2005.txt), with the flow pattern estimated from the last simulation period. To avoid confusions, code for calibration is not included. This package includes two versions respectively for Scenarios 1-6 and Scenario 7. The scenarios are developed in the paper "Forecasting and Evaluating Network Growth" by David Levinson, Feng Xie, and Norah Montes de Oca. The difference between the two versions lies in they use different initial network files ("Linkinfo_2005"), as Scenario 7 has an expanded choice set of potential new links. As a result, the initial network in SONG_FINAL_a comprises 20,468 links (20,380 existing links and 88 legacy links), while that in SONG_FINAL_b 35,224 links. To run either package, import it as a project into Eclipse or other java platforms, find SONG.java which contains the main class, and run it. In the SONG.java file, the variable "scenarioID" can be changed to indicate another scenario. TGeneration.java includes estimated trip generation and trip attraction models. TDistribution.java implements a doubly-constained trip distribution model. DijkstrasAlgo.java includes the Dijkstra's algorithm for shortest path finding. TAssignment.java includes Stochastic User Equilibrium traffic assignment. The original code is obtained in FORTRAN from Davis and Sanderson (2002). We translated it into java and made it more efficient. Investment.java includes decision rules that vary by jurisdictions. Two major methods are included: the ranking() method scores road projects according to stated or revealed rules and ranks them according to the scores; the investing() method invests available budget in road projects according to their ranks and subject to costs and constraints. Please refer to "Forecasting and Evaluating Network Growth" for more details. Feng Xie May 17, 2007