Skip to Content
You are currently on the new version of our website. Access the old version .
SensorsSensors
  • Article
  • Open Access

22 December 2021

Trajectory Design for UAV-Based Data Collection Using Clustering Model in Smart Farming

,
,
and
1
Department of Computing, School of Electrical Engineering and Computer Science, National University of Sciences and Technology (NUST), Islamabad 44000, Pakistan
2
College of Information Technology, United Arab Emirates University, Abu Dhabi P.O. Box 17551, United Arab Emirates
3
College of Technological Innovation, Zayed University, Abu Dhabi P.O. Box 144534, United Arab Emirates
*
Author to whom correspondence should be addressed.

Abstract

Unmanned aerial vehicles (UAVs) play an important role in facilitating data collection in remote areas due to their remote mobility. The collected data require processing close to the end-user to support delay-sensitive applications. In this paper, we proposed a data collection scheme and scheduling framework for smart farms. We categorized the proposed model into two phases: data collection and data scheduling. In the data collection phase, the IoT sensors are deployed randomly to form a cluster based on their RSSI. The UAV calculates an optimum trajectory in order to gather data from all clusters. The UAV offloads the data to the nearest base station. In the second phase, the BS finds the optimally available fog node based on efficiency, response rate, and availability to send workload for processing. The proposed framework is implemented in OMNeT++ and compared with existing work in terms of energy and network delay.

1. Introduction

The rapid advancement in wireless sensor networks (WSN) has emerged with an assortment of curiosity [1,2]. The inclusion of unmanned aerial vehicles improves the coverage area as well as communication between devices [3]. The most common applications of UAV in data collection are covered in [4,5]. The clustering schemes on WSN are used for data collection to preserve energy and reduce communication overhead [6]. In most cases, sensors are deployed at difficult-to-reach locations. Sometimes, these locations include hilly areas and large farms where nature hurdles such as trees, small mountains, or unexpected slopes cause signal distortion. In such cases, it is difficult to gather data. However, the use of UAVs in such areas can reduce the cost and increase the efficiency of data collection [7]. Data collection using UAV in large-scale smart farms faces considerable challenges in terms of lack of connectivity, interoperability, data storage, limited energy resources, latency, and data processing power. Furthermore, data processing in delay-sensitive applications is another big challenge. In conventional data collection schemes, the UAV collects data and returns it back to the base station to offload collected data for processing. This process is repeated until all the farms are traversed. This back and forth traveling adds additional delay and consumes more energy [8]. Moreover, smart farm applications also require quick responses to generate triggers for the farmers. Moreover, the data collection by visiting every sensor in the field adds additional energy cost; thus, clustering techniques are adopted for the sensors nodes [9]. UAVs move sensor to sensor, cluster by cluster to collect data by communicating with sensors directly or acquiring the data from cluster heads (CHs). Data collection directly from sensors is an easy task, but it consumes more energy, time, and travel distance for the UAV as compared to the later technique where data are relayed through the CH. However, the second technique is also not very efficient because it yields the problem of a single point of failure, network congestion, and bottleneck at the CH. This problem can be resolved by adopting a hybrid technique where CH helps in creating a reliable connection between sensors and UAV, and the UAV receives data from sensors at a single optimal position [10]. The proposed technique is based on a hybrid mechanism where CH is selected based on centrality. With this technique, the UAV can collect data from the entire cluster by hovering at a single position, i.e., at the top of the CH.
Fog computing is an emerging technology that brings intelligence closer to the data source. Usually, the IoT devices have very limited computation resources, and to compensate, fixed nodes are placed at the network edge to perform complex computations instead of sending the raw data to cloud data centers. Hence, only a small amount of the information is forwarded to the cloud via the Internet, which also resolves the bandwidth issues and network latency [11]. In a typical fog computing architecture, the base stations (BS) can act as a broker node, deployed at the edge of the network, and multiple fog servers are connected with it. When a task is received at BS, it schedules that task to a nearby fog node. Such a resource sharing paradigm is categorized into resource allocation, provisioning, resource sharing, and workload allocation [12]. The main objective is to share available resources efficiently and provide service in a latency-sensitive environment to the end device. In conventional data collection frameworks [9,10,13,14], the data are collected and processed in batches, which creates extra delay; however, here we introduce a framework for data collection, processing in a parallel manner. The UAV collects data from clusters, shares it to nearby BS for processing, and continues collecting new data. This parallel working reduces the extra delay that improves the efficiency of latency-sensitive applications for smart farming.
Contributions—The proposed framework handles the problem of timely data collection from randomly deployed sensors and data processing for delay-sensitive applications for smart farming. Here we utilized the concept of fog computing. In the proposed work, the UAV submits data to a nearby base station for processing and continues collecting data from other sensors. This model processes and collects data simultaneously, which reduces the unnecessary delays that exist in conventional data collection frameworks. Further, we proposed an energy-sensitive clustering algorithm for sensors deployed in a random smart farming environment that selects cluster heads with minimal iteration. Finally, we improved data processing by proposing a multi-objective scheduling algorithm among available fog servers. The features of the proposed solution are listed as:
  • We proposed an energy-sensitive RSSI-based clustering algorithm for smart farms that selects CHs based on centrality.
  • Using the CHs’ positions, we have adopted the modified Dijkstra and genetic algorithm (GA) to find the optimal trajectory for data collection.
  • Further, we proposed a data scheduling algorithm based on a multi-objective trade-off between the network cost and availability of the fog servers. The UAVs offload the data to the nearby base station (BS). The BS distributes this data to the fog nodes available near to the end-users.
Paper Organization—The rest of the paper is organized such that Section 2 discusses the state-of-the-art literature review about current work on data collection and scheduling using UAVs and fog servers. The system model is discussed in Section 3. The system components are discussed in Section 4. Finally, the accuracy and performance of the proposed system are discussed in Section 5, followed by the conclusion in Section 6.

3. System Model

