Exact and Meta-Heuristic Approaches for Unrelated Parallel Machine Scheduling

Instances

We provide three sets of instances as described in both the Master's Thesis and the Paper:

  • Training Set (440 instances)
  • Validation Set (120 instances)
  • Real-Life Instances (14 instances)

For the training set as well as the validation set, along with the instance file (extension ".inst"), we provide a solution file (extension ".inst.soln"), which contains the zero-tardiness reference solution for the corresponding instance.

Note: As the P-style instances follow a different due date generation scheme, their reference solutions are essentially random solutions, and therefore not included.

Instance Format

The format is similar to those used by Vallada and Ruiz (2011) and Perez-Gonzalez et al. (2019). The following is a toy instance in our format, with two machines, three materials and three jobs:

Machines: 2
Materials: 3
Jobs: 3

Due Dates:
57      99      254

Materials:
1       2       3

Processing Times:
27      51
-1      22
21      48

Setup Times:
Machine 0:
0       75      87      122
120     0       38      95
61      84      0       67
77      121     101     0

Machine 1:
0       6       48      61
79      0       20      54
102     103     0       107
55      114     41      0

The top three lines describe the scalar data.

The Due Dates section is a tabulator-separated list of due dates, for each job. The first entry corresponds to the first job (#0), the second entry corresponds to the second job (#1), and so on.

The Materials section shows the material that is used by each job, and follows the same structure as the Due Dates. Note that the numbering for materials starts with one, as zero is reserved for the dummy job's material.

The Processing Times are given in a matrix format, where the lines correspond to jobs and the columns correspond to machines. The entry at row j and column m denotes the processing time of job j on machine m. The artificial entry -1 denotes that machine m is not eligible for processing job j. For example, machine #0 is not eligible for processing job #1.

The last part of the file are the Setup Times. It consists of one setup time matrix per machine, which follows a heading in the format Machine X. The setup time matrices have the dimensions (#Materials + 1) x (#Materials + 1), as the setup times are based on the materials rather than jobs. The entry in row p and column s shows the setup time required between the predecessor material p and successor material s on machine X. Since changes in tooling are not required if two successive jobs share the same material, the diagonals in the matrices are filled with zeros. It should be noted that the first row and column correspond to the dummy job's material. For example, the entry at the first column of the third row for machine 1 shows that a setup time of 102 is required when a job with material #2 follows the dummy job (with material #0) on machine 1. Note that the first row of each matrix corresponds to the initial setup times, while the first column corresponds to the final clearing times.

Solution Format

Our solution format is a sequence of machine and job IDs, separated by semicolons. The first number in each row denotes the machine ID. The following numbers in each row correspond to the job IDs in their scheduled sequence on the machine.

An example solution for the toy problem instance looks as follows:

[Schedules]
0;
1;0;1;2

The first machine (#0) has an empty machine schedule, while the second machine (#1) has the jobs #0, #1 and #2 scheduled in this sequence.

The completion times of the jobs in this solution can be calculated as follows:

Dummy:   0 (per definition)
Job #0:  0 +   6 + 51 =  57
Job #1: 57 +  20 + 22 =  99
Job #2: 99 + 107 + 48 = 254

Because a final clearing time is required after the completion of the last job on a machine, it still needs to be taken into consideration for the makespan. In this case, a final clearing time of 55 is required. Thus, we arrive at a makespan of 309. Checking the completion times against the due dates shows that no job is tardy (i.e. the total tardiness is zero).