Skip to content

Commit

Permalink
Update README.md for v1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
BoZenKhaa authored Sep 28, 2023
1 parent d57a37d commit 7f0adbf
Showing 1 changed file with 18 additions and 18 deletions.
36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ The instances and results of two solution methods, the Insertion Heuristic and t

[![Dataset DOI](https://img.shields.io/static/v1?label=Dataset&message=DOI%3A10.5281/zenodo.7986104&color=1682D4)](https://doi.org/10.5281/zenodo.7986104)

The dataset of instances and associated results are available through dataset repository Zenodo. The dataset is compressed by [7zip](https://7-zip.org/) to adhere to the Zenodo dataset size limits, with some of the archives split into multiple parts. The dataset is licensed under the [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/) license.
The dataset of instances and associated results are available through the dataset repository Zenodo. The dataset is compressed by [7zip](https://7-zip.org/) to adhere to the Zenodo dataset size limits, with some of the archives split into multiple parts. The distance matrices, instances, and results are in separate archives. However, the folder structure inside the archives follows the schema described below. Thus, unpacking the distance matrix archives places them in an appropriate directory in the `Instances` folder. The dataset is licensed under the [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/) license.


[![G-drive link](https://img.shields.io/badge/Dataset-Bleeding%20Edge-%234285F4?logo=googledrive)](https://drive.google.com/drive/folders/1iTwpQUZdbSC_5kdEb5-eFw2tLPBNnTxh?usp=sharing)

Latest, unversioned variant of the dataset can be downloaded from Google Drive. Note that the full distance matrix files that represents the travel time model are up to 45 GB in size. This latest version of the dataset contains additonal undocumented meta-data and may contain results of additional solution methods not described in the paper.
The latest, unversioned variant of the dataset can be downloaded from Google Drive. Note that the full distance matrix files that represent the travel time model are up to 45 GB in size. This latest version of the dataset contains additional undocumented meta-data and may contain results of additional solution methods not described in the paper.

## Instances structure

Expand All @@ -62,7 +62,7 @@ The instance folder contains the two main instance files:
- `time_ms` - a request time in milliseconds from the start of the day $t$
- `origin` - index of the origin node $o$. Used for indexing into the distance matrix
- `dest` - index of the destination node $d$
- `min_travel_time` (optional) - direct minimal travel time in seconds between origin and destination nodes
- `min_travel_time` (optional) - direct, minimal travel time in seconds between origin and destination nodes
- `πŸ—Ž vehicles.csv` - a 2-column `<tab>` separated file containing the set of vehicles $V$ with no header row and the following column meaning:
- vehicle starting node $s$
- vehicle capacity $c$
Expand All @@ -74,11 +74,11 @@ A concrete example of an instance path is `Instances/NYC/instances/start_18-00/d
`πŸ—Ž Instances/<area>/dm.hd5`

The travel time model $f_t(l, l')$ that determines the shortest travel time between any two nodes $l$ and $l'$ has a form of distance matrix and is shared by all instances in the same area.
Since for some areas the matrix is quite large, it is saved using the [`hdf5`](https://www.hdfgroup.org/solutions/hdf5/) format. To load the distance matrix into Python, use [`h5py` python package](https://www.h5py.org/). The loading of the distance matrix is implemented in the [`MatrixTravelTimeProvider.from_hdf`](https://github.com/aicenter/Ridesharing_DARP_instances/blob/main/python/darpinstances/instance.py#L62). Method [`get_travel_time(from_index, to_index)`](https://github.com/aicenter/Ridesharing_DARP_instances/blob/main/python/darpinstances/instance.py#L73) implements the access to the distance matrix and is equivalent to $f_t(l, l')$
Since, for some areas, the matrix is quite large, it is saved using the [`hdf5`](https://www.hdfgroup.org/solutions/hdf5/) format. To load the distance matrix into Python, use [`h5py` python package](https://www.h5py.org/). The loading of the distance matrix is implemented in the [`MatrixTravelTimeProvider.from_hdf`](https://github.com/aicenter/Ridesharing_DARP_instances/blob/main/python/darpinstances/instance.py#L62). Method [`get_travel_time(from_index, to_index)`](https://github.com/aicenter/Ridesharing_DARP_instances/blob/main/python/darpinstances/instance.py#L73) implements the access to the distance matrix and is equivalent to $f_t(l, l')$

### Instance metadata and supporting files

In addition to the main instance files, the instance and area folders contain several additional files holding metadata about the instance used for instance generation, visualization or analysis. The list of the files with their location in the directory tree is below.
In addition to the main instance files, the instance and area folders contain several additional files holding metadata about the instance used for instance generation, visualization, or analysis. The list of the files with their location in the directory tree is below.

```text
πŸ“Instances/
Expand Down Expand Up @@ -120,16 +120,16 @@ In addition to the main instance files, the instance and area folders contain se

- `πŸ–Ί config.yaml` contains metadata used in the instance generation. Notable fields are
- `demand:`
- `min_time` and `demand: max_time` that give the interval for the demand used in the instance. The format is `yy-mm-dd HH:MM:SS` in the local timezone.
- `min_time` and `demand: max_time` give the interval for the demand used in the instance. The format is `yy-mm-dd HH:MM:SS` in the local timezone.
- `max_prolongation`: the maximum delay $\Delta$ (in seconds)
- `vehicles:`
- `start_time`: The datetime of the start of the vehicle operation. The format is the same as for the demand interval.
- `vehicle_capacity` - sets the capacity parameter $c$ for the instance generation
- `vehicle_count` - sets the number of vehicles for the instance generation
- `map`: the objecct for the map configuration
- `map`: the object for the map configuration
- `SRID`: The SRID of the map projection. Example: `4326` (GPS)
- `SRID_plane`: The SRID of the map planar projection. Example: `32618` (UTM zone 18N)
- `πŸ–Ί sizing.csv` contains the results of the instance sizing, step in the instance generation process that selects the number of vehicles for the instance so that solution found by the insertion heuristic can service all requests in the instance. See the article for details. The file uses a comma as a separator and contains three columns with a header:
- `πŸ–Ί sizing.csv` contains the results of the instance sizing, which is the step in the instance generation process that selects the number of vehicles for the instance so that the solution found by the insertion heuristic can service all requests in the instance. See the article for details. The file uses a comma as a separator and contains three columns with a header:
- `vehicle_count` - the number of vehicles used at a given step of the sizing process
- `dropped_requests` - the number of requests that cannot be serviced by the given number of vehicles when solved by the insertion heuristic
- `interval_size` - the size of the interval-halving step used in the sizing process
Expand All @@ -150,7 +150,7 @@ In addition to the main instance files, the instance and area folders contain se

#### Visualization files

Contains area and instance files for visuzalization in e.g. [Q-GIS](https://www.qgis.org)
Contains area and instance files for visualization in e.g. [Q-GIS](https://www.qgis.org)

`πŸ“ Instances/<area>/map/shapefiles/`
- `πŸ—Ί nodes.[shx, shp, prh, dbf, cpg]`
Expand All @@ -162,7 +162,7 @@ Contains area and instance files for visuzalization in e.g. [Q-GIS](https://www.
- `πŸ—Ί dropoff.[shx, shp, prh, dbf, cpg]` - request dropoff points

## Results structure
The results are stored in the `πŸ“ Results/` folder. The folder structure follows similar pattern as the `πŸ“ Instance/` folder:
The results are stored in the `πŸ“ Results/` folder. The folder structure follows a similar pattern as the `πŸ“ Instance/` folder:

```text
πŸ“ Results/<area>/start_<start time>/duration_<duration>/max_delay_<max delay>/<method>/
Expand All @@ -175,41 +175,41 @@ The `<method>` folders are `ih` for [Insertion Heuristic]() and `vga` for [Vehic


### Solution file
The solution is stored in `πŸ—Ž config.yaml-solution.json` and contains following fields:
The solution is stored in `πŸ—Ž config.yaml-solution.json` and contains the following fields:

`πŸ—Ž config.yaml-solution.json`
- `cost` - total cost (total travel time of all vehicles) of the solution in seconds.
- `cost_minutes` - total cost of the solution in minutes, rounded.
- `dropped_requests` - list of requests that were dropped in this solution.
- `plans` - list of vehicle plans, each plan contains a list of actions that determine which requests are served by the given vehicle and in which order. The actions are "pickup" and "drop_off".
- `plans` - list of vehicle plans; each plan contains a list of actions determining which requests are served by the given vehicle and in which order. The actions are "pickup" and "drop_off".

All locations in the solution file are node ids from the road network. The node ids are the same as in the `πŸ–Ί nodes.csv` file in the instance folder. All times are in seconds from the start of the day.

Complete description of the solution format is given by the [json schema](solution_schema.json) in this repository.
A complete description of the solution format is given by the [json schema](solution_schema.json) in this repository.

### Solution meta-data
There are two files with meta-data for the solution, `πŸ–Ί config.yaml` and `πŸ–Ί config.yaml-performance.json`

`πŸ–Ί config.yaml` file contains the experiment configuration, such as the relative path to the instance, method specific configuration and so on.

`πŸ–Ί config.yaml-performance.json` file contains logged information on the run of the solver. The json has following fields
`πŸ–Ί config.yaml-performance.json` file contains logged information on the run of the solver. The json has the following fields
- `total_time` - total time of the solver run in seconds
- `peak_memory_KiB` - peak memory usage of the solver in KiB
- `solver_stats`- solver specific statistics, if available. For example, for VGA method, `group_generation_time` and `vehicle_assignment_time` are logged separately.
- `solver_stats`- solver-specific statistics, if available. For example, for the VGA method, `group_generation_time` and `vehicle_assignment_time` are logged separately.

## Instance Creation
The methodology for the instance creation is described in the article. The process is divided into following steps:
The methodology for the instance creation is described in the article. The process is divided into the following steps:

![FlowChart_v3-1.png](figures%2FFlowChart_v4.png)

Many of the steps are implemented in the associated repository, byt some of them rely on external binaries. That is why the published dataset contains full distance matricies for every area instead of the instance-specific, smaller distance matricies.
Many of the steps are implemented in the associated repository, but some of them rely on external binaries. That is why the published dataset contains full distance matrices for every area instead of the instance-specific, smaller distance matrices.

[//]: # (## Road Network Processing)

[//]: # (## Demand and Vehicle Processing)

### Public Datasets used in the creation of the instances
Following data sources were used to generate demand and travel time data:
The following data sources were used to generate demand and travel time data:

| Area | Demand Dataset | Zone Dataset | Request times |
|-----------------------------|----------------------------------------------------------------------------------------------------|---------------------------------------|---------------|
Expand Down

0 comments on commit 7f0adbf

Please sign in to comment.