The code in this repository implements the solver submitted to IHTC-2024 competition by the team SDU-IMADA.
The members of the team are:
At the time of the competition, both members were affiliated to the Department of Mathematics and Computer Science (IMADA) of the University of Southern Denmark (SDU).
Out of 32 submissions in total to the competition, the submission by SDU-IMADA ranked 1st in the open-source only track and 2nd overall.
The C++ code is the submitted implementation of a heuristic algorithm for the integrated healthcare timetabling problem, which was the object of the IHTC-2024 competition. The algorithm is based on a multi-neighborhood local search guided first by simulated annealing and in the last phase of search by iterated local search. The algorithm is designed to be efficient and scalable, allowing it to handle all different problem instances of the competition within the time limit of 10 minutes on a common 2024 desktop machine utilizing a maximum of 4 threads.
The following documents provide more detailed descriptions of the algorithms and its performance:
-
The short report submitted contextually to the code pdf, together with a
.csvfile reporting the best results on the public instances and the certificates of these solutions. -
The presentation given at the EURO 2025 conference in Leeds. Abstract and slides pdf.
-
The peer-reviewed journal article describing the algorithm:
Ahmad Mahir Othman and Marco Chiarandini. A multi-neighborhood, lexicographic local search algorithm for the Integrated Healthcare Timetabling Competition 2024. Operations Research, Data Analytics and Logistics, 47:200513, 2026. https://doi.org/10.1016/j.ordal.2026.200513
The published article is available on ScienceDirect: https://www.sciencedirect.com/science/article/pii/S3050784726000152
The code is written in C++ 20 and is tested on Linux systems. It can be compiled using the included Makefile:
make
The Makefile is set up to compile the code with the GNU C++ compiler (g++) and
assumes that the source files are located in the src/ directory. The object
files will be placed in the build/obj/ directory, and the executable will be placed
in the build/ directory.
The executable can be run as follows with optional arguments:
./build/main [input=../data/ihtc2024_competition_dataset/i01.json] [seed=rnd] [output=out/sol_{...}.json] [debug_level=0]
where
inputis the input file with i01.json as default.seedis the seed with random as default.outputis the location to write the output file.debug_levelis the verbose level. Seeconfig.hfor more info.
For any questions, please do not hesitate to contact the authors via GitHub or open an issue in this repository.
If this software or its results contribute to your research, please cite as below:
@article{OTHMAN2026200513,
title = {A multi-neighborhood, lexicographic local search algorithm for the Integrated Healthcare Timetabling Competition 2024},
journal = {Operations Research, Data Analytics and Logistics},
volume = {47},
pages = {200513},
year = {2026},
issn = {3050-7847},
doi = {https://doi.org/10.1016/j.ordal.2026.200513},
url = {https://www.sciencedirect.com/science/article/pii/S3050784726000152},
author = {Ahmad Mahir Othman and Marco Chiarandini},
keywords = {Combinatorial optimization, Metaheuristics, Local search, Integrated Healthcare Timetabling}
}
This project is licensed under the Apache License 2.0.