DOI: 10.5281/zenodo.8273635
title: Data of the INFORMS Journal on Computing paper: Routing replenishment workers: The prize collecting traveling salesman problem in scattered storage warehouses

description: In what follows, you will find data of the paper:<br> "Routing replenishment workers: The prize collecting traveling salesman problem in scattered storage warehouses" published in INFORMS Journal on Computing List of files:<br> - Computational_results_BB_NN_RW_CPLEX.xlsx: Excel file that gives all results<br> - instance_gen.cc: Instance generator<br> - instances.zip: compressed file of all instances that are sorted by Sections. It additionally includes the generator<br> - Makefile: Makefile for compiling/debugging, i.e., "make all" or "make debug" do the jobs<br> - MersenneTwister.h: needed by schedule_finder.cc<br> - results_Section_5_1.zip: compressed file of all output files of Section 5.1<br> - results_Section_5_2.zip: compressed file of all output files of Section 5.2<br> - results_Section_5_3.zip: compressed file of all output files of Section 5.3<br> - schedule_finder.cc: Main program containing the B&B, the S-shape, and Nearest Neighbor procedure (see details for customizing the parameters at the top of this file)<br> - valgrind_debug.txt: Only contains the used debug command instances/instance_gen.cc generates a problem instance in file problems.txt<br> The structure of the these problem files is the following:<br> /*<br> NE Total number of experiments given by the currently considered file<br> -2 Separator<br> EXPGRP Index of the current experiment group the current experiment belong to<br> N Number of vacant positions in the warehouse<br> M Number of requests to be stored by the tour<br> P Number of pickers to be scheduled in the warehouse<br> A Number of vertical aisles<br> B Number of horizontal (cross) aisles<br> L_A Length of each vertical aisle<br> L_B Length of each cross aisle<br> UF_VA Up-factor of each vertical aisle (A values)<br> DF_VA Down- factor of each vertical aisle (A values)<br> UF_CA Up-factor of each cross aisle (B values)<br> DF_CA Down- factor of each cross aisle (B values)<br> x_pos_vertical_aisle x-position of vertical aisle (A values)<br> y_pos_cross_aisle y-position of cross aisle (B values)<br> warehouse_graph values For each node of the warehouse graph all entries (15 each) are given (total_number_of_warehouse_graph_nodes*15)<br> FS &lt;&lt; warehouse_graph[curr_node].free_position &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].depot_node &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].vertical_aisle &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].cross_aisle &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].pred_cross_aisle &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].succ_cross_aisle &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].pred_vertical_aisle &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].succ_vertical_aisle &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].pred_cross_aisle_dist &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].succ_cross_aisle_dist &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].pred_vertical_aisle_dist &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].succ_vertical_aisle_dist &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].region &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].x_position &lt;&lt; " " &lt;&lt; endl;<br> FS &lt;&lt; warehouse_graph[curr_node].y_position &lt;&lt; " " &lt;&lt; endl;<br> shortest_path_distance For each combination of nodes (i.e., for total_number_of_warehouse_graph_nodes_square combinations) the distance<br> shortest_path_length_including_start_and_end For each combination of nodes (i.e., for total_number_of_warehouse_graph_nodes_square combinations) the number of visited nodes<br> shortest_path_visited_nodes For each combination of nodes (i.e., for total_number_of_warehouse_graph_nodes_square combinations) the detailed path (length is respectively given by shortest_path_length_including_start_and_end)<br> dd_free_position For each free position and the depot (here with index N) the due date is transferred (N+1 values) (only relevant for the extended problem, is ignored here)<br> weight_of_free_position For each free position and the depot (here with index N) the weight is transferred (N+1 values) (only relevant for the extended problem, is ignored here)<br> capacity_of_free_position For each free position the storage capacity transferred (N values)<br> -2 Separator indicating the end of an instances<br> -3 Separator indicating the end of all experiments (i.e., indicating the end of the file)<br> */ output files (results_Section_5_1.zip/results_Section_5_2.zip/results_Section_5_3.zip):<br> results_BB_NXXX_MYYY_A10_B05: Output file of applying B&B<br> results_RW_NXXX_MYYY_A10_B05: Output file of applying s-shape random walk<br> results_NN_NXXX_MYYY_A10_B05: Output file of applying nearest neighbor In these files you find all outputs of schedule_finder.cc. <br> Among others, you will find the generated tour schedules (for Experiment with index I) in the output files by searching the phrase: "Experiment I completed with result="<br> or for the next Experiment " completed with result=" Example (results_BB_N030_M150_A10_B05.txt, experiment 0, the tardiness values are to be ignored, see comments in schedule_finder.cc)<br> Pos 0 depot node with index 80 Number of stored items 0 CT 0 No tardiness<br> Pos 1 position 27 Number of stored items 4 Current accumulated number of stored items 4 CT 163 DD 5629 No additional tardiness<br> Pos 2 position 28 Number of stored items 5 Current accumulated number of stored items 9 CT 399 DD 2962 No additional tardiness<br> Pos 3 position 29 Number of stored items 4 Current accumulated number of stored items 13 CT 670 DD 12631 No additional tardiness<br> Pos 4 position 26 Number of stored items 5 Current accumulated number of stored items 18 CT 840 DD 10142 No additional tardiness<br> Pos 5 position 23 Number of stored items 7 Current accumulated number of stored items 25 CT 1134 DD 6000 No additional tardiness<br> Pos 6 position 22 Number of stored items 4 Current accumulated number of stored items 29 CT 1170 DD 6396 No additional tardiness<br> Pos 7 position 16 Number of stored items 5 Current accumulated number of stored items 34 CT 1448 DD 8962 No additional tardiness<br> Pos 8 position 11 Number of stored items 10 Current accumulated number of stored items 44 CT 1674 DD 6336 No additional tardiness<br> Pos 9 position 0 Number of stored items 10 Current accumulated number of stored items 54 CT 2062 DD 1141 Additional tardiness 921<br> Pos 10 position 2 Number of stored items 9 Current accumulated number of stored items 63 CT 2201 DD 7742 No additional tardiness<br> Pos 11 position 4 Number of stored items 5 Current accumulated number of stored items 68 CT 2407 DD 4846 No additional tardiness<br> Pos 12 position 3 Number of stored items 5 Current accumulated number of stored items 73 CT 2717 DD 2316 Additional tardiness 401<br> Pos 13 position 1 Number of stored items 8 Current accumulated number of stored items 81 CT 2876 DD 9917 No additional tardiness<br> Pos 14 position 6 Number of stored items 3 Current accumulated number of stored items 84 CT 3073 DD 7299 No additional tardiness<br> Pos 15 position 5 Number of stored items 8 Current accumulated number of stored items 92 CT 3144 DD 6152 No additional tardiness<br> Pos 16 position 8 Number of stored items 6 Current accumulated number of stored items 98 CT 3337 DD 3705 No additional tardiness<br> Pos 17 position 12 Number of stored items 9 Current accumulated number of stored items 107 CT 3452 DD 7622 No additional tardiness<br> Pos 18 position 13 Number of stored items 4 Current accumulated number of stored items 111 CT 3522 DD 7833 No additional tardiness<br> Pos 19 position 14 Number of stored items 5 Current accumulated number of stored items 116 CT 3647 DD 9877 No additional tardiness<br> Pos 20 position 19 Number of stored items 1 Current accumulated number of stored items 117 CT 3922 DD 2905 Additional tardiness 1017<br> Pos 21 position 20 Number of stored items 5 Current accumulated number of stored items 122 CT 3923 DD 2538 Additional tardiness 1385<br> Pos 22 position 21 Number of stored items 7 Current accumulated number of stored items 129 CT 3976 DD 2769 Additional tardiness 1207<br> Pos 23 position 18 Number of stored items 10 Current accumulated number of stored items 139 CT 4173 DD 3552 Additional tardiness 621<br> Pos 24 position 25 Number of stored items 4 Current accumulated number of stored items 143 CT 4482 DD 11710 No additional tardiness<br> Pos 25 position 24 Number of stored items 7 Current accumulated number of stored items 150 CT 4509 DD 10599 No additional tardiness<br> Pos 26 visiting the node with index 80 Number of stored items 0 CT 4710 DD 10893 No additional tardiness<br> opt_makespan=4710 opt_total_tardiness=5552<br> TSP_procedure returned value 4710<br> Experiment 0 completed with result=3<br> BFS Branch&Bound report: Consumed time: 1 Copied from schedule_finder.cc:<br> Note that the procedure used as a solution procedure in the paper is int TSP_procedure(struct bb_node *curr_bb_node, int version) It is called by BB_procedure() as a subroutine for computing a lower bound value of an extended problem<br> (for instance, this extended problem additionally covers due dates. Therefore, due dates are also part of the problem instances, but can be ignored)<br> Specifically, TSP_procedure(struct bb_node *curr_bb_node, int version) is called once by lb_computation()