# An Integrated Optimization Method of High-Speed Railway Rescheduling Problem at the Network Level
## 4 NSGA-III Algorithm
### Initial Populations and Infeasible Solution Adjustment
 \tag{44}\]

\[f_{3}=\sum_{c\in C^{eff}}\sum_{t\in T^{eff}}\sum_{x\in X^{eff}}\left(NP^{c,t,x}\times(\sum_{c^{\prime}\
eq c\wedge c^{\prime}\in C^{eff}}\sum_{t^{\prime} \
eq t\wedge t^{\prime}\in T^{eff}}tr^{c,t,x}_{\ell^{\prime},t^{\prime}}+\sum_{ b\in B}tr^{c,t,x}_{b})\right) \tag{45}\]

In every iteration, the Pareto front is generated after calculating these three functions, according to the method in Section 4.1. ### Selection

In order to select superior individuals from the current population and obtain a new population, selection should be performed. First, check the first level of the Pareto front and find out if the number of individuals is less than the population size; if yes, add the first level to the new population and check the next level; otherwise, the progress is as follows, and the definitions are mentioned in Section 4.1. Step 1: Select the reference point connected to the least number of solution points in the current Pareto level. If there are multiple reference points with the same number of connected solution points, randomly select one reference point from them. Step 2: Determine the number of solution points in the current Pareto level that the reference point is connected to. If the reference point is not connected to other solution points, reselect the reference point. If the reference point is connected to solution points in the Pareto level, go to Step 3. Step 3: Judge whether there are connected points higher than the current Pareto level that have entered the next iteration. If there are solution points meeting the requirements,it indicates that the diversity of the current reference point has been preserved. Randomly select a point to enter the next iteration. If there are no solution points meeting the requirements, it indicates that the diversity of the current reference point needs to be preserved. Then, select the solution point closest to the reference line corresponding to the current reference point and add it to the next iteration. Go to Step 4. Step 4: Judge whether the population size of the next iteration meets the population size. If not, go to Step 1. If yes, end the selection process. Till now, we have obtained a new population. ### Crossover

Crossover is one of the genetic operations that combines two chromosomes to generate a new chromosome. We use \(P_{c}\) to describe the probability of one chromosome which is chosen to cross with another chromosome. In Section 4.4, different Pareto levels are formed, and we assume that there are \(i\) Pareto levels in total. \(P_{c}\) can be obtained by following formulas. \[P_{c}=\frac{P_{i}}{N_{i}} \tag{46}\]

\(N_{j}\) is the number of individuals in the \(j\)-th Pareto level, \(P_{j}\) is the probability of choosing a chromosome to cross from the \(j\)-th Pareto level. \(P_{j}\) can be obtained by following formulas. \[P_{j}=\left\{ \begin{array}{l}\left(1-0.8\right)^{j-1}\times 0.8,j<i\\ \left(1-0.8\right)^{j-2}\times 0.2,j=i\end{array} \right. \tag{47}\]

If there is only one Pareto level, then:

\[P_{c}=\frac{1}{N} \tag{48}\]

\(N\) is the number of the population size. We choose a crossover point randomly for the crossover progress of the four gene fragments, respectively. After that, we get some new chromosomes, and we should ensure the infeasibility of these solutions. Therefore, we use the adjustment strategy proposed in Section 4.2 to ensure the feasibility of these new solutions. ### Mutation

The mutation is another operation in the process of generating new chromosomes. The mutation probability of each fragment is 15%. As for gene fragment I and gene fragment II, we randomly choose a gene and change the value. Since the variables of gene fragment I and gene fragment II are 0-1 variables, the result of mutation is the value of the selected gene changing from 0 to 1 or from 1 to 0. As for gene fragment III, we randomly select two adjacent trains and exchange their sequence from one section by making the train behind overtake the other train. And we renew the corresponding values in the matrix of the two trains.