# Emerging Data-Driven Calibration Research on an Improved Link Performance Function in an Urban Area
## 3 Solution Method
### Differential Evolution Algorithm  
Heuristic algorithms are effective methods for solving parameter calibration problems. Heuristic search algorithms do not require information such as continuous and differentiable objective functions and have good global optimization capabilities, making them a hot topic in the field of optimization [48; 49; 50]. In this study, the differential evolution algorithm (DE) [51] was used for parameter calibration. The differential evolution algorithm is a heuristic stochastic search algorithm based on population differences. The problem-solving process is represented as the survival of the fittest of \"chromosomes\". Through generations of evolution, including operations such as replication, crossover, and mutation of the \"chromosome\" population, it ultimately converges to the individual that is most adaptable to the environment, thereby obtaining the optimal or satisfactory solution to the problem. The algorithm was originally proposed for solving Chebyshev polynomials and is a post-set heuristic algorithm used for optimization problems. Essentially, it is a greedy genetic algorithm based on real-number encoding focusing on preserving the optimal solution. DE is similar to the genetic algorithm in that it involves mutation, crossover operations, and elimination mechanisms. However, the main difference between DE and genetic algorithms is that the mutation part involves selecting the difference between two solution members, which is then scaled and added to the variables of the current solution member. Therefore, DE does not need to use probability distributions to generate the next generation of solution members. Consider the following unconstrained optimization problem:  
\[\min f(x_{1},x_{2},\ldots x_{D}), \tag{15}\]  
\[s.t.\ x_{j}^{L}\leq x_{j}\leq x_{j}^{U}. \tag{16}\]  
The DE algorithm consists of the following steps. 1. Initialization of the population  
The classical differential evolution algorithm uses real-valued encoding, which makes the algorithm more suitable for solving real-valued optimization problems. \[\Big{\{}X_{i}(0)\Big{|}x_{i,j}^{L}\leq x_{i,j}(0)\leq x_{i,j}^{U};i=1,2,\ldots,NP;j=1,2,\ldots,D\Big{\}}. \tag{17}\]  
Here, \(X_{i}(0)\) denotes the i-th individual, \(D\) denotes the dimensionality of the problem, and \(NP\) notes the population size. Solution vectors are randomly generated within the upper and lower bounds:  
\[x_{i,j}(0)=x_{i,j}^{L}+rand(0,1)(x_{i,j}^{U}-x_{i,j}^{L}). \tag{18}\]
2. MutationIndividual mutation is achieved through a differential strategy. The common differential strategy is to randomly select two different individuals in the population, scale their vector difference, and combine it with the individual to be mutated. \[V_{i}(g+1)=X_{r1}(g)+F(X_{r2}(g)-X_{r3}(g)). \tag{19}\]  
Here, \(r_{1},r_{2},r_{3}\) are three random numbers in the range of \([1,NP]\). \(F\) is the scaling factor, which is also known as the mutation rate, and \(g\) represents the \(g\)-th generation. Generally, the mutation operator often takes a constant value, which is difficult to determine accurately. If the mutation rate is too large, the global optimal solution is low, and if the mutation rate is low, the diversity of the population will decrease, so the phenomenon of \"premature convergence\" is likely to occur. Therefore, we can design an adaptive mutation operator:  
\[\lambda=e^{1-\frac{C_{0}}{C_{m}+1-C}},F=F_{0}\times 2^{\lambda}. \tag{20}\]  
In this way, the mutation operator starts with \(2F_{0}\), and it can maintain diversity in the early stages and prevent premature convergence. As the evolution progresses, the mutation operator decreases until it becomes \(F_{0}\), avoiding the destruction of the optimal solution. The differential evolution algorithm is named after the differential mutation strategy, which is the most important part of the algorithm. (3) Crossover  
The purpose of the crossover operation is to randomly select individuals, as differential evolution is also a random algorithm.