# Research on a Coal Seam Gas Content Prediction Method Based on an Improved Extreme Learning Machine
## 2 Development of Prediction Models for Coal Seam Gas Content  
### Theoretical Analysis and Performance Evaluation of the GASA Optimization Algorithm  
The GA is a stochastic search algorithm that mimics the genetic mechanism of nature and [PERSON]'s theory of biological evolution [24; 25]. The GA uses a coding space to represent the parameter space of the problem and evaluates the fitness of individuals in the population based on a fitness function. This approach simulates biological selection and genetic mechanisms through genetic operations to generate new individuals who outperform the previous generation. Through repeated iterations, the algorithm approaches the global optimum solution. Figure 1 shows the flowchart of the GA algorithm. The SA algorithm is a random search algorithm that is based on the Monte Carlo iterative solution strategy [26; 27]. Its starting point is inspired by the similarity between the annealing process of solid materials and combinatorial optimization problems. The SA algorithm starts with a high initial temperature and applies the Metropolis sampling criterion, which accepts suboptimal solutions in the neighborhood with a certain probability. This allows the algorithm to effectively avoid becoming stuck in local optima in the early stage. In the later stage, the algorithm improves its convergence efficiency by rejecting suboptimal solutions with a high probability. This overcomes the problem of the algorithm becoming easily trapped in local optimal solutions and is crucial to the SA algorithm's ability to converge globally. The SA algorithm process is depicted in Figure 1.  
The GASA algorithm is designed to combine the advantageous features of SA and GA, namely, SA's gradually decreasing probability jump and GA's survival of the fittest, to overcome the challenge of becoming trapped in local minima during the search process. Structurally, while GA simultaneously searches the population using the neighborhood function, SA only concentrates on a single individual at a time. The GASA algorithm combines these approaches by executing SA sequentially on each individual in the GA population, diversifying the neighborhood search structure of each individual and enhancing the algorithm's search capability and efficiency. The GASA algorithm adheres to the process illustrated in Figure 2. The optimization process can be summarized as follows [16]:  
1. GA Initialization: Set the population size N and initialize the population P\({}_{K}\). Set the maximum number of generations M and the genetic iteration number \(K\) to 1;
2. Defining the fitness function;
3. Assess the fitness value of the P\({}_{K}\): Verify if the stopping criterion for the GA has been attained. If the criterion has indeed been met, then it yields the most superior solution. If not, proceed with steps (4) to (9) accordingly;
4. P\({}_{K}\) performs genetic crossover and mutation to generate a fresh population, P\({}_{K0}\), and subsequently assesses the fitness value of P\({}_{K0}\). 5. Initializing SA parameters: Set the initial solution P\({}_{K0}\) of the population as the initial solution of SA, set \(i=0\), set the initial temperature \(T=T_{i}\) (sufficiently high), determine the length of the Metropolis chain \(L\) at each state \(T\), and set the iteration count in the chain \(Q=1\). 6. At the present temperature \(T\), and for \(Q=1\), \(2\), \(3\), \(\ldots L\), iterate through steps (7) to (9) repeatedly. 7. For every member of the current population, induce a random perturbation to generate a fresh population, and subsequently evaluate the fitness of this new population. 8. For each member of the current population, determine the disparity in fitness between the fresh population and the current population, represented by \(\Delta E\). Determine whether \(P=\exp\left(-\frac{\Delta E}{T}\right)\geq rand\), and if so, accept the new solution as well; if not, reject the new solution. Figure 1: Flowchart of the GA and SA algorithm.