1 Introduction

Inversion problems are basic issues in geophysics. Solutions to these problems can be classified into deterministic or probabilistic methods, or into local or global optimization methods. Most local optimization algorithms are deterministic, whereas global optimization algorithms are stochastic (Sen and Stoffa 2013).

With careful initialization, local optimizations techniques, such as the Newton, quasi-Newton (e.g., the BFGS), and conjugate-gradient (CG) methods, can obtain stable results based on gradient information after several iterations (Gill et al. 1981; Tarantola 2005). However, because the initialization may be unreliable, we cannot be certain that the iterations converge to the global minima. Compared with local optimization methods, global optimization (GO) methods, such as Simulated Annealing (SA) and genetic algorithms (GAs), typically need a huge amount of forward calculations to obtain a global optima. The crucial issues for GO methods are the convergence speed and computational efficiency (Kiranyaz et al. 2013).

Particle swarm optimization (PSO) (Russ et al. (1996)) is an efficient global optimization method. PSO has similar characteristics to evolution algorithms (EAs). These methods are stochastic (e.g., the SA) and are population-based evolutionary algorithms (e.g., the GAs) (Banks et al. 2007; Kiranyaz et al. 2013). PSO has been shown to outperform the GA methods (Angeline 1998). It has been extensively applied because of its fast convergence rate and simple implementation (Poli 2008). However, PSO is significantly slower to converge in certain circumstances, because it can converge prematurely and get trapped in local optima. Therefore, it is important to improve PSO so that it can be applied to the seismic inversion.

PSO improvements can be categorized into two sets: improvements to parameters and modifications to evolution rules. Inertia weight (Shi and Eberhart 1998) and constriction factors (Clerc 1999) have been introduced to the original PSO formulation to better control a particles’ velocity. Carlisle and Dozier (2001) attempted to determine explicit and implicit off-the-shelf parameters for PSO. However, rather than offering a panacea for the parameter selection process, their work raised awareness regarding the importance of appropriate parameter values (Xu and Rahmat-Samii 2007; Zhang et al. 2005a, b). Other PSO improvements modified the particle learning rules, or were hybrids with other GO methods (Liang et al. 2006; Mendes et al. 2004; Ratnaweera et al. 2004).

In this paper, we first briefly introduce the principles of the PSO algorithm using the examples of synthetic inversion for velocity calibration in microseismic monitoring. We explore the inevitable limitations tackling with complex models. Then, we describe the staged shrinkage strategy (SSS) for improving the PSO algorithm, which avoids premature and speeds up the convergence rate. Finally, we present simulation results to demonstrate the superiority of our proposed SSS-PSO algorithm. We also investigated the influence of the built-in velocity clamping factor on the reliability and efficiency for the PSO and SSS-PSO algorithms.

2 PSO algorithm and its limitations

2.1 Fundamentals of the PSO algorithm

PSO was proposed by Eberhart and Kennedy (1995). It maintains a population of particles that represent potential solutions in the search space. These particles have two physical characteristics: location and velocity. The locations represent potential solutions. The velocities represent a kinetic property of the particles. The optimization rules follow mathematical formulas. A flow diagram for PSO is shown in Fig. 1. In a d-dimension model space, the particle swarm size is N, with x id and v id denoting the position and velocity of particle i(i = 1, 2, 3, …, N). p id and p gd are the personal best and global best positions for particle i. The rules to update a particle’s velocity and position are

