## 4 Algorithm Design  
### Degressive Ary Number Encoded ADENSGA for Node Placement Problem  
In previous studies [10], a directed evolved NSGA2, ADENSGA, was proposed to solve the node placement problem. In ADENSGA, the basic binary encoding is used. In this paper, we will further improve the encoding method of ADENSGA. To improve the performance of the algorithm, degressive any number encoding is considered to apply in ADENSGA. Thus, degressive any number encoding should be extended to the multi-objective problems. Encoding is a method which can transform the feasible solution of the problem from its solution space to the search space. Therefore, the implementation of degressive any number encoding in multi-objective optimization problems is similar to that in single-objective optimization problems. The process of the degressive any number encoded ADENSGA (D-ADENSGA) for the node placement optimization is shown in Algorithm 2. ```
In :Size of population \(n\), Initial any number \(N(0)\), Any number change rule \(N(k)\), Termination conditions Out:Global optimal solution \((\Delta\mathbf{x}_{\mathbf{k}^{*}}^{*},\Delta\mathbf{y}_{\mathbf{k}}^{*})\) Generate the initial population \((\Delta\mathbf{x}_{\mathbf{0}},\Delta\mathbf{y}_{\mathbf{0}})\) of size \(n\); \(N\gets N(0)\); \(k\gets 1\); whileNot meet the termination conditionsdo

Encode all the individuals by \(N\); for\(i=1:n\)do

\(Num(i)\leftarrow\mathit{Density}((\Delta\mathbf{x}_{\mathbf{k}},\Delta \mathbf{y}_{\mathbf{k}}))\); \(p_{c}(i)\gets Calculatepc(Num(i))\); \(r_{limit}(i)\gets Calculatelimit(Num(i))\);

end for

\((\Delta\mathbf{x}_{\mathbf{k}},\Delta\mathbf{y}_{\mathbf{k}})\leftarrow\mathit{ Select},\mathit{Crossover}(\mathbf{p_{c}}),\mathit{Mutate}\); \((\Delta\mathbf{x}_{\mathbf{k}},\Delta\mathbf{y}_{\mathbf{k}})\gets Update((\Delta \mathbf{x}_{\mathbf{k}},\Delta\mathbf{y}_{\mathbf{k}}),\mathbf{r_{limit}})\); \(\mathbf{F_{k}}\gets Fitness((\Delta\mathbf{x}_{\mathbf{k}},\Delta\mathbf{y}_ {\mathbf{k}})\); \((\Delta\mathbf{x}_{\mathbf{k}},\Delta\mathbf{y}_{\mathbf{k}})\gets Elite((\Delta \mathbf{x}_{\mathbf{k}},\Delta\mathbf{y}_{\mathbf{k}}),(\Delta\mathbf{x}_{ \mathbf{k}-1},\Delta\mathbf{y}_{\mathbf{k}-1}),\mathbf{F_{k}},\mathbf{F_{k-1}})\); \((\Delta\mathbf{x}_{\mathbf{k}}^{*},\Delta\mathbf{y}_{\mathbf{k}}^{*})\gets Best(( \Delta\mathbf{x}_{\mathbf{k}},\Delta\mathbf{y}_{\mathbf{k}}),\mathbf{F_{k}})\); \(k\gets k+1\); \(N\gets N(k)\);  end while
```  
**Algorithm 2**Process of D-ADENSGA  
Some details in Algorithm 2 will be explained in the following. 1. [label=(0)]
2. _Density_ _Density_ calculates the number of overlapping \(Num(i)\) at the location of the \(i\)th node according to the node density [10]. 3. _Calculatepc_ and \(Calcularlimit\) calculate the crossover probability \(\mathbf{p_{c}}\) and node movement range \(\mathbf{r_{limit}}\) for each node, respectively, according to the node density at the location. The equations are shown in Equations (4) and (5). \[p_{c}(i)=\left\{ \begin{array}{ll}0&\quad Num(i)=1\\ pc1&\quad Num(i)=2\\ pc2&\quad Num(i)>2\end{array} \right.\] (4)\[r_{limit}(i)=\left\{ \begin{array}{l}a_{limit}\cdot\min[x_{m},y_{m}]\cdot \frac{2}{Num_{max}^{*}}\\ \begin{array}{l}Num(i)=1\\ \\ \end{array}\right.\\ \begin{array}{l}a_{limit}\cdot\min[x_{m},y_{m}]\cdot\frac{1}{Num_{max}^{ *}}\\ Num(i)=2\\ \\ \end{array}\right.\\ \begin{array}{l}a_{limit}\cdot\min[x_{m},y_{m}]\cdot\frac{Num(k)}{Num_{max }^{*}}\\ Num(i)>2\\ \end{array}\end{array}  \tag{5}\]
3. _Select_, _Crossover_ and _Mutate_ are the operators used in NSGA2 [19]. _Crossover_ is a multiple-point crossover operator with the adaptive crossover probability \(\mathbf{p_{c}}\). 4. _Update_ _Update_ is used to update the population according to the constraints in Equation (2) and the adaptive node movement range \(\mathbf{r_{limit}}\). For \(\mathbf{r_{limit}}\), it will be compared with \(\Delta\mathbf{x_{k}}\) (or \(\Delta\mathbf{y_{k}}\)), and the one with a smaller absolute value will be assigned to \(\Delta\mathbf{x_{k}}\) (or \(\Delta\mathbf{y_{k}}\)).