# Precise Identification of Coal Thickness by Channel Wave Based on a Hybrid Algorithm
## 2 Description of the Method
### The Hybrid Algorithm  
In this study, the GA-SIRT was adopted to minimize the objective function using a two-step procedure. The specific process is shown in Figure 1. In the first step, the GA performs global inversion in order to produce an individual that can be as close as possible to the global minimum. In the second step, the best individual produced from the first step is used as the initial model of the SIRT, with strong local search ability for further repeated iterations. Finally, the slowness distribution S is obtained when the termination condition is met. In this way, the strong advantages of the two algorithms are fully utilized to improve the comprehensive performance of the tomographic inversion. The following Figure 1 is a logical flow diagram of the proposed algorithm.  
Step 1. The Genetic Algorithm  
(1) Initialize the involved parameters.  
a) Set \(Iter=0\), where \(Iter\) is the current number of generations.  
b) Set \(NIND=50\) as the size of the population.  
c) Set \(MAXGEN=1000\) as the maximum number of generations.  
d) Set \(px=0.8\) as the crossover probability and \(pm=0.005\) as the mutation probability.  
e) Set \(GGAP=0.95\) as the generation gap.  
The initial population is generated through binary coding after the parameters are defined, and the evolutionary range of the population can be limited by prior conditions.  
Figure 1: Flow chart of the hybrid algorithm.  
(2) Calculate the fitness value corresponding to the value of the objective function for each individual of the population.  
(3) Genetic Operators  
a) Selection operation. The selection operation is used to determine the individuals to be crossed and mutated, and the number of offspring that will be produced by the selected individuals. The parent generations are chosen with the roulette selection method according to the generation gap _GGAP_. The individuals corresponding to the higher fitness value (slowness models with the smaller error) are retained with a high probability, whereas the individuals corresponding to the lower fitness value (slowness models with the higher error) are retained with a low probability.  
b) Crossover operation. A new generation of individuals is produced by crossover operation (the interchanging and recombination of strings), according to a certain probability \(Px\) among the population of the remained individuals. The new individuals inherit the characteristics of their parents and realize the crossover of genetic information.  
c) Mutation operation. The mutation experienced by the offspring after crossing is actually the change of offspring's genes, produced by small probability perturbation. Firstly, an individual is selected randomly in the population, and the value of a string is randomly changed for the selected individual, with a certain probability \(P_{m}\). As in the biological world, the value of \(P_{m}\) is usually very small.  
(4) Calculate the fitness value, and record the best individuals in the _Iter_ generation. _Iter_ = _Iter_ + 1.  
(5) If _Iter_ = _MAXGEN_, the process of genetic evolution will stop, and the result of slowness distribution \(S_{0}\) will be acquired. Otherwise, go to 3.  
Step 2. The SIRT algorithm  
The slowness result \(S_{0}\) obtained by the global search of the GA is used as the initial model for the local inversion of SIRT, and the repeated iteration is conducted according to the following formula 5:  
\[S_{g+1}=S_{g}+\sum_{i=1}^{M}\frac{t_{i}-A_{i}S_{g}}{A_{i}A_{i}^{T}}A_{i}^{T} \tag{5}\]  
where \(A_{i}\) is the _ith_ row vector of \(A\), \(A_{i}^{T}\) is the transpose of \(A_{i}\), \(g\) is the current iteration steps of SIRT and the initial value of \(g\) is 0, and \(S_{g}\) is the slowness distribution results after the iteration steps of \(g\).  
The slowness distribution result with a global optimum is finally obtained when the current iteration steps \(g\) reaches the maximum number of iterations \(N\) set in SIRT. In this research, the value of \(N\) was set to be 500.