Skip to content

Various codes used to model HRTC under various stability definitions

License

Notifications You must be signed in to change notification settings

IP-MATCH/HRTC-Codes

Repository files navigation

This folder contains the code used for a number of experiments and simulations, as published in .

Usage

The codes should compile with the makefiles within each folder, once they have been edited to point to the installation directory for Gurobi 7.5.2.

Once compiled into a binary executable, the codes can each be run as follow (replace BINARY with the name of the binary)

./BINARY /path/to/input/files/ input-file.txt logfile.txt

where the input is given by /path/to/input/files/input-file.txt, and logfile.txt is a (possibly not yet existent) log file. The exact input file format is described below.

Models

The following tables show the various models implemented by these codes. For details on the M-values, see the paper as linked above.

Folder name Model
1_MM_PURE M1
2_MM_VI M2
3_MM_PREVI M3
4_MM_PREVICM M4
5_MM_PREVICMBV1 M5
6_MM_PREVICMBV2 M7
7_MM_PREVICMBV3 M9
8_MM_PREVICMBV1P M6
9_MM_PREVICMBV2P M8
A_MM_PREVICMBV3P M10
B_MM_PREVICMBV23 M11
C_MM_PREVIBV23 M12
D_MM_PREVICMBV123 M13
E_MM M13 as above
F_BIS M13 but with BIS stability
G_KPR M13 but with KPR stability
H_PLUS M13 but with KPR+ stability

File format

Each file contains one instance, and both HRT and HRTC instances use the same format. The first line in each file denotes s, the number of single doctors in the instance. The next line denotes c, the number of couples in the instance, and the third line marks h, the number of hospitals in the instance.

Following this, we have s+c lines with the doctors preferences. The first s lines are for each single doctor, where each line begins first with an identifier for the doctor (a number between 1 and s inclusive), and then a space separated list of the preferences of the doctor in descending order of preference. The next c lines give the preferences for the couples. Note that for couples, each line begins with two identifiers (one for each doctor) and then is followed by some number of pairs of integers. These preferences should be read two at a time. For instance, the line

17 19 3 3 2 2

indicates a couple whose doctors are identified as 17 and 19. The top preference of this couple is for both members to be assigned to hospital 3, and the second preference of this couple is for both members to be assigned to hospital 2.

Following the preferences for couples, we have h lines marking the hospitals' preferences. These begin with an identifier, which is followed by the capacity of the hospital, and then the preferences of that hospital over individual doctors. A hospitals' preference list may include ties, which are marked by brackets, and note that a hospital does not have preferences for the couple as a pair, but for the individual members of the couple.