TimPassLib

A library for integrated periodic timetabling and passenger routing

Data Format

In- and output data for the benchmark instances is given in csv files that are designed to be easily readable.

Each file starts with a header that describes the content of the columns.

Input File Config.csv

The file Config.csv contains additional information needed for the data set.

 
                  # config_key; value
                  ptn_name; toy
                  period_length; 60
                  ean_change_penalty; 5
                
The file contains a value for each following config_key:
ptn_name name of the data set string
period_length period length T integer
ean_change_penalty change penalty c integer

Input File OD.csv

The file OD.csv contains information about the OD pairs.

 
                  # origin; destination; customers
                  1; 2; 10
                  1; 3; 20
                  1; 4; 10
                  1; 5; 60
                  ...
                
origin id of the start station s of the OD pair integer
destination id of the destination station t of the OD pair integer
customers number of passengers who wish to travel from s to t integer

Input File Events.csv

The file Events.csv contains information about the events which represent arrival and departures of trips at stations.

 
                  # event_id; type; stop_id; line_id; line_direction; line_freq_repetition
                  1; "departure"; 2; 2; >; 1
                  2; "arrival"; 3; 2; >; 1
                  3; "departure"; 3; 2; >; 1
                  4; "arrival"; 6; 2; >; 1
                  ...
                
event_id id of the event integer
type whether the event represents the arrival ("arrival") or departure ("departure") of the corresponding trip "arrival", "departure"
stop_id id of the corresponding station integer
line_id id of the corresponding line integer
line_direction whether the trip belongs to the line in forward (>) or backward (<) direction >, <
line_freq_repetition repetition of the line in the planning period to which the trip belongs integer

Input File Activities.csv

The file Activities.csv contains information about the activities.

 
                  # activity_index; type; from_event; to_event; lower_bound; upper_bound
                  1; "drive"; 1; 2; 3; 4
                  2; "wait"; 2; 3; 1; 3
                  3; "drive"; 3; 4; 1; 3
                  4; "wait"; 4; 5; 1; 3
                  ...
                
activity_index id of the activity integer
type type of the activity
"drive" represents a vehicle driving from one stop of a line to the next can be used for routing passengers
"wait" represents a vehicle waiting at a stop can be used for routing passengers
"change" represents a transfer between two lines at the same stop can be used for routing passengers
"sync" used for synchronizing trips of the same line cannot be used for routing passengers
"headway" represents headway constraint between vehicles using the same infrastructure cannot be used for routing passengers
from_event id of event i for activity (i,j) integer
to_event id of event j for activity (i,j) integer
lower_bound lower bound of the activity integer
upper_bound upper bound of the activity integer

Solution File Timetable.csv

The solution file Timetable.csv should be given in the following format.

 
                  # event_id; time
                  1; 0
                  2; 3
                  3; 4
                  4; 5
                  ...
                
event_id id of the event integer
time time of the event {0, ..., T-1}
Since an optimal routing for a given timetable can be computed efficiently by solving a series of shortest path problems, passenger routing data is not required when submitting a solution.