Deep Learning–Assisted Appointment Scheduling Under Uncertainty

Published Online:https://doi.org/10.1287/ijds.2025.0090

Supplemental Material

ijds.2025.0090.cd.zip


Description of Software and Data

The code and data in the zip file referenced above are a snapshot of the software and data that were used in the research reported in the paper "Deep Learning-Assisted Appointment Scheduling Under Uncertainty" by Amirhossein Moosavi, Onur Ozturk, Rafid Mahmood, and Jonathan Patrick.

The goal of this repository is to replicate the numerical experiments in the paper.

Computer and Software Environment

The following describes the computer hardware conditions and software environment on which the authors produce the results reported in the paper.

All models are coded in PyCharm 2020.3.5 in which the interpreter is Python 3.10. We set the maximum CPU time of 600 minutes for each solution approach. Experiments are run on an Intel(R) Xeon(R) Platinum 8160 CPU @2.10GHz with 32 GB of DDR4 RAM.

Dependencies

The code in this repository requires the following dependencies. The dependency version number corresponds to the version of the package with which the code was tested.

  • tensorflow 2.8.0
  • numpy 2.0.2
  • pandas 2.3.3
  • scikit-learn 1.6.1
  • scipy 1.13.1
  • openpyxl 3.1.5
  • gurobipy 10.0.1
  • seaborn 0.13.2
  • matplotlib 3.9.4

Installation

The code and data are provided as a single compressed (.zip) archive. After downloading and extracting the archive, the directory contains two datasets: theoretical and realistic instances. Before running the code, you should install the above Python libraries. Once everything is installed, the scripts can be run directly in Python to reproduce the results reported in the paper.

Reproducibility Workflow

To run the codes, we should first take the following steps.

  • Generate input data for synthetic data uncertainty value generator (Py_InputSimulation.py)
    • Input: the excel document for the instance
    • Output: simulation input stored in a .npz file (e.g., ‘simulation_input_cheo.npz’)
    • Run time: <1 min
  • Process the synthetic data generated by the simulation model (PY_CNN_processData.py)
    • Input: simulation input and output stored in multiple .npz files
    • Output: predictive model (FNN/CNN) input stored in .npz file (e.g., ‘CNN_Data_aocheo’)
    • Run time: < 4 hours
  • Run the predictive model
    • For the FNN model (Py_FNN_Main.py):
      • Input: predictive model (FNN/CNN) input stored in a .npz file
      • Output: model architecture and best weights stored in a .npz and a .weights.h5 files
      • Run time: < 10 mins
    • For the CNN model (Py_CNN_Main.py):
      • Input: predictive model (FNN/CNN) input stored in a .npz file
      • Output: predictive model architecture and best weights stored in a .npz and a .weights.h5 files
      • Run time: < 30 mins
  • Generate input data for the optimization algorithms
    • Input: simulation input and predictive model architecture and best weights
    • Output: input for the optimization algorithms (e.g., ‘optimization_input0_aoCNN_cheo1’)
    • Run time: <1 min
To reproduce the results in Figure 4
  • Data File: theoretical
  • Code File: First run Py_CNN_kFold.py for all theoretical instances, then use Py_Rep_BoxplotsCNN.py
  • Output: The first code generates the kFold performance of the CNN model for theoretical instances (each stored in a .npz file); the second code generates the graph
  • Run Time at the Above-Specified Computer Conditions: ~6 hours (in total)
To reproduce the results in Figure 5
  • Data File: realistic
  • Code File: Run both Py_CNN_kFold.py and Py_FNN_kFold.py, as well as nondeterministic/Py_Alg_Main.py (using the WC policy) for the realistic instance, then run Py_Rep_CNN_FNN_Figures.py
  • Output: The first codes generate the the kFold performance of the FNN and CNN models for realistic instances (each stored in a .npz file); the second code computes the performance of the partial MIP algorithm for the realistic instance; the third code generates the graphs
  • Run Time at the Above-Specified Computer Conditions: ~320 hours (in total)
To reproduce the results in Figure 6
  • Data File: realistic
  • Code File: Run both deterministic/Py_Alg_Main.py and nondeterministic/Py_Alg_Main.py ((using the WC policy) for the realistic instance, then run Py_Rep_LineplotsOBJ.py
  • Output: The first two codes generate the objective function values for the deterministic and non-deterministic models, the later code creates the graph
  • Run Time at the Above-Specified Computer Conditions: ~500 hours (in total)
To reproduce the results in Figure 7
  • Data File: realistic
  • Code File: Run both nondeterministic/Py_Alg_Main.py (using all policies) for the realistic instance, then run Py_Rep_LineplotsAnalyses.py
  • Output: The first code computes the objective function values for all different unpunctuality management policies, and the second code generates the graph
  • Run Time at the Above-Specified Computer Conditions: ~1,200 hours
To reproduce the results in Table A3, Figure 8A
  • Data File: theoretical
  • Code File: Run deterministic/Py_Alg_Main.py and deterministic/Py_Alg_fullModel.py for all theoretical instances
  • Output: The first code generates the objective function and CPU time values for the heuristic and partial-MIP algorithms, and the second code generates the same values for the MIP model
  • Run Time at the Above-Specified Computer Conditions: ~1000 hours
To reproduce the results in Table A4, Figure A9
  • Data File: theoretical
  • Code File: Run nondeterministic/Py_Alg_Main.py and deterministic/Py_Alg_fullModel.py for all theoretical instances
  • Output: The first code generates the objective function and CPU time values for the heuristic and partial-MIP algorithms, and the second code generates the same values for the MIP model
  • Run Time at the Above-Specified Computer Conditions: ~1400 hours
To reproduce the results in Table A5
  • Data File: theoretical
  • Code File: Once you run in earlier stages, you need to run Py_Rep_actionAnalysis.py for theoretical instances
  • Output: This code generates the assessment metrics for the partial-MIP algorithm
  • Run Time at the Above-Specified Computer Conditions: <30 mins
To reproduce the results in Figure A10
  • Data File: realistic
  • Code File: Run nondeterministic/Py_Alg_Main.py (using the WC policy) for both FNN and CNN models, then run Py_Rep_ActionCPUBoxplots.py
  • Output: The first code computes CPU times, and the second code creates the graph
  • Run Time at the Above-Specified Computer Conditions: ~50 hours
To reproduce the results in Figure A11
  • Data File: realistic
  • Code File: Run Py_CNN_Main.py for the realistic instance, then run Py_Rep_ChannelRemovalBoxplots.py
  • Output: The first code computes prediction errors, and the second code creates the graph
  • Run Time at the Above-Specified Computer Conditions: <1 hour
To reproduce the results in Figure A12
  • Data File: realistic
  • Code File: Run Py_CNN_Main.py and Py_CNN_Main_1D.py, then run Py_Rep_1D2DCNNBoxplots.py
  • Output: The first two codes calculate the prediction errors, and the second code creates the graph
  • Run Time at the Above-Specified Computer Conditions: <30 mins

Cite

To cite the contents of this repository, please cite both the paper and this repository using their respective DOIs.

Article: https://doi.org/10.1287/ijds.2025.0090
Software and Data Repository: https://doi.org/10.1287/ijds.2025.0090.cd

License

Copyright (c) (2026 Moosavi, Ozturk, Mahmood, Patrick)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

INFORMS site uses cookies to store information on your computer. Some are essential to make our site work; Others help us improve the user experience. By using this site, you consent to the placement of these cookies. Please read our Privacy Statement to learn more.