# Three-Dimensional Drone Cell Placement: Drone Placement for Optimal Coverage
## 4 Proposed Methods for Optimal DC Placement
### Differential Evolution  
DE or the differential evolution algorithm [45] optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality. DE was first introduced by [PERSON], [PERSON] et al. as an effective evolutionary technique that can be utilized in a continuous domain to address global optimization issues. DE first creates a population of candidate solutions which are chosen at random as if nothing is known about the system [46]. The candidate solutions with the best objective values are kept in the next iteration in such a manner that the new values of an individual are improved forming a consequent part of the population, otherwise the new values are discarded. These steps are repeated until the termination criteria are met. For every iteration, DE uses the mutation function to produce a donor vector for each individual in the population. The mutant vector for each target vector can be produced using a specific mutation function [47]. The mutation function used in the report is:  
\[``DE/best/2\"\qquad\mathbf{V}_{i}=\mathbf{X}_{best}+F(\mathbf{X}_{r_{1}}- \mathbf{X}_{r_{2}})+F(\mathbf{X}_{r_{3}}-\mathbf{X}_{r_{4}}) \tag{17}\]where \(r_{1},r_{2},r_{3},r_{4}\in[1,N*\mathbf{P}]\) are integers and are mutually exclusive and \(F\in[0,2]\). The integers are chosen at random from the interval and are different from the index i. Here, F is a real and constant factor (scaling factor) that controls the intensification of the differential evolution and \(\mathbf{X}_{best}\) is the best individual vector [47]. The main advantage of DE is that it requires adjustment of only three parameters and the selection of the mutation strategy: the population size, the mutation factor F and the crossover parameter \(CR\in[0,1]\). The mutation factor is a scaling parameter, where smaller values of F lead to smaller steps in the mutation process, resulting in a longer convergence time. Conversely, higher values of F can accelerate convergence but may also cause the algorithm to overshoot the optimal solution. The crossover parameter CR affects the diversity within the population; higher values of CR introduce more variation, enhancing the algorithm's ability to perform both local and global searches effectively. Finding an appropriate CR value is crucial for balancing exploration and exploitation capabilities [47]. The pseudo code for DE is presented in Algorithm 2.  
```
1:Initialize population \(\mathbf{P}\) with random solutions
2:Set generation counter \(t=0\)
3:while stopping criterion is not met do
4: Evaluate fitness for each solution in \(\mathbf{P}\)
5:for each solution \(\mathbf{X}_{i}\in\mathbf{P}\)do
6: Randomly select three distinct solutions \(\mathbf{X}_{t1}\), \(\mathbf{X}_{t2}\), and \(\mathbf{X}_{t3}\) from \(\mathbf{P}\)
7: Generate trial vector: \(\mathbf{V}_{i}=\mathbf{X}_{best}+F(\mathbf{X}_{r_{1}}-\mathbf{X}_{r_{2}})+F( \mathbf{X}_{r_{3}}-\mathbf{X}_{r_{4}})\)\(\triangleright\) Equation (17)
8: Clip elements of \(\mathbf{V}_{i}\) to search space boundaries if necessary
9: Apply mutation and crossover to create trial vector \(\mathbf{U}_{i}\)
10: Select \(\mathbf{U}_{i}\) or \(\mathbf{X}_{i}\) based on fitness: \(\mathbf{X}_{i}^{(t+1)}=\begin{cases}\mathbf{U}_{i}&\text{if }f(\mathbf{U}_{i})<f( \mathbf{X}_{i})\\ \mathbf{X}_{i}&\text{otherwise}\end{cases}\)
11:endfor
12: Increment generation counter: \(t=t+1\)
13:endwhile
14:return Best solution found in \(\mathbf{P}\)
```  
**Algorithm 2** Differential evolution (DE)