# Outpatient Appointment Optimization: A Case Study of a Chemotherapy Service
## 6 Computational Results
### Instance Generation  
We use the test protocol and instances introduced in our previous work [2]. The dataset is published at [34]. Each instance has two sets of data: **resources availability** (seats \(M\), doctors \(D(j,h)\), nurses \(I(j,h)\), pharmacy unit \(F(j,h)\)), and **planning requests** (\(\{\Theta_{1},\Theta_{2},\ldots,\Theta_{n}\}\) with \(n\) number of patients).  
Figure 5: Example of **PMX** taken from [33]. Commencing with uniformly random two cut points, the subsequences passed to children (\(p_{1}\to c_{2}\); \(p_{2}\to c_{1}\)) defines the element map to swap (continuously if necessary) in case of duplication when copying parent information to children.  
Figure 6: Example of **PSM** taken from [33]. Randomly choosing two distinct elements then swapping them.  
The generator's data is based on the data of Hospital Center of Troyes (CHT) in France (2020). The instances are generated as follows:  
* The number of seats \(M\) is 30.
* Horizon is 4 weeks (\(J=28\)), and each day consists of 22 time slots (\(H=22\)).
* The maximal number of patients a nurse can monitor simultaneously: \(\Psi=6\).
* Human resources' presence are generated using a discrete uniform distribution (unif), of which the amount is an integer number varying between 0 (unavailable) and the maximum (fully available), noted as \(\text{unif}[0;\ M]\) with \(M\) the major bound the resource capacity. Historical data gives us \(N_{D}=5\), \(N_{I}=6\) maximal number of doctors and nurses, respectively. Unlimited resource such as pharmacy could use 1 to represent to up state (open) and 0 for down state (close). We divide further the resources' availability into four different scenarios to represent the reality: **- Uniform:**\(D(j,h)\sim\text{unif}[0;\ N_{D}]\); \(I(j,h)\sim\text{unif}[0;\ N_{I}]\); \(F(j,h)\sim\text{unif}[0;\ 1]\). **- Daily:** Similar to **Uniform**, but the distribution is repeated _daily_. **- Weekly:** Similar to **Uniform**, but the distribution is repeated _weekly_. **- Weekend:** Similar to **Uniform** but no resource available on weekends, simulating the current working schedule at the service.
* For each request of indexed \(i\) patient, we define the following: **-** Number of required sessions \(|\Theta_{i}|\sim\text{unif}[1;3]\). **-** Time-lag \(\Delta_{i,k}\sim\text{unif}[1;3]\), except \(\Delta_{i,1}=0\). **-** Consultation time \(p^{A}_{ijk}\sim\text{unif}[0;1]\) (yes or no). **-** Installation time \(p^{B}_{i,k}=1\). **-** Drug mixing time \(p^{C}_{ijk}\sim\text{unif}[0;3]\). **-** Authorization of a priori drug mixing \(e^{C}_{i,k}\sim\text{unif}[0;1]\) (yes or no). **-** Treatment time \(p^{D}_{i,k}\sim\text{unif}[0;3]\).
* \(N_{a}\), which is the total number of treatment sessions, takes a value from \(\{15;30;60;90;120;150;180;210\}\). In order to avoid service congestion, given the limited resources, we have fixed the maximum number of treatment sessions to 210.  
Using the generator implemented by Java 8 with its native random engine, we created ten instances for each scenario each \(N_{a}\), resulting in 320 test instances in total.  
All of the numerical tests were executed on the same machine with CPU Intel Core i7-9750H (2.6 GHz\(\sim\)4.5 GHz), and the time limit and the specific implementation of each method are defined as follows:  
* Solver CPLEX 12.10 solves the MILP within a time limit of 1 hour by using one CPU thread.
* Heuristic approaches are implemented purely on Java 8.
* Genetic algorithm's implementation based on Jenetic library 5.0 [35].