The Optimize button invokes an algorithm that is conceptually similar to a class of covering array optimizers sometimes referred to as post-construction randomized optimizers (Nayeri et al., 2013). However, JMP’s algorithm differs from most in that it also addresses designs with constraints. In particular, it optimizes constrained covering arrays as well as unsatisfiable, constrained covering arrays.
The algorithm assumes that the design to be optimized is a covering array of the specified strength. For a K factor design of strength t, the algorithm iteratively examines all KCt factor projections to determine whether runs can be eliminated or merged. Consequently, as K or t increases, the run time of the algorithm quickly escalates. To improve performance, the JMP implementation is threaded to use as many CPU cores as are available on your workstation.