I. Introduction
Unmanned Aerial Vehicles (UAVs), also known as drones, refer to aircraft with no human pilot on board. These drones are either programmed and fully autonomous or remotely controlled from another location, like a ground or space station. With rapid advancement in the electronics and sensor technology sectors, small-size UAVs are becoming more popular in many public and civilian applications, such as in search and rescue operations [54], aerial surveillance [55], tracking targets [56], agriculture field monitoring [57], network extension [58], and recreational activities. The use of swarms of small UAVs has many benefits compared to a single and large UAV [59]. Swarms of UAVs can automatically reconfigure themselves in case of node failure or communication link break-up and can easily accomplish the designated task, which is not possible in the case of a single UAV system. Swarm of UAVs present many advantages, an important aspect to be considered when designing an application using multiple UAVs is establishing the communication network, which poses many challenging issues, as described in [60], [61]. Based on the requirement of the applications UAVs may be semi-stationary and hovering over the area of operations or move around at high speed by changing their relative positions and if relative position changes then swarm drone topology changes also occurred, which may lead to network partitioning and poor link quality.