ThesisManuscript/4_chapitre4.tex

1172 lines
126 KiB
TeX

\chapter{Carsharing Simulation for Relocation Strategy Evaluation}
\label{ch:simulation}
The methodology proposed in Chapter~\ref{ch:method} has been evaluated against historical data.
The historical usage of cars was used to compute the revenue to be expected from the fleet placement proposed by the solver.
However as stated in the previous chapter, when the historical usage was not available for a placed car, the predicted usage was used instead.
This evaluation tries to stay as close as possible to plausible usage values, by using historical data, to assess whether the fleet distribution would be better than the historical one or not.
But in this evaluation, the utilization of the predicted usage in addition to the historical one can be hazardous.
Indeed, the error associated with the prediction of the daily customer usage is high for \emph{Paris} and \emph{Washington}, the best models respectively have a \emph{RMAE} of 74\% and 87\%.
In the case of \emph{Paris} and \emph{Washington}, the global expected revenue from the fleet (including cars placed in non-historical places) is then heavily affected by the error made by the prediction models.
To evaluate the relocation strategies between each other, a simulation methodology has been developed.
The objective is to have a playground to test the strategies while reducing the influence of the prediction error when assessing the performance of each relocation strategy.
Since little data is available for the three case studies apart from carsharing bookings, an approach consisting in simulating only the carsharing service has been chosen.
In particular a \emph{Discrete Event Simulation} (\emph{DES}), as explained in Chapter~\ref{ch:background}, has been created for this purpose.
Thus the agent-based simulation presented in Chapter~\ref{ch:background} have not been used since they would require contextual data to be known, such as fine population density data and population place of activities.
It should be noted that this simulation has been developed to be based on historical data: it has not been designed to simulate a realistic service in an unknown city for which no historical data is available.
In this Chapter, the internal functioning of the carsharing simulation is detailed as well as how relocation strategies are integrated.
Then different relocation strategies are described: the two baselines, the strategy based on the methodology proposed in Chapter~\ref{ch:method} and a customer-based strategy.
Last, experiments are done to determine which is the best strategy to be used in each case.
\section{Carsharing Service Simulation}
In this section, the simulation of a carsharing service by a \emph{Discrete Event Simulation} (\emph{DES}) model is presented.
The objective of this simulation is to assess the performance of \textquote{relocation strategies} which can be either based on efforts made by the operator's staff or by the customers.
In particular, this section described the internal state of the simulation and how it creates and processes the events used to modify this internal state.
Lastly, the step dedicated to the trip creation during the simulation is detailed.
\subsection{Simulation Internal State \& Events}
Contrary to an agent-based simulation, the proposed simulation model has its decision-making centralized in the main loop, i.e. there is no agent with a \textquote{free will} used during the simulation.
The decision-making process is based on two elements: the simulator internal state and a series of events to be taken into account by the simulation.
\paragraph{Internal State.} Inside of the simulation internal state, essential information are kept to run the simulated carsharing service.
The simulation model keeps as a variable the current \emph{simulated timestamp} to know exactly which minute is being simulated.
For example, actions are triggered only at given moments in the simulated day.
The simulated service area is abstracted, as described in Chapter~\ref{ch:data_analysis}, and the simulation keep track only cells that are serviced.
\begin{figure}[!bt]
\centering
\includegraphics[width=1\textwidth]{figure/ch4_simulation_state.jpg}
\caption[Simulator Internal State]{Summary of the simulation internal state, both information needed to run the simulation and to evaluate the performance of relocation strategies are kept. Each box is an element of the internal state, nested boxed are used to categorize the elements.}
\label{fig:ch4_simulation_state}
\end{figure}
The fleet is kept in the internal state of the simulation model: each car has its own state that is used to follow both the individual behavior of each car and the behavior of the whole fleet.
Thus the car has a location with a value being the ID of a cell if the car is parked or \textquote{undetermined} if the car is being driven by either a customer or a staff member.
To keep track of the activities of a car during the day, the car also has a status with three possible values depending on its current usage: the car can be \textquote{available}, \textquote{in use} or \textquote{in relocation}.
% Note that electric vehicles could have an additional information: the electric charge of the battery.
% However the relocation strategy to be tested does not take electric charge into account.
Lastly, the list of customer and staff trips are kept in the internal state of the simulation.
A customer trip and a relocation trip have similar information: a departure timestamp, a departure cell, an arrival timestamp and an arrival cell.
Those trips are kept in separated lists in the internal simulation state for two reasons.
First, it is to be able to keep information on the departure and arrival of customers, notably to know where to place the cars of trips being made during the simulation.
Second, the separation between customer and relocation trips makes possible further analysis of customer-based indicators, such as the daily utility, and for the analysis of relocation statistics, such as the number of relocations that could not be done.
There are two lists for customer trips, the \textquote{in progress} list that keeps track of the trip currently done by customers and the list \textquote{has finished} which retain all customer trips that ended.
Staff trips are kept in four categorized lists in the internal state of the simulation, the list of relocation to be done (named \textquote{reloc to do}), the list of relocation being done (\textquote{reloc in progress}), the list of relocation canceled because no car could be found for the relocation (\textquote{reloc canceled}) and the relocation trips completed by the staff are registered in the \textquote{reloc has finished} list.
Figure~\ref{fig:ch4_simulation_state} shows a summary of the information kept in the internal state of the simulation model.
\paragraph{Events.} To codify actions that the simulation needs to make at a later date, i.e. later than the current simulated timestamp, events are introduced.
In the proposed simulation model, three events are used and generated within the main loop of the simulation, i.e. those events are not generated before the start of the simulation.
The first event is the \textquote{Relocation Trip Start}, it means that a trip made by the staff to relocate a car should begin at the associated timestamp.
To this event is also associated a relocation trip, since it is needed to know when and where a car should be picked up by the jockey.
The second event is the \textquote{Relocation Trip End}, this event is used to know when a relocation trip should end and when the car driven by the jockey should be placed back into service.
It also has a relocation trip associated to know when and where the jockey should drop the car in the city.
The third event codifies the end of a customer trip and is named \textquote{Customer Trip End}.
It is associated with a customer trip that was started earlier in the simulation, the timestamp of effect of this event is when the trip should end in the simulation.
It uses the information of the associated trip to change the simulation internal state accordingly, e.g. modify the cell where the car that was used should be placed.
Note that contrary to relocation trips, no \textquote{Customer Trip Start} event is used during the simulation.
Indeed as detailed in Section~\ref{sec:ch4_simulation_main_loop}, customer trips always start at the timestamp being simulated.
\subsection{Customer Trip Creation}
\label{sec:ch4_customer_trip_creation}
The main component of the simulation model is the customer trips creation.
The creation of customer trips should reflect what is expected from customers from the real carsharing service being simulated.
There are at least two points of view about the simulation and generation of customer trips.
The first possibility is to create, before the start of the simulation, all the customer trips that should happen during the simulation.
That is to simulate customer demand.
The hypothesis here is that customers have planned trips to do: these planned trips could be generated beforehand and submitted during the day.
A trip could be served or not depending on the presence or absence of a car in the departure cell.
Then the aim of the simulation would be to determine how many trips can be served by the service by taking into account where each car is placed along the time, and which trip can be served by a car.
However training a model to create trips from historical data should be done on \textquote{historical demand}, such data is not available during this thesis.
Instead the historical trip data is the list of trips that happened historically because a car was present to serve the customer: if a customer wanted a car to make a trip and no car was available, the \textquote{missed trip} could not be recorded in the data provided for this thesis.
The second possibility for the carsharing service simulation is the simulation the effects on the fleet, i.e. the fleet movement itself.
This approach creates customer trips during the simulation by creating trips based on the fleet distribution instead of applying pre-created trips.
Indeed at each simulated timestamp, there is a probability that a car will leave its cell to another one and a corresponding customer trip is created.
It is the approach that is developed in the simulation.
To determine whether or not a car will leave its cell, and then make the simulation create a trip, the probability of two events are used.
The first event is \textquote{Car Leave}, it means that a car leaves the cell during the simulated minute, and its counterpart is \textquote{Cars Stay}, it means that all cars will stay in the cell during the simulated minute.
Each minute for each cell, one of these two events is drawn according to a probability, such that $\mathcal{P}_{car}$ is the probability of a car leaving the cell at the simulated minute and $1 - \mathcal{P}_{car}$ is the probability of all cars staying in the cell at the simulated minute.
Note that this is fitting a Bernoulli distribution such that the success is the event \textquote{Car Leave} with an associated probability of $\mathcal{P}_{car}$.
Since the day of the week and the hour have an impact on the number of trips begun by customers, as analyzed in Chapter~\ref{ch:data_analysis}, this probability is conditioned on the day of the week and the hour that is being simulated.
Moreover the $\mathcal{P}_{car}$ is also conditioned on the number of cars that already left the cell during the same hour, the reason is to force a diminishing return on expected utilization on the number of cars in each cell.
Indeed if no diminishing return were simulated, then placing all the fleet in a single cell with the most probable \textquote{Car Leave} event would be an optimal placement while it is not in reality.
For a given day of the week $d$, hour $h$, cell $k$ and knowing that $n$ cars already left in the same hour, the probability $\mathcal{P}_{car}$ is $ p_{d,h,k,n}$ defined by the ratio between the number of occurrence $\mathit{ne}_{d,h,k,n}$ of the event \textquote{Car Leave} in the same conditions over the number of days $\mathit{nd}$ in the dataset:
$$ p_{d,h,k,n} = \frac{\mathit{ne}_{d,h,k,n}}{\mathit{nd}} $$
To bias the probabilities and make sure that car will not stay completely blocked on fewer used cells, a minimum probability for the event \textquote{Car Leave} is also used.
This probability is called $\mathcal{P}_{min}$ and is one hyperparameter of the simulation model.
For example, a user could set it to a probability of 10\% of a car leaving the cell when any previous number of cars has left the cell for every simulated \emph{hour}.
To transform this value back to a \emph{minute} point of view, the binomial distribution of parameters $n = 60$ and $p = \mathcal{P}_{min}$ is used.
Thus for every cell, given the day of the week simulated, the simulated hour and the count of cars that already left the cell, a Bernoulli distribution is used to know whether a car leaves the cell or not, and if a trip should be created when a car leaves the cell.
To create one trip, four different information are needed: the departure cell, the departure timestamp, the arrival cell and the arrival timestamp.
The first two pieces of information are already given when a car is chosen to be used by a customer.
As described before, for a cell at the simulated timestamp if a \textquote{Car Leave} event is drawn then a trip should start from this cell at this timestamp.
The arrival cell is drawn following the distribution of historical probability of a trip ending in each cell, knowing the day of the week of departure, the hour of departure and the cell of departure.
The training of the arrival cell probability distribution is biased to introduce slight randomness, notably for cells with few departures in the historical dataset, by adding one \textquote{virtual trip} from all cells towards all cells before the computation of the probability distribution.
With an arrival cell drawn, the arrival timestamp is derived from the historical mean duration of trips between the departure cell and the arrival cell at the given day of the week.
If an incoherent duration is found, e.g. a car going 130 km/h in a city, then the duration is the time needed to go from the center of the departure cell to the center of the arrival cell when the car has an average speed of 50 km/h.
The trip created has then the departure cell and timestamp, and the arrival cell and timestamp required by the simulation model.
\subsection{Activity-based Carsharing Simulation}
\label{sec:ch4_simulation_main_loop}
\begin{figure}[!p]
\centering
\includegraphics[width=0.8\textwidth]{figure/ch4_uml_simulator1.jpg}
\caption[UML Activity Simulator Part I]{First part of the UML Activity diagram of the simulation, showing the flow of actions according to decisions made by the simulation model.}
\label{fig:ch4_uml_activity_simulator_1}
\end{figure}
\begin{figure}[!p]
\centering
\includegraphics[width=0.8\textwidth]{figure/ch4_uml_simulator2.jpg}
\caption[UML Activity Simulator Part II]{Second part of the UML Activity diagram of the simulation, showing the flow of actions according to decisions made by the simulation model.}
\label{fig:ch4_uml_activity_simulator_2}
\end{figure}
The model aims to simulate the functioning of a carsharing service by using the internal state and the event described in the previous sections.
Like several of the state-of-the-art \emph{DES} simulators, the simulation is made step by step.
Each step represents one simulated minute and has an associated simulated timestamp, such that all the events that happen during this simulated minute is associated with the timestamp.
In particular, the simulation has a start timestamp and a number of steps to run to be given as parameters by the user of the simulation.
It can be for example the start timestamp \textquote{2022-02-09 @ 04:00} which is the 9$^{th}$ Wednesday of February 2022 at 4a.m.
If the user wants to simulate exactly one day, the number of steps would be $1\,440$ to simulate all minutes of the 24h simulation.
Note that during the experiments, each simulation starts at 4a.m. and a day is the next 24h, such that the simulation of two days starting from 2022-02-09 is the 2022-02-11 at 4a.m.
Figure~\ref{fig:ch4_uml_activity_simulator_1} and~\ref{fig:ch4_uml_activity_simulator_2} are two parts of an UML Activity Diagram.
It describes where the simulation starts (black circle) and where the simulation ends (encircled black circle), the arrows show the flow of steps (ellipses) according to decisions made by the simulation (diamonds).
This describes how the whole simulation is run step by step and the order of each event happening in the same simulated timestamp.
Note that Figure~\ref{fig:ch4_uml_activity_simulator_1} is the first part of the whole diagram and Figure~\ref{fig:ch4_uml_activity_simulator_2} the second part.
They are both linked together by \textquote{diamond A} and \textquote{diamond B} to help the reader go from one part of the diagram to the other.
\paragraph{Initialization.} The starting point in Figure~\ref{fig:ch4_uml_activity_simulator_1} leads to the first action (\emph{Action 1}) that is the initialization of the car activity distribution, as explained in section~\ref{sec:ch4_customer_trip_creation}.
Then the next action (\emph{Action 2}) made by the simulation is to initialize the internal clock with the initial timestamp provided by the user.
After that, the simulation either (\emph{Decision I}) enters the main loop or go towards the end of the simulation.
\paragraph{End Customer Trips.} The main loop of the simulation starts with a first check (\emph{Decision II}) to know if there is an event \textquote{Customer Trip End} to be taken into account during the current simulated timestamp or not.
If it is the case, three consecutive actions are taken.
First (\emph{Action 3a}), the trip that ended is moved to the list of ended trips to be counted in the final simulation statistics.
Then (\emph{Action 3b}), the car that was used during the trip sees its utility value being increased by the trip's duration.
Finally (\emph{Action 3c}) the car state is changed from \textquote{in use} to \textquote{available} and its location from \textquote{undetermined} to the area where the trip has ended.
After these three actions are made, the simulation checks (\emph{Decision II}) one more time if there is an event \textquote{Customer Trip End} to be taken into account.
\paragraph{End Relocation Trips.} If no more events \textquote{Customer Trip End} are to be applied during the current simulated timestamp, then the simulation check (\emph{Decision III}) if there is an event \textquote{Relocation Trip End} to be taken into account.
If there is an event about a relocation trip to end, then two actions are taken by the simulation.
First (\emph{Action 4a}), the relocation trip that has ended is moved from the list of relocation trips in progress to the list of relocation trips that has ended.
This is made such that statistics about the cost of relocation can be computed at the end of the simulation.
Then (\emph{Action 4b}) the simulation marks the car as available by modifying its state from \textquote{in relocation} to \textquote{available} and its location from \textquote{undetermined} to the area where the relocation trip has ended.
After the two actions have been taken by the simulation, it checks (\emph{Decision III}) once again if there is an event \textquote{Relocation Trip End} to account for.
\paragraph{Relocation Planning.} If no more events \textquote{Relocation Trip End} are in the list of events for the current simulated timestamp, then the simulation checks (\emph{Decision IV}) if a relocation plan has to be made.
A relocation plan is the ensemble of relocation trips that an operator should make, according to its relocation strategy.
In a real service, this plan is made each day or multiple times per day.
If the current simulated timestamp is when the simulated operator has to plan its relocation, then two actions are taken.
Note that if the user of the simulation model did not provide a valid relocation strategy, the current simulated timestamp is never the right timestamp to plan relocations.
First (\emph{Action 5a}) the simulation uses the relocation strategy to determine all the relocation trips to make.
Then (\emph{Action 5b}), all the relocation trips to be made by the staff members are then put in the list of relocation trips to do.
One \textquote{Relocation Trip Start} event is also associated with each trip such that the event should be taken into account at the timestamp when the relocation trip should start.
\paragraph{Fleet Daily Position.} Once the relocation plan has been made, the simulation then checks (\emph{Decision V} in Figure~\ref{fig:ch4_uml_activity_simulator_2}) if the current simulated timestamp is a new day during the simulation.
It is a new day for any date if the simulated timestamp hour is 4 a.m..
This hour is used as the temporal point to separate two days instead of midnight: customers might use the service during the night to get back home when public transports are not working.
If it is a new day, the simulation saves the fleet starting position for this day (\emph{Action 6}).
That is used to know where were located each car the morning for the computation of the utility at the end of the simulation.
The utility is computed as defined in Chapter~\ref{ch:method}.
\paragraph{Customer Usage.} The next actions taken by the simulation is to simulate the activity of the fleet, that is if a trip starts from a cell or not.
The simulation checks if the customer activity of at least one cell has not been simulated (\emph{Decision VI}), if yes then the simulation will perform two actions.
First (\emph{Action 7a}), the simulation will mark the cell as simulated for the current simulated timestamp.
Then the simulation will determine, thanks to the \emph{Activity Generator} detailed in Section~\ref{sec:ch4_customer_trip_creation}, if one car of the cell is reserved by a customer (\emph{Action 7b}).
The car used by the customer is drawn randomly from the pool of cars inside the cell.
Note that is there is no car inside the cell, then no car is ever reserved by a customer.
If one car leaves the cell because of a customer (\emph{Decision VII}), then the simulation performs three actions to simulate the start of a trip.
First, a trip will be generated with the help of the \emph{Activity Generator} (\emph{Action 7c}), knowing that the trip should start in the simulated cell at the simulated timestamp.
The next action takes one of the cars is the cell and change its state (\emph{Action 7d}) by setting it as \textquote{in use} and with a location as \emph{undetermined}.
Then the created trip is recorded in the list of trips in progress and an event \textquote{Customer Trip End} is created with an associated timestamp corresponding to the customer's trip end timestamp.
\paragraph{Car Relocation.} Once the customer activity has been simulated for all the cells, the simulation checks if any event \textquote{Relocation Trip Start} is associated with the simulated timestamp (\emph{Decision VIII}).
If it is the case, the simulation next checks if there is actually a car in the cell of the relocation trip's start location (\emph{Decision IX}).
Indeed when the relocation plan is made (\emph{Action 5a}), the simulation cannot predict whether the car to relocate will be taken by a customer or not before the jockey access the car.
If the car is not present anymore, then the simulation move the relocation trip from the \textquote{relocation to do} to \textquote{relocation canceled}.
If there is a car to relocate, then the simulation will move the trip to the list of relocations in progress and add a new event \textquote{Relocation Trip End} with a timestamp associated with the time at which relocation trip ends. (\emph{Action 8b}).
Then the status of the selected car is updated to \textquote{in relocation} and its position as \textquote{undetermined}.
\paragraph{Simulation End.} Once all those steps have been completed, the simulation updates the current simulated timestamp by adding one minute to the current timestamp (\emph{Action 9}).
This main loop runs until the number of timestamp simulated is reached (\emph{Decision I}).
Then the simulation ends with the computation of the utility for all days simulated (\emph{Action 10a}) and the computation of indicators used to represent the effectiveness of the relocation (\emph{Action 10b}), such as the relocation costs and the number of relocations made.
Overall the simulation works by first taking into accounts customer and staff trips that has finished.
Then if it is the right moment in the simulation, the planing of the relocations to do is made and the fleet daily placement used for the utility computation is updated.
After that, customer departures are simulated before car that should be relocated are taken by the jockeys.
At the end of the simulation, the utility for every simulated day is extracted from the simulation as well as stats from the relocation process.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SECTION - SECTION - SECTION - SECTION - SECTION - SECTION - SECTION - SECTION - SECTION - SECTION - SECTION %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Experimental Setting}
In this section the experimental settings used during the comparison between relocation strategies are detailed.
The range of trip data used to train the models is exposed, both for the utility prediction model and for the probability distributions exposed in Section~\ref{sec:ch4_customer_trip_creation}.
Two methods for the prediction are also presented, one using an adaptation of the regression-based prediction from Chapter~\ref{ch:method} and one using the simulation itself to simulate the usage during the day.
Then the metrics used to assess the performance of each relocation strategies are defined.
Finally the relocation strategies that are used in the case studies section are presented.
\subsection{Evaluation Settings}
In the case of the simulation experimentation, no comparison can be done with the historical usage of the service on a day to day simulation.
Indeed, historical trips used as is would imply that the placement making all historical trips doable would only be the historical fleet placement, i.e. all other proposed fleet placement would be worse.
If the simulation were to be made on periods longer than a day, then the lack of precise knowledge on the relocation strategies employed by the operator historically refrains from having an accurate result on the evaluation of the historical placement day after day when used in the simulation.
Thus, all relocation strategies are going to be compared against each other, with a relative point of view, i.e. one is better than another, but without being compared to the historical performance.
\paragraph{Simulation Period.} Historical datasets are still required to train the two types of models that are used during the experimental evaluation.
First, it is necessary to fit the probability distributions about both the departure of vehicle from each cell and the arrival cell when creating a new trip.
Second, for several relocation strategies the training of regression models to predict the utility of cars depending on their placement is required.
This is why the training, validation and testing datasets used are different from the ones used for the previous experiments.
In particular, when hyperparameters are to be chosen the \emph{training set} from Table~\ref{tab:ch2_summary_split} (in Chapter~\ref{ch:data_analysis}) are used to train the model and the merged \emph{validation set} and \emph{test set} is used to choose the hyperparameters.
Once the hyperparameters are chosen, the whole dataset is used to train both the probability distributions and the regressions models.
A summary of the period used in each city for the training is in the column \textquote{Training Period} of Table~\ref{tab:ch4_summary_period}.
For each city, a continuous period of one month (30 days) is simulated after the last day contained in the training dataset.
The period simulated for each city in exposed in Table~\ref{tab:ch4_summary_period}.
In the case of \emph{Madrid} and \emph{Washington}, a fleet of 600 cars is put in the simulated service while \emph{Paris} has 500 cars in the simulated fleet.
\begin{table}[!tb]
\centering
\small
\begin{tabular}{|l|l|l|l|}
\hline
City & Training Period & \#Train Days & Simulation Period \\ \hline
Madrid & 2018-08-01 to 2019-03-31 & 243 & 2019-02-01 to 2019-04-30 \\ \cline{1-1}
Paris & 2019-04-01 to 2020-01-31 & 306 & 2020-02-01 to 2020-03-01 \\ \cline{1-1}
Washington & 2019-08-01 to 2020-03-31 & 244 & 2020-04-01 to 2020-04-30 \\ \hline
\end{tabular}
\caption{Summary of the period used to train the probability distributions and the regression models with the period being simulated to evaluate the performance of each relocation strategy.}
\label{tab:ch4_summary_period}
\end{table}
\paragraph{Utility Prediction.} For the relocation strategies that necessitate the prediction of the car daily utility, the prediction can be done in two ways.
First by using the same regression model as presented in Chapter~\ref{ch:method}, relocation strategies using it have their names postfixed with \emph{Pred}.
Here, the training of the regression algorithms for the utility prediction cannot use all the features.
Indeed, the simulation model does not take into account the weather conditions nor the yearly seasonal effects that are observed in the three case studies..
So for the regression models, the features used are the \emph{car rank}, the \emph{day of the week} and whether if the day simulated is a \emph{workday or not}.
The second possibility to predict the daily car utility is by using the simulation itself, relocation strategies using it have their names postfixed with \emph{Simu}.
In this case, a new instance of the simulation model with the same parameters is launched, such that the start of the simulation in the next morning at 4a.m. with each cell having inside them the maximum number of cars allowed, defined in Chapter~\ref{ch:method}.
The simulation run during 24h and at the end of the simulation, the utility extracted from the simulated customer usage is used as is by the model needing predicted utility used afterward.
The hypothesis behind is that the interaction between each car is limited, the only \textquote{interaction} is the random selection among all cars in a cell if a trip begins in it, so the prediction can reflect what might happen during the simulation.
\subsection{Evaluation Metrics}
The performance evaluation of each relocation strategy is based on two main metrics.
The first metric is the \emph{Average Daily Utility} made by the fleet.
It is calculated with daily utility $U_{d,c}$ for each car as the sum of its trips duration during each simulated day.
Thus for the fleet of vehicle $C$, and all simulated days $D$ and the daily utility $U_{d,c}$ of a car $c$ for the day $d$, the definition of this average is:
$$\mathit{Avg Daily Utility} = \frac{1}{|D|} \cdot \sum_{d \in D} \sum_{c \in C} U_{d,c}$$
The higher this value is, the higher is the utilization of the fleet during the day.
A service with a higher \emph{Average Daily Utility} would be better than a service with vehicles less used by customers.
The second metic is the simulated profitability of the service, that is the revenues from the utilization of the fleet minus the costs related to the relocation strategies.
It is linked to the \emph{Average Daily Utility}, since the utility is the measure of the utilization of the fleet.
Knowing the price per minute $p$ paid by customers renting a car (set to $0.31$ €/min for the experiments), the daily utility (in minutes) $U_{d,c}$ for each car $c$ and each day $d$ and the relocation cost $r_d$ for each day $d$, the \emph{Average Daily Profit} is defined as:
$$\mathit{Avg Daily Profit} = \frac{1}{|D|} \cdot \left( \sum_{d \in D} \sum_{c \in C} p \cdot U_{d,c} - \sum_{d \in D} r_d \right)$$
As for the first metric, the higher is this average, the more profitable is the carsharing service.
It is the metric having the most interest for the carsharing operator since it impacts the service sustainability on the long term.
Note that even if the \emph{Average Daily Utility} is correlated to the \emph{Average Daily Profit} of the service, the effects of the relocation costs when balanced with the revenues coming from the utilization of the fleet has to be observed too.
Indeed, one relocation strategy could relocate all the cars to make the highest utilization possible of the fleet, but at a very high cost resulting in a lower profit when compared to other strategies.
Gains and costs affecting the service that are not directly related to the service usage and the relocation strategies, such as membership fees gains or vehicle acquisition costs, are not simulated and are not incorporated in the \emph{Average Daily Profit}.
\subsection{First Day Fleet Placement}
\label{sec:ch4_first_day_fleet_placement}
The fleet of the service has to be placed before the simulation is launched.
Different car placement can be done depending on the initial conditions wanted by the user of the simulation.
Here are detailed the three first day car placement used during the experiments.
The first one is used during the calibration phase of the simulation model, while the other two are used to assess the performance of the relocation strategies.
\paragraph{Historical Car Placement.}
The first day placement of the fleet when the \emph{Historical Car Placement} is chosen is done such that the car placement respects the historical location of each vehicle in the service for the given day.
This implies that the number of vehicle is dependant on the historical fleet availability, i.e. the number of cars not discharged or in maintenance.
This placement is used during the calibration phase of the simulation, and by having the same number of car than historically and the same placement, the only difference between the historical reality and the simulation is how trips are generated by the simulation.
Thus, the error between the \emph{Average Daily Utility} of the real service and the simulation is used to parameter the simulation.
% If the historical placement for the given day has less than 600 cars, e.g in the \emph{Madrid} case, then the cars to be added to match this value are placed uniformly.
% This is done by placing one additional car per cell until all 600 cars has been placed, starting from the cell with the highest total number of departure in the train set.
% If there are more cars in the historical fleet distribution, then the surplus of cars are removed uniformly to match the given number of cars.
% This is done by removing one car per cell until the number of car reaches 600, starting from the cell with the lower total number of departure in the train set.
% In all cases, it has been observed that the fluctuation between the real number of car placed and the number wanted by the simulator never exceed 10\% of the historical number of cars, i.e less than the number of cells in the grid.
\paragraph{Worst Car Distribution.}
To measure the performance of relocation strategies, the \emph{Worst Car Distribution} is used to assess how quickly a relocation strategy can improve a service.
The objective of this first day car placement is to put all cars in the cells with the lowest usage rate, i.e. all the cells with the lowest hourly probability of a car leaving the cell when no car has already left.
Cells are ordered by this criterion and the maximum number of cars per cell are assigned to each cell from the cell with lowest usage rate to the highest until there is no car to place.
For example, if $600$ cars are to be placed and the maximum number of car per cell is $20$, then the $30$ cells with the lowest usage rate are fully occupied by cars.
\paragraph{Balanced Car Distribution.}
To test how the relocation strategies can keep a fleet fitting the actual usage rate of the car in the city, the \emph{Balanced Car Distribution} is used.
In this first day car placement the cars are neither optimally placed nor placed in the worst positions.
Instead the fleet is distributed according to the ratio of departures during the day for each cell over the total number of departure.
For example if a cell has an average of $50$ departures per day while the whole service has an average number of departures per day being $2\,000$, then the ratio for this cell is $0.025$ meaning that $2.5\%$ of the fleet should be put in this cell.
For a fleet of $600$ cars, this cell will have $15$ cars placed inside it for the first day placement.
\subsection{Relocation Strategies}
\label{sec:ch4_relocation_strategies}
Two types of relocation strategies are tested in the Section~\ref{sec:ch4_case_studies} with the simulation model.
The first type of strategy is customer-based with incentives that are given to customers to alter their usage of the service.
The second type of strategy is operator-based with relocations that are done only with the help of the operator's staff.
Three baselines are tested against the relocation strategy proposed in Chapter~\ref{ch:method}.
All the relocation strategies are tested while taking into account that no recharging/refueling of electric/petrol cars is simulated, the car are always fully charged/fueled, and that membership fees are constant during the simulation.
Moreover when testing all relocation strategies with the same city, the behavior of customers, simulated by the probability distribution of a car leaving a cell, stays identical except when modified by incentives.
A summary of the relocation strategies detailed in this section is exposed Table~\ref{tab:ch4_strategies_summary}.
\begin{table}[!b]
\centering
\small
\begin{tabular}{|l|l|l|l|}
\hline
Strategy Name & Relocations & Utility Source & Optim. Type \\ \hline
NoAction & None & None & None \\ \hline
OR-Greedy-Pred & \multirow{4}{*}{Operator-based} & Regression & \multirow{2}{*}{Greedy} \\ \cline{1-1} \cline{3-3}
OR-Greedy-Simu & & Simulation & \\ \cline{1-1} \cline{3-4}
OR-Optim-Pred & & Regression & \multirow{2}{*}{OptimSO} \\ \cline{1-1} \cline{3-3}
OR-Optim-Simu & & Simulation & \\ \hline
UR-Max & \multirow{3}{*}{Customer-based} & \multirow{3}{*}{None} & \multirow{3}{*}{None} \\ \cline{1-1}
UR-Heavy & & & \\ \cline{1-1}
UR-Light & & & \\ \hline
\end{tabular}
% \caption{Summary of the probabilities applied during the trip generation of the simulator. The first 2 columns on the left give the probability associated with the event \textquote{CarRented} depending on the area where is located each car. For example if the strategy \emph{UR-Max} is used, a car in a cell in the \emph{LDA} will have a probability of 100\% to be rented (every minute). The three other columns is the probability that a customer will change his destination for a neighbor cell, e.g. from a \emph{LDA} destination to a \emph{MDA}. For example, if the customer's destination is in a cell of a \emph{LDA} and this cell has one neighbor in a \emph{HDA}, then the customer has a probability of 8\% to change his destination to the cell in the \emph{HDA} if the strategy \emph{UR-Light} is used.}
\caption{Summary of the relocation strategies tested, with their name, the type of relocation they leverage, the way the utility is predicted and the \textquote{optimization} algorithm used.}
\label{tab:ch4_strategies_summary}
\end{table}
\paragraph{NoAction.} The first baseline is called \emph{NoAction} since it should simulate what happen to the carsharing service utilization rate if the operator does nothing to influence the fleet distribution.
Note that this strategy does only work in theory: in a real carsharing service the operator would still need to make the maintenance of cars and recharge/refuel them if needed.
Since all the cells of the service area have a non-zero minimum for the probability that a car leaves a cell within one hour, this baseline is expected to attain a low usage rate equilibrium.
\paragraph{Customer-based Relocation.}
The second baseline is the strategy about giving incentives to customers.
It is based on the observation that incentives is a method to lower the need for relocations~\cite{brendel_decision_2017}.
It acts on the customer willingness to make a trip or modify his planned trip depending on \emph{rewards} and \emph{penalties} that are applied to both the departure and destination of the trip.
The customer incentive explored during the experiments is modeling the consequences of applying such customer incentives, by increasing the probability that a customer will take cars and by introducing the possibility that the customer modifies his destination (by a reasonable distance).
To follow the work of~\cite{brendel_decision_2017}, three \emph{areas} are defined: \emph{High} (\emph{HDA}), \emph{Medium} (\emph{MDA}) and \emph{Low} (\emph{LDA}) Demand Areas.
The \emph{LDA}, \emph{MDA} and \emph{HDA} are created following the historical number of departure in each cell, such that \emph{LDA} has cells with a low count of departure and \emph{HDA} has cells with a higher count.
A k-means model is used on the historical number of departure for each cell, with the aim to create three clusters of cells: one for the \emph{LDA}, one for the \emph{MDA} and the last for the \emph{HDA}.
The separation between \emph{LDA} and \emph{MDA} for \emph{Madrid} is $4\,809$ departures in total on the train set, for \emph{Paris} it is $428$ departures and for \emph{Washington} the separation is $326$ departures.
The threshold separating the \emph{MDA} and \emph{HDA} is $11\,005$ departures for \emph{Madrid}, $988$ departures for \emph{Paris} and $945$ departures for \emph{Washington}.
Table~\ref{tab:ch4_demand_area_size} summarizes the number of cells in each demand area.
For each city at least half of the cells are categorized as a \emph{LDA} by k-means, while at most 13\% of the cells are categorized as \emph{HDA} by the same k-means model.
Figure~\ref{fig:ch4_incentive_madrid} presents both the distribution of the departure count for each cell and its assignment to either demand area, in the case of \emph{Madrid}.
Figure~\ref{fig:ch4_incentive_paris} and~\ref{fig:ch4_incentive_washington} shows similar information respectively for \emph{Paris} and \emph{Washington}.
% Madrid: LowMedium: 4809.0 - MediumHigh: 11005.0 - NbLow:81 (54%) - NbMedium:50 (33%) - NbHigh:20(13%)
% Paris: LowMedium: 428.0 - MediumHigh: 988.0 - NbLow:95 (49%) - NbMedium:79 (41%) - NbHigh:21(11%)
% Washington: LowMedium: 326.0 - MediumHigh: 945.0 - NbLow:234 (68%) - NbMedium:79 (23%) - NbHigh:29(9%)
\begin{table}[!bt]
\centering
\small
\begin{tabular}{|l|l|l|l||l|}
\hline
City & LDA & MDA & HDA & Total \\ \hline
Madrid & 81 (54\%) & 50 (33\%) & 20 (13\%) & 151 \\ \hline
Paris & 95 (48\%) & 80 (41\%) & 22 (11\%) & 197 \\ \hline
Washington & 234 (68\%) & 79 (23\%) & 31 (9\%) & 344 \\ \hline
\end{tabular}
\caption{Number of cells in each \emph{Demand Area} (columns) used during the \emph{User-based Relocation} strategies for the incentive determination for each city (rows).}
\label{tab:ch4_demand_area_size}
\end{table}
\begin{figure}[!p]
\centering
\makebox[\textwidth][c]{\includegraphics[width=1\textwidth]{figure/ch4_incentive_madrid.jpeg}}
\caption[Incentive Areas Madrid]{Departure count heatmap for the training set (left) and the incentive areas distribution (right) for \emph{Madrid}. In the left heatmap, the greener a cell is, the less departure has been recorded. The number in each cell is the total number of departures. The right map displays the distribution of the \emph{LDA/MDA/HDA} area in \emph{Madrid}, respectively in green, orange and red. The number are the cell IDs.}
\label{fig:ch4_incentive_madrid}
\end{figure}
\begin{figure}[!p]
\centering
\makebox[\textwidth][c]{\includegraphics[height=0.87\textheight]{figure/ch4_incentive_paris.jpeg}}
\caption[Incentive Areas Paris]{Departure count heatmap for the training set (top) and the incentive areas distribution (bottom) for \emph{Paris}. In the top heatmap, the greener a cell is, the less departure has been recorded. The number in each cell is the total number of departures. The bottom map displays the distribution of the \emph{LDA/MDA/HDA} area in \emph{Paris}, respectively in green, orange and red. The number are the cell IDs.}
\label{fig:ch4_incentive_paris}
\end{figure}
\begin{figure}[!p]
\centering
\makebox[\textwidth][c]{\includegraphics[height=0.87\textheight]{figure/ch4_incentive_washington.jpeg}}
\caption[Incentive Areas Washington]{Departure count heatmap for the training set (top) and the incentive areas distribution (bottom) for \emph{Washington}. In the top heatmap, the greener a cell is, the less departure has been recorded. The number in each cell is the total number of departures. The bottom map displays the distribution of the \emph{LDA/MDA/HDA} area in \emph{Washington}, respectively in green, orange and red. The number are the cell IDs.}
\label{fig:ch4_incentive_washington}
\end{figure}
For cells of the \emph{HDA}, no penalties is applied to trips beginning there and no rewards is given for arriving there.
Trips beginning in cells of the \emph{MDA} demand area, a ``small'' reward of 5€ is given for departures and a ``small'' penalty of 5€ is given for arrivals.
The same principle is applied for the trips beginning/ending in cells of the \emph{LDA}, with rewards/penalties of 10€.
Note that the effects of rewards and penalties are additive: a trip starting from a \emph{LDA} (+10€) and ending in a \emph{MDA} (-5€) will sum up as a reward of 5€ for the customer.
Table~\ref{tab:ch4_incentives_values} summarizes the individual rewards and penalties from starting and ending in a area type and all their combination for trips.
\begin{table}[!b]
\centering
\small
\begin{tabular}{|l|r|r|r|}
\hline
From - To & HDA & MDA & LDA \\ \hline
HDA & 0€ & -5€ & -10€ \\ \hline
MDA & +5€ & 0€ & -5€ \\ \hline
LDA & +10€ & +5€ & 0€ \\ \hline
\end{tabular}
\caption{Summary of the rewards (+5€/+10€) and penalties (-5€/-10€) applied to customers when the incentives are used in the simulator. The rows indicate the departure area and the colum the destination area. Each cell is the sum of the departure cell's reward and the arrival cell's penalty.}
\label{tab:ch4_incentives_values}
\end{table}
To model that a user is willing to start a new trip in rewarded areas and modify his trip to face less penalties, two probabilities are affected when a trip is created in the simulator.
First the probability of a trip beginning in an area is increased or decreased depending on the rewards and penalties being applied.
Second the probability to change the destination to a neighbor cell is increased depending on the reward offered by parking in the neighbor cell instead of parking in the originally planned cell.
In practice, the probability that a customer will change his plan or leave from a cell with a reward is linked to the reward and the penalties.
Such link is not known and three variants of this baseline are tested in the following experiments, see Table~\ref{tab:ch4_incentives_name} for the correspondence between the variant name and the studied probabilities.
Among the three variants presented in this table, \emph{UR-Max} is the first one tested and represents an upper bound on the \emph{User-based Relocation} (\emph{UR-*}, with * the variant name).
It shows what is the maximum fleet utilization improvement that can be done with incentives only.
This variant makes customers accept relocations every time a reward is offered for a departure, i.e. if a car is present in a \emph{LDA} or \emph{MDA}, and every time the cell destination can be changed for a neighbor cell with a lesser penalty.
The variants \emph{UR-Heavy} and \emph{UR-Light} are more realistic, with \emph{UR-Heavy} having customers more willing to start or modify their trip.
In the case of \emph{UR-Heavy}, cars located in the \emph{LDA} (resp. \emph{MDA}) have their probability to be rented each minute doubled (resp. increased by 50\% of their initial value).
In the case of \emph{UR-Light}, all cars in the \emph{LDA} (resp. \emph{MDA}) demand area see their probability increased by 10\% (resp. 5\%) of their initial value without reward.
Note that in the Table~\ref{tab:ch4_incentives_name}, $\mathcal{P}_{car}$ is the probability of a car leaving the cell each minute for any amount of car having already left (as detailed in Section~\ref{sec:ch4_customer_trip_creation}) when no incentive is applied.
Moreover, the probability of a car leaving the cell is unmodified for cells in the \emph{HDA}.
For both \emph{UR-Heavy} and \emph{UR-Light}, when users end their trip in a cell with a penalty higher than a neighboring cell, the customer has a probability to change his destination for a neighbor cell.
It depends on the initial cell destination penalty and the neighbor cell penalty, such that when passing from a \emph{LDA} destination to a \emph{HDA}, the probability \textquote{LDA $\rightarrow$ HDA} shown in Table~\ref{tab:ch4_incentives_name} is used.
For a difference in penalties of 5€, the probability to change the destination with \emph{UR-Heavy} is 16\% to take into account that a customer has 1 chance on 6 to have initially planned to end his trip near the neighboring cell with a lesser penalty.
Note that it takes into account that each hexagon has six neighboring cells.
Thus in the case of a cell in the \emph{LDA} surrounded by cells of the \emph{MDA}, the customer is virtually asked 6 times to change his destination.
Since the difference in penalty is the double for \textquote{LDA $\rightarrow$ HDA}, than the probability is doubled too.
For \emph{UR-Light}, the rewards and penalties stays the same but the probability that a customer will divert his trip is halved.
\begin{table}[!bt]
\centering
\small
\begin{tabular}{|l|l|l||l|l|l|}
\hline
\multirow{2}{*}{Name} & \multicolumn{2}{l||}{Departure Probability} & \multicolumn{3}{l|}{Destination Change Probability} \\ \cline{2-6}
& LDA & MDA & LDA $\rightarrow$ MDA & LDA $\rightarrow$ HDA & MDA $\rightarrow$ HDA \\ \hline
UR-Max & 100\% & 100\% & 100\% & 100\% & 100\% \\ \hline
% UR-Max-Low & 100\% & 50\% & 50\% & 100\% & 50\% \\ \hline
UR-Heavy & $2 \cdot \mathcal{P}_{car}$ & $1.5 \cdot \mathcal{P}_{car}$ & 16\% & 32\% & 16\% \\ \hline
UR-Light & $1.1 \cdot \mathcal{P}_{car}$ & $1.05 \cdot \mathcal{P}_{car}$ & 8\% & 16\% & 8\% \\ \hline
\end{tabular}
% \caption{Summary of the probabilities applied during the trip generation of the simulator. The first 2 columns on the left give the probability associated with the event \textquote{CarRented} depending on the area where is located each car. For example if the strategy \emph{UR-Max} is used, a car in a cell in the \emph{LDA} will have a probability of 100\% to be rented (every minute). The three other columns is the probability that a customer will change his destination for a neighbor cell, e.g. from a \emph{LDA} destination to a \emph{MDA}. For example, if the customer's destination is in a cell of a \emph{LDA} and this cell has one neighbor in a \emph{HDA}, then the customer has a probability of 8\% to change his destination to the cell in the \emph{HDA} if the strategy \emph{UR-Light} is used.}
\caption{Summary of the probabilities applied during the trip generation of the simulator. The first 2 columns on the left give the probability of a car leaving a cell each minute depending on the area where is located each car. The three other columns are the probabilities that customers change his destination for a neighbor cell depending on the origin cell and destination cell.}
\label{tab:ch4_incentives_name}
\end{table}
\paragraph{Operator-based Relocation.}
Two \emph{Operator-based Relocation} (\emph{OR-*}, with * the name of the optimization method) strategies are studied during the experiments: the \emph{OR-Greedy} strategy and the \emph{OR-Optim} strategy.
The first strategy is a baseline based on the greedy algorithm that have been detailed in Chapter~\ref{ch:method} while the second strategy is based on the proposed methodology named \emph{OptimSO} from the same chapter.
The two relocation strategies (\emph{OR-Greedy} and \emph{OR-Optim}) have been linked with the simulation model in the same fashion.
In both cases, the strategies are based on the relocation of cars during the night for the next morning.
The \emph{Relocation Planning} phase is done at 10p.m., that is when the relocation plan is made to determine the cars to relocate and how they are relocated.
Both strategies first search to know where cars should be taken from, where cars should be put and how the jockeys should be picked-up by sweeper cars when they are not doing a relocation.
However, those two optimization methodologies do not provide complete paths usable by the simulated jockeys, from the first car relocated to the last, that can be directly used in the simulation to plan how the jockeys moves in the city for the fleet relocation during the whole night.
This path should be created for each jockey and is built on the output of the method used, e.g. either the \emph{Greedy} method or the \emph{OptimSO} method.
In particular the path creation uses the value of each variable from the set of decision variable $E$ that is returned by \emph{Greedy} and \emph{OptimSO} (as defined in Equation~\eqref{eq:relocObjective} from Chapter~\ref{ch:method}), i.e. this is the number of times a jockey should be picked up by a sweeper car from a cell to another.
This set of decision variable is post-processed to create a list of sweeper trips such that if $E_{k,l} = n, \forall k, l \in K$, then $n$ sweeper trips $k \rightarrow l$ are created.
Note that it means a car should be relocated from $l$ and a car should be dropped in $k$, but it does not mean that the car in $k$ should be relocated to $l$.
A three-step greedy approach is adopted to create step by step a path for each jockey from the list of sweeper trips.
The first step is creating the starting and ending point of the jockey's path by taking one random sweeper trip, the destination of the sweeper trip becomes the starting point of the path and the departure of the sweeper trip is the ending point of the jockey path.
The \textquote{current location} of the jockey is initialized as the starting point of the jockey's path.
The second step is repeated until no sweeper trips are left in the list.
It takes the first jockey available and appends to his path a relocation trip such that his current location and the start of the next sweeper trip is the shortest.
It updates the new current location of this jockey to the end point of the sweeper trip used.
The third step make a last relocation for all the jockeys, they append to their path a relocation trip from their current location, a car to relocate, to the end point of their path, determined in Step 1.
Note that for each relocation or sweeper trip, the time needed to go from a cell to another is taken into account: a jockey moves on average at 25km/h and needs 5 minutes to switch between a car to relocate and the sweeper car.
This completes a relocation path for every jockey, such that all relocations are done and all sweeper trips from the optimization method is taken into account.
The path of each jockey is used to compute the global relocation cost of each operator-based relocation strategy.
The relocation plan is extracted from the complete path of each jockey by taking only the relocation trips made by the jockeys.
\begin{figure}[!p]
\centering
\makebox[\textwidth][c]{\includegraphics[height=0.87\textheight]{figure/ch4_greedy_jockey_path.jpeg}}
\caption[Greedy Jockey Path]{Example of jockey path creation with a greedy algorithm. Each hexagon is a cell, \textquote{START}/\textquote{END} is the starting/ending point of the jockey path, plain arrows are relocation trips and dotted arrows are sweeper trips. Three steps are needed to make the path for one jockey knowing that two sweeper trips are needed according to the optimization method called beforehand.}
\label{fig:ch4_greedy_jockey_path}
\end{figure}
An example is shown Figure~\ref{fig:ch4_greedy_jockey_path} of this greedy algorithm being applied for a simple case, one jockey and two relocations to do.
In this example, during the first step the jockey takes a sweeper trip randomly from the pool of sweeper trip.
This pool is created from the resulting values in $E$ from a run of either \emph{Greedy} or \emph{OptimSO} algorithms.
In the example the sweeper trip from cell 1 to cell 4 is drawn randomly.
Thus the starting point of the jockey path is cell 4 and the ending point is cell 1.
It also means a car should be relocated from 4 to somewhere else.
In the second step, the jockey will choose to make a relocation from cell 4 to the nearest cell with a sweeper trip beginning there.
Since there is only one sweeper trip left ($3 \rightarrow 2$), then the jockey relocates a car from cell 4 to cell 3 then is being picked-up by a sweeper car from cell 3 to cell 2.
The third step is making a last relocation from cell 2 to cell 1 since no sweeper trip is left.
It completes the path of the jockey.
% Three relocation strategies are going to be studied:
% \begin{enumerate}
% \item NoAction: L'opérateur du service laisse le service tel quel sans agir sur la disposition des voitures.
% \item Max: Faire un assignment des voitures sans compter les coûts de repositionnement et sans aucune contrainte de repositionnement. Les jockeys se téléportent entre chaque voiture et chaque repositionnement est fait instantanément. L'assignment de voiture doit maximiser la probabilité moyenne sur la journée de départ pour la flotte.
% \item Greedy: Implémentation de la méthode Greedy proposée dans l'article écrit pour le journal Transportation Research Part B. Dans ces conditions, les coûts de repositionnement et les contraintes de nombre de repositionnement sont pris en compte. Ainsi que les délais liés au transport des jockeys d'une voiture à l'autre par la voiture balais.
% \item UserReloc: Une implémentation de la méthodologie présentée dans le papier [1]. Dans cette méthodologie l'opérateur n'a aucune intervention sur le repositionnement des voitures. Seul des incitations sont données au client, sous forme de zones avec des prix de prise/dépose de véhicule dépendant du taux d'utilisation dans la zone. Plusieurs variations seront testées, une première où seul les gains/coûts incitations sont pris en compte. Un deuxième groupe où les zones modifient la probabilité de prise selon les incitations, comme par exemple une incitation «faible» de prise entrainerait une augmentation relative de probabilité de prise par 5\%. Il faudra en faire de même avec les probabilités de dépose.
% \item OperatorReloc: Une implémentation de la méthodologie présentée dans le papier [2]. Dans cette méthodologie, l'opérateur ferait des repositionnement au fil de la journée, selon le niveau de chaque «stations». Dans notre cas, une station serait une cellule de la grille hexagonale. Cette méthodologie définie des intervalles de nombre de véhicule à avoir dans une station, si le nombre est hors de l'intervalle alors une action est requise. À l'instar des autres baselines, le coût des repositionnement est pris en compte, mais pas les contraintes sur le nombre de repositionnement maximum.
% \item Gurobi: La gestion des trips de repositionnement des jockeys est géré comme décrit par \textquote{GurobiSO} dans l'article du Transportation Research Part, la partie relocation des voiture est faite de manière greedy. MaxNumberOfCar=20.
% \end{enumerate}
% $\Rightarrow$ Dans tous les cas les même contraintes sont gardées pour chaque type de relocation strategy, comme par exemple le fait qu'un jockey met 5 minutes pour passer de la voiture balais à la voiture qu'il doit relocate et inversement.
% [1] A. B. Brendel, J. Brennecke, P. Zapadka, and L. Kolbe, 'A Decision Support System for Computation of Carsharing Pricing Areas and its Influence on Vehicle Distribution', ICIS 2017 Proceedings.
% [2] P. Hulot, D. Aloise, and S. D. Jena, 'Towards Station-Level Demand Prediction for Effective Rebalancing in Bike-Sharing Systems', in Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining - KDD '18, London, United Kingdom, 2018, pp. 378-386.
\subsection{Simulation Calibration}
The main component of the simulation model is the probability distribution used to determine each minute whether a car leaves the area or not.
Since this distribution is estimated with the historical trip dataset, numerous cells of the grid have skewed probabilities because cars were not physically present to answer a demand.
This means the estimated probability of departure is lower than in reality.
To counter this effect, a first hyperparameter acting as a coefficient is applied to every departure probability to either increase or decrease this initial departure probability.
This hyperparameter is called \emph{Activity Coefficient}.
The second hyperparameter is the minimum probability of departure for a car with any amount of car having already left the cell in the same hour.
This hyperparameter is created because if no minimum was set, then null probabilities on peripherical cells of the grid exist because of the lack of trip data in the training set.
It would not reflect a potential usage of cars in peripherical cells, even if it is low when compared to cells in the city center.
This second hyperparameter is called \emph{Minimum Probability Departure per Hour}.
A grid search has been made in order to find these hyperparameters.
The \emph{Activity Coefficient} is searched between $0.5$ to $5$ with steps of $0.5$.
The \emph{Minimum Probability Departure per Hour} is searched between $0.05$ and $0.4$ with steps of $0.05$.
The \emph{Activity Coefficient} $\mathit{ac}$ is applyed to $\mathcal{P}_{car}$ before the \emph{Minimum Probability Departure per Hour} $\mathcal{P}_{min}$ is applyed.
During the simulation the probability value for every condition (day of the week, hour, cell, number of car having left in the same hour) is then $max\left\{\mathit{ac} \cdot \mathcal{P}_{car}, \mathcal{P}_{min}\right\}$.
The training dataset has been used to estimate the probability distribution and the test dataset (a merge between the validation and test datasets from~\ref{tab:ch2_summary_split}) are used to assess the performance of the simulation model, given $\mathit{ac}$ and $\mathcal{P}_{min}$.
The performance indicator is the \emph{Mean Absolute Error} (\emph{MAE}) between the daily historical number of trips and the daily simulated number of trips.
For example, a MAE of $50$ trips means that the simulation model makes on average 50 less or 50 more trips then in reality each day.
To compare the simulation model with the real number of trips, each day of the test dataset is simulated independantly.
The first fleet position for each simulated day is the historical one as detailed in Section~\ref{sec:ch4_first_day_fleet_placement}, such that the day begin with the same fleet placement as the historical one and no relocation has to be done at the end of the day.
Over the three case studies (\emph{Madrid}, \emph{Paris} and \emph{Washington}), the grid search provided the hyperparameters that minimized the MAE each time.
Heatmaps showing the distribution of the MAE according to the combination of $\mathit{ac}$ and $\mathcal{P}_{min}$ are shown as Figure~\ref{fig:ch4_calibration_nbtrip_madrid} for \emph{Madrid}, Figure~\ref{fig:ch4_calibration_nbtrip_paris} for \emph{Paris} and Figure~\ref{fig:ch4_calibration_nbtrip_washington} for \emph{Washington}.
In the case of \emph{Madrid}, it can be noted that the base estimated probability distribution ($\mathit{ac} = 1$) does not minimize the MAE for any tested $\mathcal{P}_{min}$, instead the hyperparameters $\mathit{ac} = 3.5$ and $\mathcal{P}_{min} = 0.2$ are the one that minimize the MAE with an average error of 550 trips/day.
In the case of \emph{Paris} and \emph{Washington}, the MAE is minimized when the base probability distribution are kept as is ($\mathit{ac} = 1$) with a minimum probability of departure of $\mathcal{P}_{min} = 0.05$.
For the three cases, Figure~\ref{fig:ch4_calibration_curve_madrid} for \emph{Madrid}, Figure~\ref{fig:ch4_calibration_curve_paris} for \emph{Paris} and Figure~\ref{fig:ch4_calibration_curve_washington}, the daily number of trips both historically and simulated are shown as two curves.
It can be noted that in the three cases the simulation model does not take into account yearly seasonal effects, such as the increased usage during the september month for \emph{Madrid} or the increased usage during the winter holidays in \emph{Paris}, nor the ponctual events that either increase or decrease the usage of the service.
\begin{figure}[!t]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_calibration_nbtrip_madrid.jpeg}}
\caption[Heatmap Calibration Madrid]{Heatmap of the simulation model MAE performance when testing hyperparameters combinations with the \emph{Madrid} trip dataset. The x-axis shows increasing values of $\mathcal{P}_{min}$ (\emph{Minimum Probability Departure per Hour}) and the y-axis increasing values of $\mathit{ac}$ (\emph{Activity Coefficient}). The number in each square is the MAE performance of the associated $\mathcal{P}_{min}$ and $\mathit{ac}$.}
\label{fig:ch4_calibration_nbtrip_madrid}
\end{figure}
\begin{figure}[!b]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_calibration_curve_madrid.jpeg}}
\caption[Calibration Number Trips Madrid]{Curves of the daily number of trips for the eight test weeks in \emph{Madrid}. In red is the historical number of trips in the test set, in blue is the simulated number of trips for the same day when the hyperparameters are $\mathit{ac} = 3.5$ and $\mathcal{P}_{min} = 0.2$.}
\label{fig:ch4_calibration_curve_madrid}
\end{figure}
\begin{figure}[!t]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_calibration_nbtrip_paris.jpeg}}
\caption[Heatmap Calibration Paris]{Heatmap of the simulation model MAE performance when testing hyperparameters combinations with the \emph{Paris} trip dataset. The x-axis shows increasing values of $\mathcal{P}_{min}$ (\emph{Minimum Probability Departure per Hour}) and the y-axis increasing values of $\mathit{ac}$ (\emph{Activity Coefficient}). The number in each square is the MAE performance of the associated $\mathcal{P}_{min}$ and $\mathit{ac}$.}
\label{fig:ch4_calibration_nbtrip_paris}
\end{figure}
\begin{figure}[!b]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_calibration_curve_paris.jpeg}}
\caption[Calibration Number Trips Paris]{Curves of the daily number of trips for the ten test weeks in \emph{Paris}. In red is the historical number of trips in the test set, in blue is the simulated number of trips for the same day when the hyperparameters are $\mathit{ac} = 1$ and $\mathcal{P}_{min} = 0.05$.}
\label{fig:ch4_calibration_curve_paris}
\end{figure}
\begin{figure}[!t]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_calibration_nbtrip_washington.jpeg}}
\caption[Heatmap Calibration Washington]{Heatmap of the simulation model MAE performance when testing hyperparameters combinations with the \emph{Washington} trip dataset. The x-axis shows increasing values of $\mathcal{P}_{min}$ (\emph{Minimum Probability Departure per Hour}) and the y-axis increasing values of $\mathit{ac}$ (\emph{Activity Coefficient}). The number in each square is the MAE performance of the associated $\mathcal{P}_{min}$ and $\mathit{ac}$.}
\label{fig:ch4_calibration_nbtrip_washington}
\end{figure}
\begin{figure}[!b]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_calibration_curve_washington.jpeg}}
\caption[Calibration Number Trips Washington]{Curves of the daily number of trips for the eight test weeks in \emph{Paris}. In red is the historical number of trips in the test set, in blue is the simulated number of trips for the same day when the hyperparameters are $\mathit{ac} = 1$ and $\mathcal{P}_{min} = 0.05$.}
\label{fig:ch4_calibration_curve_washington}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SECTION - SECTION - SECTION - SECTION - SECTION - SECTION - SECTION - SECTION - SECTION - SECTION - SECTION %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\FloatBarrier
\section{Case Studies}
\label{sec:ch4_case_studies}
The objective of the case studies in \emph{Madrid}, \emph{Paris} and \emph{Washington} is to assess the performance of the relocation strategies.
With the developped simulator, the comparison between those relocation strategies and the historical performance of the service is not possible.
Indeed, numerous external influences were applied on the real service, such as traffic condition and seasonal effects.
That would make the historical performance of the service not comparable with the performance of relocation strategies obtained from the simplified version of the reality offered by the simulation model.
Then, only a relative expected performance of each relocation strategies against each other is presented, i.e. each relocation strategy is evaluated under the same conditions but different than the ones encountered in the dataset.
Since few external events are simulated, the simulation model cannot show how each relocation strategy react to exceptional events such as a large cultural event or public transportation malfuction that happened historically.
In this section three experiments are conducted to evaluate each relocation strategies and their variants.
First a comparison between the two operator-based strategies (\emph{OR-Greedy} and \emph{OR-Optim}) is done as well as the comparison between regressions and simulation for the utility prediction.
Second a study is made about the impact of the number of jockeys on the relocation strategies performance.
Third a comparison between the operator-based strategies and the customer-based strategies variants (\emph{UR-Max}, \emph{UR-Heavy} and \emph{UR-Light}) is made.
\subsection{Operator-based Relocations Comparison}
\label{sec:ch4_expe_operator_comparison}
The objective of this experiment is to determine whether the methodology proposed in Chapter~\ref{ch:method} is capable to outperform the baselines by proposing a relocation that makes the cars being used more for a lesser relocation cost, leading to a higher profitability.
Two variants of the methodology are tested: \emph{OR-Optim-Pred} and \emph{OR-Optim-Simu}.
The baseline \emph{NoAction} is used here to assess the performance the operator can expect if nothing is done, in other word the proposed methodology should achieve better in order to avoid being disqualified.
An additional comparison is made with the two variants of the greedy baseline, \emph{OR-Greedy-Pred} and \emph{OR-Greedy-Simu}.
For all operator-based relocation strategies there are $7$ jockeys making relocations.
According to historical measurement from \emph{Free2Move}, a jockey can do at most $10$ relocations per night.
Then a total of $70$ relocations can be made at maximum every simulated day.
Two way of placing the car for the first day at the start of the simulation are tested: the \emph{Balanced First Placement} (\emph{BFP}) and the \emph{Worst Fleet Placement} (\emph{WFP}).
In Table~\ref{tab:ch4_expe1_madrid}, Table~\ref{tab:ch4_expe1_paris} and Table~\ref{tab:ch4_expe1_washington} are reported all average daily indicators and for all cities the simulation using the \emph{BFP} (resp. \emph{WFP}) is denoted as \emph{City-BFP} (resp. \emph{City-WFP}).
In those tables, four indicators are reported as daily average over the 30 days of simulation, the utility (in minutes), the expected profit (in euros), the cost of relocations (in euros) and the number of relocations made, for all indicators the standard deviation is also given.
\paragraph{Madrid Case.}
The comparison shows that the \emph{NoAction} strategy is beaten by the variants of the methodology \emph{OR-Optim} with either \emph{BFP} or \emph{WFP} as the initial car distribution when taking into account the daily average utility and expected profit, see Table~\ref{tab:ch4_expe1_madrid}.
However, they are not capable to surpass the greedy baselines regarding those two indicators.
One can also notice that with both \emph{BFP} or \emph{WFP} initial distributions, the solver optimization is able to reduce the costs allocated for the relocation of cars when compared to the greedy baselines.
This reduction of relocation costs is made even if both the greedy baseline and the optimization are doing the same number of relocation each night.
\begin{table}[!bt]
\centering
\small
\begin{tabular}{|l|r|r|r|r|}
\hline
Madrid-BFP & Utility (min) & Profit (€) & Cost (€) & Nb Reloc. \\ \hline
NoAction & 31599 $\pm$ 17200 & 9795.59 $\pm$ 5332.02 & N/A & N/A \\ \hline
OR-Greedy-Pred & \textbf{51264 $\pm$ 14383} & \textbf{14536.81 $\pm$ 4523.15} & 1412.27 $\pm$ 79.46 & 70 $\pm$ 0 \\ \hline
OR-Greedy-Simu & 50847 $\pm$ 14420 & 14358.24 $\pm$ 4534.74 & 1462.41 $\pm$ 100.34 & 70 $\pm$ 0 \\ \hline
OR-Optim-Pred & 50583 $\pm$ 14446 & 14467.01 $\pm$ 4566.80 & 1292.93 $\pm$ 89.92 & 70 $\pm$ 0 \\ \hline
OR-Optim-Simu & 49454 $\pm$ 14133 & 14152.58 $\pm$ 4469.32 & \textbf{1258.85 $\pm$ 72.40} & 70 $\pm$ 0 \\ \hline
\hline
\hline
Madrid-WFP & Utility (min) & Profit (€) & Cost (€) & Nb Reloc. \\ \hline
NoAction & 28533 $\pm$ 6346 & 8845.36 $\pm$ 1967.12 & N/A & N/A \\ \hline
OR-Greedy-Pred & 47214 $\pm$ 7006 & 13231.59 $\pm$ 2188.11 & 1412.75 $\pm$ 80.39 & 70 $\pm$ 0 \\ \hline
OR-Greedy-Simu & \textbf{47635 $\pm$ 7338} & \textbf{13344.51 $\pm$ 2308.34} & 1463.17 $\pm$ 88.54 & 70 $\pm$ 0 \\ \hline
OR-Optim-Pred & 46651 $\pm$ 7146 & 13222.79 $\pm$ 2259.70 & 1280.82 $\pm$ 91.69 & 70 $\pm$ 0 \\ \hline
OR-Optim-Simu & 46217 $\pm$ 6685 & 13123.10 $\pm$ 2096.79 & \textbf{1256.38 $\pm$ 74.64} & 70 $\pm$ 0 \\ \hline
\end{tabular}
\caption{Comparison of operator-based relocations in the case of \emph{Madrid}. Tables report the average daily indicators (\emph{Utility} and \emph{Profit}) and the daily \emph{Cost} inccured by the daily \emph{Number of Relocations} for fives relocation strategies. The top table reports results when car were initially placed with the \emph{Balanced First Placement} and bottom table is for the \emph{Worst First Placement}.}
\label{tab:ch4_expe1_madrid}
\end{table}
Looking in details outlines four behaviors in the daily results of each relocation strategy performance, for the utility see Figures~\ref{fig:ch4_expesimu1_madrid_utility_bfp}, \ref{fig:ch4_expesimu1_madrid_utility_wfp} and for the expected profit see Figure~\ref{fig:ch4_expesimu1_madrid_profit_bfp}, \ref{fig:ch4_expesimu1_madrid_profit_wfp}:
\begin{enumerate}
\item In all cases the activity is highest during the weekday, futher confirming the calibration of the simulation model.
\item During the first week the service's utility and expected profit stabilize and after the second week those performances converges towards equivalent values whether \emph{BFP} or \emph{WFP} is used as the initial distribution. This implies that after two weeks, the initial distribution of cars does not impact the performance, when two similar strategies are compared.
\item The high standard deviation for the utility and profit is partly explained by the high variation of usage during each week and because of the \textquote{stabilization} of the service.
\item The solver optimization is not beaten every day by the greedy strategy and both approaches give equivalent performances
\end{enumerate}
Morover, the solver optimization is almost every day making the same amount of relocations as the greedy approach, but by incurring less relocation total costs each night, see Figures~\ref{fig:ch4_expesimu1_madrid_cost_bfp}, \ref{fig:ch4_expesimu1_madrid_cost_wfp}.
Overall, this implies that the error related to the prediction of the utility still impacts the evaluation.
Indeed the solver-based optimization is reliant on those predictions to optimize both the locations where cars should be taken and dropped and the sweeper trips.
By optimizing only the locations where cars are taken and dropped by jockeys, the greedy algorithm is better in this condition.
The usage of either a greedy approach or a solver-based optimization increases the utility performance by respectively $62\%$ and $60\%$ (in the best case) when compared to the \emph{NoAction} baseline.
However, it should be noted that the costs for the same amount of relocations is lower in the case of \emph{OR-Optim}.
This suggests that with a constant relocation budget \emph{OR-Optim} would make more relocations than \emph{OR-Greedy} and might surpass it in utility and expected profit.
\paragraph{Paris Case.}
That comparison between the proposed methodology \emph{OR-Optim} and the baselines in the case of \emph{Paris} is showing that on average the expected profit is better when the operator choose to do nothing (\emph{NoAction}), see Table~\ref{tab:ch4_expe1_paris}.
However when comparing the utility performance, the best strategy is the \emph{OR-Greedy-Pred} beating \emph{OR-Optim-Pred} by $7\%$.
When looking at the relocation costs, \emph{OR-Optim} is still better at optimizing the sweeper trips then \emph{OR-Greedy}.
Those observations are similar for both the initial car distribution \emph{BFP} and \emph{WFP}, with differences in the absolute values of each metric.
\begin{table}[!bt]
\centering
\small
\begin{tabular}{|l|r|r|r|r|}
\hline
Paris-BFP & Utility (min) & Profit (€) & Cost (€) & Nb Reloc. \\ \hline
NoAction & 6783 $\pm$ 1678 & \textbf{2102.75 $\pm$ 520.21} & N/A & N/A \\ \hline
OR-Greedy-Pred & \textbf{9077 $\pm$ 1433} & 1508.04 $\pm$ 452.16 & 1301.49 $\pm$ 84.47 & 70 $\pm$ 0 \\ \hline
OR-Greedy-Simu & 8993 $\pm$ 1479 & 1630.26 $\pm$ 480.37 & 1159.42 $\pm$ 67.85 & 70 $\pm$ 0 \\ \hline
OR-Optim-Pred & 8461 $\pm$ 1522 & 1658.01 $\pm$ 498.07 & \textbf{967.85 $\pm$ 51.18} & 70 $\pm$ 0 \\ \hline
OR-Optim-Simu & 8568 $\pm$ 1519 & 1682.71 $\pm$ 485.65 & 973.53 $\pm$ 47.28 & 70 $\pm$ 0 \\ \hline
\hline
\hline
Paris-WFP & Utility (min) & Profit (€) & Cost (€) & Nb Reloc. \\ \hline
NoAction & 5274 $\pm$ 1292 & \textbf{1634.86 $\pm$ 400.49} & N/A & N/A \\ \hline
OR-Greedy-Pred & \textbf{8170 $\pm$ 1751} & 1203.25 $\pm$ 568.24 & 1314.81 $\pm$ 103.13 & 70 $\pm$ 0 \\ \hline
OR-Greedy-Simu & 7942 $\pm$ 1759 & 1265.16 $\pm$ 560.72 & 1181.93 $\pm$ 65.52 & 70 $\pm$ 0 \\ \hline
OR-Optim-Pred & 7456 $\pm$ 1485 & 1303.71 $\pm$ 493.72 & 1004.04 $\pm$ 54.82 & 70 $\pm$ 0 \\ \hline
OR-Optim-Simu & 7525 $\pm$ 1633 & 1331.68 $\pm$ 528.31 & \textbf{988.97 $\pm$ 53.28} & 70 $\pm$ 0 \\ \hline
\end{tabular}
\caption{Comparison of operator-based relocations in the case of \emph{Paris}. Tables report the average daily indicators (\emph{Utility} and \emph{Profit}) and the daily \emph{Cost} inccured by the daily \emph{Number of Relocations} for fives relocation strategies. The top table reports results when car were initially placed with the \emph{Balanced First Placement} and bottom table is for the \emph{Worst First Placement}.}
\label{tab:ch4_expe1_paris}
\end{table}
Looking in details at the daily curves of each performance metric, see Figures~\ref{fig:ch4_expesimu1_paris_utility_bfp}, \ref{fig:ch4_expesimu1_paris_utility_wfp} for the utility and Figure~\ref{fig:ch4_expesimu1_paris_profit_bfp}, \ref{fig:ch4_expesimu1_paris_profit_wfp} for the expected profit, it shows that:
\begin{enumerate}
\item The greedy algorithm has a utility performance higher than the solver-based optimization every day, with both the initial car distribution \emph{BFP} and \emph{WFP}.
\item All relocation strategies are capable to take into account the spike of usage during the weekends.
\item As for the \emph{Madrid} case, the first week is the stabilization of the service's performance, utility and expected profit, with the second simulated week making the service enter its stabilize state, converging to a usage with only a weekly seasonal usage.
\item For almost all the days, the solver-based optimization (\emph{OR-Optim}) has a higher expected profit than the greedy baseline, while staying all days under the \emph{NoAction} baseline.
\item The high standard deviation in Table~\ref{tab:ch4_expe1_paris} is explained by both the first week of the service's performance stabilization and the weekly usage having a high variation between the weekdays and the weekends.
\end{enumerate}
Like in the case of \emph{Madrid}, the solver-based optimization is making the same number of relocations for a lesser cost than the greedy-based strategies for every simulated day, see Figures~\ref{fig:ch4_expesimu1_paris_cost_bfp}, \ref{fig:ch4_expesimu1_paris_cost_wfp}.
Additionally, the use of the simulation for the utility prediction reduces the relocation costs in the case of \emph{OR-Greedy}, meaning that the greedy algorithm indirectly chooses placements that are different from when the utility is predicted with a regressor.
Overall, in the case of \emph{Paris} the poor performance of both variants of \emph{OR-Optim} and \emph{OR-Greedy} can partly be explained by the low usage of the usage by its customers.
The less relocations are optimized the less profitability should be expected from the service, as shown by the capability of \emph{OR-Optim} to lower relocation costs while optimizing the cars to be taken and dropped off contrary to \emph{OR-Greedy}.
However, the prediction of the utility is error-prone like in the case of \emph{Madrid}, relocations that are considered as being profitable by both \emph{OR-Optim} and \emph{OR-Greedy} turns out to be costly instead.
\paragraph{Washington Case.}
For the service in \emph{Washington}, the comparison between the solver-based optimization \emph{OR-Optim} and the baselines shows that it is capable to beat the \emph{NoAction} baseline regarding the utility and expected profit with both the \emph{BPF} and \emph{WFP} initial fleet distribution, see Table~\ref{tab:ch4_expe1_washington}.
However, only in the case of \emph{BFP} the strategy \emph{OR-Optim} is capable to beat the \emph{OR-Greedy} strategy in term of utility performance.
Regarding the expected profit and the relocation costs, \emph{OR-Optim} has always a higher performance by getting the highest expected profits while keeping the lowest costs.
It should also be noted that on both \emph{BPF} and \emph{WFP} cases, the usage of the simulation for the prediction of the utility makes relocations strategies \emph{OR-Optim} and \emph{OR-Greedy} have better expected profit and lower costs than in the case when regressors are used.
\begin{table}[!bt]
\centering
\small
\begin{tabular}{|l|r|r|r|r|}
\hline
Washington-BFP & Utility (min) & Profit (€) & Cost (€) & Nb Reloc. \\ \hline
NoAction & 25546 $\pm$ 4335 & 7919.38 $\pm$ 1343.78 & N/A & N/A \\ \hline
OR-Greedy-Pred & 30274 $\pm$ 4002 & 7621.00 $\pm$ 1274.97 & 1779.05 $\pm$ 90.86 & 70 $\pm$ 0 \\ \hline
OR-Greedy-Simu & 30148 $\pm$ 3738 & 7940.97 $\pm$ 1167.89 & 1410.78 $\pm$ 106.96 & 70 $\pm$ 0 \\ \hline
OR-Optim-Pred & 29558 $\pm$ 4275 & 7982.29 $\pm$ 1381.19 & 1206.50 $\pm$ 72.93 & 70 $\pm$ 0 \\ \hline
OR-Optim-Simu & \textbf{30318 $\pm$ 3558} & \textbf{8260.72 $\pm$ 1124.39} & \textbf{1157.23 $\pm$ 50.59} & 70 $\pm$ 0 \\ \hline
\hline
\hline
Washington-WFP & Utility (min) & Profit (€) & Cost (€) & Nb Reloc. \\ \hline
NoAction & 22074 $\pm$ 6075 & 6842.86 $\pm$ 1883.37 & N/A & N/A \\ \hline
OR-Greedy-Pred & \textbf{27870 $\pm$ 5880} & 6855.68 $\pm$ 1848.43 & 1779.86 $\pm$ 78.96 & 70 $\pm$ 0 \\ \hline
OR-Greedy-Simu & 27374 $\pm$ 5604 & 7063.11 $\pm$ 1775.85 & 1408.20 $\pm$ 100.71 & 70 $\pm$ 0 \\ \hline
OR-Optim-Pred & 27071 $\pm$ 5346 & 7154.46 $\pm$ 1729.56 & 1240.47 $\pm$ 66.65 & 70 $\pm$ 0 \\ \hline
OR-Optim-Simu & 27289 $\pm$ 5592 & \textbf{7267.58 $\pm$ 1782.56} & \textbf{1171.97 $\pm$ 54.86} & 70 $\pm$ 0 \\ \hline
\end{tabular}
\caption{Comparison of operator-based relocations in the case of \emph{Washington}. Tables report the average daily indicators (\emph{Utility} and \emph{Profit}) and the daily \emph{Cost} inccured by the daily \emph{Number of Relocations} for fives relocation strategies. The top table reports results when car were initially placed with the \emph{Balanced First Placement} and bottom table is for the \emph{Worst First Placement}.}
\label{tab:ch4_expe1_washington}
\end{table}
By looking in details at the curves representing the daily performance of each relocation strategies, see Figures~\ref{fig:ch4_expesimu1_washington_utility_bfp}, \ref{fig:ch4_expesimu1_washington_utility_wfp} for the utility and Figure~\ref{fig:ch4_expesimu1_washington_profit_bfp}, \ref{fig:ch4_expesimu1_washington_profit_wfp} for the expected profit, several observations are made:
\begin{enumerate}
\item With both the \emph{BFP} and \emph{WFP} placement, the two variants of \emph{OR-Optim} strategy are capable to have a higher daily utility than with the \emph{NoAction} baseline.
\item For the two last weeks of the simulation, the variant \emph{OR-Optim-Simu} obtains a higher daily utility than \emph{OR-Optim-Pred} while having the same number of relocations done.
\item As for the two previous serivces, the service's performance is stabilized during the last week of the simulation. With a \emph{BFP} initial placement, the service's performance stabilized after only one simulated week while it takes two weeks when the \emph{WFP} is used.
\item On average the daily expected profit from all relocations strategies are better than the \emph{NoAction} baseline for the two first simulated weeks. But at the two last weeks, only the \emph{OR-Optim} manages to stay on average each day above the \emph{NoAction} baseline with the \emph{BPF} initial placement.
\end{enumerate}
Regarding the costs of relocations, see Figures~\ref{fig:ch4_expesimu1_washington_cost_bfp}, \ref{fig:ch4_expesimu1_washington_cost_wfp}, as for the cases \emph{Madrid} and \emph{Paris}, the two variants of \emph{OR-Optim} have every day a lower relocation cost than the \emph{OR-Greedy} variants.
It should also be noted that the usage of the simulation to make the utility prediction influences the \textquote{optimization} of the relocations: the \emph{OR-Greedy-Simu} is capable to relocate the same number of car than \emph{OR-Greedy-Pred} with a daily average cost difference of 400€.
Overall, the situation of \emph{Washington} carsharing is different from \emph{Paris} and \emph{Madrid} for two reasons.
First, the serviced area simulated is at least twice bigger than in \emph{Madrid} while having the same number of cars.
Second, the usage rate of the service consist in fewer trips than in \emph{Madrid} but with a longer average trip duration than in \emph{Paris}.
Similarly to the \emph{Paris} service, both the greedy and the solver-based approach does only take into account \textquote{half} of the jockey's path in the city, i.e. the sweeping part and not the relocation part.
However in both \emph{Paris} and \emph{Washington}, not taking into account the complete cost of each relocations, i.e both the sweeping and car relocation parts, makes numerous relocations look like profitable when it is not in reality.
In the case of \emph{Paris} and its lower car usage, the effects can be immediately seen with only 7 jockeys (equivalent to 70 relocations): most of the cars relocated are done without profit.
In the case of \emph{Washington} and its higher usage than in \emph{Paris}, but still low when compared to \emph{Madrid}, a share more important of the 70 relocated cars are done with a profit.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% MADRID FIGURES %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_madrid_utility_bfp.jpeg}}
\caption[Madrid Simulation Utility Performance Expe1 BFP Placement]{\emph{Madrid} case: curves of the expected \emph{Utility} (in minutes) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Balanced First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_madrid_utility_bfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_madrid_utility_wfp.jpeg}}
\caption[Madrid Simulation Utility Performance Expe1 WFP Placement]{\emph{Madrid} case: curves of the expected \emph{Utility} (in minutes) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Worst First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_madrid_utility_wfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_madrid_profit_bfp.jpeg}}
\caption[Madrid Simulation Profit Performance Expe1 BFP Placement]{\emph{Madrid} case: curves of the expected \emph{Profit} (in euros) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Balanced First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_madrid_profit_bfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_madrid_profit_wfp.jpeg}}
\caption[Madrid Simulation Profit Performance Expe1 WFP Placement]{\emph{Madrid} case: curves of the expected \emph{Profit} (in euros) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Worst First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_madrid_profit_wfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_madrid_cost_bfp.jpeg}}
\caption[Madrid Simulation Cost Performance Expe1 BFP Placement]{\emph{Madrid} case: curves of the expected \emph{Cost} (in euros) incurred by the tested relocation strategies \emph{OR-Greedy} and \emph{OR-Optim} and their variants. Fleet distribution initialization is following the \emph{Balanced First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_madrid_cost_bfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_madrid_cost_wfp.jpeg}}
\caption[Madrid Simulation Cost Performance Expe1 WFP Placement]{\emph{Madrid} case: curves of the expected \emph{Cost} (in euros) incurred by the tested relocation strategies \emph{OR-Greedy} and \emph{OR-Optim} and their variants. Fleet distribution initialization is following the \emph{Worst First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_madrid_cost_wfp}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PARIS FIGURES %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_paris_utility_bfp.jpeg}}
\caption[Paris Simulation Utility Performance Expe1 BFP Placement]{\emph{Paris} case: curves of the expected \emph{Utility} (in minutes) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Balanced First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_paris_utility_bfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_paris_utility_wfp.jpeg}}
\caption[Paris Simulation Utility Performance Expe1 WFP Placement]{\emph{Paris} case: curves of the expected \emph{Utility} (in minutes) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Worst First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_paris_utility_wfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_paris_profit_bfp.jpeg}}
\caption[Paris Simulation Profit Performance Expe1 BFP Placement]{\emph{Paris} case: curves of the expected \emph{Profit} (in euros) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Balanced First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_paris_profit_bfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_paris_profit_wfp.jpeg}}
\caption[Paris Simulation Profit Performance Expe1 WFP Placement]{\emph{Paris} case: curves of the expected \emph{Profit} (in euros) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Worst First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_paris_profit_wfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_paris_cost_bfp.jpeg}}
\caption[Paris Simulation Cost Performance Expe1 BFP Placement]{\emph{Paris} case: curves of the expected \emph{Cost} (in euros) incurred by the tested relocation strategies \emph{OR-Greedy} and \emph{OR-Optim} and their variants. Fleet distribution initialization is following the \emph{Balanced First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_paris_cost_bfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_paris_cost_wfp.jpeg}}
\caption[Paris Simulation Cost Performance Expe1 WFP Placement]{\emph{Paris} case: curves of the expected \emph{Cost} (in euros) incurred by the tested relocation strategies \emph{OR-Greedy} and \emph{OR-Optim} and their variants. Fleet distribution initialization is following the \emph{Worst First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_paris_cost_wfp}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% WASHINGTON FIGURES %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_washington_utility_bfp.jpeg}}
\caption[Washington Simulation Utility Performance Expe1 BFP Placement]{\emph{Washington} case: curves of the expected \emph{Utility} (in minutes) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Balanced First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_washington_utility_bfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_washington_utility_wfp.jpeg}}
\caption[Washington Simulation Utility Performance Expe1 WFP Placement]{\emph{Washington} case: curves of the expected \emph{Utility} (in minutes) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Worst First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_washington_utility_wfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_washington_profit_bfp.jpeg}}
\caption[Washington Simulation Profit Performance Expe1 BFP Placement]{\emph{Washington} case: curves of the expected \emph{Profit} (in euros) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Balanced First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_washington_profit_bfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_washington_profit_wfp.jpeg}}
\caption[Washington Simulation Profit Performance Expe1 WFP Placement]{\emph{Washington} case: curves of the expected \emph{Profit} (in euros) of the service when the operator does nothing (\emph{NoAction}), or use the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies (with their variant). Fleet distribution initialization is following the \emph{Worst First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_washington_profit_wfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_washington_cost_bfp.jpeg}}
\caption[Washington Simulation Cost Performance Expe1 BFP Placement]{\emph{Washington} case: curves of the expected \emph{Cost} (in euros) incurred by the tested relocation strategies \emph{OR-Greedy} and \emph{OR-Optim} and their variants. Fleet distribution initialization is following the \emph{Balanced First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_washington_cost_bfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu1_washington_cost_wfp.jpeg}}
\caption[Washington Simulation Cost Performance Expe1 WFP Placement]{\emph{Washington} case: curves of the expected \emph{Cost} (in euros) incurred by the tested relocation strategies \emph{OR-Greedy} and \emph{OR-Optim} and their variants. Fleet distribution initialization is following the \emph{Worst First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu1_washington_cost_wfp}
\end{figure}
\FloatBarrier
\subsection{Jockey's Influence on Service Performance}
In this section, the experiments' objective is to determine whether adding more jockey to the staff can help the service to improve its usage and its profitability.
Simulations have been run with the same relocation strategies, that are the two variants of the greedy strategy \emph{OR-Greedy-Pred} and \emph{OR-Greedy-Simu} and the two variants of the solver-based strategy \emph{OR-Optim-Pred} and \emph{OR-Optim-Simu}.
The strategy \emph{NoAction} have been kept as a reference baseline.
The number of jockey in the staff to be tested is ranged from $5$ people to either $50$ for \emph{Paris} or $60$ for \emph{Madrid} and \emph{Washington}.
It depends on the number of cars in the fleet, such that if a jockey can relocate $10$ cars per night then $50$ jockeys (resp. $60$) in \emph{Paris} (resp. \emph{Madrid} and \emph{Washington}) can relocate the whole fleet during the night.
Since the two way of placing cars have a limited impact on the long term of the functioning of the service, only the \emph{Balanced First Placement} (\emph{BFP}) initial fleet distribution has been used during this experiments.
In Figures~\ref{fig:ch4_expesimu2_madrid_nbjockey} for \emph{Madrid}, \ref{fig:ch4_expesimu2_paris_nbjockey} for \emph{Paris}, \ref{fig:ch4_expesimu2_washington_nbjockey} for \emph{Washington}, the four metrics used in the previous experiments are studied: the average daily utility, expected profit, relocation cost and number of relocations.
\begin{figure}[!bt]
\centering
\makebox[\textwidth][c]{\includegraphics[width=1\textwidth]{figure/ch4_expesimu2_madrid_nbjockey.jpeg}}
\caption[Number Jockey Performance Evaluation Madrid]{Study of four performance metrics when the number of jockeys making relocation increases for the \emph{Madrid} service. On top left is represented the average daily utility (in minutes), on top right is the average daily expected profit (in euros), on the bottom left is the average daily relocation cost (in euros) and in bottom right is the average daily number of relocation made.}
\label{fig:ch4_expesimu2_madrid_nbjockey}
\end{figure}
\paragraph{Madrid Case.} As shown in Figure~\ref{fig:ch4_expesimu2_madrid_nbjockey}, the utility increases linearly when jockeys are added to the service to make relocations, up to around 45 jockeys, for the two baselines based on the greedy algorithm and for the two solver-based optimization strategies.
Regarding the expected profit, with a low number of jockeys the baselines \emph{OR-Greedy} makes more profit by a small margin ($\leq$ 500€) while with a higher number of jockey the contrary is verified by a small margin ($\leq$ 500€).
This can be explained while looking at the average daily cost of relocation when the number of jockey increases: the gap between \emph{OR-Greedy-Pred} (resp. \emph{OR-Greedy-Simu}) and \emph{OR-Optim-Pred} (resp. \emph{OR-Optim-Simu}) increases too.
Thus with a revenue staying similar with the greedy and solver-based approaches, the only factor determining an increase of profit when the number of jockey is higher is the relocation cost.
Furthermore, by looking at the curve displaying the average daily number of relocation, it is possible to see that adding more than 45 jockeys won't allow more relocations to be done as the greedy algorithm and the solver deemed additional relocation unecessary.
In the case of \emph{Madrid}, it should be noted that with this simulation model and either the \emph{OR-Greedy} or \emph{OR-Optim} relocation strategies, that adding more jockey is a straigth-forward action to make for the operator.
The more jockeys are added to the staff, the more cars can be repositioned and the more profitable the service is made even if the cost of relocation is increased because fo the added jockeys.
The operator has to relocate around 2/3 of its fleet to reach the maximum utilization expected.
\begin{figure}[!bt]
\centering
\makebox[\textwidth][c]{\includegraphics[width=1\textwidth]{figure/ch4_expesimu2_paris_nbjockey.jpeg}}
\caption[Number Jockey Performance Evaluation Paris]{Study of four performance metrics when the number of jockeys making relocation increases for the \emph{Paris} service. On top left is represented the average daily utility (in minutes), on top right is the average daily expected profit (in euros), on the bottom left is the average daily relocation cost (in euros) and in bottom right is the average daily number of relocation made.}
\label{fig:ch4_expesimu2_paris_nbjockey}
\end{figure}
\paragraph{Paris Case.} Contrary to the service in \emph{Madrid}, the simulation of the service in \emph{Paris}, calibrated to the historical usage, shows that the relocation of misplaced cars to improve the utilization reaches its limits at either 10 jockeys for \emph{OR-Greedy-Pred} and \emph{OR-Optim-Pred} or 20 jockey for their \textquote{Simu} counterparts, see top left of Figure~\ref{fig:ch4_expesimu2_paris_nbjockey}.
However, both the greedy baselines and the solver-based optimization strategies cannot improve the expected profit beyond the \emph{NoAction} baseline.
Even with a relocation cost comparable with the one in \emph{Madrid} for up to 10 jockeys, the very low utilization of the service in general (at most $10\,000$ minutes of utility with the best strategy) renders relocations unprofitable even when a only small number of relocations is authorized.
From Figure~\ref{fig:ch4_expesimu2_paris_nbjockey}, it can be noted that with the utility predicted either with regressors or by simulation, the strategies \emph{OR-Optim} are capable to better identify how the sweeper trips should be made to lower their cost.
Regarding the maximum number of cars relocated on average per night, when the \emph{Pred} (resp. \emph{Simu}) variants of the greedy and the solver-based strategies are used, the optimal number of jockey is around 10 (resp. 15) as adding more jockey does not lead to significant additional relocations.
As explained in the \emph{Paris}' results from the previous section, both the greedy algorithm and the solver-based optimization are not capable to take into account the whole jockey relocation path's cost, i.e. both when the jockey is relocating a car and when he is picked up by a sweeper car.
This explains why additional relocations decrease the expected profit while increasing the utility, both methods count relocations as profitable when they are not in reality.
The additional utility generated by these relocations does not provide enough revenues to counter the incurred relocations costs.
\begin{figure}[!bt]
\centering
\makebox[\textwidth][c]{\includegraphics[width=1\textwidth]{figure/ch4_expesimu2_washington_nbjockey.jpeg}}
\caption[Number Jockey Performance Evaluation Washington]{Study of four performance metrics when the number of jockeys making relocation increases for the \emph{Washington} service. On top left is represented the average daily utility (in minutes), on top right is the average daily expected profit (in euros), on the bottom left is the average daily relocation cost (in euros) and in bottom right is the average daily number of relocation made.}
\label{fig:ch4_expesimu2_washington_nbjockey}
\end{figure}
\paragraph{Washington Case.} As presented in Figure~\ref{fig:ch4_expesimu2_washington_nbjockey}, in the case of \emph{Washington} the four metrics behave similarly to the case of \emph{Paris} when the additional jockeys are used to make relocations.
In particular, in the best case (\emph{OR-Greedy-Simu}) the utility is not higher than $40\,000$ minutes, which represents four times the maximum for the same metric in the case of \emph{Paris} and only $36 \%$ in the case of \emph{Madrid}.
Relocations are profitable only when using at most 10 jockeys and when the utility is predicted with the simulator.
In the case of \emph{Washington} it means that at least 100 cars can be relocated and add profitability to the service.
However with additional jockeys, cars that are relocated does not provide enough revenue to justify the cost of their relocation.
As in the case of \emph{Paris}, the bottom left curves of Figure~\ref{fig:ch4_expesimu2_washington_nbjockey} show that the solver-based optimization can also improve the cost of the relocation process.
When comparing the maximum number of cars relocated from \emph{OR-Greedy-Simu} and \emph{OR-Optim-Simu}, even if more cars are being relocated in the case \emph{OR-Optim-Simu}, the associated cost is lower by between 500€ and 250€ depending on the number of jockey than \emph{OR-Greedy-Simu}.
Like in \emph{Paris}, the low usage of the service is not compatible with an operator-based relocation strategy.
For those two cities if the simulated operator still wants to relocate cars out of spots with a low usage, at least two options are available to make profitable relocations.
First, the operator can set the customer price (in €/min) higher, so that the cost inccured by the relocations is counter-balanced by a higher revenue.
Second, incentives can be applied so customers are influenced to ride cars away from low usage areas, either by promoting cars in low usage area or by given penalties when they drop cars in those areas.
\FloatBarrier
\subsection{Impact of User-based Relocations}
The third experiment's objective is to compare the performance of an operator-based relocation strategy with the customer-based relocation strategy and its variants.
The operator-based relocation strategy is the \emph{OR-Optim-Pred} with 7 jockeys for \emph{Madrid} and \emph{OR-Optim-Simu} with 7 jockeys for \emph{Paris} and \emph{Washington}.
The customer-based strategies are \emph{UR-Max}, \emph{UR-Heavy} and \emph{UR-Light}.
They are three variants of the same strategy, with incentives having the same money amount but different rates of willingness to accept the incentives.
As for the previous experiment, \emph{NoAction} is used as a baseline.
Two initial vehicle distribution are studied: the \emph{Balanced First Placement} and the \emph{Worst First Placement}.
In Tables~\ref{tab:ch4_expe3_madrid} for \emph{Madrid}, \ref{tab:ch4_expe3_paris} for \emph{Paris} and \ref{tab:ch4_expe3_washington} for \emph{Washington}, four average of daily metrics are presented: the utility, the expected profit, the total cost (either from relocations or from incentives) and the number of additional trips triggered by the incentives.
Note that the performance of the \emph{NoAction} and \emph{OR-Optim} are identical to the ones reported in the first experiment (Section~\ref{sec:ch4_expe_operator_comparison}).
\begin{table}[!bt]
\centering
\small
\begin{tabular}{|l|r|r|r|r|}
\hline
Madrid-BFP & Utility & Profit (€) & Cost (€) & Add. Trips \\ \hline
NoAction & 31599 $\pm$ 17200 & 9795.59 $\pm$ 5332.02 & N/A & N/A \\ \hline
OR-Optim-Pred & 50583 $\pm$ 14446 & 14467.01 $\pm$ 4566.80 & 1292.93 $\pm$ 89.92 & N/A \\ \hline
UR-Max & 193045 $\pm$ 46949 & 59760.33 $\pm$ 14529.93 & 83.60 $\pm$ 469.99 & 4528 $\pm$ 957 \\ \hline
UR-Heavy & 59323 $\pm$ 22224 & 18493.35 $\pm$ 7351.96 & -103.33 $\pm$ 501.91 & 787 $\pm$ 265 \\ \hline
UR-Light & 35605 $\pm$ 19001 & 11145.01 $\pm$ 6390.22 & -107.60 $\pm$ 543.86 & 84 $\pm$ 42 \\ \hline
\hline
\hline
Madrid-WFP & Utility & Profit (€) & Cost (€) & Add. Trips \\ \hline
NoAction & 28533 $\pm$ 6346 & 8845.36 $\pm$ 1967.12 & N/A & N/A \\ \hline
OR-Optim-Pred & 46651 $\pm$ 7146 & 13222.79 $\pm$ 2259.70 & 1280.82 $\pm$ 91.69 & N/A \\ \hline
UR-Max & 194142 $\pm$ 46204 & 60015.82 $\pm$ 14216.89 & 168.27 $\pm$ 918.51 & 4559 $\pm$ 951 \\ \hline
UR-Heavy & 56151 $\pm$ 9891 & 17425.35 $\pm$ 3105.40 & -18.60 $\pm$ 105.77 & 751 $\pm$ 123 \\ \hline
UR-Light & 32315 $\pm$ 7155 & 10040.59 $\pm$ 2266.36 & -23.07 $\pm$ 73.27 & 77 $\pm$ 18 \\ \hline
\end{tabular}
\caption{Comparison of customer-based relocations in the case of \emph{Madrid}. Average daily indicators are reported (\emph{Utility} and \emph{Profit}) as well as the average daily \emph{Cost} and number of \emph{Additional Trips} generated by the incentives. The top table reports results when cars were initially placed with the \emph{Balanced First Placement} and the bottom table is for the \emph{Worst First Placement}.}
\label{tab:ch4_expe3_madrid}
\end{table}
\paragraph{Madrid Case.}
As expected, when ranking the three customer-based strategies regarding their average daily utility, the strategy having the highest daily utility has also the highest rate of incentive acceptation and is \emph{UR-Max}, see Table~\ref{tab:ch4_expe3_madrid}.
In this case, each time a car was located in a \emph{Low Demand Area} (\emph{LDA}) or \emph{Medium Demand Area} (\emph{MDA}) it would be immediately picked up by a customer.
This customer would receive an incentive to do his trip and drop the car at the end of his trip either in a \emph{LDA}, \emph{MDA} or \emph{High Demand Area} (\emph{HDA}).
In the first two cases the car would be picked up several minutes later through the same mecanism.
In the case of a \emph{HDA} the car would be picked up within the hour since the probability of departure in cells of this area is high.
When summing up the incentives given to the customers, the actual cost for each of customer-based strategies is low when compared to \emph{OR-Optim}.
In the case of \emph{UR-Max}, on average it costs to the operator 83€/day ($\pm$ 469€) (resp. 168.27€/day $\pm$ 918.51€) when the initial fleet distribution is \emph{BFP} (resp. \emph{WFP}).
For both \emph{UR-Heavy} and \emph{UR-Light} this cost is negative, meaning that on average each day the operator actually earns money thanks to the penalties.
Overall, if the operator is applying only incentives while expecting a reasonable incentive acceptation rate from the customers (\emph{UR-Light}), the operator can improve it service compared when \emph{NoAction} is done.
However, in a real service the cars would need to be recharged or be under maintenance, so an approach using only incentives can only work during a simulation.
Staff should still be dedicated to the fleet distribution, i.e to know which cars should be recharged first and where fully charged ones should be placed.
In the case of \emph{Madrid}, an hybrid approach using both incentives and operator-based relocations could be used.
\begin{table}[!bt]
\centering
\small
\begin{tabular}{|l|r|r|r|r|}
\hline
Paris-BFP & Utility & Profit (€) & Cost (€) & Add. Trips \\ \hline
NoAction & 6783 $\pm$ 1678 & 2102.75 $\pm$ 520.21 & N/A & N/A \\ \hline
OR-Optim-Simu & 8568 $\pm$ 1519 & 1682.71 $\pm$ 485.65 & 973.53 $\pm$ 47.28 & N/A \\ \hline
UR-Max & 8197 $\pm$ 5539 & 2471.20 $\pm$ 1358.67 & 69.83 $\pm$ 377.13 & 211 $\pm$ 197 \\ \hline
UR-Heavy & 11709 $\pm$ 2043 & 3660.71 $\pm$ 732.92 & -30.93 $\pm$ 142.57 & 146 $\pm$ 24 \\ \hline
UR-Light & 7693 $\pm$ 1684 & 2461.77 $\pm$ 673.10 & -77.00 $\pm$ 175.15 & 16 $\pm$ 5 \\ \hline
\hline
\hline
Paris-WFP & Utility & Profit (€) & Cost (€) & Add. Trips \\ \hline
NoAction & 5274 $\pm$ 1292 & 1634.86 $\pm$ 400.49 & N/A & N/A \\ \hline
OR-Optim-Simu & 7525 $\pm$ 1633 & 1331.68 $\pm$ 528.31 & 988.97 $\pm$ 53.28 & N/A \\ \hline
UR-Max & 8395 $\pm$ 4525 & 2515.94 $\pm$ 988.83 & 86.53 $\pm$ 464.21 & 214 $\pm$ 157 \\ \hline
UR-Heavy & 10411 $\pm$ 2460 & 3254.29 $\pm$ 789.21 & -26.90 $\pm$ 97.32 & 130 $\pm$ 31 \\ \hline
UR-Light & 6125 $\pm$ 1520 & 1960.95 $\pm$ 476.98 & -62.20 $\pm$ 75.29 & 13 $\pm$ 5 \\ \hline
\end{tabular}
\caption{Comparison of customer-based relocations in the case of \emph{Paris}. Average daily indicators are reported (\emph{Utility} and \emph{Profit}) as well as the average daily \emph{Cost} and number of \emph{Additional Trips} generated by the incentives. The top table reports results when cars were initially placed with the \emph{Balanced First Placement} and the bottom table is for the \emph{Worst First Placement}.}
\label{tab:ch4_expe3_paris}
\end{table}
\paragraph{Paris Case.}
Countrary to the previous case, in \emph{Paris} the strategy \emph{UR-Max} does not yield the best average daily utility when compared to the other relocation Strategies, see Table~\ref{tab:ch4_expe3_paris}.
For both \emph{BFP} and \emph{WFP}, the \emph{UR-Max} is beaten by a \emph{UR-Heavy} while the incentive acceptation rate is higher for the former.
The daily measures of the utility during the simulation, see Figure~\ref{fig:ch4_expesimu3_paris_utility_bfp} for \emph{BFP} and \ref{fig:ch4_expesimu3_paris_utility_wfp} for \emph{WFP}, show that the utility of the service when using \emph{UR-Max} is under \emph{OR-Optim} every day for the two last weeks.
At the beginning of the simulation, all cars present in the \emph{LDA} and \emph{MDA} are being used because of the incentives.
But as time passes, the fleet distribution shifts such that cells in \emph{HDA} regroups the cars, as shown in the heatmap of the fleet distribution at the end of the simulation in Figure~\ref{fig:ch4_expesimu3_paris_urmax}.
Unlike in \emph{Madrid}, the usage rate in cells from \emph{HDA} is low compared to the usage that would be necessary to balance the cell outflux of cars with the influx.
Thus, less cars can be used by customers in the city in general.
This issue does not arise in the case of \emph{UR-Heavy} and \emph{UR-Light}, since the incentive acceptation rate induce a lesser departure probability increase as well as a lesser destination change than in the \emph{UR-Max} case.
It keeps the fleet more spread out in the city and increase the probability of a departure in the whole city, since all the cars are not regrouped into only a dozen of cells.
Like in \emph{Madrid} case, if the operator's objective is to increase the usage rate of the service and its expected profitability, \emph{UR-Light} can be used.
However with a service having a low usage without incentives, it is uncertain that the hypothesis of the incentive acceptation rate increase from \emph{UR-Light} is correct.
\begin{table}[!bt]
\centering
\small
\begin{tabular}{|l|r|r|r|r|}
\hline
Washington-BFP & Utility & Profit (€) & Cost (€) & Add. Trips \\ \hline
NoAction & 25546 $\pm$ 4335 & 7919.38 $\pm$ 1343.78 & N/A & N/A \\ \hline
OR-Optim-Simu & 30318 $\pm$ 3558 & 8260.72 $\pm$ 1124.39 & 1157.23 $\pm$ 50.59 & N/A \\ \hline
UR-Max & 41164 $\pm$ 24074 & 12685.89 $\pm$ 7123.88 & 75.03 $\pm$ 391.46 & 423 $\pm$ 296 \\ \hline
UR-Heavy & 48250 $\pm$ 3814 & 15042.15 $\pm$ 1347.16 & -84.77 $\pm$ 259.95 & 245 $\pm$ 17 \\ \hline
UR-Light & 29115 $\pm$ 4261 & 9134.03 $\pm$ 1578.76 & -108.50 $\pm$ 318.04 & 25 $\pm$ 5 \\ \hline
\hline
\hline
Washington-WFP & Utility & Profit (€) & Cost (€) & Add. Trips \\ \hline
NoAction & 22074 $\pm$ 6075 & 6842.86 $\pm$ 1883.37 & N/A & N/A \\ \hline
OR-Optim-Simu & 27289 $\pm$ 5592 & 7267.58 $\pm$ 1782.56 & 1171.97 $\pm$ 54.86 & N/A \\ \hline
UR-Max & 40138 $\pm$ 11101 & 12444.73 $\pm$ 3438.14 & -1.97 $\pm$ 42.49 & 398 $\pm$ 110 \\ \hline
UR-Heavy & 40021 $\pm$ 12272 & 12571.93 $\pm$ 3745.99 & -165.43 $\pm$ 142.90 & 196 $\pm$ 67 \\ \hline
UR-Light & 24640 $\pm$ 6903 & 7824.80 $\pm$ 2087.48 & -186.47 $\pm$ 133.22 & 20 $\pm$ 8 \\ \hline
\end{tabular}
\caption{Comparison of customer-based relocations in the case of \emph{Washington}. Average daily indicators are reported (\emph{Utility} and \emph{Profit}) as well as the average daily \emph{Cost} and number of \emph{Additional Trips} generated by the incentives. The top table reports results when cars were initially placed with the \emph{Balanced First Placement} and the bottom table is for the \emph{Worst First Placement}.}
\label{tab:ch4_expe3_washington}
\end{table}
\paragraph{Washington Case.}
The results from the simulation of customer-based strategies in the case of \emph{Washington} leads to similar conlusions than in \emph{Paris}.
Cars also tends to regoup in the \emph{HDA} cells, see the heatmap of the fleet distribution at the end of the simulation in Figure~\ref{fig:ch4_expesimu3_washington_urmax}.
This heatmap shows that only 6 \emph{HDA} cells regroups more than 90\% of the fleet at the end of the simulation.
The details for the daily records of the utility are shown Figure~\ref{fig:ch4_expesimu3_washington_utility_bfp} for \emph{BFP} and Figure~\ref{fig:ch4_expesimu3_washington_utility_wfp} for \emph{WFP}.
After the stabilization of the service's performance for all strategies but \emph{UR-Max}, the last two weeks shows that \emph{OR-Optim} still perform better each day than \emph{UR-Light}.
With the expected high incentive acceptation rate from \emph{UR-Heavy}, the simulation of this strategy shows that its daily utility would be twice than for \emph{NoAction} on average.
Like for the \emph{Paris} case, \emph{UR-Light} costs less than \emph{OR-Optim} while having an equivalent increase in daily utility.
However as for the \emph{Paris} case, the cost of the staff needed to move cars for recharging and maintenance is not taken into account.
In the case of\emph{UR-Light}, this would be fully added to the cost while it could be lessened for \emph{OR-Optim} if a solver-based optimization problem was formulated to include it.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PARIS FIGURES %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=1\textwidth]{figure/ch4_expesimu3_paris_urmax.jpeg}}
\caption[URMax Last Fleet Distribution WFP Paris]{\emph{Paris} case: heatmap of the fleet distribution after 30 days of simulation. Green cells denotes a low number of cars in the cells and red is a high amount. The number is each cell is the number of cars in the cell.}
\label{fig:ch4_expesimu3_paris_urmax}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu3_paris_utility_bfp.jpeg}}
\caption[Paris Simulation Utility Performance Expe3 BFP Placement]{\emph{Paris} case: curves of the expected \emph{Utility} (in minutes) of the \emph{Paris} service when the operator does nothing (\emph{NoAction}), use \emph{OR-Optim} relocation strategies or customer incentives (\emph{UR-Max}, \emph{UR-Heavy}, \emph{UR-Light}). Fleet distribution initialization is following the \emph{Balanced First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu3_paris_utility_bfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu3_paris_utility_wfp.jpeg}}
\caption[Paris Simulation Utility Performance Expe3 WFP Placement]{\emph{Paris} case: curves of the expected \emph{Utility} (in minutes) of the \emph{Paris} service when the operator does nothing (\emph{NoAction}), use \emph{OR-Optim} relocation strategies or customer incentives (\emph{UR-Max}, \emph{UR-Heavy}, \emph{UR-Light}). Fleet distribution initialization is following the \emph{Worst First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu3_paris_utility_wfp}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% WASHINGTON FIGURES %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.95\textwidth]{figure/ch4_expesimu3_washington_urmax.jpeg}}
\caption[URMax Last Fleet Distribution WFP Washington]{\emph{Washington} case: heatmap of the fleet distribution in \emph{Washington} after 30 days of simulation. Green cells denotes a low number of cars in the cells and red is a high amount. The number is each cell is the number of cars in the cell.}
\label{fig:ch4_expesimu3_washington_urmax}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu3_washington_utility_bfp.jpeg}}
\caption[Washington Simulation Utility Performance Expe3 BFP Placement]{\emph{Washington} case: curves of the expected \emph{Utility} (in minutes) of the \emph{Washington} service when the operator does nothing (\emph{NoAction}), use \emph{OR-Optim} relocation strategies or customer incentives (\emph{UR-Max}, \emph{UR-Heavy}, \emph{UR-Light}). Fleet distribution initialization is following the \emph{Balanced First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu3_washington_utility_bfp}
\end{figure}
\begin{figure}[h]
\centering
\makebox[\textwidth][c]{\includegraphics[width=0.8\textwidth]{figure/ch4_expesimu3_washington_utility_wfp.jpeg}}
\caption[Washington Simulation Utility Performance Expe3 WFP Placement]{\emph{Washington} case: curves of the expected \emph{Utility} (in minutes) of the \emph{Washington} service when the operator does nothing (\emph{NoAction}), use \emph{OR-Optim} relocation strategies or customer incentives (\emph{UR-Max}, \emph{UR-Heavy}, \emph{UR-Light}). Fleet distribution initialization is following the \emph{Worst First Placement}. One x-tick is a Sunday.}
\label{fig:ch4_expesimu3_washington_utility_wfp}
\end{figure}
\FloatBarrier
\section{Conclusion}
The three experiments assessed the performance of a relocation strategy based on the methodology proposed in Chapter~\ref{ch:method}.
The first experiment compared three baselines, \emph{NoAction}, \emph{OR-Greedy-Pred} and \emph{OR-Greedy-Simu}, against proposed relocation strategies, \emph{OR-Optim-Pred} and \emph{OR-Optim-Simu}.
In this experiment for all the case studies, the proposed relocation strategy managed to have the lowest relocation cost on average every day.
In the case of \emph{Madrid}, using relocations improved the service with the baselines \emph{OR-Greedy} having a better expected profit than the proposed relocation strategies by a small margin.
In the case of \emph{Paris}, relocations decreased the expected profit while increasing the utility.
Unnecessary relocations had been made because of a misestimation of the \emph{global} relocation cost by the optimization methods.
In \emph{Washington}, the proposed relocation strategies had a better utility and expected profit than the baseline.
The expected profit was higher because the proposed method had lower relocation costs compared to the baseline.
The second experiment assessed the impact of the number of jokey used to make relocations.
In all cases, a higher count of jockeys was associated with a higher daily utility, up to a plateau that depends on the case study.
This experiment shown that the simulation can be used to estimate the \textquote{optimal} number of jockey for each service.
In the case of \emph{Madrid}, the gap of relocation cost was increased between the baseline and the proposed method when the count of jockeys increased.
That is, the proposed method gained in efficiency as jockeys are added.
In \emph{Paris}, adding jockeys increased the utility while decreasing the expected profit.
It further confirmed that in this case, relocation strategies cannot be profitable because the costs of relocation are not counterbalanced by the additional revenues.
For \emph{Washington}, a similar conclusion was drawn: adding jockeys increased the utility but lower the expected profit.
The third experiment compared the proposed relocation strategy against customer-based strategies.
It shown that in all cases, the realistic customer-based strategy \emph{UR-Light} improved the utility and expected profit with lower costs compared to the proposed relocation strategy.
The proposed relocation strategy had a better daily utility and expected profit than \emph{UR-Light} and lower ones than \emph{UR-Heavy}.