This section covers the system model used for the proposed framework. The abstract-level working architecture of the proposed system is given in Figure 1. The summary of notations used in this paper is given in Table 1.
Figure 1. Working architecture—The working of different components of the system with sub-components. The sensors send data to UAV and UAV offload received data to a nearby base station that further schedules that to its fog members for further processing.
Table 1. Summary of notations.
Deployment Model—The sensors are deployed randomly across the farming area. The set S represent the sensor nodes S = { 1 , 2 , 3 , , | N | } along with coordinates in three-dimensional space as X = { s 1 , s 2 , s 3 , , s | N | } , where s | N | R 3 × 1 . The data collection is performed from the randomly deployed sensors in the remote areas, and no physical network is available. The data are collected from the sensors at typical 2.4 GHz of the cellular network.
UAV Mobility Model (UMM)—The UAVs are initializing the CH discovery mechanism at the starting point.
U s = S F 0 S F 0 Υ U
where the initial position of the UAV is represented as U s , and Υ U represents the initial height of the UAV. So, the starting coordinates are (0,0, Υ U ). After the discovery phase, the final position is denoted as:
U f = S F x S F y Υ U ,
Here U f is the final position. After reaching the x-axes boundary of the form, the UAV shifts Q Y depending on the y-axis. The Q Y is calculated as:
Q Y = Q Y S 2 , Q Y S Q Y U Q Y U 2 , Q Y Y < Q Y S ,
where Q Y U and Q Y S are the displacement of the y-axis depending on UAV’s and sensors’ transmission range, respectively. This displacement value is calculated as:
Q Y S = ϱ S r 2 Υ U 2 2 ,
Q Y U = ϱ U r 2 Υ U 2 2 ,
where ϱ S r and ϱ U r are the transmission radius of sensors and UAVs, respectively. The UAV broadcasts a hello message after an interval, and this interval is calculated such that all deployed sensors are in the transmission radius of the UAV. This interval is calculated as:
b r p < b r n < b r p r e v + U R Q y / 2 υ U ,
where b r p and b r n are the time of the previous and next hello message, whereas υ U is the speed of UAV and U R Q y / 2 is the range of transmission. The ratio U R Q y / 2 υ U is the duration when UAV and sensors are in range to effective transmission. This condition in Equation (6) must meet to ensure the beacon delivery to all sensors.
Data Collection Model—A sensor broadcasts a hello message beacon along with its ID and geo-location. The receiving sensor nodes form a list of its neighboring nodes L n g r S based on RSSI values. Both the UAV and deployed sensors are capable of calculating the RSSI, as it is trivial for a WSN device to calculate the RSSI, which is a legitimate assumption [41]. Moreover, the proposed system assumes a low-altitude UAV, the sensors are clustered together and UAV fine-tunes the position for data collection. With this ability, despite some natural obstacles, the UAV can establish LOS communication. Thus, a sensor node developed a list G n g r S of its all neighbors along with their geo-locations. The node broadcasts its cost value to all neighbors. A polygon structure of the sensor nodes is formed, where the area of the polygon area is calculated using the typical formula:
A r e a = 1 2 j = 0 K 1 G j X · G j + 1 Y G j + 1 X · G j Y
where G X and G Y are the lists of geo-positions of nodes located at the polygon’s edge sorted by x-axis and y-axis, respectively. The K represents the number of sensor nodes taking part in polygon formation. The centroid Θ x , y is calculated as:
Θ x = 1 6 A r e a J = 0 K 1 G J X + G J + 1 X G j X · G j + 1 Y G j + 1 X · G j Y ,
and
Θ y = 1 6 A r e a J = 0 K 1 G J Y + G J + 1 Y G j X · G j + 1 Y G j + 1 X · G j Y ,
and by combining the x-axis and y-axis:
Θ x , y = ( Θ x , Θ y )
For every node, a probability is computed to become a CH, which is calculated as:
P C H = max 1 χ a , b ϱ S r × ζ , κ m i n
where the transmission radius of a sensor is represented by ϱ S r . The number of iterations in clustering depends on the normalization factor ζ . The κ m i n is assigned as the CH when the central bias is lower than a provided threshold. The distance between central node c and current node n is calculated by Euclidean distance and represented by χ c , n , which can be calculated as:
χ c , n = c x n x 2 + c y n y 2 .
For data collection, the shortest patch trajectory is calculated, and according to [42], the fitness function of the UAV trajectory is given as
d O = ε ( S e , O 1 ) + ε ( O O , S e ) + i = 1 O ε O i , O i + 1
where d O represents the total distance covered by the UAV in a single round. ε ( S e , O 1 ) represents the distance between starting data collection position to the first CH’s position O 1 . ε ( O O , S e ) represents the distance between last data CH’s position and final point of the farm.
Delay Model—The delay model is based on delay occur during data collection and due to the data execution at the fog, which is explained below:
Data Collection
φ = r = 1 n g G C H υ U + i C k i D k i ,
where φ is the time required for a UAV to collect data from all the sensors for n number of rounds. G C H is the list of CHs’ positions, υ U is the speed of UAV, C is the number of clusters, c is the current cluster with k number of sensors, and D k c is the transmission delay between k th sensor of cluster c and UAV.
Data Execution—The execution delay of the system calculated as [43]:
D = r = 1 n b = 1 B ω Ω D ( p ) + ω Ω D ( q ) + ω Ω D ( t ) ,
where D ( p ) , D ( q ) , D ( t ) , and D ( p r ) are the processing, queuing, transmission, and propagation delays of workloads ω in list Ω , respectively. These delays are calculated as:
D p ( ω ) = A ω δ v f ,
where A w is traffic load and v f is the processing rate of a fog node.
D q ( ω ) = λ f S ω δ ( e ) ,
where λ ( f ) is the arrival rate at a fog node, S ω is the processing required by a workload ω , and δ ( e ) is the transmission rate of the link. Finally, the transmission delay is calculated as
D t ( ω ) = A ω δ ( e ) ,
and the total application delay is calculated as
D A ( ω ) = M a x D , φ ,
Data Scheduling Model—We consider that a UAV offloads a list of workloads Ω = { ω 1 , ω 2 , ω 3 , , ω n } . Each BS is equipped with a number of fog devices ϝ = { f 1 , f 2 , f 3 , , f m } . These fog nodes have different power efficiency i , response rate ψ i , and availability A i .
Power Efficiency—The power efficiency is the amount of energy consumed during processing a single unit of received workload [44]. This efficiency is a combination of power usage effectiveness i e , static i s , and dynamic power usage i d of the i th fog node. The static power usage is sometimes referred to as power leakage produced by the leakage currents, whereas the dynamic power consumption is caused by the circuit currents, calculated by the activity of the fog nodes.
The total power consumption i T of a fog node per unit time is calculated as:
i T = i e ( i s + i d λ j ) ,
where λ j is the average arrival rate at fog node f j .
The power efficiency of a fog node is determined by
Ψ i = i T λ i = i e i s λ i + i d .
Response Rate—Let i be the round trip time (RTT) between a fog node f i and BS. The transmission delay τ i between an i th fog node and BS can be calculated by the fraction of workload size and bandwidth. Hence, the response time of a fog node can be calculated as:
ψ i = i + 1 λ i ˜ λ i + τ f .
where λ i ˜ is the maximum amount of workload that can be computed on a fog node f i .
Availability—The availability of a fog node can be calculated by dividing uptime by the total sum of uptime and downtime [45]. The fog nodes periodically send beacons to the BS, and based on those beacons, the BS calculates the availability of each fog node and updates it in the fog table.

