Building on the success of the earlier timetabling competitions, the Integrated Healthcare Timetabling Competition 2024 intends to stimulate research focusing on the challenges of integrated optimization problems. The competition will officially begin 1st September 2024, and will run until 31 March 2025. The award ceremony will take place during EURO 2025 on 22-25 June 2025 in Leeds (UK).

The considered optimization problem integrates three critical problems in healthcare: surgical case planning, patient admission scheduling and nurse-to-room assignment. The complete problem description and an overview of the competition's rules can be found here.

The top three competitors will receive a cash prize (€1100 for first, €700 for second, €400 for third), as well as one free registration to the EURO 2025 conference. An additional prize of €200 is awarded for the best participant that uses only open-source software. There is no limitation on the size of the competing teams.

Dates

Submission

Participants should submit the following by 1 March 2025 AoE (strict deadline) to the competition email:

  1. A file (txt or PDF) containing the name of the team, its participants with their affiliations, the email of the contact person, and a description of the search method and the tools used. The style (formal or informal) and the length (a few lines or several pages) of the description are free.
  2. A table (csv, xlsx, or odt) with two columns: name of the instance and total score. If no feasible solution has been found for an instance, replace the score with the symbol '-'.
  3. A compressed file (zip, 7x, or tar) with a folder with all the solutions. The name of the files should be sol_i01.json, ..., sol_i30.json

The email subject line should start with [IHTC-2024-Submission] and include the name of your team.

In case of multiple submissions by the same team, only the last one will be considered (please refrain from sending many submissions, and try to send directly the final version). No submission will be accepted after the deadline.

At this stage, we do not require the source code, but please be ready to provide it (with suitable instructions) for possible verification. The code will be requested only to the finalists and will be treated as confidential.

Conferences

A dedicated session on IHTC-2024 will take place within the Automated Timetabling stream at EURO 2025 in Leeds (22–25 June). The session is open to anyone who has worked on any aspect of solving the IHTC problem. Participants are welcome to submit an abstract and present their work, regardless of whether they reached the final or even successfully submitted their solutions within the IHTC-2024 deadline.

The deadline for abstract submission to EURO 2025 is March 8th (for more details, visit the call for abstracts page). For submissions to the IHTC-2024 session, please use the code: dbd431da

We also aim to organize a dedicated session at ORAHS 2025 in Trondheim (6–11 July). If you are interested in presenting your work there, please let us know. If there is enough interest, we will request one or more IHTC-2024 sessions from the organizers.

In this case, the deadline for abstract submission is April 7th, 2025 (for more details, visit the submissions page).

Instances

Instances are provided in JSON format with the fixed structure that is described in detail in the specification document. Each instance is contained in a single file. We provide a public dataset composed of 30 instances, named i01, … i30, with a scheduling period ranging from 2 to 4 weeks, and a number of patients ranging from about 50 to about 500. In addition, we provide 10 test instances, test01, … test10 for testing and debugging purposes. For the test dataset, we also provide a solution for each specific instance.

Test dataset

The test dataset can be downloaded here. Solutions for these instances can be found here.

Public dataset

Validator

The validator that certifies the quality of a given solution is provided as a C++ source code and should be compiled using, for example, the GNU compiler g++. The compilation requires that file json.hpp (available here) is in the path. The validator receives as command line parameters the instance and the solution files, as shown in the following example:

./IHTP_Validator.exe toy.json sol-toy.json

To get additional details on constraint violations and individual objectives, the keyword verbose can be added as a third parameter.

Participants

We are pleased to share that 32 teams submitted their solvers to the IHTC-2024 competition. We would like to thank all participating teams for their contributions.

After collecting and validating the results, we are pleased to announce the finalists (listed in alphabetical order):

Team Name Affiliation Team members
ORTEC independent Wouter Kool, Lotte Berghman, Martijn van Brink, Charlie Ye, Eva van Rooijen, Judith Mourits,Per Kampman
SDU-IMADA University of Southern Denmark Ahmad Othman,Marco Chiarandini
Twente University of Twente Daniela Guericke, Rolf van der Hulst, Asal Karimpour, Ieke Schrader, Matthias Walter
UGent Mippets Ghent University Dries Goossens, David Van Bulck, Samuel Bakker, Karel Devriesere,Lisa Garcia Tercero
v777v independent Venislav Varbanov 

Additionally, we acknowledge some of the other teams (listed in alphabetical order) that submitted their work within the deadline:

Team Name Affiliation Team members Solver
BIA Team St. Petersburg State University  Polina Agzyamova, Ekaterina Kalacheva, Igor Lyabakin, Aleksejs Lozkins
Bielefeld Healthcare Optimizers Bielefeld University Daniel Wetzel, Michael Römer, Arne Henning Witteborg, Jakob Schulte
ComBend RWTH Aachen University Simon Paulus, Felix Engelhardt, Tabea Brandt, Johanna Leweke
DIAM Delft Institute of Applied Mathematics Frank de Meijer, Cindy Pistorius
4th Dimension Koç University Ceyda Özdeş, Ege Erdem Özlü, İdil İşsever, Ezgi Aydın, Zeynep Aydın, Enis Ata Göğüş, Tan Karahasanoğlu
GIPS Technical University of Darmstadt/King’s College London/Philipps-Universität Marburg Maximilian Kratz, Steffen Zschaler, Jens Kosiol, Andy Schürr
Greedys Anatomy University of Campinas Ainaras Marão, Bruna Daher de Albuquerque, Ieremies Vieira, João Paulo Francisco da Silva, Lucas Ribeiro Bortoletto, Rachel Vanucchi Saraiva, Rafael Crivellari Saliba Schouery, Renan Fernando Franco da Silva, Vitor Antonio Pimenta Silva
Guido-Candelieri University of Calabria/Università degli Studi di Milano, Bicocca Rosita Guido, Antonio Candelieri
Health Sabauda Politecnico di Torino Daniele Giovanni Gioia, Lorenzo Mazza, Manuel Macis, Edoardo Fadda, Paolo Brandimarte
HEIG-VD Haute Ecole d’Ingénierie et de Gestion du Canton de Vaud (HEIG-VD)/University of Applied Sciences of Western Switzerland (HES-SO) Efstratios Rappos, Jérôme Varani, Stephan Robert
ManyWorlds Combinatorial Programming independent Jo Devriendt
MetaOptiMinds Dayalbagh Educational Institute  Pihu Agarwal, Sant Saran Vuppuluri, Prem Prakash Vuppuluri
Michael Marte independent Michael Marte
Montéfiore University of Liege Laurie Boveroux, Guillaume Derval, Erwann Estève, Manon Gérard, Quentin Louveaux, Bardhyl Miftari
NightShift Polytechnique Montreal Nohaila Ahssinou, Flore Caye, Prakash Gawas,Erfaneh Nikzad,Camille Pinçon
Operation STOR-i Time(tabling) Lancaster University Matthew Davison, Adam Page, Ben Lowery, Graham Burgess, Rebecca Hamm
Saturn independent Daniil Sumin, Ivan Rodin
Solution Seekers Technical University of Munich Emily Lex, Fabian Fabian Schäfer
Spindox_Applied_AI Sapienza University of Rome Francesco Romito, Raffaele Mariosa, Alessandro Pannone, Carlo Caligaris, Silvia Colasante, Marco Taiuti, Gabriella Stecco, Immacolata Basile, Tommaso Colombo, Graziano Galiano
Team 42 independent Franco Peschiera  github
timeTUcare TU Wien Lucas Kletzander
Team TUM Operations research Technical University of Munich Patrick Poremba
Unical_deHealth_2 University of Calabria Cristian Belfiore, Domenico Conforti
Wiesław Dudek Timetables, Kraków, Poland independent Wiesław Dudek
WUST Wroclaw University of Science and Technology Konrad Gmyrek, Paweł B. Myszkowski

Results

Below, we report the best results per instance achieved by participants, adhering to the IHTC-2024 competition rules (10-minute timeout and maximum 4-threads parallelism). Additionally, we provide the corresponding .json file containing the reported solutions for reference:

Instance Cost Solution
i01 3842 sol_i01.json
i02 1264 sol_i02.json
i03 10490 sol_i03.json
i04 1884 sol_i04.json
i05 12760 sol_i05.json
i06 10671 sol_i06.json
i07 5026 sol_i07.json
i08 6291 sol_i08.json
i09 6682 sol_i09.json
i10 20820 sol_i10.json
Instance Cost Solution
i11 25938 sol_i11.json
i12 12430 sol_i12.json
i13 17328 sol_i13.json
i14 9746 sol_i14.json
i15 12486 sol_i15.json
i16 10139 sol_i16.json
i17 40535 sol_i17.json
i18 37660 sol_i18.json
i19 44587 sol_i19.json
i20 29098 sol_i20.json
Instance Cost Solution
i21 24703 sol_i21.json
i22 47861 sol_i22.json
i23 37550 sol_i23.json
i24 33221 sol_i24.json
i25 11517 sol_i25.json
i26 64613 sol_i26.json
i27 51828 sol_i27.json
i28 75172 sol_i28.json
i29 12475 sol_i29.json
i30 37943 sol_30.json

File formats

Problem instance files

The problem instances are provided as json files. A small toy example can be found here. The header section in each file specifies general information such the total number of days in the scheduling period, the number of different nurse skill_levels, the list of types of daily shifts shift_types, the enumeration of different age_groups considered in the scheduling and the instance-specific weight set.

		
		"days": 7,
		"skill_levels": 3,
		"shift_types": [
			"early",
			"late",
			"night"
		],
		"age_groups": [
			"infant",
			"adult",
			"elderly"
		],
		"weights": {
			"room_mixed_age": 5,
			"room_nurse_skill": 1,
			"continuity_of_care": 1,
			"nurse_eccessive_workload": 1,
			"open_operating_theater": 50,
			"surgeon_transfer": 5,
			"patient_delay": 10,
			"unscheduled_optional": 300
		},
		...		
		

