Designs

Utilities for constructing design-of-experiments.

active_subspaces.utils.designs.gauss_hermite_design(N)

Tensor product Gauss-Hermite quadrature points.

Parameters:N (int[]) – contains the number of points per dimension in the tensor product design
Returns:design – N-by-m matrix that contains the design points
Return type:ndarray
active_subspaces.utils.designs.interval_design(a, b, N)

Equally spaced points on an interval.

Parameters:
  • a (float) – the left endpoint of the interval
  • b (float) – the right endpoint of the interval
  • N (int) – the number of points in the design
Returns:

N-by-1 matrix that contains the design points in the interval. It does not contain the endpoints.

Return type:

design, ndarray

active_subspaces.utils.designs.maximin_design(vert, N)

Multivariate maximin design constrained by a polytope.

Parameters:
  • vert (ndarray) – the vertices that define the m-dimensional polytope. The shape of vert is M-by-m, where M is the number of vertices.
  • N (int) – the number of points in the design
Returns:

design – N-by-m matrix that contains the design points in the polytope. It does not contain the vertices.

Return type:

ndarray

Notes

The objective function used to find the design is the negative of the minimum distance between points in the design and the given vertices. The routine uses the scipy.minimize function with the SLSQP method to minimize the function. The constraints are given by the polytope defined by the vertices. The scipy.spatial packages turns the vertices into a set of linear inequality constraints.

The optimization is nonlinear and nonconvex with many local minima. Any reasonable local minima is likely to give a good design. However, to increase robustness, we use three random starting points in the minimization and use the design with the lowest objective value.