4. Proposed Framework

The proposed framework comprises several main entities which are discussed below.
Farming Area—The farm is the main component of the proposed work. Other devices are used to gather data from farms for the knowledge-aware decision process. In this work, we have assumed that the farming area can be a flat surface or comprised of hilly areas. However, in a hilly scenario, there are maybe natural obstacles such as trees, and mountains are present. These obstacles cause reflection, diffraction, and scattering. The only communication affected by these obstacles is ground-to-ground communication that sensors perform with each other [46]. Therefore, the communication between air-to-air or air-to-ground is not affected by these obstacles.
Sensors—Sensors are the actual data generators; the entire system is based on the data generated through sensors and IoT devices. In this work, static sensors are modeled and deployed all over the farming areas. Further, it is assumed that the nodes are aware of their coordinates with the help of a GPS sensor [47]. The sensors deployed in the farm are heterogeneous in nature, which means they have different computation power, storage, and energy. These sensors are deployed randomly across the application area. The random placement helps in creating a realistic smart farming environment. Further, the clustering algorithm makes a group of these sensor nodes and also selects the centrality. The sensor nodes are classified into two categories: cluster members and cluster head (CH). Each cluster of the sensors has one CH that is in the range of all cluster members. Here, we assumed sensor nodes are non-reachable. It is also assumed that sensors are capable of controlling the transmission power of the transmitter to save energy.
Unmanned aerial vehicles (UAVs)—UAVs fly across the fields to collect data, which are further transmitted to fog nodes for processing. Here, we assumed that UAV flying paths are defined in such a way that they can complete one round of data collection without energy issues. The UAVs are recharged after one round [48]. In existing work, researchers use solar power and battery replacement strategy after each round [49], which can be one of the future directions in this work. Further, we used a quad-copter UAV that can stay in a stationary position for a specified period and can turn with the least angle [50].
Base Stations (BS)—Base stations are the intermediate devices between UAVs and fog nodes and are also referred to as fog brokers. The UAVs offload data to base stations using a wireless channel. The data are further transmitted to fog nodes for faster computations. The following constraints apply to base stations. These base stations are deployed across the network area, which consists of the static nodes. The base station is equipped with AC power and it is also assumed that a backup energy source is available in case of power failure. The power and backup management are out of the scope of this research, but many researchers already solved this problem [51]. The base stations are heterogeneous in nature and have different storage and computation power. Each base station is linked with a different number of fog nodes. Additionally, base stations are capable of buffering the incoming data. The BS works in a real-time environment and reschedules the incoming data to fog nodes in a real-time manner.
Fog Server—Similar constraints are applied to fog nodes as of BS. All fog nodes are static in nature, equipped with a power source. They are heterogeneous in nature, and the computation and storage resources can vary. Moreover, each fog node has its availability, resources, and cost.

4.1. Design and Implementation

The system architecture is explained in Figure 1, where the main components of the system—sensors, UAV, BS, and fog nodes—communicate with each other to form a complete system. A wireless channel is used to enable communication between sensors and UAV and between UAV and BS, whereas a wired communication medium is used to link BS and fog servers. Sensors are equipped with GPRS sensors, and they form clusters based on their geo-location and RSSI values. The UAVs hover above the sensors to collect data and offload that data to nearby BS. The BS converts the received data into workloads in terms of millions of instructions per second (MIPS) and schedules them to the fog servers. The proposed system is classified into two main phases: data collection and data scheduling. The data collection phase is sub-categorized into initialization, service discovery, and collection. In the initialization section, the clusters are formed through a clustering algorithm and cluster heads (CHs) are identified. The CHs are selected based on node centrality. Thus, it helps UAVs to collect data through CMs by hovering over the CH. This way, the CH’s role is minimized and the central point of failure is eliminated. Unlike conventional data collection techniques, the CH only helps in creating an optimal area where the UAV can access all CMs from a single position. In conventional data collection frameworks, data are collected via CH [49,52]. Collecting data using CH is not feasible for large-scale networks where a large number of sensors are deployed because it will increase the data collection time and increase the distance traveled by UAV. Moreover, it will increase the energy consumption and will not be economical in terms of energy [53]. Further, to determine the CHs position, the UAVs broadcast hello message where only CH responds to it. The location of the CHs is calculated using an S-path model discussed in [54]. The technique keeps tracking the distance of all CHs. The UAV starts collecting the data by visiting the location of a CH.
In the data collection phase, the UAVs fly based on the shortest path which is defined using the modified Dijkstra algorithm [55]. However, in data scheduling phase, there is a set of base stations B = { b 1 , b 2 , b 3 , , | m | } , where each base station manages a set of fog nodes F = { f 1 , f 2 , f 3 , , | n | } . The BS buffers the incoming data into its queue and schedules it to the fog node with the help of a scheduling algorithm as stated in Algorithm 1.
Data Collection—This section explains in detail the data collection procedure using the UAVs. The data collection is performed via a modified Dijkstra algorithm. The Algorithm 4 gives the shortest path trajectory among discovered CHs. Once a UAV visits a CH’s position, it sends a ping message to CH. The CH generates the advertisement message to all CMs to inform the address of the UAV for data transmission. The CMs send the data directly to the UAV.
Algorithm 1 Workload Scheduling Algorithm
Input ϝ = { f 1 , f 2 , f 3 , , f m }                                                                                                       ▹ List of fog nodes
Ω = { ω 1 , ω 2 , ω 3 , , ω n } κ                               ▹ A trade-off value of efficiency                      ▹ List of workloads
Output Execute the workload
1:
S , S A , S E , S R
2:
 for each ω Ω do
3:
     D e m a n d A C a l A v g ( F . A )
4:
     D e m a n d E C a l A v g ( F . E )
5:
     D e m a n d R C a l A v g ( F . R )                                                                                                  ▹ Calculate average
6:
    for each  f ϝ  do
7:
         if  f a v a i l a b i l i t y D e m a n d . A  then
8:
                            S A f
9:
         end if
10:
        if  f r e s p o n s e T i m e D e m a n d . R  then
11:
                            S R f
12:
        end if
