Skip to content

ArbeitsgruppeTobiasHarks/ide-repository

 
 

Repository files navigation

Instantaneous Dynamic Equilibria for dynamic Flows

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.

Running the program

Discrete Case

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 network
  • ST: a list containing tuples of length 2 according to the following example: the tuple (i,j) with index k in ST indicates that player k+1 wants to travel from source si to sink tj
  • alpha: value in [0,1]. Describes the significance of the traveltime and the waiting time for the cost of an edge. For values towards 0 this is weighted towards the traveltime, for values closer to 1 the waiting time takes more impact. Default value: 0.5, where both quantities take the same impact
  • kanten_queue: a list containing all edges, where virtual players shall be added
  • start_queue: for each edge in kanten_queue this list contains a point in time, where the virtual inflow into the edge starts
  • ende_queue: for each edge in kanten_queue this list contains a point in time, where the virtual inflow into the edge stops
  • y0_queue: for each edge in kanten_queue this list contains the amount of virtual inflow that will be added
  • graph: 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.

Continuous Case

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 list
  • graph: directed graph as dictonary, if this is not specified, the program will read the graph from the file GraphenGEXF/myGraph.gexf
  • table_output: Boolean value. If True, an OutputTable 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.

Graph Editor

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 78.3%
  • Python 16.8%
  • HTML 3.9%
  • CSS 1.0%