$$\left\{\!\!{\begin{aligned} &{v_{id} (k + 1) = v_{id} (k) + c_{1} r_{1} [p_{id} (k) - x_{id} (k)] + c_{2} r_{2} [p_{gd} (k) - x_{id} (k)]} \\ &{x_{id} (k + 1) = x_{id} (k) + v_{id} (k + 1)} \\ \end{aligned} } \right.,$$
(1)

where r 1 and r 2 are random numbers in the range [0, 1], and c 1 and c 2 are acceleration constants (typically c 1 = c 2 = 2). The first part of the velocity update equation is called the “velocity inertia” term, the second is the “cognition” term (indicating that the particles are influenced by their own past), and the third is the “social” term (indicating that the particles learn from swarm intelligence) (Eberhart and Kennedy 1995; Shi and Eberhart 1998).

Fig. 1
figure 1

Flow chart of the basic PSO implementation

The algorithm for updating the personal best is

$$\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {P}_{i} (k + 1) = \left\{ {\begin{array}{*{20}l} \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{i} (k + 1),&{\text{when}}\;\;F\left[ {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{i} (k + 1)} \right] < F\left[{\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {P}_{i} (k)} \right] \\ \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {P}_{i} (k),&{\text{when}}\;\;F\left[ {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {P}_{i} (k)} \right] < F\left[ {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{i} (k + 1)} \right] \\ \end{array} } \right.,$$
(2)

where \(\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {P}_{i}\) is the personal best memory of \(\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{i} .\) F is the objective function defined in Eq. 7.

To restrict the maximum step at each iteration and prevent overflow, the maximum velocity (v max,d ) should be a proportion of the range of the particle search space. This proportion is called the velocity clamping factor (δ). According to Russ et al. (1996) and Clerc (1999), the mathematical relationship between these parameter is

$$v_{{\rm max} ,d} = \delta \left({b_{{\rm max} ,d}-b_{{\rm min} ,d} } \right),\;\;\;\;{\text{for}}\;\;\delta \in (0,1],$$
(3)

where v max,d is the allowed maximum velocity of particles, δ is the velocity clamping factor, and b max,d and b min,d are the maximum and minimum location values of particles at d-th dimension.

So if the velocity update results in a step that is too large, the maximum velocity limits the velocities as follows:

$$v_{{id}} = \left\{ {\begin{array}{lll} {v_{\text{max},{\mkern 1mu} d}} &\quad{\text{when}} &{v_{id} > v_{{\text{max}},{\mkern 1mu} d}} \\ {v_{id}} & \quad{\text{when}} & {\left| {v_{id}} \right| \le v_{{\text{max}},{\mkern 1mu} d}} \\ { - v_{{\text{max}},{\mkern 1mu} d}} &\quad{\text{when}} & {v_{id}< - v_{{\text{max}},{\mkern 1mu}d}} \\ \end{array} } \right..$$
(4)

Obviously, unlike acceleration constants that balance the local and global search, the velocity clamping factor controls the convergence speed. A larger velocity clamping factor allows big steps and contributes to a fast convergence rate, but increases the probability that the method will get trapped in local optima. A smaller velocity clamping factor constrains the particle step size, slows down the optimization process, and increases the particles diversity (Poli et al. 2007). Essentially, the acceleration constants and velocity clamping factor have corporative roles in the convergence of the PSO algorithm.

Inertia weights (Shi and Eberhart 1998) have been introduced to original PSO velocity update formula.

$$v_{id} (k + 1) = wv_{id} (k) + c_{1} r_{1} \left[ {p_{id} (k) - x_{id} (k)} \right] + c_{2} r_{2} \left[ {p_{gd} (k) - x_{id} (k)} \right].$$
(5)

Here, w is the inertia weight. The inertia weight can take various values (Rezaee Jordehi and Jasni 2013). It works with velocity clamping factor to have a better control on velocity.

Then, constriction factors (Clerc 1999) were introduced to the original PSO formula as follows:

$$\begin{aligned} & v_{id} (k + 1) = \kappa \left\{ {v_{id} (k) + c_{1} r_{1} \left[ {p_{id} (k) - x_{id} (k)} \right] + c_{2} r_{2} \left[ {p_{gd} (k) - x_{id} (k)} \right]} \right\} \\ & \kappa = \frac{2}{{\left| {2 - \varphi - \sqrt {\varphi^{2} - 4\varphi } } \right|}}, \quad \varphi = c_{1} + c_{2} \, , \, \varphi > 4. \\ \end{aligned}$$
(6)

where K is the constriction factor. Typically, the constriction factor is set to be K = 4.1, and c 1 = c 2 = 2.05. Although the constriction factors were designed to control particles velocity without velocity clamping process, but simulation tests have shown that constriction-based PSO performance is better using velocity clamping (Eberhart and Shi (2000)).

The boundary conditions can also affect the performance of the algorithm (Xu and Rahmat-Samii 2007; Zhang et al. 2005b). In this study, we used the “damping-wall” boundary condition as follows:

$${\text{(}}x_{{id}} {\text{,}}\,v_{{id}} {\text{)}} = \left\{ {\begin{array}{lll} {(b_{{{\text{max}},d}} , - rv_{{id}} ),} &\quad{{\text{if}}}\, {x_{{id}} >\,b_{{{\text{min}},d}} } \\ {(b_{{{\text{min}},d}} , - rv_{{id}} ),} &\quad{{\text{if}}} \,{x_{{id}} >\,b_{{{\text{min}},d}} } \\ \end{array} ,} \right.$$
(7)

where b max,d and b min,d are the boundaries of the particles’ values in the d-th dimension; and r is a random number in [0, 1].

2.2 Numerical examples of the PSO algorithm applied to velocity calibration

Velocity calibration is an indispensable data processing step in microseismic monitoring, which obtains reliable initial models for microseismic data analysis (Cipolla et al. 2012; Maxwell et al. 2010). Various methods have been applied to this problem (Pei et al. 2009; Warpinski et al. 2005; Warpinski and Du 2013). Velocity calibration is a nonlinear optimization with limited data because there is a lack of string shots and receivers. There is no accepted approach for reliably and effectively solving this problem without a priori information (log data or other resources). In this section, we present some numerical examples that applied the PSO algorithm to velocity calibration in microseismic monitoring with synthetic data.

To apply the PSO method to this problem, we chose four 1-D layered velocity models as presented in Pei et al. (2009). The models are shown in Fig. 2. We generated synthetic travel time data using the accurate two-point ray tracing method (Tian and Chen 2005). The objective function is

$$F = \sqrt {\frac{1}{n}\sum\limits_{i = 1}^{n} {\left( {t_{vp,\,i}^{\text{obs}} - t_{vp,\,i}^{\text{cal}} } \right)^{2} } } ,$$
(8)

where F is the objective function, n is the number of sensor shot direct wave picks, and \(t_{vp,\,i}^{\text{obs}}\) and \(t_{vp,\,i}^{\text{cal}}\) are forward and inversion calculations of the direct wave travel times.

Fig. 2
figure 2

Forward models and schematic geometry showing receiver arrays and perforation shot locations

When applying the basic PSO algorithm to recover the 1-D layered velocity models with synthetic travel time data, we used a constriction factor-based formula, the velocity clamping factor δ = 0.1, and the population of particles N = 30 (Carlisle and Dozier 2001). The maximum number of iterations for outer loop was set to t max = 1000, and we set the maximum for the objective function to F ≤ 10−6s. The PSO algorithm terminated when either of these conditions was exceeded. Four test models are shown in Fig. 2. For each test model, we ran 300 inversions with random initial models. These 300 random initial models were generated from three different initial model ranges. There were 100 random initial models for each given range. We set three different initial model ranges to test algorithm behavior, which are shown in Fig. 3 in the cyan line with two dots at both ends at each layer.

Fig. 3
figure 3

PSO inversion results with 1000 maximum iterations. In each sub-plot, the plot on the left displays 100 repeated inversion results in red, which are occasionally overlapped by the black lines that represent the forward model. In each layer, the cyan line with two dots at both ends shows the initial model range. The plot in the middle gives histograms of each layers inversion results. The plot on the right depicts the objective function values, with the iterations represented by red lines. The black line is the average of the best values from 100 repeated inversions

The inversion results are shown in Fig. 3. The sub-figures in row 1 to 4 (from top to bottom) are the inversion results for models 1 to 4; the sub-figures in each row (from left to right) correspond to the inversion results of 300 simulations with three initial model ranges. For simplicity, we denote the sub-figure in row i and column j as sub-figure (i, j). Obviously, each sub-figure shows the results of 100 inversions with random initial models within a certain given model range. We can see that the inversion results for the relatively simple models (models 1 and 2) are very good, even when the initial models are quite different from the true models in sub-figs. (1, 3) and (2, 3). However, the inversion results for models 3 and 4 (relatively complicated models) are not good. Sub-figs. (3, 1) to (3, 3) show that the inversion results for model 3 are quite good in general, except for the top layer. Note that no geophones are deployed in the top layer, so there is no ray path constraint. The inversion results for model 4 are shown in sub-figs. (4, 1) to (4, 3). Although the inversion results were more accurate when the initial model ranges were narrow, they did not generally converge to the true model. In particular, the second layer (low velocity layer) was the least accurate for any of the initial model ranges. Note that we cannot guarantee that the PSO inversion convergence for this model within 1000 iterations achieves the terminal objective function F = 10−6.

2.3 Limitations of basic PSO

In four-layer models, basic PSO iterated less than 100 times to reach the terminal objective function value. In each layer, the velocity deviations were <0.0001 km/s. The successful inversion results for models 1 and 2 indicate that basic PSO algorithm is insensitive to the initial models and stable in repeated simulations. However, the results for model 4 show that the objective function values may stop decreasing sometimes in repeated inversions. This problem could not be alleviated by increasing the maximum number of iterations from 1000 to 5000 (Fig. 4).

Fig. 4
figure 4

PSO inversion results with 5000 maximum iterations. The plot on the left displays 100 repeated inversion results in red, which are occasionally overlapped by the black lines that represent the forward model. In each layer, the cyan line with two dots at both ends shows the initial model range. The plot in the middle gives histograms of each layers inversion results. The plot on the right depicts the objective function values, with the iterations represented by red lines. The black line is the average of the best values from 100 repeated inversions

3 Algorithm modifications

3.1 Modifications of basic PSO

In the geophysical inversion problem, the inversion parameters have different sensitivities to the objective function. The difference is significant in some situations, as revealed in model 4. The inversion results for the second layer (from the surface) in model 4 were the most scattered around the true value. The inversion parameter cannot be accurately calculated. The objective function because trapped in local optima, and stopped decreasing before satisfying the termination criteria. So modifying the search space according to the dimension and the evolutionary stage of the particles is feasible and reasonable. With this in mind, we propose SSS, which encourages the process to escape from local optima.

This modified PSO algorithm is abbreviated to SSS-PSO, and its flow chart is shown in Fig. 5. Firstly, we initialize the global best memory (\(g_{h,\,d}^{\text{memo}}\)) and update it with each iteration. h is the global best change times. Then, we calculate the maximum, minimum, and average values of the particles and their personal best positions (x max,dx min,dx ave,d and y max,dy min,dy ave,d ). The maximal and minimal global best positions are acquired from the global best memory (\(g_{h,\,d}^{\text{memo}}\))

$$\begin{aligned}g_{{\max,d}}^{{{\text{memo}}}} &= \left\{ \begin{array}{ll} \max \left( {g_{{1:h,d}}^{{{\text{memo}}}} }\right); &\ {{\text{when}}\,h\, < \,h_{block} } \\ \max \left({g_{{h_{block}:h,d}}^{{{\text{memo}}}} } \right); &\ {{\text{when}}\,h\, \ge \,h_{block} } \\ \end{array} \right. \\ g_{{\min,d}}^{{{\text{memo}}}} &= \left\{ \begin{array}{ll}\min \left( {g_{{1:h,d}}^{{{\text{memo}}}} } \right); &{{\text{when}}\,h\, < \,h_{block} } \\ \min \left( {g_{{h_{block}:\,h,d}}^{{{\text{memo}}}} } \right); & {{\text{when}}\,h\, \ge \,h_{block} } \\ \end{array} \right. \end{aligned}\! ,$$
(9)

where h block is 30 here which used to calculate \(g_{h,\,d}^{\text{memo}}\). In the early evolution stage, the particles’ global best positions may not be local minimums, and should be excluded. Otherwise, the global best positions will undermine the efficiency of the boundary shrinkage. If we use a fixed length that results in \(g_{\hbox{max} ,\,d}^{\text{memo}}\) and \(g_{\hbox{min} ,\,d}^{\text{memo}}\) through blocking, we may fail to achieve the global best position. Admittedly, more detailed work is required. However, our work suggests that h block = 30 and the other following parameters for SSS implementations work well in velocity calibration tests.

Fig. 5
figure 5

Flow chart of the SSS modified PSO implementation

Secondly, each inversion parameter dimension is sorted into a specified stage according to the positions of the particles. If the boundary space shrinks to 20 % of the initial space range, we defined the evolutionary situation as stage 2. If the boundary space shrinks to 4 % of the initial range, we define the situation as stage 3. Otherwise, the boundary space is 20 %–100 % of the initial range, and is in stage 1. Then, we update the boundary range according to the following rules:

$$\begin{aligned} b_{d} = b_{{\rm max} ,d} - b_{{\rm min} ,d} \hfill \\ \begin{array}{l} {\left\{ {\begin{array}{l} {\left\{ {\begin{aligned} &{b_{{\rm max} 1,d} = {\rm max} \left( {g_{{\rm max} ,\,d}^{{\rm memo}} + s_{4} rb_{d} ,x_{{\rm max} ,\,d} + s_{4} rb_{d} ,\,y_{{\rm max} ,\,d} + s_{4} rb_{d} } \right)} \\ &{b_{{\rm max} 2,d} = {\rm max} \left( {x_{{{{\rm ave}},\,d}} + (s_{2} + s_{3} r)b_{d} ,\,y_{{{{\rm ave}},\,d}} + (s_{2} + s_{3} r)b_{d} } \right)} \\ \end{aligned} } \right.} \\ {b_{{\rm max} ,d} = {\rm min} \left( {b_{{\rm max} ,\,\,d}^{{\rm ini}} ,\,x_{{\rm max} ,\,d} + \,s_{1} rb_{d} ,\,{\rm max} \left( {b_{{\rm max} 1,d} ,b_{{\rm max} 2,\,d} } \right)} \right)} \\ \end{array} } \right.} \\{\left\{ {\begin{array}{l} {\left\{ {\begin{aligned} &{b_{{\rm max} 1,\,d} = {\rm min} \left( {g_{{{{\rm min,}}\,d}}^{{\rm memo}} - s_{4} rb_{d} ,x_{{\rm min} ,\,d} - s_{4} rb_{d} ,\,y_{{\rm min} ,\,d} - s_{4} rb_{d} } \right)} \\ &{b_{{\rm min} 2,\,d} = {\rm min} \left( {x_{{{{\rm ave}},\,\,d}} - (s_{2} + s_{3} r)b_{d} ,\,\,y_{{{{\rm ave}},\,d}} - (s_{2} + s_{3} r)b_{d} } \right)} \\ \end{aligned} } \right.} \\ {b_{{\rm min} ,\,d} = {\rm max} \left( {b_{{\rm min} ,\,\,d}^{{\rm ini}} \,x_{{\rm min} ,\,d} - \,s_{1} rb_{d} ,\,\,\hbox{min} \left( {b_{{\rm min} 1,\,d} ,b_{{\rm min} 2,\,d} } \right)} \right)} \\ \end{array} } \right.} \\ \end{array} \hfill \\ \end{aligned},$$
(10)

where b max,d , b min,d , and b d are the maximum, minimum, and range values of the particles’ positions, \(b_{{{ \hbox{max} },d}}^{\text{ini}}\) and \(b_{{{ \hbox{min} },d}}^{\text{ini}}\) represent the initial range, r is a random number independently generated in [0,1], and s 1, s 2, s 3 and s 4 are SSS parameters. Each inversion parameter dimension exhibits a fast convergence rate in stage 1 because the parameters are set to s 1 = 0.4, s 2 = 0.3, s 3 = 0.1, and s 4=0.2. The convergence slows in stage 2 (s 1 = 0.5, s 2 = 0.1, s 3 = 0.6, and s 4 = 0.3) with the randomness boundary extension, and increases again in stage 3 (s 1 = 0.3, s 2 = 0.3, s 3 = 0.3, and s 4 = 0.2). Then, the boundary of the dimension shrinks to a very small range that includes the global optima.

Finally, we update the boundary conditions and maximum velocity.

3.2 Numerical experiments using the SSS-PSO algorithm

As shown in Sect. 2.2, basic PSO fails to retrieve the model parameters for model 4. We applied the SSS-PSO to this problem to determine its inversion performance. The inversion results are shown in Fig. 6. The fast and robust convergence of the objective function demonstrates the algorithm’s performance. In repeated inversions, the objective function converged to the termination criteria within the maximum number of iterations. It can be seen that although without requiring a prior information, the performance of the SSS-PSO is stable in repeated runs. These merits mean that SSS-PSO can be applied to velocity calibration application cases in complex models.

Fig. 6
figure 6

SSS-PSO inversion results with 5000 maximum iterations. In each sub-plot, the plot on the left displays 100 repeated inversion results in blue, which are occasionally overlapped by the black lines that represent the forward model. In each layer, the cyan line with two dots at both ends shows the initial model range. The plot in the middle gives histograms of each layers inversion results. The plot on the right depicts the objective function values, with the iterations represented by blue lines. The black line is the average of the best values from 100 repeated inversions

4 Sensitivity of PSO and SSS-PSO to velocity clamping factor

The velocity clamping factor (δ) is important to the performance of PSO and SSS-PSO. To investigate how δ affects the reliability and efficiency of PSO and SSS-PSO, we ran PSO and SSS-PSO inversions for nine δ values, ranging from 0.1 to 0.9. The inversion results are shown in Figs. 7 and 8.

Fig. 7
figure 7

Reliabilities of different models with varying velocity clamping factors. The triangle and circles represent the basic and SSS-PSO results, respectively. The plots from left to right are the results for three different initial ranges. The plots from top to bottom are the inversions for four different models. In each plot, the velocity clamping factor changed from 0.1 to 0.9

Fig. 8
figure 8

Error bars of forward evaluations of different models with varying velocity clamping factors. The triangle and circles represent the basic and SSS-PSO results, respectively. The plots from left to right are the results for three different initial ranges. The plots from top to bottom are the inversions for four different models. In each plot, the velocity clamping factor changed from 0.1 to 0.9

We define the reliability of the inversion performance as follows:

$${\text{reliability(}}\delta ,\,{\text{Succ) = }}\frac{{{\text{Succ}}_{\delta } }}{\text{Total}} \times 100\,\%$$
(11)

where Succ δ is the number of successful inversions in Total = 100 repeated runs. Success is defined as reaching the objective function value (F = 10−6) within the maximum number of iterations (t max = 5000). Figure 7 shows the statistical reliabilities of the four models and three initial ranges. The reliabilities for all these cases were mainly insensitive to δ, although there were some small variations for model 3. Thus, the reliabilities were almost independent of δ, regardless of the high or low reliabilities. Another important feature of these results is that the SSS-PSO reliabilities were almost 100 % in all cases, whereas the basic PSO reliability was 100 % for models 1 and 2, a little above 0 % for model 4, and approximately 50 % for model 3. This indicates that the SSS-PSO inversion was systematically superior to the basic PSO inversion, and may guarantee convergence. Moreover, the reliabilities of the SSS-PSO inversion for models 3 and 4 decreased slightly as δ increased, which suggests that we should use small δ values.

Computational efficiency is another important measure for assessing an inversion algorithm. In the basic PSO and SSS-PSO algorithms, we only need forward calculations after updating each particle position. So the time taken by forward evaluations is equal to the number of iterations multiplied by the size of the population (N = 30). Forward evaluations represent the most computational time, so they correlate strongly with algorithm efficiency. Therefore, it is important to determine the sensitivity of δ to the forward evaluations.

In Fig. 8, in terms of the time taken by forward simulations, the velocity clamping factor has a marginal influence on the basic PSO efficiency, but is very important to the SSS-PSO efficiency. In the basic PSO results for simple cases (Models 1 and 2), the forward simulations are stable to the changes in the velocity clamping factor and the parameter range of initial model. In models 3 and 4, on most occasions, the method used the maximum number of forward simulations, because the statistical reliability was approximately 50 % for model 3 and 0 % for model 4. For the SSS-PSO algorithm, small values of the velocity clamping factor (δ ≈ 1) can significantly reduce the number of forward simulations, thus the small value of δ is a preferable.

5 Conclusions

In this study, we improved the inversion performance of the basic PSO algorithm by incorporating the SSS, and applied our method to velocity calibration in miscroseismic monitoring. We demonstrated that the SSS-PSO algorithm is robust and efficient. The SSS-PSO algorithm steadily and speedily converged to the solution, regardless of the complexity of the target models and the randomness of the initial models. Furthermore, we investigated the influence of choices of the velocity clamping factor (δ) on the reliability and efficiency of the basic and SSS-PSO algorithms. We found that basic PSO is insensitive to δ, whereas SSS-PSO is not (especially the searching efficiency of). The SSS-PSO algorithm was robust to all the tested values of δ. Moreover, our simulations suggest that a small velocity clamping factor (δ = 0.1) is preferred for SSS-PSO, in these microseismic velocity calibration problems.

We validated the performance of the algorithms by running 100 repeated inversions with random initial models, to differentiate the discrepancies caused by the intrinsic uncertainties of geophysical inversion problems from artifacts and errors produced by the inversion strategies. Additionally, because there is no panacea for GO problems according to the “no free lunch” theorems (Wolpert and Macready 1997), we need an inversion strategy that is aimed at specific geophysical inversion problem. Any such strategies should be tested before being applied. We cannot guarantee that the SSS-PSO will converge to global optima for any given problem, which is the same for all other GO methods. We have proposed and validated this method for microseismic velocity calibration models. The tests in this paper are limited, and further investigation is needed with noisy data, which will be proceeded in our future work.