This repository contains a calculation tool for Instantaneous Dynamic Equilibrium Flows (IDE-flows) for both the discrete and the continuous case.
For the definition and more theoretical information about IDE-flows, see this.
In Math/data.py the input data has to be specified. This includes:
R
: a list containing for each player the exact point in time where the player enters the networkST
: a list containing tuples of length 2 according to the following example: the tuple(i,j)
with indexk
inST
indicates that playerk+1
wants to travel from sourcesi
to sinktj
alpha
: value in[0,1]
. Describes the significance of the traveltime and the waiting time for the cost of an edge. For values towards0
this is weighted towards the traveltime, for values closer to1
the waiting time takes more impact. Default value:0.5
, where both quantities take the same impactkanten_queue
: a list containing all edges, where virtual players shall be addedstart_queue
: for each edge inkanten_queue
this list contains a point in time, where the virtual inflow into the edge startsende_queue
: for each edge inkanten_queue
this list contains a point in time, where the virtual inflow into the edge stopsy0_queue
: for each edge inkanten_queue
this list contains the amount of virtual inflow that will be addedgraph
: directed graph as dictonary, if this is not specified, the program will read the graph from the file GraphenGEXF/myGraph.gexf
Once Math/data.py contains all information, run Math/Main.py, which will create a Math/Application.py.
In Math/cont_data.py the input data has to be specified. This includes:
u
: a list of inflow rates. For each node this contains a list of tuples of length 2, where each tuple contains two values<starting time>
and<flow value>
, indicating an inflow of<flow value>
flow volume, starting at<starting time>
until the<starting time>
of the next tuple in the listgraph
: directed graph as dictonary, if this is not specified, the program will read the graph from the file GraphenGEXF/myGraph.gexftable_output
: Boolean value. IfTrue
, anOutputTable
will be created, otherwise the program will return the raw data (see Math/cont_data.py)
Once Math/cont_data.py contains all information, run Math/ContMain.py, which will create a Math/ContApp.py.
The GraphEditor can be used to create .gexf
-files for graphs which can then be read into the programs described above. It is based on Sigma
, a JavaScript library dedicated to graph drawing, mainly developed by @jacomyal and @Yomguithereal. See also sigma.js-1.2.1/README.md.
To create graphs, open sigma.js-1.2.1/GraphEditor/meinGraph.html. Once the graph is created, its .gexf
-file can be downloaded via the Download
-Button. Saving it in GraphenGEXF/myGraph.gexf will result in the graph being read into the program.