neighbor_order
Number of dimensions in which to perturb categorical variables.
Specification
Alias: None
Arguments: INTEGER
Description
The neighbor_order
keyword allows the user to specify the number of
categorical dimensions to perturb when determining neighboring points
that will be used by the mesh adaptive direct search method to augment
its search. When greater than 1, the neighbors are defined from the
tensor product of the admissible 1-dimensional perturbations.
Default Behavior
By default, the categorical neighbors will be defined by perturbing
only one categorical variable at a time (according to the corresponding
adjacency_matrix; see adjacency_matrix
)
while leaving the others fixed at their current values.
Usage Tips
The maximum meaningful value neighbor_order
can take on is the
number of categorical variables.
Examples
In this example, suppose we have the following categorical variables and associated adjacency matrices.
variables
discrete_design_set
real = 2
categorical ‘yes’ ‘yes’
num_set_values = 3 5
set_values = 1.2 2.3 3.4
1.2 3.3 4.4 5.5 7.7
adjacency_matrix = 1 1 0
1 1 1
0 1 1
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
Also suppose that we have the following method specification.
method
mesh_adaptive_search
seed = 1234
If the mesh adaptive direct search is at the point (1.2, 1.2), then the neighbors will be defined by the default 1-dimensional perturbations and would be the following:
(2.3, 1.2)
(1.2, 4.4)
(1.2, 7.7)
If, instead, the method specification is the following:
method
mesh_adaptive_search
seed = 1234
neighbor_order = 2
The neighbors will be defined by 2-dimensional perturbations defined from the tensor product of the 1-dimensional perturbation and would be the following:
(2.3, 1.2)
(2.3, 4.4)
(2.3, 7.7)
(1.2, 4.4)
(1.2, 7.7)