SONG: Simulator of Network Growth 1.0



Simulation Models


Parameters List

Statistics Outputs

User Instructions



Click here for a PDF version of this file.




SONG 1.0 is a simulator designed for simulating the process of transportation network growth. The growth or decline of transportation networks is normally treated as the result of top-down decision making in the long-range planning efforts of metropolitan planning organizations (MPOs).  However, changes to transportation networks are essentially the results of numerous small decisions by property owners, firms, developers, towns, cities, counties, state department of transportation districts, MPOs, and states in response to market conditions and policy initiatives. These system behaviors demonstrate the characteristics of decentralized systems, where organized patterns and structures can emerge not because of centralized control, but because of the interactions among decentralized system components.  This phenomenon of decentralization and self-organization occurs in many circumstances, such as bird flocks, ant colonies, life evolutions, neural networks. Increasingly research is applying decentralized models in different domains as a new way of viewing the world.


In SONG 1.0, transportation networks are treated as decentralized systems that demonstrate self-organizing patterns. By design, the simulator models behavior of individual system components and small decisions, and then demonstrates the patterns resulting from interactions of component models.  The idea is that it is the actions of the components, not the whole that are controlled by the designer; the resulting patterns or structures, which often behave very differently than the elements that compose them, are not designed. 


It is worth to notice that SONG 1.0 shows a different kind of simulation, called "soft simulation", which "provides qualitative understanding of a complex system by constructing a simple one that shares the same principle (Papert, 1992)."  By developing the simulator, the focus is not on perfect reproductions of the real world, but rather to help people explore the "microworld" of transportation network systems and to stimulate new ways of thinking about the network growth process.




Simulation Models


SONG 1.0 simulates behaviors of individual links to explore the patterns of resulting network forms. In particular, each link is treated as autonomous agent and the simulation models individual link behaviors based on certain rules that determine link revenue, costs and investment decision. The model flowchart in Figure 1 provides a global view of the model structure; detailed descriptions of components models are followed after the flowchart.


Figure 1: Simulation flowchart




1. Land Use and Network Settings

The land use and network are treated as initial conditions input into the model. The land use is modeled as a layer of a grid of land blocks called land use cells. Transportation networks are modeled as directed graphs overlaying a land user layer.


The main objective of setting initial land use is to provide input to transportation models. Information contained in the land use layer includes: location, population density, and market density. It is assumed in the simulation model that trips produced from a land use cell are directly proportional to population density and trips attracted to a land use cell are directly proportional to market density.  The model considers three land use patterns:  (1) random initial land use, where trips produced and attracted are randomly distributed; (2) uniform initial land use, where trips are uniformed distributed, and it is a conceptual condition designed to control the effect of land use on the formation of network; and (3) bell-shaped land use, which is designed to replicate the distribution of land use patterns with a Central Business District (CBD).   


The transportation network is represented as a directed graph that connects nodes with directional arcs, links. The simulator applies a grid network structure.


2. Travel Demand Model

The travel demand model converts land use information (population and employment data) into link flows on a given transportation network through trip generation, trip distribution and route assignment models.


The trip generation model divides geographical area into zones centered on network nodes and converts land use properties of the zones into trips produced and attracted. The land use layer is modeled as a square, and it is assumed that the land use layer is static throughout the simulation. 


The trip distribution model matches the generated trips by purpose between origin (O) and destination (D). Trips produced are differentiated according to destination; trips attracted to a zone are differentiated according to origins.


The traffic assignment model predicts the travelers’ choices of routes by the relationship between flow and travel time. In particular, it converts the OD matrix, from the trip distribution step, into flows on the links depending on the way travelers choose routes.  By assumption, every traveler tries to optimize his travel time by choosing the quickest route to reach the destination.


3. Revenue Model

The network revenue model determines the revenue road providers can collect by providing the road services, depending on link speed, flow, and length. (From travelers’ perspective, it is the toll they pay for using the road.)  The revenue model is a link-based model that calculates revenue for each link.  Revenue is calculated by multiplying the toll and flow. Therefore, the higher the flow on the link, the higher is the revenue. 





