This section describes three related terms: pattern, grid, and polling)
I. Patterns)
One mode is a set of vector VJ {VJ }. Mode in searchAlgorithmIt mainly determines the points to be searched in the next iteration of the algorithm. The set {VJ} is determined by two factors: one is the number of independent variables in the target function n, and the other is the set of orthogonal basis. In the Pattern Search Algorithm, there are two commonly used orthogonal base sets. One is the maximum orthogonal base set with 2n elements, and the other is the minimum orthogonal base set with n + 1 elements.
For the GPS method, the vector set of the form mode is composed of vectors in a fixed direction. For example, if there are three independent variables in an optimization problem. The default pattern consists of 2n orthogonal bases:
The pattern consists of N + 1 orthogonal basis:
For the Mads algorithm, vector sets that constitute the pattern are generated randomly by the algorithm. Based on the round-robin selection method, the number of selected vectors is 2n or N + 1.
In GPS, 2n vectors are divided into n vectors and N opposite vectors. n + 1 vectors are divided into n vectors and the opposite vectors of n vectors.
2. Mesh)
In each step of Pattern Search, a series of vertices called "grids" are searched. Find the points in these points that can improve the target function. GPS and Mads algorithms use the following method to generate a grid.
1. Multiply each vector VJ in the pattern by a scalar m to obtain the vector DJ set {DJ }. This scalar m is called the mesh size ).
2. Add {di} to the current vertex. Di is the optimal solution found in the previous algorithm.
For example, all the above is theory. In the GPS algorithm, assume that the current point is [1.6 3.4], The mode is
The current mesh size is 4.
Multiply the mode by 4 and add the current vertex to the grid.
3. Polling)
The algorithm calculates the points in the mesh one by one. If the points are found to be better than the target function value of the current point, we call this round robin successful. If no better point is found in the grid point than the current point, this round robin fails. If multiple points are found to be better than the current point in a successful round robin, which point should be replaced with the current point?
There is an option in the algorithm called"Complete poll", The default value is" off ". By default, the algorithm calculates vertices in the grid one by one. If a vertex is found to be better than the" current vertex ", the algorithm stops polling, instead, replace the vertex with the current vertex ". IfComplete pollIf this option is set to "on", the algorithm polls all vertices in the grid one by one, replace the vertex with the "current vertex" with the minimum target function value ".
If a round robin fails, how will the algorithm run? After the polling fails, the "current point" will not change, but the algorithm will multiply the grid size m by 0.5 to generate a new grid and continue the round-robin. If the round-robin is successful, the algorithm will multiply the grid size m by 2, and then the algorithm continues to run. Therefore, the algorithm is gradually moving forward when the mesh becomes larger and smaller.