This folder contains the input data associated with the benchmark instances solved in the paper: "Mixed-integer Linear Optimization for Full Truckload Pickup and Delivery" by Wang, Ferro, Majewski, and Gounaris These benchmarks were artificially synthesized by Braskem, inspired from their real-life operations. We acknowledge Braskem for making this data openly available to facilitate further research in the area of FTPDP. The folder contains the following files: (1) "README.TXT" (this file) (2) "BRASKEM_01.TXT" through "BRASKEM_66.TXT" (3) "BRASKEM_CT.TXT" The "BRASKEM_01.TXT" through "BRASKEM_66.TXT" files contain the data pertinent to the orders that are due on periods 1 through 66, as used in the paper. In these files, each line corresponds to a separate order. The format of each line is as follows: Num Cx Delta {Hx, Hy, ...} B {Px, frac} ... {Px, frac} where one or more {Px, frac} brackets appear. Example line: 2 C25 173.2 {H1, H3} 11.420 {P1, 0.2500} {P3, 0.2500} {P6, 0.5000} The first integer signifies that the line defines 2 identical orders (to be considered for delivery separately). Each of these orders must be delivered to customer "C25", or else an outsourcing cost of 173.2 must be incurred. The order(s) can **only** be delivered by vehicles of type "H1" or "H3", and a delivery service time of 11.420 would apply (independent of vehicle type). The remainder of the line provides the order pickup location(s). In particular, one-fourth of each order must be picked up at plant "P1", one-fourth at plant "P3", and the remaining two-fourths at plant "P6". These plants may be visited in any sequence. ## TRAVEL COSTS AND TIMES The "BRASKEM_CT.TXT" file contain the costs "C_hij" and times "T_hij" to travel between nodes "i" and "j" in the dataset. These data apply to all vehicle types "h". Note how the data provided in this file are not necessarily symmetric, while any node pairs "(i,j)" not referenced in this list are considered not possible to traverse directly (i.e., it takes "infinity" travel cost and time). The format of each line is as follows: i j C_hij T_hij Example line: C01 P4 0.84 1.730 This line signifies that a vehicle may travel from the location of customer C01 (i.e., after a delivery) directly to plant P4 (for subsequent loading). If a vehicle (of any type) does so, a travel cost of 0.84 must be incurred, while it takes 1.730 amount of time. ## NODES All instances utilize the same set of nodes, though not all nodes are referenced in each instance. We define the following nodes: -) The depot "D" -) Customers C := {"C1", "C2", ..., "C43"} -) Plants P := {"P1", "P2",..., "P6"} ## VEHICLES We define three types of vehicles, namely H := {"H1", "H2", "H3"}, with the following associated data: -) number of vehicles N_h = {8, 1, 1} -) shift begin WL_h = {0, 0, 0} -) shift duration (before overtime) W_h = {80, 80, 80} -) shift duration (after overtime) WU_h = {100, 100, 100} -) overtime pay rate (per amount of time above W_h) Gamma_h = {0.47, 0.47, 0.47} -) fixed cost (per vehicle; paid even if a vehicle not used) f_h = {100, 100, 100} ## PLANTS For each plant, we define the following associated data: -) set of time slots for loading T_p = {1, 2, 3, ..., |T_p|}, where: |T_P1| = 9, |T_P2| = 9, |T_P3| = 9, |T_P4| = 7, |T_P5| = 9, |T_P6| = 9 -) matrix w_pl with times corresponding to the beginning of each slot, as follows: slot#1 slot#2 slot#3 slot#4 slot#5 slot#6 slot#7 slot#8 slot#9 P1 2.50 12.50 22.50 32.50 52.50 62.50 72.50 82.50 92.50 P2 2.50 12.50 22.50 32.50 52.50 62.50 72.50 82.50 92.50 P3 2.50 12.50 22.50 32.50 52.50 62.50 72.50 82.50 92.50 P4 2.50 14.17 25.83 49.17 60.83 72.50 84.17 -- -- P5 2.50 12.50 22.50 32.50 52.50 62.50 72.50 82.50 92.50 P6 2.50 12.50 22.50 32.50 52.50 62.50 72.50 82.50 92.50 -) matrix Q_pl with the number of vehicles that can be loading simultaneously in each slot, as follows: slot#1 slot#2 slot#3 slot#4 slot#5 slot#6 slot#7 slot#8 slot#9 P1 9 9 10 10 16 16 16 15 15 P2 2 2 2 2 2 2 2 2 2 P3 5 5 5 5 5 6 5 4 4 P4 5 5 5 5 5 5 5 -- -- P5 4 4 4 4 4 3 3 3 3 P6 2 2 2 2 2 2 2 2 2 -) pickup service times at each plant (same for all orders "i" and vehicle types "h") G_hip_fixed G_hip_variable (per full truckload) P1 5.000 5.000 P2 5.000 5.000 P3 5.000 5.000 P4 5.000 6.667 P5 5.000 5.000 P6 5.000 5.000 where the total pickup time is: G_hip := G_hip_fixed + G_hip_variable * truckload_fraction