4. Cost Model

This model calculates the cost that is required to keep a link in its present usable condition depending on the flow, speed, and length.



where, Cia   is the cost of maintaining the road at its present condition,

            m is the (annual) unit cost of maintenance for a link,

            a1, a2, a3 are coefficients indicating economies or diseconomies of scale


5. Investment Model

Depending on the available revenue, and maintenance costs link changes its speed.  If the revenue generated by a link is insufficient to meet its maintenance requirements its speed drops.  If the link has revenue left after maintenance it invests that remaining amount in capital improvements, increasing its speed. A major assumption in this model is that a link uses all the available revenue in a time step without saving for the next time step. 



With the new speed on the links the travel time changes and the whole process from the travel demand model is repeated to grow the transportation network.






As shown in Figure 2, the Interface of SONG 1.0 contains three portions of information: the parameter panel, the visualization panel, and the output panel.


Figure 2: Interface of SONG 1.0


1. Parameter panel

The parameter panel is located in the left side of the interface. It is where users can make changes to the values of certain variables and see the consequences on the network form. In doing so, users are able to examine the implications of alternative policies as represented by different values of the parameters.


The parameters shown on the interface include network types, speed, land use distributions, and sets of parameters contained in the component models for simulating travel demand, revenue, cost, and investment behaviors. Detailed description of each parameter will be provided in "parameters" section of this file.



 Figure 3: Parameter Panel of SONG 1.0


2. Visualization panel

The simulator is designed to visualize network forms based on either different link flows or different link speeds. Visualization of the simulation is demonstrated on the right hand side of the interface, including the graph output, legend, running button, and status information.  


Figure 4: Visualization panel of SONG 1.0


·       Graphic output

Graphic output is shown on the grid network graph with different colors and thickness on each link representing different link speed or link flow.


·       Legend

Different link flows and different link speeds of the network are represented with different colors of the links. In particular, the simulator follows the Red, Orange, Yellow, Green, Blue, Indigo, and Violet  (ROYGBIV) spectrum with "Red" representing the highest speed or flow and "Blue" representing lowest values in speed or flow. The particular value of speed or flow for each color is indicated in the legend below the graph panel.


·       Running button and status information

To run the simulation, users need to hit "evolve" button, and the running status will be displayed below the legend indicating the model running status. The simulation process stops either when equilibrium is reached, or when it reaches its 20th iteration[1].


3. Output panel

The output panel is located on the lower right hand side of the interface. It includes the following information:


·       Speed and volume scroll down options

·       Iteration period

·       Statistics button for MOEs output


Figure 5: Output panel of SONG 1.0


Figure 6: MOEs output window




Parameters List


SONG 1.0 contains a set of variables that allow users to make adjustments. These include initial network types, network speed distribution, land use distribution and some model parameters. Figure 2 shows the interface of SONG 1.0 where users can adjust the parameters. A brief description of the variable default values, range, and real world interpretation is given in Table 1. Additionally, the full list of underlying model parameters (including those that are not shown in the interface) are also explained in this document.  



Figure 2: Parameter panel of SONG 1.0


Table 1: SONG 1.0 Variable Table


Variable        ID

Default value

Adjustable Range


Land use, network settings




Network types




network sizes




network with river


Speed distribution




no differentiation in link speeds cross the network





randomly distribute speed




prespecified random

repeat the "same" random distribution

Speed multiplier



20% - 220%

network speed level

Land use distribution














land use with downtown




prespecified random

repeat the "same" random distribution

Land use multiplier



20% - 220%

land use density

Travel Demand





Value of time



0 - 5.0

hourly time value

Friction Factor



0 - 1.0

willingness to travel






Toll rate



0.5 - 1.5



Length coefficient



0 - 1.5

revenue responsiveness to distance traveled

