# A Systematic Compact Model Parameter Calibration with Adaptive Pattern Search Algorithm
## 4 Pattern Search Algorithm  
Pattern search algorithm is a kind of direct search algorithm widely adopted in the field of optimization. By default, the pattern search is a local optimizer, but it has the characteristics of a global optimizer [10; 11]. Unlike the 'Newtonian method' based algorithms, it does not rely on the gradient so that it can deviate from local optimum. Therefore, a pattern search algorithm can be applied to optimize the problems on non-continuous and non-differentiable searches. The best-known pattern search algorithm is originated by Hooke-Jeeves (HJ) method could be utilized either way as a non-constrained and constrained optimization problem [10; 11]. For the compact model parameter calibration (extraction), model parameters should be constrained within the specific boundary to keep the physical meaning of the model. Therefore, we set up the algorithm as a constrained optimization problem for the given parameter space to find the point that minimizes the fitness value between the given target current vector and simulated current vector. The method consists of two main processes, so-called exploratory move and pattern move. At first, the initial point, which is the basis of this study, is uniformly sampled from the parameter space. In an exploratory move, the algorithm evaluates the two neighboring points around the exploration basis in all axes and takes the best point among them. Unlike the gradient based algorithm, fixed length of step size is used for exploration in each dimension. In each axis of parameter space, ternary exploration, thus, +step size, 0 or -step size displacements are added to exploration basis and evaluated at that points to pick the displacement \(\overrightarrow{D_{i}}\) for the axis. Then, the ternary exploration is performed on the following axis from the new exploration basis decided in previous step. This sequential exploration is adopted in the HJ method to reduce the exploration time and computational cost. A displacement between the final point and the exploration basis is set to the direction vector to be used in the following process. In the pattern move, the algorithm evaluates the points where the direction vector reaches until the fitness is no longer improving. In other words, the pattern move is the naive line search algorithm on one dimensional parameter space that loosely minimizes the fitness. The one-dimensional parameter space is projected from original multi-dimensional parameter space along the direction vector. After reaching the loosely minimized point, then algorithm set the point to exploration basis and repeats the two processes again until a magnitude of the displacement vector is less than 1e-9, thus, it is at no better point than basis is found. To optimize further, exploration range, so called step size, is reduced by scale factor (SF) and repeat the whole process again. The algorithm is terminated when it meets termination criteria, such as target fitness and minimum step size. Lower bound of fitness value is set to 1e-8 as a target. Since a step size of exploration that is too small is \begin{table}
\begin{tabular}{c c c} \hline \hline
**Parameter** & **Lower Bound (\(\Delta\)I\({}_{\text{D}}\))** & **Upper Bound (\(\Delta\)I\({}_{\text{D}}\))** \\ \hline DELVTO & \(-6.25\times 10^{-2}\) (+10\%) & \(5.468\times 10^{-2}\) (\(-10\%\)) \\ U0 & \(5.39\times 10^{-2}\) (\(-10\%\)) & \(9.109\times 10^{-2}\) (+10\%) \\ VSAT & \(6.562\times 10^{+4}\) (\(-10\%\)) & \(9.812\times 10^{4}\) (+10\%) \\ RDSW & \(6.25\times 10^{+1}\) (+10\%) & \(3.593\times 10^{2}\) (\(-10\%\)) \\ DVTO & \(0.0\) (\(-8\%\)) & \(5.2\) (\(+10\%\)) \\ ETA0 & \(0.0\) (\(-5\%\)) & \(5.1\times 10^{-1}\) (+10\%) \\ UA & \(1.0\times 10^{-10}\) (+8\%) & \(2.2\times 10^{-9}\) (\(-10\%\)) \\ PCLM & \(6.3\times 10^{-1}\) (\(-10\%\)) & \(2.25\) (\(+10\%\)) \\ XJ & \(8.3\times 10^{-8}\) (+10\%) & \(4.43\times 10^{-7}\) (\(-5\%\)) \\ NSUB & \(6.0\times 10^{16}\) (\(-10\%\)) & \(1.0\times 10^{17}\) (\(+10\%\)) \\ \hline \hline \end{tabular}
\end{table}