# A PSO-Based Uneven Dynamic Clustering Multi-Hop Routing Protocol for Wireless Sensor Networks
## 2 Related Work
### Swarm Intelligence Based Routing Protocols  
Swarm intelligence has an essential idea of self-association and self-organization that can offer better solution for optimizing routing protocols of WSNs. [PERSON] et al. [23] developed a cluster-based power efficient routing protocol named as ABC-SD. This protocol utilizes search features of artificial bee colony (ABC) which is used to design the low power consumption cluster. However, the algorithm uses a distributed method for cluster head elections, and the threshold energy used to elect CHs is fixed. If all the energy in the cluster is less than the threshold energy, CHs may not be elected. [PERSON] et al. [24] proposed two algorithms, namely CH selection, based on bacterial interaction, and a cognitive routing algorithm for energy and transmission boundary. From the simulation results that were obtained from the Matlab 2016b software (MathWorks, Natick, America). It can be said that the study is more adaptive and applicable in real WSN scenarios. [PERSON] et al. [25] proposed a clustering routing protocol based on an artificial bee colony algorithm in order to increase network lifetime. The algorithm employs a QoS (Quality of Service) mechanism to minimize the delays between signals received from the clusters. However, this protocol does not consider the coverage of the CHs, which leads to unbalanced energy consumption. [PERSON] et al. [26] proposed a Particle Swarm Optimization based Energy efficient Cluster Head Selection algorithm (PSO-ECHS) which considers various parameters such as intra-cluster distance, sink distance and residual energy of sensor nodes to select CH nodes. Due to several factors being considered at the same time, some nodes far from CH nodes die prematurely when the CH node selected by the nodes has more residual energy and is far away from these nodes. [PERSON] et al. [27] used a PSO-based clustering algorithm to enhance the lifetime of WSNs. In this method, clustering takes place based on the average cluster distance and the lifetime of the gateway. The fitness value of each particle in the swarm is computed by using fitness function and this fitness value is used to judge the quality of the network. A particle with better fitness function value gives better network structure. [PERSON] et al. [28] proposed a PSO-based energy efficient routing algorithm. The fitness function of the algorithm considers the residual energy of nodes and transmission distance to balance the network energy consumption to some extent. [PERSON] et al. [29] proposed a special clustering method called Energy Centers searching using Particle Swarm Optimization (EC-PSO) for heterogeneous WSNs. It adopted EC-PSO to elect nodes close to the energy center as CHs. However, EC-PSO is only applicable to network environments with even nodes since it uses geometric method to achieve evenly distributed CHs during the first period. [PERSON] et al. [30] proposed a multi-objective and PSO based energy efficient path design for mobile sink in wireless sensor networks. The algorithm is presented with an efficient particle encoding scheme and derivation of a proficient multi-objective fitness function. Objectives include minimizing the longest path length and minimizing the number of multi-hops. However, because energy is not considered in objectives, some nodes may die prematurely. [PERSON] et al. [31] proposed an energy-aware clustering for wireless sensor networks using particle swarm optimization, which defines a new cost function to minimize the intra-cluster distance and optimize the energy consumption of the network. However, CHs directly transmitted data to the BS during routing. It may cause unbalanced energy consumption. [PERSON] et al. [32] proposed particle swarm optimization (PSO) approach for generating energy-aware clusters by optimal selection of cluster heads. The PSO eventually reduces the cost of locating optimal position for the head nodes in a cluster.