# Parameter Optimization Method for Metal Surface pBRDF Model Based on Improved Strawberry Algorithm
## 3 Improved Strawberry Optimization Algorithm  
### Strawberry Optimization  
The strawberry algorithm (SBA) is a heuristic algorithm first proposed by [PERSON] [21]. The mathematical model of SBA describes how the strawberry plants migrate from one to another place and generates the number of runners and roots. Strawberry plants use both roots and runners to perform local and global searches and discover life resources, such as minerals and water, which present an optimization effect from roots and runners. For strawberry plants, roots and runners are usually generated randomly where there is a large amount of water resources and are pregnant with many child plants. The child plants also can generate more roots and runners affecting the growth of the strawberry forest. From the growth process of strawberries, it can be seen that  
1. Each strawberry plant performs local searches through roots and global searches through runners randomly to find life resources [22]. 2. The runners generate new roots through global search and produce child plants, as shown in Figure 2.
3. Strawberry child plants grow faster and generate more roots and runners when they approach more affluent resources, and on the other hand, strawberry child plants are more likely to die in the case of inadequate resources. Figure 2: Strawberry plant. The basic idea of the strawberry algorithm is that each position of the root and runner in the strawberry reproduction process represents the solution of an objective function, and whether the location is rich in resources means the quality of the objective function solution. Moving the root and runner to a new position with abundant resources to produce child plants is seen as finding an optimization solution. Through continuous iteration, the optimal solution of the objective function can be obtained. The steps of the algorithm are as follows:  
1. Initialization  
First, N points representing an initial mother plant population in the feasible domain of the problem to be solved are randomly generated, where each mother plant has \(m\) variables to optimize and is denoted by an \(m\times N\) matrix. Then, each mother plant randomly generates a closer root and a farther runner based on the initial population at each iteration, by which the new roots and runners were produced. To obtain an optimization solution, the runners jump around. When the runners jump over the local minimum well, the algorithm will achieve a faster speed and obtain better global search ability. Through continuous iteration, each variable can be searched to be a possible optimization solution \(x_{p}^{(t+1)}\) at (t + 1)th iteration. The process can be represented as follows:  
\[x_{p}^{(t+1)}=\left[x_{root}^{(t+1)}\ x_{runner}^{(t+1)}\right]=\left[x_{i}^{ (t)}+d_{root}r_{1}\ x_{i}^{(t)}+d_{runner}r_{2}\right] \tag{10}\]  
where \(x_{p}^{(t+1)}=[x_{m,1},x_{m,2},\cdots x_{m,2N}]\), \(x_{i}^{(t)}=[x_{m,1},x_{m,2},\cdots x_{m,N}]\), \(t\) is the number of iterations, \(m\) signifies the number of variables to be optimized and \(N\) denotes the number of mother plants. The parameter \(x_{p}^{(t+1)}\) denotes that the plant propagation matrix at iteration \((t+1)\) is of dimension \(m\times 2N\), indicating both runners and roots in one matrix. The parameters \(x_{root}^{(t+1)}\) and \(x_{runner}^{(t+1)}\) contain the locations of roots and runners at this iteration, both of them are of size \(m\times N\). The parameter \(x_{i}^{(t)}\) is the optimal solution for the roots' and runners' positions at the t-th iteration. The parameter \(d_{root}\) and \(d_{runner}\) are two scalars representing the distance of roots and runners from the mother plant, respectively, (often we have \(d_{runner}>d_{root}\)); \(r_{1}\) and \(r_{2}\) are random matrices whose members are uniformly distributed in the range [\(-0.5,0.5\)]. 2. Calculation of fitness value  
The fitness values \(fit(x_{p})\) of all optimization solutions based on the objective function can be calculated as:  
\[fit(x_{p})=\left\{