This notebook shows how the summarized tables in the published paper
can be reproduced from the detailed experimental data provided in this
repository.
Table 2
t2 = read_csv(here("data/table2.csv"))
tb = t2 %>% mutate(epj = n*((1-d)*(1-d)+d*(1-d)*m)) %>% group_by(d, n, m) %>% summarise(across(epj, mean)) %>% pivot_wider(names_from = d, values_from = c(epj)) %>% ungroup()
tb=bind_cols(tb[1:12,],tb[13:24,])
tb %>% kable(caption = "Average number of pseudo jobs of all instance groups with a different number of jobs n and machines m. Each group has 30 instances.", col.names = rep(c("$n$", "$m/r$", "$0.2$", "$0.3$", "$0.4$"),2)) %>% kable_styling()
Average number of pseudo jobs of all instance groups with a different
number of jobs n and machines m. Each group has 30 instances.
\(n\)
|
\(m/r\)
|
\(0.2\)
|
\(0.3\)
|
\(0.4\)
|
\(n\)
|
\(m/r\)
|
\(0.2\)
|
\(0.3\)
|
\(0.4\)
|
5
|
5
|
7.2
|
7.70
|
7.8
|
30
|
5
|
43.2
|
46.2
|
46.8
|
5
|
10
|
11.2
|
12.95
|
13.8
|
30
|
10
|
67.2
|
77.7
|
82.8
|
5
|
20
|
19.2
|
23.45
|
25.8
|
30
|
20
|
115.2
|
140.7
|
154.8
|
5
|
30
|
27.2
|
33.95
|
37.8
|
30
|
30
|
163.2
|
203.7
|
226.8
|
10
|
5
|
14.4
|
15.40
|
15.6
|
50
|
5
|
72.0
|
77.0
|
78.0
|
10
|
10
|
22.4
|
25.90
|
27.6
|
50
|
10
|
112.0
|
129.5
|
138.0
|
10
|
20
|
38.4
|
46.90
|
51.6
|
50
|
20
|
192.0
|
234.5
|
258.0
|
10
|
30
|
54.4
|
67.90
|
75.6
|
50
|
30
|
272.0
|
339.5
|
378.0
|
20
|
5
|
28.8
|
30.80
|
31.2
|
100
|
5
|
144.0
|
154.0
|
156.0
|
20
|
10
|
44.8
|
51.80
|
55.2
|
100
|
10
|
224.0
|
259.0
|
276.0
|
20
|
20
|
76.8
|
93.80
|
103.2
|
100
|
20
|
384.0
|
469.0
|
516.0
|
20
|
30
|
108.8
|
135.80
|
151.2
|
100
|
30
|
544.0
|
679.0
|
756.0
|
Table 3
twosa = read_csv(here("data/table3-2sa.csv"))
iga = read_csv(here("data/table3-iga.csv"))
bkv = read_csv(here("data/table3-bkv.csv"))
t3 = twosa %>% inner_join(iga) %>% inner_join(bkv) %>% mutate(across(ends_with(".ft"),~rd(.x,bkv))) %>% group_by(d,n,m) %>% summarize(across(c(saf.ft:igapols.ft),mean)) %>% pivot_wider(names_from=n,values_from=c(ends_with(".ft")))
t3.sum = t3 %>% ungroup() %>% summarize(across(saf.ft_5:igapols.ft_100,function(x) { mean(x,na.rm=T) }))
t3 = t3 %>% bind_rows(t3.sum)
t3 %>% kable(caption = "Relative deviations from the best known values for 2SA and IGA.", col.names = c("$d$", "$m/n$", rep(n_names,2))) %>% kable_styling()
Relative deviations from the best known values for 2SA and IGA.
\(d\)
|
\(m/n\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(50\)
|
\(100\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(50\)
|
\(100\)
|
0.2
|
5
|
1.726121
|
3.512638
|
4.357985
|
5.015002
|
5.183003
|
4.360220
|
0.4080138
|
1.1239401
|
0.2263065
|
0.2385006
|
0.4615649
|
0.6561463
|
0.2
|
10
|
2.120045
|
5.483899
|
7.200122
|
6.979743
|
7.566145
|
6.993746
|
1.2128091
|
1.3482768
|
0.6004957
|
0.7421203
|
0.4093554
|
0.5822443
|
0.2
|
20
|
3.013819
|
4.338034
|
5.380023
|
6.081486
|
8.219360
|
8.945355
|
1.3365476
|
1.6759262
|
0.7878071
|
0.4533018
|
0.3531739
|
0.6048166
|
0.2
|
30
|
2.533490
|
2.822079
|
3.821543
|
5.098611
|
7.009228
|
8.544460
|
1.3758731
|
0.7767523
|
0.4558227
|
0.1537049
|
0.3420794
|
0.4618979
|
0.3
|
5
|
2.851697
|
4.223859
|
5.385384
|
6.064897
|
5.604975
|
5.247194
|
0.2953785
|
0.7878551
|
0.2896956
|
0.2039162
|
0.5008429
|
0.8946899
|
0.3
|
10
|
3.096894
|
6.882653
|
7.958824
|
8.994927
|
9.875024
|
9.505288
|
0.8872764
|
2.7443426
|
0.9074361
|
0.7568197
|
0.5529001
|
0.8942025
|
0.3
|
20
|
3.645358
|
6.980749
|
7.788329
|
10.049266
|
9.918957
|
10.522901
|
1.9320175
|
3.2499263
|
1.8464685
|
1.7147311
|
0.3199730
|
0.6068782
|
0.3
|
30
|
3.067137
|
4.789573
|
6.329930
|
6.982851
|
8.082158
|
10.500921
|
1.5252819
|
2.2032137
|
1.1885068
|
0.2630965
|
0.2088513
|
0.6497083
|
0.4
|
5
|
1.952052
|
4.282964
|
6.226869
|
5.603633
|
6.483351
|
5.242922
|
0.5478636
|
0.5747031
|
0.2892935
|
0.2227427
|
0.4137148
|
0.8744657
|
0.4
|
10
|
3.544611
|
9.813007
|
9.332247
|
10.597881
|
11.159611
|
11.273527
|
0.6519699
|
3.1093264
|
1.2811939
|
1.1525659
|
0.6661116
|
1.1872471
|
0.4
|
20
|
4.708910
|
9.179408
|
10.675816
|
11.144665
|
11.671497
|
12.751839
|
2.2328952
|
4.2423903
|
2.2163385
|
1.6731473
|
0.2678301
|
0.8101383
|
0.4
|
30
|
5.175491
|
6.641822
|
8.122412
|
8.770061
|
10.419092
|
13.018519
|
2.7997097
|
3.4098283
|
2.6266178
|
0.3717541
|
0.5720255
|
0.9854718
|
NA
|
NA
|
3.119635
|
5.745890
|
6.881624
|
7.615252
|
8.432700
|
8.908908
|
1.2671364
|
2.1038734
|
1.0596652
|
0.6622001
|
0.4223686
|
0.7673256
|
Table 4
twosa = read_csv(here("data/table4-2sa.csv"))
iga = read_csv(here("data/table4-iga.csv"))
t4 = twosa %>% inner_join(iga) %>% rename(time.t=time) %>% mutate(across(ends_with(".ft"),~rd(.x,bkv))) %>% group_by(n,m) %>% summarize(across(c(saf.t:time.t),mean)) %>% pivot_wider(names_from=n,values_from=c(ends_with(".t")))
t4.sum = t4 %>% summarize(across(saf.t_5:time.t_100,function(x) { mean(x,na.rm=T) }))
t4 = t4 %>% bind_rows(t4.sum)
t4 %>% kable(caption = "Computation times for 2SA and IGA.", col.names = c("$m/n$", rep(n_names,2))) %>% kable_styling()
Computation times for 2SA and IGA.
\(m/n\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(50\)
|
\(100\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(50\)
|
\(100\)
|
5
|
0.0053889
|
0.0184333
|
0.0498111
|
0.0878778
|
0.1989889
|
0.7632444
|
0.0121263
|
0.0439438
|
0.1075250
|
0.2002080
|
0.5590535
|
3.352731
|
10
|
0.0152667
|
0.0505556
|
0.1371444
|
0.2856222
|
0.6634556
|
2.6928889
|
0.0155121
|
0.0528932
|
0.1563554
|
0.3310191
|
1.0982759
|
6.999588
|
20
|
0.0501667
|
0.1599333
|
0.4964000
|
1.0918778
|
2.9755778
|
11.6776444
|
0.0233630
|
0.0849433
|
0.2723956
|
0.6215756
|
2.2634380
|
15.377203
|
30
|
0.1049222
|
0.2998444
|
1.1228333
|
2.3911667
|
6.1623889
|
25.7093000
|
0.0307071
|
0.1139564
|
0.4054798
|
1.0075630
|
3.7176310
|
26.855594
|
NA
|
0.0439361
|
0.1321917
|
0.4515472
|
0.9641361
|
2.5001028
|
10.2107694
|
0.0204271
|
0.0739342
|
0.2354390
|
0.5400914
|
1.9095996
|
13.146279
|
Table 5
mip = read_csv(here("data/table5-mip.csv"))
iga = read_csv(here("data/table3-iga.csv")) %>% rename(igapols.0.1.ft=igapols.ft)
igap = read_csv(here("data/table5-iga-plus.csv"))
bkv = read_csv(here("data/table3-bkv.csv"))
t5 = mip %>% inner_join(iga) %>% inner_join(igap) %>% inner_join(bkv) %>% mutate(across(ends_with(".ft"),~rd(.x,bkv))) %>% group_by(n,m,d) %>% summarize(across(ends_with(".ft"),mean)) %>% pivot_wider(names_from=n,values_from=c(ends_with(".ft")))
t5.sum = t5 %>% ungroup() %>% summarize(across(contains(".ft_"),function(x) { mean(x,na.rm=T) }))
t5 = t5 %>% bind_rows(t5.sum)
t5 %>% kable(caption = "Comparison of the solution of the MIP model with those of IGA and IGA running with a five times higher iteration limit (IGA+).", col.names = c("$m$", "$d/n$", rep(n_names[1:5],3))) %>% kable_styling()
Comparison of the solution of the MIP model with those of IGA and IGA
running with a five times higher iteration limit (IGA+).
\(m\)
|
\(d/n\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(50\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(50\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(50\)
|
5
|
0.2
|
0
|
0.0000000
|
0.0483769
|
0.1552993
|
0.3212116
|
0.4080138
|
1.1239401
|
0.2263065
|
0.2385006
|
0.4615649
|
0.4080138
|
1.1239401
|
0.2195964
|
0.1133647
|
0.0500520
|
5
|
0.3
|
0
|
0.0220113
|
0.0281301
|
0.1625222
|
0.4698285
|
0.2953785
|
0.7878551
|
0.2896956
|
0.2039162
|
0.5008429
|
0.2953785
|
0.7878551
|
0.2653834
|
0.1188233
|
0.0273604
|
5
|
0.4
|
0
|
0.0000000
|
0.0802791
|
0.1591673
|
0.4700834
|
0.5478636
|
0.5747031
|
0.2892935
|
0.2227427
|
0.4137148
|
0.5478636
|
0.5747031
|
0.3448148
|
0.1181266
|
0.0882584
|
10
|
0.2
|
0
|
0.2285301
|
0.1135439
|
0.2063862
|
NA
|
1.2128091
|
1.3482768
|
0.6004957
|
0.7421203
|
NA
|
1.2128091
|
1.3482768
|
0.5395126
|
0.6060314
|
NA
|
10
|
0.3
|
0
|
0.0976192
|
0.2128451
|
0.1805732
|
NA
|
0.8872764
|
2.7443426
|
0.9074361
|
0.7568197
|
NA
|
0.8872764
|
2.7443426
|
0.8379877
|
0.6022140
|
NA
|
10
|
0.4
|
0
|
0.0000000
|
0.0535366
|
0.1273551
|
NA
|
0.6519699
|
3.1093264
|
1.2811939
|
1.1525659
|
NA
|
0.6519699
|
3.1093264
|
1.2649824
|
0.9826937
|
NA
|
20
|
0.2
|
0
|
0.2428741
|
0.1769180
|
0.3433348
|
NA
|
1.3365476
|
1.6759262
|
0.7878071
|
0.4533018
|
NA
|
1.3365476
|
1.6759262
|
0.7850568
|
0.3847941
|
NA
|
20
|
0.3
|
0
|
0.1456465
|
0.2270731
|
0.0678798
|
NA
|
1.9320175
|
3.2499263
|
1.8464685
|
1.7147311
|
NA
|
1.9320175
|
3.2499263
|
1.8309398
|
1.5570284
|
NA
|
20
|
0.4
|
0
|
0.0396868
|
0.0651127
|
0.1877192
|
NA
|
2.2328952
|
4.2423903
|
2.2163385
|
1.6731473
|
NA
|
2.2328952
|
4.2423903
|
2.2230832
|
1.4461293
|
NA
|
30
|
0.2
|
0
|
0.3642658
|
0.2786606
|
NA
|
NA
|
1.3758731
|
0.7767523
|
0.4558227
|
NA
|
NA
|
1.3758731
|
0.7767523
|
0.4095630
|
NA
|
NA
|
30
|
0.3
|
0
|
0.2049126
|
0.1309136
|
NA
|
NA
|
1.5252819
|
2.2032137
|
1.1885068
|
NA
|
NA
|
1.5252819
|
2.2032137
|
1.1885068
|
NA
|
NA
|
30
|
0.4
|
0
|
0.1592936
|
0.1335064
|
NA
|
NA
|
2.7997097
|
3.4098283
|
2.6266178
|
NA
|
NA
|
2.7997097
|
3.4098283
|
2.5868958
|
NA
|
NA
|
NA
|
NA
|
0
|
0.1254033
|
0.1290747
|
0.1766930
|
0.4203745
|
1.2671364
|
2.1038734
|
1.0596652
|
0.7953162
|
0.4587075
|
1.2671364
|
2.1038734
|
1.0413602
|
0.6588006
|
0.0552236
|
Table 6
t6 = read_csv(here("data/table6.csv")) %>% inner_join(read_csv(here("data/table3-bkv.csv")))
t6 = t6 %>% mutate(across(ends_with(".ft"),~rd(.x,bkv))) %>% group_by(d,n,m) %>% summarize(across(c(ends_with(".ft")),mean)) %>% pivot_wider(names_from=n,values_from=c(ends_with(".ft")))
t6.sum = t6 %>% ungroup() %>% summarize(across(contains(".ft_"),function(x) { mean(x,na.rm=T) }))
t6 = t6 %>% bind_rows(t6.sum)
t6 %>% kable(caption = "Relative deviations from the best known values for IGA0 and IGA+NPSset.", col.names = c("$d$", "$m/n$", rep(n_names,2))) %>% kable_styling()
Relative deviations from the best known values for IGA0 and IGA+NPSset.
\(d\)
|
\(m/n\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(50\)
|
\(100\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(50\)
|
\(100\)
|
0.2
|
5
|
1.587530
|
1.999124
|
0.9957623
|
0.6121372
|
0.6603856
|
0.8462824
|
1.417713
|
1.9100368
|
0.9540905
|
0.5313528
|
0.6419943
|
0.8402365
|
0.2
|
10
|
2.192750
|
3.466907
|
1.5811931
|
1.5321469
|
1.1923546
|
1.0947370
|
2.087026
|
2.9755271
|
1.3276047
|
1.2819325
|
0.9117050
|
0.9910113
|
0.2
|
20
|
3.745250
|
3.774197
|
2.2552336
|
1.8155205
|
1.5306961
|
1.5409866
|
3.565268
|
3.0948966
|
1.7984289
|
1.5094632
|
1.1985989
|
1.3244672
|
0.2
|
30
|
3.319447
|
2.673150
|
2.0889088
|
1.5788779
|
1.4796301
|
1.5987383
|
2.848653
|
2.3364843
|
1.6409343
|
1.1356316
|
1.0544441
|
1.1444058
|
0.3
|
5
|
1.282149
|
1.499652
|
0.4877897
|
0.4299889
|
0.6819751
|
1.0529197
|
1.111063
|
1.4824309
|
0.4877897
|
0.3721021
|
0.6630053
|
1.0470623
|
0.3
|
10
|
2.738577
|
5.162469
|
2.3128686
|
1.7864554
|
1.4113390
|
1.4321127
|
2.267044
|
4.6287120
|
2.0923891
|
1.5758371
|
1.1712460
|
1.2804850
|
0.3
|
20
|
4.575365
|
5.560647
|
3.5710433
|
3.2533417
|
1.5146992
|
1.6946747
|
3.635542
|
4.6233635
|
2.7398648
|
2.6691138
|
0.9719238
|
1.2335763
|
0.3
|
30
|
3.642171
|
4.364863
|
3.0519030
|
2.0335688
|
1.6344489
|
1.9390605
|
3.233488
|
3.5225871
|
2.1622447
|
1.1488691
|
0.9047450
|
1.2610539
|
0.4
|
5
|
1.753136
|
0.873885
|
0.8725716
|
0.3453694
|
0.5565285
|
1.0072808
|
1.431047
|
0.8462022
|
0.8305190
|
0.3427712
|
0.5514915
|
0.9979944
|
0.4
|
10
|
3.395113
|
5.687511
|
2.4985194
|
1.8479847
|
1.2765854
|
1.7151092
|
2.387861
|
4.8438348
|
2.0792999
|
1.5758766
|
1.0448852
|
1.5342604
|
0.4
|
20
|
4.903032
|
7.205967
|
4.4400236
|
3.3097779
|
1.6207505
|
1.8350395
|
3.930937
|
5.9659053
|
3.2731096
|
2.5559406
|
0.8802803
|
1.1630666
|
0.4
|
30
|
5.598329
|
5.755148
|
4.6579463
|
2.1772316
|
2.0858365
|
2.3318758
|
4.226098
|
4.4965928
|
3.3762806
|
1.0590377
|
0.8184653
|
1.2323979
|
NA
|
NA
|
3.227737
|
4.001960
|
2.4011470
|
1.7268668
|
1.3037691
|
1.5074014
|
2.678478
|
3.3938811
|
1.8968797
|
1.3131607
|
0.9010654
|
1.1708348
|
Table 7
t7 = read_csv(here("data/table7.csv")) %>% group_by(n,m) %>% summarize(b=100*mean(bs),B=100*max(bs),jri=100*mean(jri)) %>% pivot_wider(names_from=m,values_from=c(b,B,jri))
t7.sum = t7 %>% ungroup() %>% summarize(across(contains("_"),function(x) { mean(x,na.rm=T) }))
t7 = t7 %>% bind_rows(t7.sum)
t7 %>% kable(caption = "Average and maximum buffer sizes and job reordering index (in percent) for the non-permutation solutions.", col.names = c("$m/n$", rep(n_names[1:4],3))) %>% kable_styling()
Average and maximum buffer sizes and job reordering index (in percent)
for the non-permutation solutions.
\(m/n\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
5
|
16.222222
|
16.88889
|
19.55556
|
19.11111
|
40.00000
|
40.00000
|
40
|
40.00000
|
1.027778
|
0.9012346
|
0.8654971
|
0.7279693
|
10
|
17.444444
|
22.66667
|
23.55556
|
25.77778
|
40.00000
|
40.00000
|
40
|
50.00000
|
1.407407
|
1.1577503
|
0.6588694
|
0.5806726
|
20
|
16.222222
|
21.38889
|
26.05556
|
26.50000
|
30.00000
|
35.00000
|
50
|
45.00000
|
1.834795
|
1.0643275
|
0.7737765
|
0.5894334
|
30
|
13.222222
|
20.25926
|
26.44444
|
28.77778
|
23.33333
|
33.33333
|
40
|
40.00000
|
1.642401
|
1.1880233
|
0.8079586
|
0.6113533
|
50
|
9.466667
|
17.48889
|
24.13333
|
27.28889
|
20.00000
|
30.00000
|
36
|
36.00000
|
1.775057
|
1.1919375
|
0.8159924
|
0.6240050
|
100
|
6.555556
|
13.05556
|
20.10000
|
24.41111
|
11.00000
|
17.00000
|
28
|
39.00000
|
1.979517
|
1.2163362
|
0.8004135
|
0.6226092
|
NA
|
13.188889
|
18.62469
|
23.30741
|
25.31111
|
27.38889
|
32.55556
|
39
|
41.66667
|
1.611159
|
1.1199349
|
0.7870846
|
0.6260071
|
Table 8
t8 = read_csv(here("data/table8.csv")) %>% group_by(n,m) %>% summarize(b=100*mean(bs),B=100*max(bs),jri=100*mean(jri)) %>% pivot_wider(names_from=m,values_from=c(b,B,jri))
t8.sum = t8 %>% ungroup() %>% summarize(across(contains("_"),function(x) { mean(x,na.rm=T) }))
t8 = t8 %>% bind_rows(t8.sum)
t8 %>% kable(caption = "Average and maximum buffer sizes and job reordering index (in percent) for the permutation solutions.", col.names = c("$n/m$", rep(n_names[1:4],3))) %>% kable_styling()
Average and maximum buffer sizes and job reordering index (in percent)
for the permutation solutions.
\(n/m\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
\(5\)
|
\(10\)
|
\(20\)
|
\(30\)
|
5
|
16.000000
|
16.44444
|
19.11111
|
19.33333
|
40.00000
|
40.00000
|
40.00000
|
40.00000
|
0.8888889
|
0.691358
|
0.6959064
|
0.5019157
|
10
|
17.555556
|
23.00000
|
25.66667
|
24.88889
|
40.00000
|
50.00000
|
40.00000
|
50.00000
|
1.3950617
|
1.113855
|
0.6094867
|
0.5193699
|
20
|
15.944444
|
21.88889
|
26.88889
|
27.16667
|
30.00000
|
40.00000
|
45.00000
|
45.00000
|
1.7997076
|
1.061079
|
0.7737765
|
0.6001210
|
30
|
13.037037
|
20.33333
|
27.62963
|
29.74074
|
23.33333
|
33.33333
|
43.33333
|
43.33333
|
1.5945083
|
1.183482
|
0.8142771
|
0.6146122
|
50
|
9.577778
|
17.93333
|
25.06667
|
28.35556
|
20.00000
|
28.00000
|
34.00000
|
40.00000
|
1.7473923
|
1.200202
|
0.8250149
|
0.6314176
|
100
|
6.711111
|
13.35556
|
20.77778
|
25.22222
|
12.00000
|
17.00000
|
27.00000
|
41.00000
|
1.9539282
|
1.218930
|
0.8074192
|
0.6327335
|
NA
|
13.137654
|
18.82593
|
24.19012
|
25.78457
|
27.55556
|
34.72222
|
38.22222
|
43.22222
|
1.5632478
|
1.078151
|
0.7543135
|
0.5833617
|