Speed coefficient



0 - 1

revenue responsiveness to road speeds

Link Maintenance Cost





Length coefficient




0 - 1.2

elasticity of cost in response to road length

Flow coefficient



0 - 1.2

elasticity of cost in response to link flow 

Speed coefficient





0 - 1.2

elasticity of cost in response to road speed level






Speed improvement factor





0 - 1

responsiveness of link improvement (investment) to link performance (such as revenue/cost ratio)

a Detailed variable interpretations can also be found from the model variable description below.


Initial Network Types, Speed Distribution, and Land Use Distribution


1. Network types include options representing different sizes and types of networks, e.g. users can choose grid networks with varying sizes from 5x5 to 25x25 as demonstrated in Figure 2; or network with a river crossing as demonstrated in Figure 7.  



Figure 7: Network with river crossing

2. Speed distributions in the initial network can be set as random or uniform to see how different (or similar) the evolved network form can be compared to the initial one. Uniform speed distribution means link speeds are uniform across the network; Random speed distribution distributes the initial link speeds randomly across the network; and Pre-specified random speed distributes links speed randomly in a pre-specified way, so that users can control the effects of speed distribution and test the impacts of other variables. Speed multiplier allows users to adjust the level of speeds across the whole network. e.g. a value of 135% indicates the speed level is 135% of the default speed level.


3. Land use distributions at the initial stage of network development can be set as random, uniform, pre-specified random, or with a CBD (call urban land use).  The idea is to explore if orderly network structure can emerge from different initial land use conditions.  Additionally, a land use multiplier in the program allows users to adjust the level of initial land use density cross the whole network.  


Model parameters


Corresponding to the simulation components models, simulation parameters will be explained in this section. Note that not all of the parameters explained below are visible in the interface, the user adjustable variables, as shown in the interface, will be marked with "***" sign.


1. Parameters from travel demand model

The models

User adjustable parameters are associated two models simulating how trips are distributed in the network. 


(a) Gravity model: , where =is friction factor, indicating people’s willingness to travel, and is the generalized cost of commuting between two locations; and

(b) Generalized travel cost model:, where costs of commute are generalized to consist of: travel time in monetary value and toll (or user fees): 


Description of parameters:

, friction factor ***


Value of time ***



2. Parameters from revenue model

The model:

 [], or its simplified version: [], assuming no relationship (=0) between revenue and speed, and linear relationship between link length and revenue (=1)


From services providers’ perspective, toll paid by travelers equals to revenues made by the providers. So revenues are calculated in the same way that toll is calculated in the generalized travel cost model in the last section. Hence, parameters in the generalized cost model have the same values as defined in the revenue model here.


Description of parameters:

, a model parameter to scale flow annually (not shown on the interface)


, Tax (toll) rate *** 


, Length power in revenue model ***


, Speed power in revenue model ***


3. Parameters from cost model

The model:

[]: the model calculates, the cost of maintaining the road at its present condition in time step t. This cost depicts the threshold cost of maintaining a link.



Description of parameters

, annual unit cost of maintenance for a link (Not shown on the interface)


, coefficients for length, indicating (dis)economies of scale to road providers ***


, coefficient for flow ***

·       default: 0.75

·       Range: user define to show (dis)economy of scale of link maintenance costs regarding to link flow.

·       Interpretation:  represents the way how link maintenance costs vary according to link flow changes. If =1.0, link maintenance costs changes linearly with link flow change; if >1.0, link maintenance costs increase more than one percent with one percent increase in flow; if <1.0, then one percent increase in flow will cause less than one percent increase in link maintenance costs, which shows an economy of scale.


, coefficient for speed ***

·       default:0.75

·       Range: user define to show (dis)economy of scale of link maintenance costs regarding to link speed.

·       Interpretation:  present the way how link maintenance costs changes with changes in link speed. As  takes on values of 1.0 or larger than 1.0, or smaller than 1.0, one can see the relationships between link maintenance costs and speed to be either linear or demonstrating (dis)economy of scale.