The next section presents the list of occupants, each characterized by a unique id along with their gender group and age_group as well as the duration of their stay length_of_stay. Two arrays indicate the workload_produced, and the skill_level_required for each shift of their stay. Additionally, each occupant is linked to a room_id, specifying their assigned room.


		"occupants": [
			{
				"id": "a0",
				"gender": "A",
				"age_group": "elderly",
				"length_of_stay": 2,
				"workload_produced": [2, 1, 1, 2, 3, 2],
				"skill_level_required": [1, 2, 0, 0, 0, 0],
				"room_id": "r21"
			},
			...
		]
		

Each patient, as per occupant, is identified by an id, assigned a gender group, an age_group, and their length_of_stay in the hospital. Information regarding the workload_produced, and the skill_level_required for each shift of their stay is also provided.

The patient section includes additional details pertaining to scheduled surgeries. The mandatory field denotes whether a patient is required to be scheduled must be scheduled within the given period, while surgery_release_day indicates the earliest day for surgery (and hospital admission). For mandatory patients, the field surgery_due_day signifies the latest possible surgery date, while optional patients do not have this attribute. Further surgery details include the surgery_duration (in minutes) and the pre-assigned surgeon (surgeon_id).

Additionally, each patient is accompanied by a list of incompatible_room_ids which specifies all the rooms the patient cannot be assigned to.


		"patients": [
			{
				"id": "p5",
				"mandatory": true,
				"gender": "A",
				"age_group": "adult",
				"length_of_stay": 2,
				"surgery_release_day": 1,
				"surgery_due_day": 4,
				"surgery_duration": 30,
				"surgeon_id": "s0",
				"incompatible_room_ids": [
					r1"
				],
				"workload_produced": [3, 2, 1, 1, 1, 1],
				"skill_level_required": [0, 2, 0, 2, 1, 0]
			}
			...
		 ]
		

The nurses section comprises a list of individual nurses, each with their unique identifier id, skill_level, and the list of their working shifts. Each working shift includes the day of the shift, the shift type (shift), and the maximum workload max_load allowed for that shift.


		"nurses": [
			{
				"id": "n00",
				"skill_level": 0,
				"working_shifts": [
					{
						"day": 0,
						"shift": "early",
						"max_load": 10
					},
					{
						"day": 1,
						"shift": "night",
						"max_load": 5
					},
					...
				]
			},
			...
		]
		

Each surgeon has an id and a max_surgery_time list specifying their availability (in minutes) on each day of the scheduling period. Similarly, each operating theater is identified by an id accompanied by an availability list indicating the theater’s availability (in minutes) for each day of the scheduling period. Finally, to each room is associated an id and a capacity (constant during the entire scheduling period).


		"surgeons": [
			{
				"id": "s0",
				"max_surgery_time": [0, 360, 0, 600, 480, 0, 0, 600]
			},
			...
		  ],
		"operating_theaters": [
			{
				"id": "t0",
				"availability": [0, 600, 720, 600, 600, 720, 720]
			},
			...
		],
		"rooms": [
			{
				"id": "r0",
				"capacity": 2
			},
		   ...
		]
		
Solution files

The solution file format is divided into two sections: one about patients and one about nurses. A small toy example can be found here.

The patient section comprises of the list of admitted patients. For each admitted patient it’s necessary to state their id their admission_day as well as the ids representing the room and operating theater they have been assigned to. Non-admitted patients can be either omitted from the solution or be present with the syntax "admission_day": "none".

The nurse section should contain the list of assignments for each nurse. Each assignment should include the day and shift of the working shift and the list of rooms covered by the nurse. If no rooms are covered, the assignment may be omitted or the list of rooms may be empty. If a nurse does not cover any rooms in any of their work shifts, they can be omitted completely.


		{
			"patients": [
				{
					"id": "p00",
					"admission_day": 4,
					"room": "r3",
					"operating_theater": "t0"
				},
				{
					"id": "p02",
					"admission_day": "none"
				},
				...
			],
			"nurses": [
				{
					"id": "n00",
					"assignments": [
						{
							"day": 0,
							"shift": "early",
							"rooms": ["r1", "r4"]
						},
						{
							"day": 1,
							"shift": "night",
							"rooms": ["r4", "r5"]
						},
						{
							"day": 2,
							"shift": "night",
							"rooms": []
						},
						...
					]
				},
				...
			]
		}
		

Organizers

The organization team consists of the following people:


Sponsors

The competition is supported by the following organizations:

Contact

For any questions or comments, please contact us the organizers using this email address.