MaxPro: maximum projection designs

Implementation of maximum projection designs by Joseph et al. (2015). These are space filling designs that not only try to fill up the entire design space, but also, all projections of the design space to a subset of factors. Often only a limited subset of factors play an important role, while other factors turn out to not be very influential. A design that fills the design space projected onto the important factors performs well in that situation. But apriori we do not know which subset is active, thus all subsets must be considered.

To generate 25 points in an 8 dimensional factor space, with all factors automatically constrained between 0 and 1, we can do:

using MaxPro
opt_design = max_pro_design(25,8)
25×8 Matrix{Float64}:
 0.975719     0.0191021   0.168899   0.271096   …   0.647748     0.0351182
 0.654075     0.970841    0.494568   0.101723       0.0138652    0.885318
 0.504576     0.363134    0.0784519  0.540194       0.159175    -9.47129e-9
 0.104527     0.91713     0.706509   0.608792      -9.47129e-9   0.0256287
 0.283076     0.725067    0.0565432  0.81085        0.938972     0.659713
 0.510695     0.894389    0.897004   0.077186   …   0.338445     0.478468
 0.181452     0.207149    0.216782   0.745712       0.968905     0.063967
 1.0          0.884203    0.63275    0.350551       0.696932     0.26513
 0.124916    -9.47129e-9  0.43658    0.0461522      0.416044     0.865285
 0.839083     0.163422    0.414292   0.947017       0.993854     0.775649
 ⋮                                              ⋱               
 0.343869     0.497414    0.298974   0.972595       0.0331743    1.0
 0.072624     0.948349    0.253495   0.84069        0.44015      0.520872
 0.1217       0.488463    0.980896   0.666172       0.879303     0.312539
 0.729811     0.0937487   0.062602   0.19166        0.486382     0.990297
 0.767739     0.0248175   0.87072    0.527753   …   0.0595497    0.801512
 0.00564825   0.458913    0.39802    0.0712612      0.785566     0.128489
 0.0386737    0.20249     0.92949    0.21777        0.10336      0.570996
 0.530696     1.0         0.751905   0.700757       0.752196     0.985212
 0.63849      0.668057    0.579749   0.228662       1.0          0.354614

We can visualize the projection onto the first two factors:

using Plots
scatter!(opt_design[:,1],opt_design[:,2],label="MaxPro")
plot!(legendposition=:outertopright,grid=false,xlabel="factor 1",ylabel="factor 2")

API

MaxPro.max_pro_designMethod
max_pro_design(n,d)

Generate a space filling design based on the MaxPro criterion with n runs and d factors.

Examples

julia> max_pro_design(25,8);
source
MaxPro.max_pro_designMethod
max_pro_design(design0)

Generate a space filling design based on the MaxPro criterion. The design0 is used as an initial condition for the optimization. The number of rows and columns of design0 respectively determine the number of runs and factors.

Examples

julia> max_pro_design(rand(25,8));
source