4. Parameters from investment model

The model

[]: Depending on the available revenue and maintenance costs this model changes the speed of every link at the end of each time step as show in the model equation. If the revenue generated by a link is insufficient to meet its maintenance requirements i.e. < , speed drops, otherwise, speed rises. The assumption of this model is that links use up all available revenue without any savings.


Description of parameters

, speed improvement coefficient ***






 Statistics Outputs


The following Measurements of Effectiveness (MOEs) can be output from the simulator for analysis; and Figure 6 shows the MOEs output windows as users click the button "Statistics":


Figure 6: MOEs output window












1. Average speed


2. Average flow


3. Vehicle Kilometers Traveled (VKT)


4. Vehicle Hours Traveled (VHT)


5. Total cost


6. Total revenue


7. Cumulative costs


8. Cumulative revenue


9. Improvement term




User Instructions    


To run the simulation, the following steps can be taken:


1. Access the simulator

Go to the Webpage:, the interface should appear with a set of variables on the left side and a blank area on the right hand side.


2. Set the initial conditions

Choose a network type: you can choose network of different sizes (options include 5x5~25x25 nodes grid networks); or you can choose a network with river crossing. After you select an initial network, there should be a graphical grid network appear on the right hand side of the interface.


Choose an initial network speed distribution: click scroll down box besides "speed distribution" and set initial speeds as either randomly distributed or uniformly distributed.


Choose an initial land use distribution: click scroll down box besides "land use distribution" and choose random, or uniform, or urban (bell-shaped) land use.


3. Change parameters which imply different situations and alternatives

Use scroll down buttons or adjust the scroll bars to change the values of your parameters of interests. The meaning, default values and range of parameters are described in the parameter section of this document.


4. Run the simulation

After you made all the changes to the parameters, click "evolve" on the lower right side of the interface to run the simulation. Status information should appear on the lower right hand side for you to check if the simulation process is finished.


5. Extract results (graphical and batch outputs)

After the simulation finishes running, you can get graphical representations of the resulting network form, as well as MOEs of the network system.


Graphic results demonstrate the resulting network with different colors of links indicating different levels of link speed or link volume. To view graphic results, go to the scroll down box besides button "Evolve", choose either "speed" or "volume", and view network forms in different years of evolution by using the following buttons: "<<" (initial year), "<" (the previous year), ">" (the next year),  ">>" (the final year).  


To get MOEs, click "Statistics" button, and a separate window will be open with information you can use for quantitative analysis.


6. "Restore" function

When rerunning the simulation you can use "Restore" button on the lower left hand side of the interface and restore the scroll bar values in the model to the default values.






Q: What is the system requirement for running this simulation?

A: The simulator should be run with Java 1.4.2, which can be downloaded for free from  The program has been tested for windows XP, windows 2000; and for Mac OS 10.3, and OS 10.2. 


Q: Why the simulation interface doesn’t show up on my screen?

A: You might open Internet Explore, go to "Tool", then select "Internet Options", and select "Advanced", and scroll down until you see "Java (sun)", check the box under it, restart your computer.


Q: Why does the simulator run slowly?

A: Running speed of the simulation depends on a number of factors: network sizes (the larger the size of network, the longer it takes to run the simulation), the memory of the computer used to run the program, and the CPU of the computer.


Q: How do I save the graphic of the resulting network?

A: Hold "Fn" button on your keyboard and click "Print Screen" button or press "Ctrl + C" then open an MS Word file and press "Ctrl + V".  In Mac, use the "Grab" function in "Utilities".


Q: Can I have more than one network open at a time?

A: Yes you can, with opening a new Internet Explore window and accessing the simulator in the same page.


Q: Are there any other similar simulation I can play with?  






[1] If equilibrium cannot be reached after 20 iterations, it is very likely that the program cannot converge, and SONG 1.0 would then halt at its 20th iteration.