13:
        if  f e f f i c i e n c y D e m a n d . E  then
14:
                            S E f
15:
        end if
16:
    end for
17:
     S S A S E S R                                                                         ▹ Get intersection of fog nodes in three sets
18:
    if  S = =  then
19:
         d e m a n d E d e m a n d E κ . d e m a n d E                                      ▹ reduce the efficiency value by factor κ
20:
        go to step 13;
21:
    else
22:
         S e n d ( ω , M i n J = 0 n 1 S A j , S E j , S R j )                                                           ▹ Send workload to the best node
23:
    end if
24:
end for
Clustering—The clustering of deployed sensors is performed in a distributed manner. An energy-aware clustering algorithm [56] is adopted for clustering. The algorithm forms the clusters and selects CH such that it is located at the central position of the cluster. The CH can communicate with all CM; hence, if the UAV arrives at this position, every sensor can directly connect with the UAV to upload data. The CH is a helping node that aids in communication between UAV and sensors.
Initialization—The initialization algorithm is listed in Algorithm 2; it starts with sensors broadcasting a hello beacon with its global unique ID (GUID) and geo-location. The receiving sensor nodes form a list of neighboring nodes L n g r S based on RSSI values. A sensor node populates a list G n g r S of its all neighbors along with their geo-locations. Further, the node broadcasts its cost value to all neighbors. The cost of a sensor is calculated according to the number of neighbor sensors. According to HEED [56], the cumulative distance to all adjacent nodes is used to find the cost. A polygon-like structure of the sensor nodes is formed using Algorithm 3. The nodes calculate their central bias using this algorithm and measure the centroid via Paul Brourke’s equation [57]. In polygon formation Algorithm 3, the location information of all the neighbor sensors is used. The nodes having an RSSI value of more than a threshold can only participate in the polygon formation. This algorithm is developed by extending the monotone chain algorithm by Mei et al. [58]. The nodes are sorted in the start according to their geo-locations with respect to the x-axis [59]. Then two lists, H L and h U , are formed, having the lower and upper hulls. The H n g r S is formed by subtracting the H L and H U into two subsets, α and β , respectively, such that they have more than one element. The iteration is performed on all the nodes in the lists, and the nodes with the same directions are added. Finally, both lists of lower and upper haul are concatenated. Once a polygon-like structure is formed, the area is computed using Equation (7). According to the computed value probability Equation (11), the node is proclaimed as final C h p , or candidate C h ψ .
Recurrence—After the initialization phase, the algorithm starts the second phase called recurrence, as listed in Algorithm 2 (lines 10–29). In this phase, the cost of each CH in list L C H is compared, and the C H ρ with minimum cost is selected. If this is the current sensor node, broadcast a CH message with ID, cost, and update C H p t e m p to T R U E . Otherwise, broadcast CH message keeping C H p t e m p as F A L S E . In the case where the CH probability is 1, broadcast C H p message by setting C H p t e m p to T R U E , and if the probability is any number between 0 and 1, broadcast C H ψ message keeping C H p t e m p as F A L S E and repeat this process until C H p is equal to 1.
Finalization—In this stage, the sensors check its C H p t e m p flag. In case it is FALSE, it acquires the C H ρ from L C H and sends a join request to that sensor node. In case the C H p t e m p variable is TRUE, the sensor sends a hello message to all nearby nodes with CH status as C H ψ . When a node receives a cluster join request, the node with status C H p adds the sensor to its CM list. However, if a node is C H p , it broadcasts a message to let its neighbors discover the node.
Algorithm 2 Clustering Algorithm
Input  L n g r S                                                                                                 ▹ Empty list of sensor’s neighbors
Output  C H p                                                                                                             ▹ Finally selected cluster head
1:
L n g r S G e t L i s t ( n e i g h b o r s )                                                                                ▹ Obtain neighbors via RSSI
2:
G n g r S G e t G e o L o c a t i o n s ( L n g r S )                                                                       ▹ Obtain (x,y,z) coordinates
3:
B r o a d c a s t C o s t ( L n g r S )                                                                                              ▹ Send cost of all members
4:
C r e a t e P o l y g o n ( G n g r S )                                                                                                        ▹ Using Algorithm 3
5:
A r e a C a l A r e a ( )                                                                                                             ▹ Using Equation (7)
6:
Θ x , y C a l C e n t r o i d ( )                                                                                                    ▹ Using Equation (10)
7:
d C a l D i s t a n c e ( t h i s . G e o L o c , Θ x , y )                                                                    ▹ Calculate the distance
8:
P C H C a l P r o b a b l i t y ( )                                                                                                 ▹ Using Equation (11)
9:
C H p t e m p F A S L E
10:
do
11:
    if  ( L C H { c: c is a CH } )  then
12:
         C H ρ m i n ( C a l C o s t ( L C H ) )                                                    ▹ Choose CH from list with min cost
13:
        if  C H ρ I D = T H I S . I D  then
14:
           if  P C H = 1  then
15:
                B r o a d c a s t ( T H I S . I D , C H p , c o s t )
16:
                C H p t e m p T R U E
17:
           else
18:
                B r o a d c a s t ( T H I S . I D , C H ψ , c o s t )
19:
           end if
20:
        end if
21:
    else if  P C H = 1  then
22:
         B r o a d c a s t ( T H I S . I D , C H p , c o s t )
23:
         C H p t e m p T R U E
24:
    else if  R a n d o m ( 0 , 1 ) P C H  then
25:
         B r o a d c a s t ( T H I S . I D , C H ψ , c o s t )
26:
    end if
27:
     C H p r e v i o u s P C H
28:
     P C H m i n ( P C H x 2 , 1 )
29:
while  C H p r e v i o u s = 1
30:
if  C H p t e m p = F A L S E then
31:
    if  ( L C H { c: c is a C H p } ) then
32:
         C H ρ m i n ( C a l C o s t ( L C H ) )
33:
         J o i n C l u s t e r ( C H ρ , T H I S . I D )
34:
    else
35:
         B r o a d c a s t ( T H I S . I D , C H p , c o s t )
36:
    end if
37:
else
38:
     B r o a d c a s t ( T H I S . I D , C H p , c o s t )
39:
end if
Algorithm 3 Polygon Formation
Input  G n g r S                                                                       ▹ List of nodes with locations, sorted w.r.t. x-axis
Output  H n g r S                                                                      ▹ List of nodes participating in making polygon
1:
H U & H L                                                                                   ▹ List of upper and lower hulls
2:
for  j = 1 to S I Z E ( G n g r S )  do
3:
    while ( α H L & S I Z E ( α ) > 1 ) do
