Skip to content

Commit 8b5252b

Browse files
committed
update documentation page
1 parent f33fd39 commit 8b5252b

1 file changed

Lines changed: 31 additions & 22 deletions

File tree

docs/src/benchmarks/dvsp.md

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ The Dynamic Vehicle Scheduling Problem (DVSP) is a sequential decision-making pr
66

77
### Overview
88

9-
In the dynamic vehicle scheduling problem, a fleet operator must decide at each time step which customer requests to serve immediately and which to postpone to future time steps.
9+
In the dynamic vehicle scheduling problem, a fleet operator must decide at each time step which customer to serve immediately and which to postpone to future time steps.
1010
The goal is to serve all customers by the end of the planning horizon while minimizing total travel time.
1111

1212
This is a simplified version of the more complex Dynamic Vehicle Routing Problem with Time Windows (DVRPTW), focusing on the core sequential decision-making aspects without capacity or time window constraints.
@@ -24,11 +24,11 @@ The dynamic vehicle scheduling problem can be formulated as a finite-horizon Mar
2424
s_t = (R_t, D_t, t)
2525
```
2626
where:
27-
- ``R_t`` are the pending customer requests (not yet served), where each request ``r_i \in R_t`` contains:
27+
- ``R_t`` are the pending customer (not yet served), where each customer ``r_i \in R_t`` contains:
2828
- ``x_i, y_i``: 2d spatial coordinates of the customer location
2929
- ``\tau_i``: start time when the customer needs to be served
3030
- ``s_i``: service time required to serve the customer
31-
- ``D_t`` indicates which requests must be dispatched this time step (i.e. that cannot be postponed further, otherwise they will be infeasible at the next time step because of their start time)
31+
- ``D_t`` indicates which customers must be dispatched this time step (i.e. that cannot be postponed further, otherwise they will be infeasible at the next time step because of their start time)
3232
- ``t \in \{1, 2, \ldots, T\}`` is the current time step
3333

3434
The state also implicitly includes (constant over time):
@@ -47,7 +47,7 @@ A route is feasible if:
4747

4848
**Transition Dynamics** ``\mathcal{P}(s_{t+1} | s_t, a_t)``: After executing routes ``a_t``:
4949

50-
1. **Remove served customers** from the pending request set
50+
1. **Remove served customers** from the pending customer set
5151
2. **Generate new customer arrivals** according to the underlying exogenous distribution
5252
3. **Update must-dispatch set** based on postponement rules
5353

@@ -70,7 +70,7 @@ where ``d_{ij}`` is the travel duration from location ``i`` to location ``j``, a
7070

7171
The main benchmark configuration with the following parameters:
7272

73-
- `max_requests_per_epoch`: Maximum number of new customer requests per time step (default: 10)
73+
- `max_requests_per_epoch`: Maximum number of new customers per time step (default: 10)
7474
- `Δ_dispatch`: Time delay between decision and vehicle dispatch (default: 1.0)
7575
- `epoch_duration`: Duration of each decision time step (default: 1.0)
7676
- `two_dimensional_features`: Whether to use simplified 2D features instead of full feature set (default: false)
@@ -82,35 +82,42 @@ Problem instances are generated from static vehicle routing datasets and include
8282
- **Customer locations**: Spatial coordinates for pickup/delivery points
8383
- **Depot location**: Central starting and ending point for all routes
8484
- **Travel times**: Distance/duration matrix between all location pairs
85-
- **Service requirements**: Time needed to serve each customer
85+
- **Service times**: Service time each customer
8686

87-
The dynamic version samples new customer arrivals from the static instance, drawing new customers by independently sampling their locations and service times.
87+
The dynamic version samples new customer arrivals from the static instance, drawing new customers by independently sampling:
88+
- their locations from the set of static customer locations
89+
- service times, uniformly from the range of service times in the static instance
8890

8991
### Features
9092

91-
The benchmark provides two feature representations:
92-
93-
**Full Features** (14-dimensional):
94-
- Start times for postponable requests
95-
- End times (start + service time)
96-
- Travel time from depot to request
97-
- Travel time from request to depot
98-
- Slack time until next time step
99-
- Quantile-based travel times to other requests (9 quantiles)
93+
The benchmark provides two feature matrix representations, containing one column per postponable customer in the state:
94+
95+
**Full Features** (27-dimensional):
96+
- Start times for postponable customers (1)
97+
- End times (start + service time) (2)
98+
- Travel time from depot to customer (3)
99+
- Travel time from customer to depot (4)
100+
- Slack time until next time step (5)
101+
- % of must-dispatch customers that can reach this customer on time (6)
102+
- % of customers reachable from this customer on time (7)
103+
- % of customers that can reach this customer on time (8)
104+
- % of customers reachable or that can reach this customer on time (9)
105+
- Quantile-based travel times to other customers (9 quantiles) (10-18)
106+
- Quantiles of % of reachable new customers (9 quantiles) (19-27)
100107

101108
**2D Features** (simplified):
102-
- Travel time from depot to request
103-
- Mean travel time to other requests
109+
- Travel time from depot to customer (1)
110+
- Mean travel time to other customers (2)
104111

105112
## Benchmark Policies
106113

107114
### Lazy Policy
108115

109-
The lazy policy postpones all possible requests, serving only those that must be dispatched.
116+
The lazy policy postpones all possible customers, serving only those that must be dispatched.
110117

111118
### Greedy Policy
112119

113-
The greedy policy serves all pending requests as soon as they arrive, without considering future consequences.
120+
The greedy policy serves all pending customers as soon as they arrive, without considering future consequences.
114121

115122
## Decision-Focused Learning Policy
116123

@@ -128,5 +135,7 @@ The greedy policy serves all pending requests as soon as they arrive, without co
128135
2. **Optimization Layer**: Solves the prize-collecting vehicle scheduling problem to determine optimal routes given the predicted priorities
129136

130137
The neural network architecture adapts to the feature dimensionality:
131-
- **2D features**: `Dense(2 => 1)` followed by vectorization
132-
- **Full features**: `Dense(14 => 1)` followed by vectorization
138+
- **2D features**: `Dense(2 => 1)`, applied in parallel to each postponable customer
139+
- **Full features**: `Dense(27 => 1)` applied in parallel to each postponable customer
140+
141+
**Note:** one can also use more complex architectures such as a deeper MLP or a graph neural network for better performance.

0 commit comments

Comments
 (0)