Facility location: results for a nonlinear model with random instances


Results obtained using Gurobi for solving a nonlinear Facility Location Problem (FLP), using the models described in Mathematical Optimization: Solving Problems using Python and Gurobi.

Parameters used: number of facilities is 10% of the number of customers.

CPU time limited to 300 seconds. (Click on values for selecting data to display.)

Benchmark instances analysed
Instance familyTypeDescription
Num.Int=2 random Number of linear segments in the approximation: 2
Num.Int=5 random Number of linear segments in the approximation: 5
Num.Int=10 random Number of linear segments in the approximation: 10
Num.Int=20 random Number of linear segments in the approximation: 20
Num.Int=50 random Number of linear segments in the approximation: 50
Num.Int=100 random Number of linear segments in the approximation: 100
Num.Int=200 random Number of linear segments in the approximation: 200
Num.Int=500 random Number of linear segments in the approximation: 500
Num.Int=1000 random Number of linear segments in the approximation: 1000

FLP: results for a nonlinear model with random instances

Linearization with 10 segments.

Legend for columns in the next tables
LabelDescription
mselect multiple selection model
cc_dis disaggregated convex combination model
cc_dis_log disaggregated convex combination model with a logarithmic number of variables
cc_agg (aggregated) convex combination model
cc_agg_log (aggregated) convex combination model with a logarithmic number of variables
sos model using sos constraints of type 2
(click on values for detailed output)

chart
Average CPU per instance size, Num.Int=10
sizemselectcc_discc_dis_logcc_aggcc_agg_logsos
10 0.00 0.00 0.00 0.00 0.00 0.00
20 0.00 0.00 0.00 0.00 0.00 0.00
50 0.01 0.01 0.02 0.01 0.01 0.01
100 0.05 0.04 0.04 0.04 0.03 0.02
200 0.21 0.20 0.21 0.18 0.16 0.07
500 1.66 2.40 1.85 3.39 2.36 1.15
1000 11.05 27.67 18.26 29.86 20.81 14.65

CPU for instance size 10
instmselectcc_discc_dis_logcc_aggcc_agg_logsos
0 0.00 0.00 0.00 0.00 0.00 0.00
1 0.00 0.01 0.00 0.01 0.00 0.00
2 0.00 0.00 0.00 0.00 0.00 0.00
3 0.00 0.01 0.00 0.00 0.00 0.00
4 0.01 0.01 0.00 0.00 0.00 0.00
5 0.00 0.00 0.00 0.00 0.00 0.00
6 0.00 0.00 0.00 0.00 0.00 0.00
7 0.00 0.00 0.00 0.01 0.00 0.00
8 0.00 0.00 0.00 0.00 0.00 0.00
9 0.00 0.00 0.00 0.00 0.00 0.00

CPU for instance size 20
instmselectcc_discc_dis_logcc_aggcc_agg_logsos
0 0.01 0.00 0.00 0.01 0.00 0.00
1 0.00 0.01 0.00 0.00 0.00 0.00
2 0.00 0.00 0.00 0.00 0.00 0.01
3 0.00 0.01 0.01 0.00 0.00 0.01
4 0.00 0.00 0.00 0.00 0.01 0.00
5 0.00 0.01 0.00 0.00 0.01 0.00
6 0.00 0.00 0.01 0.01 0.00 0.00
7 0.01 0.00 0.01 0.00 0.00 0.00
8 0.00 0.01 0.00 0.01 0.00 0.00
9 0.00 0.01 0.02 0.01 0.00 0.01

CPU for instance size 50
instmselectcc_discc_dis_logcc_aggcc_agg_logsos
0 0.00 0.01 0.00 0.01 0.01 0.00
1 0.02 0.02 0.01 0.00 0.01 0.01
2 0.03 0.02 0.02 0.02 0.01 0.02
3 0.01 0.01 0.00 0.01 0.02 0.00
4 0.02 0.02 0.03 0.03 0.02 0.01
5 0.01 0.01 0.02 0.02 0.01 0.00
6 0.01 0.01 0.02 0.01 0.00 0.02
7 0.01 0.01 0.04 0.02 0.02 0.01
8 0.01 0.02 0.01 0.02 0.01 0.01
9 0.01 0.01 0.01 0.01 0.01 0.01

CPU for instance size 100
instmselectcc_discc_dis_logcc_aggcc_agg_logsos
0 0.00 0.01 0.01 0.01 0.01 0.01
1 0.06 0.05 0.05 0.05 0.03 0.02
2 0.05 0.05 0.04 0.03 0.04 0.01
3 0.06 0.05 0.04 0.04 0.03 0.03
4 0.04 0.07 0.08 0.05 0.07 0.01
5 0.11 0.06 0.06 0.07 0.05 0.03
6 0.03 0.02 0.02 0.05 0.01 0.02
7 0.05 0.06 0.05 0.04 0.04 0.02
8 0.04 0.03 0.06 0.05 0.03 0.02
9 0.04 0.04 0.04 0.04 0.04 0.01

CPU for instance size 200
instmselectcc_discc_dis_logcc_aggcc_agg_logsos
0 0.22 0.24 0.34 0.20 0.26 0.08
1 0.17 0.14 0.15 0.13 0.10 0.07
2 0.29 0.30 0.22 0.28 0.14 0.07
3 0.25 0.27 0.24 0.20 0.20 0.07
4 0.29 0.25 0.24 0.22 0.19 0.10
5 0.17 0.16 0.12 0.18 0.11 0.05
6 0.23 0.19 0.24 0.23 0.18 0.09
7 0.16 0.13 0.19 0.11 0.15 0.07
8 0.10 0.12 0.13 0.12 0.11 0.07
9 0.24 0.19 0.21 0.17 0.19 0.06

CPU for instance size 500
instmselectcc_discc_dis_logcc_aggcc_agg_logsos
0 1.39 2.06 1.77 1.68 2.63 1.33
1 1.56 2.35 1.81 2.83 2.57 1.43
2 1.45 1.88 1.81 3.02 2.84 1.25
3 1.11 2.12 1.89 1.87 2.02 0.94
4 1.46 2.91 2.53 4.01 2.92 1.15
5 0.74 0.65 0.66 1.03 0.88 0.45
6 0.95 2.93 1.31 4.08 2.01 0.99
7 5.28 5.28 3.93 9.12 4.11 2.36
8 1.84 2.81 1.96 4.96 2.50 1.05
9 0.81 0.98 0.84 1.31 1.12 0.58

CPU for instance size 1000
instmselectcc_discc_dis_logcc_aggcc_agg_logsos
0 24.92 82.41 28.45 48.49 32.14 22.41
1 9.62 26.21 10.23 17.34 19.29 8.70
2 12.48 25.74 19.04 33.06 22.70 13.01
3 10.72 30.34 24.82 34.38 19.41 30.36
4 5.92 14.30 11.94 12.94 8.29 12.27
5 10.11 38.96 28.04 85.85 32.90 15.72
6 8.05 18.80 18.01 16.86 21.84 12.00
7 6.47 18.39 16.34 18.88 21.55 11.02
8 17.70 17.25 20.63 24.48 23.61 17.65
9 4.50 4.32 5.10 6.37 6.35 3.39