4:
         D E L E T E ( H L [ S I Z E 1 ] )                                                                         ▹ Remove last element
5:
         A P P E N D ( H L [ G n g r S [ j ] ] )
6:
    end while
7:
    while ( β H U & S I Z E ( β ) > 1 ) do
8:
         D E L E T E ( H U [ S I Z E 1 ] )                                                                        ▹ Remove last element
9:
         A P P E N D ( H U [ G n g r S [ j ] ] )
10:
    end while
11:
end for
12:
D E L E T E ( H L [ S I Z E 1 ] )
13:
D E L E T E ( H U [ S I Z E 1 ] )
14:
R e t u r n ( H n g r S C O N C A T ( H L , H U ) )
Algorithm 4 Cluster Head Position Discovery
Input  G C H                                                                                                              ▹ Empty list of CHs with positions
Output  G C H                                                                                                                                ▹ List of CHs with positions
1:
do
2:
    BroadcaseSearchCH()                                                                                                 ▹ Broadcast a CH search message
3:
     S e t T i m e r ( )                                                                                                                       ▹ Set timer for next broadcast
4:
     M s g R e c e i v e ( M s g )                                                                                                  ▹ Receive informing message
5:
    if  M s g . T y p e = ( C H i n f o r m a t i o n )  then
6:
         C H x a x i s M s g . X
7:
         C H y a x i s M s g . Y
8:
         C H z a x i s M s g . Z
9:
         C H p o s i t i o n { C H x a x i s , C H y a x i s , C H z a x i s }                                                        ▹ Collect position values
10:
    end if
11:
     G C H . P U S H ( C H p o s i t i o n )                                                       ▹ Push received CH position information into list
12:
while TRUE

4.2. Data Scheduling

There is a B number of base stations (BS) located across the area. These BS are connected with f number of fog nodes. The UAV visits the CH’s to collect data and move towards the next CH. During that traveling, if the UAV reaches the range of a BS, it offloads the collected data and flushes its memory for later reuse. Once a BS receives data, the data are stored as a list of tasks in the local buffer. The BS further schedule the data processing to its connected heterogeneous fog nodes. This forwarding is based on the power efficiency and response time of the fog nodes.
Scheduling Algorithm—It initiated once the UAV completed the offloading process. The BS has a list of workloads and the connected fog nodes. Here, we extended Dispersive Stable Task Scheduling (DATS) [60]. As illustrated in Algorithm 1, for each workload ω in Ω , the BS calculates the availability index [45], response rate by Equation (22), and efficiency by Equation (21) of all fog nodes. We call these values initial demands, and the algorithm further optimizes these values for each workload. Each fog node, f in ϝ , the availability, response rate, and efficiency values are compared with the initial demands, and eligible nodes are inserted into S A , S R , and S E . Once all fog nodes have been traversed, the intersection list S is calculated. The set S represents the list of all fog nodes that meet initial demands of availability, response rate, and efficiency. Further, the best node from the list is selected using Equation (23).
M i n J = 0 n 1 S A j , S E j , S R j
However, in case the set has no item, the value of the demand of efficiency is reduced by a factor κ and all fog nodes are re-traversed. This trade-off efficiency with availability and response rate helps in finding the optimal solution from available fog resources. Thus, only the efficiency is compromised in a case when no fog node is available that meets initial demand because we are giving more preferences to availability and response rate over energy consumption.

5. Evaluation

A smart farming case scenario is simulated using omnet++ (www.omnetpp.org, accessed on 14 June 2021) as a simulation tool. The sensors are deployed randomly across the farm; there exist base stations at the boundary of the farm, and dedicated fog nodes are connected with each BS. The list of simulation parameters and system parameters are given in Table 2 and Table 3, respectively. The size of the data packet is given in the table for processing, and the data packet is translated into million instructions per second (MIPS) for processing.
Table 2. Simulation parameters.
Table 3. System parameters.
We compared the performance of the proposed clustering and data collection with HEED [56]. HEED, also known as Hybrid Energy-Efficient Distributed, is a clustering framework for sensors. HEED periodically selects the cluster head according to the residual energy of the sensors, whereas our technique selects the cluster head once and uses that information throughout all the rounds because we assume that sensors are equipped with renewable energy sources. We applied the HEED technique with UAV for data collection and compared results with the proposed technique in terms of the number of control packets, network delay, and energy consumption.
For workload processing, and scheduling at the fog servers, we compared the proposed system with a maximal energy-efficient task scheduling (MEETS) algorithm [40]. In MEETS, the energy efficiency is improved for homogeneous fog networks and nearby available fog resources. However, we believe that along with energy node availability, network response time also plays an important role for a latency-sensitive fog network environment.
Components Initialization Delay in GUI Mode—The proposed model is evaluated in OMNeT++ in GUI mode. However, a significant component and interface initialization delay is observed, and this delay increases with the increase in farm area as more sensors and devices are installed. Figure 2 shows that this delay varies from 14 to 390 ms for the 200 m 2 area.
Figure 2. Component initialization delay in GUI mode.
CPU and Memory UsageFigure 3 shows the CPU and Memory analysis of the system with varying farm sizes. As per the proposed model, the increase in the area of farms brings about a sufficient increase in the number of deployed sensors, BS, and fog servers. During the simulation, each node reserves some space in the memory, and this space increases with the increase in the area as shown in Figure 3a. The framework creates and disseminates a lot of messages that include beacons, control, and data messages. This process affects the processing, and the CPU usage is given in Figure 3b.
Figure 3. Average memory and CPU usage of system according to number of nodes and request rates ( μ ). (a) Memory usage (b) CPU usage.
Energy Consumption—The energy consumption of the proposed system is compared with HEED by varying the farming sizes. The traditional HEED algorithm consumes more energy as compared to the proposed system, as shown in Figure 4. In HEED, the UAV explores to find the CHs, whereas in the proposed system, the positions of the CH are collected first, and then an optimized trajectory is designed to efficiently utilize the energy. Furthermore, the UAVs follow the calculated trajectory, collect data, and update the system about dead nodes. Furthermore, the farming area used for the evaluation is of square shape, and sensors are deployed randomly. Now, with the increase in area, the inter-cluster distance is also increased, and the energy consumption is measured in terms of cost of data transmission which increases with the intra-cluster distance.
Figure 4. Energy consumption vs. farming area.
Control Packets—The number of control packets shared during clustering is very important because energy can be preserved through reduced communication. In the proposed scheme, the clustering is performed only once, and this information is used for data collection in all rounds. We compared these control messages with HEED as shown in Figure 5, and it is observed that HEED sends more control packets as compared to the proposed system.
Figure 5. No. of Rounds vs. Control Packets.
Network Delay—The network delay is separated for data collection and data processing, as shown in Figure 6. The delay in data collection is compared with HEED, and it is observed that the proposed system outperformed in terms of network delay, as shown in Figure 6a. The delay from data processing is compared with MEETS, and it is also observed that the proposed scheduling algorithm outperformed, as shown in Figure 6b. The primary reason for this performance is that the proposed framework selects the CH only once when needed, whereas HEED gradually runs the CH selection algorithm that causes network congestion and hence increases delay. Another reason is, in HEED, data are collected via relaying through CH, whereas the proposed technique collected data directly from the sensors.
Figure 6. Data collection delay with varying farming area, and data processing delay with varying sensors. (a) Data collection delay vs. area; (b) data processing delay vs. no. of nodes.

