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.
-
An article to be sumbmitted to the Special Issue on the IHTC-2024 of the journal /Operations Research, Data Analytics and Logistics/. (In preparation.)
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:
@software{Othman_SDU-IMADA_Entry_to_2025,
author = {Othman, Ahmad Mahir and Chiarandini, Marco},
doi = {10.5281/zenodo.17726567},
month = aug,
title = {{SDU-IMADA Entry to the IHTC 2024}},
url = {https://github.com/Arthod/ihtc2024-imada-submission},
year = {2025}
}
This project is licensed under the Apache License 2.0.