6. Conclusions

In this article, we have proposed an energy-efficient, UAV-assisted data collection technique from randomly deployed sensors in the farming area. We first clustered the randomly deployed sensors based on their RSSI values and selected cluster heads. Then, using Dijkstra and GA, an optimized trajectory is obtained, and the trajectory data are thus collected from the sensors. We further proposed a multi-objective fog-based data processing framework for data scheduling and processing at multiple fog servers. The performance of the simulation is evaluated by simulation in omnet++, and results are compared with HEED and MEETS for data collection and data processing, respectively. It is observed that the proposed framework outperformed in terms of network delay, energy efficiency, CPU-Memory usage, and the number of control packets.

Author Contributions

Conceptualization, T.Q.; Formal analysis, A.M.; Supervision, Z.T. and K.H.; Validation, Z.T., A.M. and K.H.; Writing—original draft, T.Q.; Writing—review & editing, Z.T. and A.M. All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported by the United Arab Emirates University (UAEU) Program for Advanced Research (UPAR) under Grant number 31T122 and Zayed University Cluster Grant number R20140.

Institutional Review Board Statement

Not Applicable.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Trabelsi, Z. IoT based Smart Home Security Education using a Hands-on Approach. In Proceedings of the 2021 IEEE Global Engineering Education Conference (EDUCON), Vienna, Austria, 21–23 April 2021; pp. 294–301. [Google Scholar] [CrossRef]
  2. Malik, A.W.; Rahman, A.U.; Qayyum, T.; Ravana, S.D. Leveraging Fog Computing for Sustainable Smart Farming Using Distributed Simulation. IEEE Internet Things J. 2020, 7, 3300–3309. [Google Scholar] [CrossRef]
  3. Liu, C.H.; Chen, Z.; Tang, J.; Xu, J.; Piao, C. Energy-Efficient UAV Control for Effective and Fair Communication Coverage: A Deep Reinforcement Learning Approach. IEEE J. Sel. Areas Commun. 2018, 36, 2059–2070. [Google Scholar] [CrossRef]
  4. Nazib, R.A.; Moh, S. Energy-Efficient and Fast Data Collection in UAV-Aided Wireless Sensor Networks for Hilly Terrains. IEEE Access 2021, 9, 23168–23190. [Google Scholar] [CrossRef]
  5. Samir, M.; Sharafeddine, S.; Assi, C.M.; Nguyen, T.M.; Ghrayeb, A. UAV Trajectory Planning for Data Collection from Time-Constrained IoT Devices. IEEE Trans. Wirel. Commun. 2020, 19, 34–46. [Google Scholar] [CrossRef]
  6. Bhandari, S.; Wang, X.; Lee, R. Mobility and Location-Aware Stable Clustering Scheme for UAV Networks. IEEE Access 2020, 8, 106364–106372. [Google Scholar] [CrossRef]
  7. Liang, H.; Gao, W.; Nguyen, J.H.; Orpilla, M.F.; Yu, W. Internet of Things Data Collection Using Unmanned Aerial Vehicles in Infrastructure Free Environments. IEEE Access 2020, 8, 3932–3944. [Google Scholar] [CrossRef]
  8. Yao, J.; Ansari, N. Online Task Allocation and Flying Control in Fog-Aided Internet of Drones. IEEE Trans. Veh. Technol. 2020, 69, 5562–5569. [Google Scholar] [CrossRef]
  9. Pang, Y.; Zhang, Y.; Gu, Y.; Pan, M.; Han, Z.; Li, P. Efficient data collection for wireless rechargeable sensor clusters in Harsh terrains using UAVs. In Proceedings of the 2014 IEEE Global Communications Conference, Toronto, ON, Canada, 27 April–2 May 2014; pp. 234–239. [Google Scholar] [CrossRef]
  10. Liu, J.; Wang, X.; Bai, B.; Dai, H. Age-optimal trajectory planning for UAV-assisted data collection. In Proceedings of the IEEE INFOCOM 2018-IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS), Honolulu, HI, USA, 15–19 April 2018; pp. 553–558. [Google Scholar] [CrossRef] [Green Version]
  11. Martinez, I.; Hafid, A.S.; Jarray, A. Design, Resource Management, and Evaluation of Fog Computing Systems: A Survey. IEEE Internet Things J. 2021, 8, 2494–2516. [Google Scholar] [CrossRef]
  12. Naha, R.K.; Garg, S.; Georgakopoulos, D.; Jayaraman, P.P.; Gao, L.; Xiang, Y.; Ranjan, R. Fog Computing: Survey of Trends, Architectures, Requirements, and Research Directions. IEEE Access 2018, 6, 47980–48009. [Google Scholar] [CrossRef]
  13. Shen, C.; Chang, T.H.; Gong, J.; Zeng, Y.; Zhang, R. Multi-UAV Interference Coordination via Joint Trajectory and Power Control. IEEE Trans. Signal Process. 2020, 68, 843–858. [Google Scholar] [CrossRef] [Green Version]
  14. Zhan, C.; Zeng, Y. Completion Time Minimization for Multi-UAV-Enabled Data Collection. IEEE Trans. Wirel. Commun. 2019, 18, 4859–4872. [Google Scholar] [CrossRef]
  15. Maheswari, D.U.; Sudha, S.; Meenalochani, M. Fuzzy based adaptive clustering to improve the lifetime of wireless sensor network. China Commun. 2019, 16, 56–71. [Google Scholar] [CrossRef]
  16. Leu, J.S.; Chiang, T.H.; Yu, M.C.; Su, K.W. Energy Efficient Clustering Scheme for Prolonging the Lifetime of Wireless Sensor Network With Isolated Nodes. IEEE Commun. Lett. 2015, 19, 259–262. [Google Scholar] [CrossRef]
  17. Li, Y.; Wu, Y. Combine Clustering With Game to Resist Selective Forwarding in Wireless Sensor Networks. IEEE Access 2020, 8, 138382–138395. [Google Scholar] [CrossRef]
  18. Cho, J.J.; Ding, Y.; Chen, Y.; Tang, J. Robust Calibration for Localization in Clustered Wireless Sensor Networks. IEEE Trans. Autom. Sci. Eng. 2010, 7, 81–95. [Google Scholar] [CrossRef]
  19. Wang, J.; Cao, Y.; Li, B.; Kim, H.-J.; Lee, S. Particle swarm optimization based clustering algorithm with mobile sink for WSNs. Future Gener. Comput. Syst. 2017, 76, 452–457. [Google Scholar] [CrossRef]
  20. Omeke, K.G.; Mollel, M.S.; Ozturk, M.; Ansari, S.; Zhang, L.; Abbasi, Q.H.; Imran, M.A. DEKCS: A Dynamic Clustering Protocol to Prolong Underwater Sensor Networks. IEEE Sens. J. 2021, 21, 9457–9464. [Google Scholar] [CrossRef]
  21. Ni, Q.; Pan, Q.; Du, H.; Cao, C.; Zhai, Y. A Novel Cluster Head Selection Algorithm Based on Fuzzy Clustering and Particle Swarm Optimization. IEEE/ACM Trans. Comput. Biol. Bioinform. 2017, 14, 76–84. [Google Scholar] [CrossRef]
  22. Albu-Salih, A.T.; Seno, S.A.H. Energy-Efficient Data Gathering Framework-Based Clustering via Multiple UAVs in Deadline-Based WSN Applications. IEEE Access 2018, 6, 72275–72286. [Google Scholar] [CrossRef]
  23. Zhan, C.; Huang, R. Energy Minimization for Data Collection in Wireless Sensor Networks with UAV. In Proceedings of the 2019 IEEE Global Communications Conference (GLOBECOM), Waikoloa, HI, USA, 9–13 December 2019; pp. 1–6. [Google Scholar] [CrossRef]
  24. Ebrahimi, D.; Sharafeddine, S.; Ho, P.H.; Assi, C. UAV-Aided Projection-Based Compressive Data Gathering in Wireless Sensor Networks. IEEE Internet Things J. 2019, 6, 1893–1905. [Google Scholar] [CrossRef]
  25. Cheng, F.; Zhang, S.; Li, Z.; Chen, Y.; Zhao, N.; Yu, F.R.; Leung, V.C.M. UAV Trajectory Optimization for Data Offloading at the Edge of Multiple Cells. IEEE Trans. Veh. Technol. 2018, 67, 6732–6736. [Google Scholar] [CrossRef] [Green Version]
  26. Ebrahimi, D.; Sharafeddine, S.; Ho, P.H.; Assi, C. Autonomous UAV Trajectory for Localizing Ground Objects: A Reinforcement Learning Approach. IEEE Trans. Mob. Comput. 2021, 20, 1312–1324. [Google Scholar] [CrossRef]
  27. Spyridis, Y.; Lagkas, T.; Sarigiannidis, P.; Argyriou, V.; Sarigiannidis, A.; Eleftherakis, G.; Zhang, J. Towards 6G IoT: Tracing Mobile Sensor Nodes with Deep Learning Clustering in UAV Networks. Sensors 2021, 21, 3936. [Google Scholar] [CrossRef] [PubMed]
  28. Ma, X.; Kacimi, R.; Dhaou, R. Fairness-aware UAV-assisted data collection in mobile wireless sensor networks. In Proceedings of the 2016 International Wireless Communications and Mobile Computing Conference (IWCMC), Paphos, Cyprus, 5–9 September 2016; pp. 995–1001. [Google Scholar] [CrossRef] [Green Version]
  29. Yang, G.; Zhang, Y.; He, Z.; Wen, J.; Ji, Z.; Li, Y. Machine-learning-based prediction methods for path loss and delay spread in air-to-ground millimetre-wave channels. IET Microwaves Antennas Propag. 2019, 13, 1113–1121. [Google Scholar] [CrossRef]
  30. Zhu, Q.; Wang, Y.; Jiang, K.; Chen, X.; Zhong, W.; Ahmed, N. 3D non-stationary geometry-based multi-input multi-output channel model for UAV-ground communication systems. IET Microwaves Antennas Propag. 2019, 13, 1104–1112. [Google Scholar] [CrossRef]
  31. Zhan, C.; Lai, H. Energy Minimization in Internet-of-Things System Based on Rotary-Wing UAV. IEEE Wirel. Commun. Lett. 2019, 8, 1341–1344. [Google Scholar] [CrossRef]
  32. Gong, J.; Chang, T.H.; Shen, C.; Chen, X. Flight Time Minimization of UAV for Data Collection Over Wireless Sensor Networks. IEEE J. Sel. Areas Commun. 2018, 36, 1942–1954. [Google Scholar] [CrossRef] [Green Version]
  33. Liu, J.; Zhang, Q. Offloading Schemes in Mobile Edge Computing for Ultra-Reliable Low Latency Communications. IEEE Access 2018, 6, 12825–12837. [Google Scholar] [CrossRef]
  34. Abedi, M.; Pourkiani, M. Resource Allocation in Combined Fog-Cloud Scenarios by Using Artificial Intelligence. In Proceedings of the 2020 Fifth International Conference on Fog and Mobile Edge Computing (FMEC), Paris, France, 20–23 April 2020; pp. 218–222. [Google Scholar] [CrossRef]
  35. Gu, L.; Zeng, D.; Guo, S.; Barnawi, A.; Xiang, Y. Cost Efficient Resource Management in Fog Computing Supported Medical Cyber-Physical System. IEEE Trans. Emerg. Top. Comput. 2017, 5, 108–119. [Google Scholar] [CrossRef]
  36. Shih, Y.Y.; Chung, W.H.; Pang, A.C.; Chiu, T.C.; Wei, H.Y. Enabling Low-Latency Applications in Fog-Radio Access Networks. IEEE Netw. 2017, 31, 52–58. [Google Scholar] [CrossRef]
  37. Deng, R.; Lu, R.; Lai, C.; Luan, T.H.; Liang, H. Optimal Workload Allocation in Fog-Cloud Computing Toward Balanced Delay and Power Consumption. IEEE Internet Things J. 2016, 3, 1171–1181. [Google Scholar] [CrossRef]
  38. Brogi, A.; Forti, S.; Ibrahim, A. How to Best Deploy Your Fog Applications, Probably. In Proceedings of the 2017 IEEE 1st International Conference on Fog and Edge Computing (ICFEC), Madrid, Spain, 14–15 May 2017; pp. 105–114. [Google Scholar] [CrossRef]
  39. Sun, Y.; Zhang, N. A resource-sharing model based on a repeated game in fog computing. Saudi J. Biol. Sci. 2017, 24, 687–694. [Google Scholar] [CrossRef]
  40. Yang, Y.; Wang, K.; Zhang, G.; Chen, X.; Luo, X.; Zhou, M.T. MEETS: Maximal Energy Efficient Task Scheduling in Homogeneous Fog Networks. IEEE Internet Things J. 2018, 5, 4076–4087. [Google Scholar] [CrossRef]
  41. Ouyang, X.; Zeng, F.; Lv, D.; Dong, T.; Wang, H. Cooperative Navigation of UAVs in GNSS-Denied Area With Colored RSSI Measurements. IEEE Sens. J. 2021, 21, 2194–2210. [Google Scholar] [CrossRef]
  42. Cheng, Y.F.; Shao, W.; Zhang, S.J.; Li, Y.P. An Improved Multi-Objective Genetic Algorithm for Large Planar Array Thinning. IEEE Trans. Magn. 2016, 52, 1–4. [Google Scholar] [CrossRef]
  43. Siasi, N.; Jasim, M.; Aldalbahi, A.; Ghani, N. Delay-Aware SFC Provisioning in Hybrid Fog-Cloud Computing Architectures. IEEE Access 2020, 8, 167383–167396. [Google Scholar] [CrossRef]
  44. Xiao, Z.; Xia, P.; Xia, X.G. Enabling UAV cellular with millimeter-wave communication: Potentials and approaches. IEEE Commun. Mag. 2016, 54, 66–73. [Google Scholar] [CrossRef] [Green Version]
  45. Nguyen, T.A.; Min, D.; Choi, E.; Tran, T.D. Reliability and Availability Evaluation for Cloud Data Center Networks Using Hierarchical Models. IEEE Access 2019, 7, 9273–9313. [Google Scholar] [CrossRef]
  46. Olasupo, T.O. Propagation Modeling of IoT Devices for Deployment in Multi-level Hilly Urban Environments. In Proceedings of the 2018 IEEE 9th Annual Information Technology, Electronics and Mobile Communication Conference (IEMCON), Vienna, Austria, 1–3 November 2018; pp. 346–352. [Google Scholar] [CrossRef]
  47. Hayes, T.; Ali, F.H. Location aware sensor routing protocol for mobile wireless sensor networks. IET Wirel. Sens. Syst. 2016, 6, 49–57. [Google Scholar] [CrossRef]
  48. Sun, Y.; Xu, D.; Ng, D.W.K.; Dai, L.; Schober, R. Optimal 3D-Trajectory Design and Resource Allocation for Solar-Powered UAV Communication Systems. IEEE Trans. Commun. 2019, 67, 4281–4298. [Google Scholar] [CrossRef] [Green Version]
  49. Wu, J.; Wang, H.; Huang, Y.; Su, Z.; Zhang, M. Energy Management Strategy for Solar-Powered UAV Long-Endurance Target Tracking. IEEE Trans. Aerosp. Electron. Syst. 2019, 55, 1878–1891. [Google Scholar] [CrossRef]
  50. Rabah, M.; Rohan, A.; Mohamed, S.A.S.; Kim, S.H. Autonomous Moving Target-Tracking for a UAV Quadcopter Based on Fuzzy-PI. IEEE Access 2019, 7, 38407–38419. [Google Scholar] [CrossRef]
  51. Chamola, V.; Sikdar, B.; Krishnamachari, B. Delay Aware Resource Management for Grid Energy Savings in Green Cellular Base Stations With Hybrid Power Supplies. IEEE Trans. Commun. 2017, 65, 1092–1104. [Google Scholar] [CrossRef]
  52. Perera, T.D.P.; Panic, S.; Jayakody, D.N.K.; Muthuchidambaranathan, P.; Li, J. A WPT-Enabled UAV-Assisted Condition Monitoring Scheme for Wireless Sensor Networks. IEEE Trans. Intell. Transp. Syst. 2020, 22, 5112–5126. [Google Scholar] [CrossRef]
  53. Tao, M.; Li, X.; Yuan, H.; Wei, W. UAV-Aided trustworthy data collection in federated-WSN-enabled IoT applications. Inf. Sci. 2020, 532, 155–169. [Google Scholar] [CrossRef]
  54. Christy, E.; Astuti, R.P.; Syihabuddin, B.; Narottama, B.; Rhesa, O.; Rachmawati, F. Optimum UAV flying path for Device-to-Device communications in disaster area. In Proceedings of the 2017 International Conference on Signals and Systems (ICSigSys), Bali, Indonesia, 16–18 May 2017. [Google Scholar]
  55. Dijkstra, E.W. A note on two problems in connexion with graphs. Numer. Math. 1959, 1, 269–271. [Google Scholar] [CrossRef] [Green Version]
  56. Younis, O.; Fahmy, S. HEED: A hybrid, energy-efficient, distributed clustering approach for ad hoc sensor networks. IEEE Trans. Mob. Comput. 2004, 3, 366–379. [Google Scholar] [CrossRef] [Green Version]
  57. Bourke, P. Geometry, Surfaces, Curves, Polyhedra. 1988. Available online: http://paulbourke.net/geometry/ (accessed on 14 May 2021).
  58. Mei, G.; Tipper, J.C.; Xu, N. An algorithm for finding convex hulls of planar point sets. In Proceedings of the 2012 2nd International Conference on Computer Science and Network Technology, Changchun, China, 29–31 December 2012; pp. 888–891. [Google Scholar]
  59. Allison, D.C.S.; Noga, M.T. Some performance tests of convex hull algorithms. BIT Numer. Math. 1984, 24, 366–379. [Google Scholar] [CrossRef] [Green Version]
  60. Liu, Z.; Yang, X.; Yang, Y.; Wang, K.; Mao, G. DATS: Dispersive Stable Task Scheduling in Heterogeneous Fog Networks. IEEE Internet Things J. 2019, 6, 3423–3436. [Google Scholar] [CrossRef]
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.