Next Article in Journal
Investigating Particulate and Nitrogen Oxides Emissions of a Plug-In Hybrid Electric Vehicle for a Real-World Driving Scenario
Next Article in Special Issue
Lung Segmentation in CT Images: A Residual U-Net Approach on a Cross-Cohort Dataset
Previous Article in Journal
Multi-Scale Adaptive Aggregate Graph Convolutional Network for Skeleton-Based Action Recognition
Previous Article in Special Issue
Machine Learning and Feature Selection Methods for EGFR Mutation Status Prediction in Lung Cancer
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

An Efficient Greedy Randomized Heuristic for the Maximum Coverage Facility Location Problem with Drones in Healthcare

College of Computer and Information Sciences, King Saud University, Riyadh 11543, Saudi Arabia
*
Author to whom correspondence should be addressed.
Appl. Sci. 2022, 12(3), 1403; https://doi.org/10.3390/app12031403
Submission received: 30 December 2021 / Revised: 24 January 2022 / Accepted: 25 January 2022 / Published: 28 January 2022
(This article belongs to the Special Issue Novel Applications of Artificial Intelligence in Medicine and Health)

Abstract

:
Recently, drones, have been utilized in many real-life applications including healthcare services. For example, providing medical supplies, blood samples, and vaccines to people in remote areas or during emergencies. In this study, the maximum coverage facility location problem with drones (MCFLPD) was studied. The problem is the application of drones in the context of the facility location and routing. It involves selecting the locations of drone launching centers, which maximizes patient service coverage within certain drone range constraints. In this study, a heuristic named the maximum coverage greedy randomized heuristic (MCGRH) is developed. The idea of the algorithm is to first choose some facilities to open at random from among those that can handle the most weight of the patient demands. After that, patients are assigned to the closest opened facility with the capacity to serve them. Finally, drones are assigned to patients based on the least amount of battery consumed between the patient and the facility. Extensive testing of MCGRH indicated that it ranks efficiently alongside other methods in the literature that tried to solve the MCFLPD. It was able to achieve a high coverage of patients (more than 80% on average) within a very fast processing time (less than 1 s on average).

1. Introduction

The provision of vital medical services to save patients in emergency and post-disaster situations is an essential outreach activity in healthcare. Recent years have witnessed an increase in natural disasters, including North American Wildfire Season in 2021 [1], the Haiti Earthquake and Tropical Storm Grace in 2021 [2], the Atlantic Hurricane Season in 2021 [3], the COVID-19 pandemic in 2020 [4], the bushfires in Australia in 2019 [5], Cyclone Idai in Africa in 2019 [6], and both an earthquake and tsunami in Indonesia in 2018 [7]. Natural disasters present obstacles to healthcare workers attempting to provide essential treatments to patients and victims, which may exacerbate the spread of epidemics and increase the number of fatalities. To rescue people in emergency and post-disaster situations, healthcare services must be quickly provided to injured individuals. Such rescues can be accomplished by assigning patients to the nearest medical provider, medical institution, or community center as well as by sending essential medical deliveries, such as defibrillators and blood supplies, to the injured person’s location.
Most of the challenges related to accessing a patient’s location are based on geographical characteristics such as dispersed islands, poor transportation infrastructure, and limited means of transport. These challenges tend to be particularly severe in both rural and developing countries. Moreover, when natural disasters occur, surrounding transportation infrastructure is often disrupted. For example, roads may become blocked because of natural disasters, or bridges may be broken [8].
To overcome these challenges and to provide necessary healthcare for patients in emergency and post-disaster situations, it is crucial to implement efficient methods to serve them. Ideally, transport means that it is not affected by damage to transportation infrastructure and that it is not significantly more expensive than ground transportation. Therefore, it is noteworthy that this can be achieved using unmanned aerial vehicles (UAVs), also known as drones.
Drones have proven successful in many applications in rugged environments, including agriculture, aerial photography, and data collection [9,10]. Drones have also been used in several healthcare applications (Figure 1). For example, drones have been used to spray chemicals in China to prevent the spread of COVID-19 [11]; to deliver medications during the Haitian earthquake of 2010 [12]; and to transfer blood samples [13], vaccines [14], and stool [15] to laboratories or wherever they are needed by patients.
Importantly, healthcare applications demand specific considerations related to patients’ individual situations to provide them with an ideal service. For example, people facing emergency situations may require devices such as defibrillators to quickly revive an injured person, or blood delivery may be needed within the shortest possible time while ensuring the validity of the supply [17]. In such cases, optimization of healthcare applications, given these considerations, is highly important [18,19].
With the above considerations in mind, this study examines several problems faced by healthcare workers in emergency situations, namely: (i) the selection of drone launching centers (facilities) to maximize the ability of drones to serve patients (in this case, the drone centers must be selected from existing community centers); (ii) the distribution of available drones to drone launching centers; and (iii) the assignment of patients to drone launching centers and the available drones in those centers, considering the center’s capacity and the range constraints of the drones. This problem has been referred to in the literature as the maximum-coverage facility location problem with drones (MCFLPD) [20], which is a variant of the well-known Facility Location Problem (FLP). The FLP is a typical NP-hard combinatorial optimization problem [21,22]. Usually, NP-hard problems are solved using heuristic oSr metaheuristic algorithms, rather than exact methods. Such algorithms can provide optimal or near-optimal solutions at relatively low computational costs.
The contribution of this paper is a novel heuristic for solving the MCFLPD, which is termed the maximum coverage greedy randomized heuristic (MCGRH). The MCGRH can solve the MCFLPD problem and significantly achieve high patient coverage with a low computational time compared to the approaches attempted in [20], which are a Gurobi mixed-integer programming solver [23] and two heuristics. The idea of the MCGRH is to first randomly select some facilities to be opened from among the facilities that can serve the highest weight of the required patient demands. Following this, each patient was assigned to the nearest open facility with the capacity to serve them, after which drones were assigned to patients according to the lowest battery consumed between the patient and its facility.
The remainder of this paper is organized as follows: Section 2 reviews the work related to the MCFLPD, Section 3 describes the problem formulation, Section 4 presents the proposed method, Section 5 explores the results and discussion, and Section 6 concludes with an examination of directions for future research.

2. Literature Review

In this section, we explore and discuss state-of-the-art methods for solving the FLP for drone launching centers. Few studies have been conducted on FLP and its variants by using drones [24]. In fact, FLP has important applications in the field of drone usage, particularly in post-disaster situations or when seeking to enter locations that are difficult to access. Many issues must be considered when selecting the locations of drone launching centers, including the drone battery life, drone flying range, and other variables [25,26]. In the field of healthcare, maintaining a short distance between the drone launching center and the patient is particularly important to enable a rapid medical response [27]. In this section, some efforts of prior researchers who have attempted to solve the FLP, as well as its variants, for the selection of drone-launching centers are reviewed.
MCFLPD is an NP-hard problem that was introduced in 2019 by Chauhan et al. [20] In the MCFLPD, the locations of the drone launching centers were selected from a network of prespecified capacitated facilities. The objective is to maximize the ability of drones to meet patient demands. In [20], three approaches were used to solve the problem: a mixed-integer programming solver, a novel greedy heuristic, and a three-stage heuristic (3SH). The two heuristics (greedy and 3SH) were proposed by the authors. The greedy heuristic first builds a weight matrix, where the rows represent instances of the demand point and the columns represent the facilities. Each element is filled by the percentage difference between the demand weight of a point and the battery consumed between the point and the facility. Subsequently, facilities are opened and specific demand points are assigned to them using the weight matrix. Then, the number of drones needed by each facility N D j is defined according to the ratio of the total battery consumed between the facility and the demands assigned to it and the battery capacity of the drone. After this, opened facilities J ^ are sorted according to N D j . A drone from the available drones is sequentially assigned to each open facility. Finally, the demand assignment to the drone is performed according to the battery consumed between the demand and the facility.
In contrast, the 3SH proposed in [20] performs the following three steps: (i) solve a capacitated p-median facility location problem by trying to maximize the total weight, where the weight is determined by the percentage difference between the demand weight of a point and the battery consumed between the point and the facility; (ii) consider the assignment of the drones to facilities and the demand points to drones as a maximum-profit knapsack problem; and (iii) use a local exchange heuristic to improve the solution by randomly replacing a facility that has a low weight with another one. Extensive testing of the approaches proposed in [20], as well as a comparison, indicated that 3SH had the best performance in terms of both time and solution quality.
Lynskey et al. [28] studied a problem derived from the FLP, in which the objective was to select drone ports to minimize the average distance to the locations of patient demand to be served by each port. A k-means algorithm was applied to cluster the demand areas. Next, several traveling salesman algorithms—2-opt, a genetic algorithm, exhaustive search, and ant colony optimization (ACO)—were applied to identify the preferred locations of drone ports to ensure that the demand in each cluster could be met by drones, as well as to ensure that the drone trips would involve the shortest routes. The ACO algorithm outperformed other algorithms investigated in this study.
In another study, Shavarani et al. [29] studied an FLP to identify an optimal solution for finding the locations of launching drones and recharging stations. Their objective was to minimize the total cost of the system. A genetic algorithm and a hybrid genetic algorithm were applied and compared, and the latter was found to provide the best solution. The last noteworthy study is Kim et al. [30], wherein the authors introduced a stochastic framework for regions affected by disasters. The framework accounts for uncertain trip distances for drones and aims to solve the FLP by identifying the optimal number of drone launch facility locations and their capacities. The authors used Benders decomposition and linear programming rounding to develop a heuristic algorithm that provides high-quality and efficient solutions.
The literature shows that limited research has examined the use of drones in the healthcare field, despite their importance in saving human lives and reducing the burden on both healthcare facilities and individual patients. The paucity of research in this area has become even more noticeable with the emergence of the recent COVID-19 pandemic, where drone applications have tremendously alleviated the delivery of services to remote areas while being cheaper, safer, and faster than traditional modes of transport.
Another important finding from this literature review is that exact methods are evidently unsuitable for solving large datasets of FLP and its variants. As an NP-hard problem, exact methods require very long processing times to generate solutions. Therefore, for real-life problems with large datasets, the existing literature typically utilizes heuristics and metaheuristics to identify near-optimal solutions (in terms of quality) with an acceptable processing time.

3. Problem Formulation

As previously mentioned, the maximum coverage facility location problem with drones (MCFLPD) [20] is a variant of the Facility Location Problem (FLP). Specifically, the FLP serves the demands of a set of customers using a set of facilities that can be allocated or chosen from existing locations. In contrast, in the MCFLPD, there are additional features to the FLP, namely drone-to-facility and demand-to-drone distribution, in addition to the consideration of the drone range constraints. These features require hard computations, which makes the MCFLPD more complex than the classical FLP.
The aim of this study was to implement a solution to improve the MCFLPD results described by Chauhan et al. [20] Specifically, the MCFLPD is concerned with identifying the optimal or near-optimal number of locations of drone launching centers such that the coverage is maximized for serving patients. Drone centers must be chosen from the existing community centers. Figure 2 shows an example of the locations of the community centers and patients to be served.
Formally, within a certain planning period, there is a set of locations for patient I , where each has a demand weight w i , along with a set of potential facility locations (i.e., drone launching centers) J and a set of drones K , each with a full battery charge. The MCFLPD formulation, as described by Chauhan et al. [20], is shown in Table 1.
Equation (1) [31] calculates b i j , where a drone travels to patient i with a load w i and drops w i then returns empty to the facility j .
b i j = m t + m b + w i θ s   η   d i j + m t + m b θ s   η   d i j                 i   I ,     j   J  
Equation (2) [32] calculates U , which is equal to the total demands weight of all patients divided by 80 percent (according to the reference [32], the average utilization of the facilities is equal to 80 percent of the total available capacity) of the number of facilities to be opened.
U = i I w i 0.8     p  

4. Solution Method

This paper proposes a novel heuristic known as MCGRH, the purpose of which is to solve the MCFLPD problem. This guarantees that all constraints in Table 1 are satisfied. At the outset, the idea of the algorithm is to select a set of facilities S to be opened, with size p , from the set of potential facilities J that maximizes   i     I   j     S   y j   c i j w i (i.e., maximizing the total demand of patients that it is possible to serve). In turn, the algorithm assigns each potential patient to the nearest open facility j S   with the available capacity U j . Any available drones are then assigned to the opened facilities according to the highest unserved demand weights i     I   w i   a i j ,   where   a i j = 1   and   j S . Finally, patients are assigned to drones (in each opened facility) according to the lowest battery consumed b i j followed by the highest demand weight w i   of all unserved patients of a specific facility j , such that for each drone k , the total battery consumed by the drone in serving the demand is less than the drone’s total battery capacity (that is, i     I   b i j   B k , where   j   S .)
The proposed method proceeds in three steps: (i) select the number of facilities to be opened from the potential facilities, (ii) assign patients to the opened facilities, and (iii) assign drones to the opened facilities and assign patients to those drones. Algorithms 1–3 present the details of these steps. An explanation of each algorithm is provided below.

4.1. Select a Number of Facilities to Be Opened from the Potential Facilities

The purpose of this algorithm is to select from potential facilities J a number of facilities p to be opened that maximizes the total demand of patients that can be served. Let I be the list of all potential patients and J be the list of all potential facilities with their potential patients such that patient i can be covered by facility j if a drone can reach i in one trip using its battery charge. In other words, b i j B , where b i j is calculated using Equation (1). In addition, suppose that p is the maximum number of facilities to be opened. Let S be an empty list of the initial solution of size p to maintain open facilities. Let U f be the capacity of each facility calculated according to Equation (2) (i.e., all facilities have identical capacities).
After implementing the above steps, the algorithm repeats the following steps p times, until J is exhausted or until all patients in I have been served:
First, calculate   i     I   w i   c i j     j J . That is, we calculated the total demand weights of the potential patients of each facility j J . In turn, sort J is sorted in descending order according to these values. Then, select a subset H F consisting of n facilities from J with the highest i     I   w i   c i j , and select a facility f —to be opened from H F at random. In this case, the idea is to utilize a greedy randomized approach to ensure that a facility is selected from among the top facilities that can cover large patient demand. This maximizes the coverage and, at the same time, eliminates selection bias and variegates the results using random selection, which cannot be achieved using only the greedy criterion. Next, remove f is removed from J so that it will not appear again in subsequent iterations when selecting a new facility to be opened.
Second, the potential patients i of f , where i I   and c i f = 1 , in descending order according to the demand weight w i . Following this, iterate over these patients and mark them as covered until U f   is filled, or until the list of f ’s potential patients is exhausted (thus making these patients unavailable for other facilities). Hence, if there is more than one facility in J with the same potential patient A , marking A as covered by f will change i     I   w i   c i j     j J (i.e., the total demand weights of the potential patients of each facility j   J ). It is noteworthy that this affects their appearance in H F in the next iteration. The last part of the second algorithm adds f to S .
Finally, list S   now contains the facilities to be opened that can serve the greatest possible demands. Algorithm 1 presents the details of the above steps.
Algorithm 1: Select a number of facilities to be opened from the potential facilities.
  • I List   of   all   potential   patients
  • J List   of   all   potential   facilities with their potential patients
  • p Maximum   number   of   facilities   to   be   opened
  • S {   }  
  • Calculate U f = i I w i 0.8   p \\ capacity of each facility f in S
  •  Repeat
  •     Calculate   i     I   w i   c i j   j   J \\ the total demand weights of the potential patients of each facility j   J
  •     S o r t ( J ) \\ in descending order of the total demand weights of the potential patients
  •     H F J [ 1 n ]
  •     f = R a n d o m ( H F )
  •     R e m o v e ( f , J )
  •     S o r t ( p o t i e n t i a l   p a t i e n t s   o f   f ) \\ in descending order of patients demand weight w i  
  •    Repeat
  •        M a r k A s C o v e r d ( p a t i e n t i , f )
  •    Until  filling   U f    OR the list of f ’s potential patients is exhausted
  •     S S   f    
  • Until Size p is reached OR  I is exhausted OR  J is exhausted
  • Output:  S

4.2. Assign Patients to the Opened Facilities

The purpose of this algorithm is to assign patients to the nearest open facility in S whose capacity is available, and drone constraints are satisfied. Using S from Algorithm 1 as an input list of opened facilities with size p , along with the list of all potential patients I , several operations should be performed. First, for each patient i in I , traverse the patients one by one until the list of patients ends, such that the current patient i is assigned to the first open facility f in the list S based on two conditions: (i) f   is the nearest opened facility to i , where b i f B ; and (ii) there is available capacity in f   to add i (i.e., w i   U f ). The second operation recalculates U f (i.e., the available capacity) and i     I   w i   a i f   (total demand served by f ). Algorithm 2 presents the details of the above steps.
Algorithm 2: Assign patients to the opened facilities.
  • Input:  S \\ the list of opened facilities from Algorithm 1
  • I List   of   all   potential   patients
  • For each patient   i in I  Do
  •    Pick best f for i from S \\ the nearest opened facility where b i f B with available capacity U f
  •     A s s i g n ( i , f )
  •    Recalculate available capacity ( U f ) and total required demands weights from f ( i     I   w i   a i f )
  • Output:  S

4.3. Assign Drones to the Opened Facilities and Assign Patients to Those Drones

The purpose of this algorithm is to assign the available drones to the opened facilities in S according to the required demand weights of their assigned patients. This is achieved using the concept of the maximum-profit knapsack problem, as proposed in [20], along with additional conditions. The idea is to prioritize facilities that have large required demand weights by assigning more drones to them and, at the same time, assigning more patients of these facilities to drones to maximize coverage.
Given S , which is the input list of the opened facilities from Algorithm 2, for each facility f in S , in order to give priority to patients who consume lower batteries, sort the assigned patients i of f , where i I   and a i f = 1 , in ascending order according to b i f , followed by w i in descending order. In other words, if two patients are equal in b i f , the patient with the higher w i will occur first in the list.
Assuming K is the number of available drones and T o t a l _ d e m a n d _ s e r v e d   is initialized at a value of 0, repeat the following steps K times or until all patients in S are served:
First, select a drone k from the set of available drones K . To maximize coverage, find M F facility of S that has the maximum demand weights of the patients assigned to this facility that are not yet assigned to any drone (i.e., maximum facility M F from S according to maximum i     I   w i   a i f , where   x i f k = 0     f S and   k K ). In turn, assign k is assigned to M F and the demand served by drone k   ( D e m a n d _ s e r v e d k )   to 0.
Second, traverse the patients assigned to M F who are not assigned to any drone, and then check whether the value of b i   M F of the current patient   i is lower than the remaining battery capacity B k of drone k . If this is the case, assign i to k , subtract its consumed battery b i   M F from B k , and add w i to the drone’s D e m a n d _ s e r v e d k ; otherwise, if the current patient   i cannot be served by the remaining B K and to maximize the coverage, try to replace patient   i with patient   z already assigned to k , where w z < w i , without violating the drone constraints. This is done by sorting the patients already assigned to k according to ascending demand weights w , traversing them one by one, and checking whether there is a patient z for whom w z < w i and b z   M F + the   remaining   B k     b i   M F . Then, release the assigned patient z and assign the current patient i to k . Also, and update D e m a n d _ s e r v e d k and B k according to the changes.
Finally, after completing the assignments to drone k , we update T o t a l _ d e m a n d _ s e r v e d . After finishing all drones or serving all patients in S , calculate and return C o v e r a g e , which is equal to the percentage of T o t a l _ d e m a n d _ s e r v e d . Algorithm 3 presents the details of the above steps.
Algorithm 3: Assign drones to the opened facilities and assign patients to those drones.
  • Input:  S \\ from Algorithm 2
  • K number   of   the   available   drones
  • T o t a l _ d e m a n d _ s e r v e d 0
  • S o r t   ( p a t i e n t s   i n   e a c h   f a c i l i t y   f   i n   S ) \\ by b i f in ascending order, followed by w i   in descending order
  • Repeat
  • S e l e c t   ( new k K )
  • B battery capacity of k
  • M F max ( S ) \\ according to max i     I   w i   a i f where   x i f k = 0       f S and   k K
  • A s s i g n _ d r o n e   ( k , M F )
  • D e m a n d _ s e r v e d k 0
  • For each patient   i assigned to M F Do \\ i is not assigned to any drone ( x i f k = 0       f S and   k K )
  •    b i   M F   battery   consumed   between   current   patient   i   and   current   facility   M F
  •   IF b i   M F B Then
  •     A s s i g n _ p a t i e n t   ( i , k )
  •     B   B b i   M F
  •     D e m a n d _ s e r v e d   k D e m a n d _ s e r v e d   k + w i
  •   Else
  •      S o r t ( p a t i e n t s   a s s i g n e d   t o   k ) \\ according to the ascending demands weights w
  •     For each patient   z assigned to the drone k Do
  •      IF w z < w i       AND b z   M F + B     b i   M F  Then
  •      R e l e a s e   ( z , k )
  •       A s s i g n _ p a t i e n t   ( i , k )
  •      B B + b z   M F b i   M F
  •      D e m a n d _ s e r v e d k   D e m a n d _ s e r v e d k + w i w z
  •     break
  •    T o t a l _ d e m a n d _ s e r v e d T o t a l _ d e m a n d _ s e r v e d + D e m a n d _ s e r v e d k
  •   Until K times OR until all patients in S are served
  •    C o v e r a g e The   percentage   of   T o t a l d e m a n d s e r v e d   of   patients   covered
  •   Output: C o v e r a g e

5. Results and Discussion

This section describes the dataset used to test the proposed method, the MCGRH, and the parameter settings. A numerical analysis of the proposed approach is also presented.
The MCGRH was implemented using Python software. Experiments were conducted using a computer with an Intel Core i7 processor running at 3.1 GHz using 16 GB 2133 MHz LPDDR3 of RAM running Macintosh HD. SPSS version 28.0.0.0 was used for statistical analysis [33].

5.1. Dataset and Parameter Settings

We used the Portland metropolitan area as a case study to apply MCGRH [20]. There were 122 patients in the study area. The patients are represented by the centroid of the ZIP code tabulated areas (ZCTAs). There are 104 potential facility locations, which are community centers in the Portland metropolitan area. Figure 3 shows the patient and potential facility locations for the case study.
The total payloads requested by patients were 366.5 kg. It is worth mentioning that there were four patients (ZCTA points 97028, 97049, 97064, and 98616) with a total demand of 15.75 kg (their respective demands were 4.75, 2.25, 4, and 4.75) who could not be reached by any facility. This is because of the battery capacity required for one trip between each of them and any of the potential facilities, which is greater than the battery capacity of the drone (777 W h). This means that the optimal coverage of patients that could be reached was 350.75 kg (95.7%). U is the capacity that each facility can offer, which is calculated based on the total demand weight of patients w i and the number of facilities to be opened p [20], as shown in Equation (1).
As assumed in [20], the number of facilities to be opened ranges from 5 to 30. We computed the traveling distance between a patient and a potential facility in miles using the Euclidean distance based on the latitude and longitude of their locations. According to the average latitude of the dataset, 1-degree latitude (y-axis distance) = 111.13976776 km and 1-degree longitude (x-axis distance) = 78.000735479 km. It was assumed that there were no obstacles. The parameters we used for drones in this paper are based on reference [20] and are shown in Table 2.

5.2. Numerical Analysis

In this study, we developed a new heuristic for solving an MCFLPD, referred to as the MCGRH. We compared the results of MCGRH with those of the Gurobi mixed-integer programming solver (MIP), greedy heuristic, and three-stage heuristic (3SH) methods used in [20] to achieve the best maximum coverage within the minimum time.
In terms of coverage paired with time performance, the method that achieved the best results in [20] was 3SH. As described in Section 2, 3SH comprises three stages. In the first stage, a weight w i b i j   a i j , which is the weight of assigning each potential demand point i I to each facility j J , where b i j < B . At this stage, the algorithm attempts to maximize the total weights assigned to each facility. The second stage deals with the problem of assigning drones to facilities and demand points as a maximum profit knapsack problem. In the third stage, the solution is improved by performing a local exchange heuristic, which removes the facility with the lowest demand and replaces it with the available ones at random.
In contrast, the MCGRH overpasses 3SH, where it attempts to work on elements that maximize coverage with fewer processes. Thus, in MCGRH, the p facilities to be opened are selected from the facilities with the highest demand weights for their potential patients i     I   w i   c i j     j   J , which is achieved using a randomized-greedy approach. In addition, the assignment of potential patients to the opened facilities is performed in a greedy manner by selecting the nearest patient with available capacity U .   This is intended to reduce the amount of battery consumed by the drone to serve patient i , enabling as many patients as possible to be served using the drone. In other words, because the two factors that affect the consumed battery b i j are the demand weight w i and the distance d i j between patient i and facility j , and because w i is fixed and d i j is variable, selecting the facility with the shortest distance from i gives more importance to the demand weight than the distance when calculating the amount of consumed battery. This helps achieve the objective of maximizing the total demand served.
Hence, the MCGRH addresses the problem of assigning drones to facilities as a maximum-profit knapsack problem. In addition, the proposed method addresses the problem of assigning patients to drones by prioritizing patients with the lowest consumed battery b i j , followed by the highest demand w i . These features account for the fact that MCGRH outperformed 3SH, as shown in detail in due course.
Table 3 shows the results of all the considered methods on 22 different instances reported in [20], as well as the MCGRH. The instances were grouped by the number of opened facilities p followed by the number of available drones K . The table shows the performance of the four methods as measured by time (in seconds) and coverage (i.e., the percentage of the total patient demand that is satisfied). The Gurobi MIP is an exact and deterministic solution method that runs until a solution is found or a limit of 7200 s is reached. 3SH and MCGRH are not deterministic, so the table shows their statistical results (average, minimum, and maximum) over 30 different runs of each instance. In addition, in the last row of the table, the average time and coverage of the 22 instances are indicated (since we are concerned with the minimum time and maximum coverage, we considered them when computing the overall average results of the 3SH and MCGRH in the last row of Table 3). MCGRH achieved a coverage of 95.1%, whereas the optimal coverage was 95.7% (as explained in Section 5.1) in less than two minutes, which outperformed the other methods.

5.2.1. Coverage

Coverage is the percentage of the total accommodated patient demand. In [20], the authors reported that the greedy algorithm had the best time performance, albeit with very weak coverage compared to the other methods. Gurobi was the best of the three methods in terms of coverage but was associated with the worst time performance, which is attributable to the fact that it requires an unacceptably long running time to achieve a feasible solution. However, 3SH achieved good coverage (96.6% of Gurobi’s solutions on average), whereas when compared with Gurobi’s time performance, 3SH took only approximately 27 s on average.
Figure 4 shows a comparison of the maximum coverage of the MCGRH and the other three methods of [20], grouped by the number of opened facilities. The x-axis represents the number of opened facilities and available drones, while the y-axis represents the percentage coverage. The average maximum coverage obtained using each method was as follows: Gurobi (81.65%), greedy (63.57%), 3SH (78.89%), and MCGRH (80.5%). Evidently, MCGRH is the closest to Gurobi in terms of the average maximum coverage (approximately 98.6% of Gurobi’s solutions on average), and it exceeded Gurobi in 11 instances (see Table 3 and Figure 5). Because the objective is to maximize coverage, a comparison between the Gurobi and 3SH methods is considered.
Figure 5 shows the percentage deviation of coverage between Gurobi, 3SH, and MCGRH for all instances, where a positive deviation indicates that the MCGRH’s result is better for that instance. In half of the instances (11 of 22), MCGRH exceeded Gurobi’s results, whereas in 17 of 22 instances, MCGRH outperformed 3SH.
We used the Wilcoxon signed-rank test to ensure that the analysis relied on a solid statistical basis. We applied the test using SPSS to compare the coverage obtained by MCGRH and Gurobi, on the one hand, and MCGRH and 3SH, on the other. The null hypotheses and results for both tests are presented below.
1. Comparison of MCGRH and Gurobi.
  • Null hypothesis: The population distributions of the Gurobi algorithm and MCGRH were identical with respect to coverage.
  • Results: The results were comparable for both algorithms (11 negative and 11 positive ranks). In addition, the p -value = 0.262, where 0.262 > 0.05; thus, the null hypothesis was accepted.
2. Comparison of MCGRH and 3SH
  • Null hypothesis: The population distributions of the 3SH and MCGRH are identical with respect to coverage.
  • Results: There were 5 negative and 17 positive ranks. Thus, most of the pairs were positive ranks, which means that MCGRH had a larger coverage than 3SH. In addition, the p -value = 0.008, where 0.008 < 0.05; therefore, the null hypothesis was rejected. In other words, the results of the MCGRH were statistically significantly better than those of the 3SH.
For the sake of a visual comparison with the results in [20], Figure 6 and Figure 7 show illustrations of solutions for some instances obtained using our MCGRH.
Finally, we calculated the average energy consumed per percent coverage for every 30 runs for each of the 22 instances using the following formula:
E n e r g y / C o v e r a g e = A v e r a g e   B a t t e r y   U s e d × N u m b e r   o f   D r o n e s   U s e d C o v e r a g e
Compared to Gurobi, the greedy heuristic, and 3SH, the average energy consumed per percent of coverage of MCGRH was higher by approximately 20%, 31%, and 32%, respectively. However, as previously mentioned, MCGRH achieved the best coverage in the least time; therefore, it is expected that this comes at the expense of a slight increase in the energy consumed (i.e., because more patients are being served). In fact, given that the same resources are used for each method, and because the objective is to maximize the patients covered, it is more important to maximize coverage and help more patients in a very fast time than to reduce the consumption of the drones’ batteries. This is especially true given that the difference in energy/coverage is not large when compared with the other methods.

5.2.2. Time Performance

Because the objective is to maximize coverage, we compared the Gurobi and 3SH methods because they achieved greater coverage than the greedy method. As shown in Table 3, the average time performances of the Gurobi was 4946.23 s, 3SH 26.46 s, and MCGRH 0.87 s. Although the experiments were conducted on different computers, it can still be observed that the MCGRH is substantially faster than the other methods. Furthermore, given that the hardware specifications of the computer used to test the MCGRH were lower than those of the machine used to test the Gurobi and 3SH methods, this again attests to the remarkable time performance of the MCGRH. In fact, the MCGRH runs extremely rapidly (less than 1 s on average). Again, we performed the Wilcoxon signed-rank test using SPSS to compare the time performance of MCGRH and each of the two other methods. The results are as follows:
1. Comparison of MCGRH and Gurobi.
  • Null hypothesis: The population distributions of the Gurobi and MCGRH are identical with respect to time performance.
  • Results: The ranks of all pairs were negative (22 negative and 0 positive), indicating that MCGRH outperformed Gurobi in terms of time performance. In addition, p -value = 0.001, where 0.001 < 0.05, indicating that the null hypothesis is rejected.
2. Comparison of MCGRH and 3SH.
  • Null hypothesis: The population distributions of the 3SH and MCGRH are identical with respect to time performance.
  • Results: The ranks of all pairs were negative (22 negative ranks and 0 positive ranks), indicating that MCGRH outperformed 3SH in terms of time performance. In addition, p -value = 0.001, where 0.001 < 0.05; therefore, the null hypothesis was rejected.

6. Conclusions

The delivery of medical supplies and the provision of aid to patients using drones can significantly contribute to improving healthcare services. This study aims to provide high-quality solutions within a reasonable time for the maximum coverage facility location problem with drones (MCFLPD), which is more complex than the traditional facility location problem. State-of-the-art methods in the literature have been proposed to solve this problem, including a Gurobi mixed-integer programming solver, which gives acceptable-quality solutions in terms of coverage but has an unacceptably long running time to find a feasible solution; a greedy heuristic, which is extremely fast but achieves low coverage compared to the other methods; and a three-stage heuristic (3SH) algorithm, which achieves around 96.6% of Gurobi’s coverage within approximately 27 s.
In this paper, we propose a new heuristic called the maximum coverage greedy randomized heuristic (MCGRH) to solve MCFLPD. MCGRH is distinguished by the following: (i) the selection of facilities to be opened at random from those that can serve the largest number of patients with the highest demand; (ii) the assignment of patients to the nearest open facilities that are available to serve them; and (iii) the assignment of drones to the opened facilities that have the highest demands, as well as the assignment of patients of those facilities to those with the lowest battery consumed. We compared MCGRH with the state-of-the-art methods mentioned above, considering both time performance and solution quality. We used the Wilcoxon signed-rank test for statistical comparison, with the results indicating that the MCGRH excelled in solution quality (i.e., coverage), together with time performance. In particular, MCGRH produced a coverage of more than 80% (approximately 98.6% of Gurobi’s average coverage) in less than 1 s of average processing time.
In future work, we intend to improve the MCGRH to reduce the total energy consumed while maintaining high coverage within a short processing time, besides considering obstacle avoidance. Moreover, it is possible to explore new variants of the problem that may reflect more realistic healthcare applications, such as making battery stations available to recharge a drone’s battery during its trip.

Author Contributions

Conceptualization, S.A.-R., M.H. and S.A.; methodology, S.A.-R.; software, S.A.-R.; validation, S.A.-R.; formal analysis, S.A.-R.; investigation, S.A.-R.; resources, S.A.-R.; data curation, S.A.-R.; writing—original draft preparation, S.A.-R.; writing—review and editing, M.H. and S.A.; visualization, S.A.-R.; supervision, M.H. and S.A.; project administration, M.H. and S.A.; funding acquisition, S.A.-R. All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported by the Deanship of Scientific Research, King Saud University.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Data presented in this study are available in ScienceDirect at https://doi.org/10.1016/j.trc.2018.12.001 [20] (accessed on 29 December 2021).

Acknowledgments

The authors would like to thank the Deanship of Scientific Research at King Saud University for funding and supporting this research through the initiative of DSR Graduate Students Research Support (GSR).

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. 2021 North American Wildfire Season-Center for Disaster Philanthropy. Available online: https://disasterphilanthropy.org/disaster/2021-north-american-wildfire-season/ (accessed on 29 December 2021).
  2. 2021 Haiti Earthquake and Tropical Storm Grace-Center for Disaster Philanthropy. Available online: https://disasterphilanthropy.org/disaster/2021-haiti-earthquake-and-tropical-storm-grace/ (accessed on 29 December 2021).
  3. 2021 Atlantic Hurricane Season Fast Facts-CNN. Available online: https://edition.cnn.com/2021/04/13/weather/2021-atlantic-hurricane-season-fast-facts/index.html (accessed on 29 December 2021).
  4. Coronavirus Disease 2019. Available online: https://www.who.int/emergencies/diseases/novel-coronavirus-2019 (accessed on 23 March 2020).
  5. Australia Fires: A Visual Guide to the Bushfire Crisis-BBC News. Available online: https://www.bbc.com/news/world-australia-50951043 (accessed on 23 March 2020).
  6. Radu, S. 5 of the Deadliest Natural Disasters in 2019 | Best Countries | US News. Available online: https://www.usnews.com/news/best-countries/slideshows/5-of-the-deadliest-natural-disasters-in-2019 (accessed on 5 September 2020).
  7. 2018 Indonesia Quakes and Tsunamis: Facts, FAQs, and How to Help | World Vision. Available online: https://www.worldvision.org/disaster-relief-news-stories/2018-indonesia-earthquake-facts (accessed on 23 March 2020).
  8. Fukubayashi, Y.; Kimura, M. Improvement of rural access roads in developing countries with initiative for self-reliance of communities. Soils Found. 2014, 54, 23–35. [Google Scholar] [CrossRef] [Green Version]
  9. Otto, A.; Agatz, N.; Campbell, J.; Golden, B. Optimization approaches for civil applications of unmanned aerial vehicles (UAVs) or aerial drones: A survey. Networks 2018, 72, 411–458. [Google Scholar] [CrossRef]
  10. Boysen, N.; Fedtke, S.; Schwerdfeger, S. Last-mile delivery concepts: A survey from an operational research perspective. OR Spectr. 2020, 43, 1–58. [Google Scholar] [CrossRef]
  11. Liu, Y. China Adapts Surveying, Mapping, Delivery Drones to Enforce World’s Biggest Quarantine and Contain COVID-19 Outbreak | The Star Online. Available online: https://www.thestar.com.my/tech/tech-news/2020/03/05/china-adapts-surveying-mapping-delivery-drones-to-enforce-worlds-biggest-quarantine-and-contain-covid-19-outbreak (accessed on 23 March 2020).
  12. Raptopoulos, A. No Roads? There’s a Drone for That. Available online: https://amandacoxdesign.wordpress.com/2013/12/02/tedtalk-andreas-raptopoulosno-roads-theres-a-drone-for-that/ (accessed on 20 April 2019).
  13. DHL | Press Release | English. Available online: https://www.dhl.com/en/press/releases/releases_2016/all/parcel_ecommerce/successful_trial_integration_dhl_parcelcopter_logistics_chain.html (accessed on 25 March 2020).
  14. Tilley, A. UPS Experiments with Drone Delivery in Partnership with Zipline. Available online: https://www.forbes.com/sites/aarontilley/2016/05/09/ups-experiments-with-drone-delivery-in-partnership-with-zipline/?sh=609b416b45a4 (accessed on 29 December 2021).
  15. Dragolea, N. 9 Drones That Will Revolutionise Healthcare-Doctorpreneurs. Available online: http://www.doctorpreneurs.com/9-drones-that-will-revolutionise-healthcare/ (accessed on 25 March 2020).
  16. Drone First Aid Kit Stock Illustration 192927128. Available online: https://www.shutterstock.com/image-illustration/drone-first-aid-kit-192927128 (accessed on 29 December 2021).
  17. Khan, S.I.; Qadir, Z.; Munawar, H.S.; Nayak, S.R.; Budati, A.K.; Verma, K.D.; Prakash, D. UAVs path planning architecture for effective medical emergency response in future networks. Phys. Commun. 2021, 47, 101337. [Google Scholar] [CrossRef]
  18. Chung, S.H.; Sah, B.; Lee, J. Optimization for drone and drone-truck combined operations: A review of the state of the art and future directions. Comput. Oper. Res. 2020, 123, 105004. [Google Scholar] [CrossRef]
  19. Escribano Macias, J.; Angeloudis, P.; Ochieng, W. Optimal hub selection for rapid medical deliveries using unmanned aerial vehicles. Transp. Res. Part C Emerg. Technol. 2020, 110, 56–80. [Google Scholar] [CrossRef]
  20. Chauhan, D.; Unnikrishnan, A.; Figliozzi, M. Maximum coverage capacitated facility location problem with range constrained drones. Transp. Res. Part C Emerg. Technol. 2019, 99, 1–18. [Google Scholar] [CrossRef]
  21. Adeleke, O.J.; Olukanni, D.O. Facility Location Problems: Models, Techniques, and Applications in Waste Management. Recycling 2020, 5, 10. [Google Scholar] [CrossRef]
  22. El-Ghazali, T. Metaheuristics: From Design to Implementation, 2nd ed.; John Wiley & Sons: Hoboken, NJ, USA, 2009; ISBN 9780470278581. [Google Scholar]
  23. Mixed-Integer Programming (MIP)-A Primer on the Basics-Gurobi. Available online: https://www.gurobi.com/resource/mip-basics/ (accessed on 29 December 2021).
  24. Ilkhanizadeh, S.; Golabi, M.; Hesami, S.; Rjoub, H. The Potential Use of Drones for Tourism in Crises: A Facility Location Analysis Perspective. J. Risk Financ. Manag. 2020, 13, 246. [Google Scholar] [CrossRef]
  25. Udroiu, R.; Deaconu, A.M.; Nanau, C.Ş. Data Delivery in a Disaster or Quarantined Area Divided into Triangles Using DTN-Based Algorithms for Unmanned Aerial Vehicles. Sensors 2021, 21, 3572. [Google Scholar] [CrossRef] [PubMed]
  26. Deaconu, A.M.; Udroiu, R.; Nanau, C.Ş. Algorithms for Delivery of Data by Drones in an Isolated Area Divided into Squares. Sensors 2021, 21, 5472. [Google Scholar] [CrossRef] [PubMed]
  27. Otero Arenzana, A.; Escribano Macias, J.J.; Angeloudis, P. Design of Hospital Delivery Networks Using Unmanned Aerial Vehicles. Transp. Res. Rec. 2020, 2674, 405–418. [Google Scholar] [CrossRef]
  28. Lynskey, J.; Thar, K.; Oo, T.; Hong, C. Facility Location Problem Approach for Distributed Drones. Symmetry 2019, 11, 118. [Google Scholar] [CrossRef] [Green Version]
  29. Shavarani, S.M.; Nejad, M.G.; Rismanchian, F.; Izbirak, G. Application of hierarchical facility location problem for optimization of a drone delivery system: A case study of Amazon prime air in the city of San Francisco. Int. J. Adv. Manuf. Technol. 2018, 95, 3141–3153. [Google Scholar] [CrossRef]
  30. Kim, D.; Lee, K.; Moon, I. Stochastic facility location model for drones considering uncertain flight distance. Ann. Oper. Res. 2019, 283, 1283–1302. [Google Scholar] [CrossRef]
  31. Figliozzi, M.A. Lifecycle modeling and assessment of unmanned aerial vehicles (Drones) CO2e emissions. Transp. Res. Part D Transp. Environ. 2017, 57, 251–261. [Google Scholar] [CrossRef]
  32. Pirkul, H.; Schilling, D. The capacitated maximal covering location problem with backup service. Ann. Oper. Res. 1989, 18, 141–154. [Google Scholar] [CrossRef]
  33. SPSS Statistics-Saudi Arabia | IBM. Available online: https://www.ibm.com/sa-en/products/spss-statistics (accessed on 29 December 2021).
Figure 1. Example of a drone used in healthcare [16].
Figure 1. Example of a drone used in healthcare [16].
Applsci 12 01403 g001
Figure 2. An example of locations of community centers and patients.
Figure 2. An example of locations of community centers and patients.
Applsci 12 01403 g002
Figure 3. Patient locations and potential facility locations in the Portland Metropolitan Region.
Figure 3. Patient locations and potential facility locations in the Portland Metropolitan Region.
Applsci 12 01403 g003
Figure 4. Comparison between the maximum coverage of the four methods.
Figure 4. Comparison between the maximum coverage of the four methods.
Applsci 12 01403 g004
Figure 5. Percent deviation of MCGRH from Gurobi and 3SH.
Figure 5. Percent deviation of MCGRH from Gurobi and 3SH.
Applsci 12 01403 g005
Figure 6. MCGRH solution for [p = 5 and K = 35] covers 71.8% of the total patients demands in kg.
Figure 6. MCGRH solution for [p = 5 and K = 35] covers 71.8% of the total patients demands in kg.
Applsci 12 01403 g006
Figure 7. MCGRH solution [p = 20 and K = 60] covers 95.1% of the total patients demands in kg.
Figure 7. MCGRH solution [p = 20 and K = 60] covers 95.1% of the total patients demands in kg.
Applsci 12 01403 g007
Table 1. Formulation of MCFLPD.
Table 1. Formulation of MCFLPD.
Sets I :   Set   of   locations   of   patients   ( i     I )
J :   Set   of   all   possible   facility   locations   ( j     J )
K :   Set   of   drones   ( k     K )  
Parameters η : Efficiency of the power transfer
θ s : Lift-to-drag ratio
B : Drone battery capacity
b i j :   Battery   consumed   on   one   trip   between   patient   i     I   and   facility   j     J
d i j :   Travel   distance   between   patient   i     I   and   facility   j     J
m b : Drone battery mass
m t : Drone mass tare, without battery and load
p : Maximum number of facilities to be opened
U : Capacity of each opened facility
w i :   Weight   of   demand   at   patient   location   i     I
Decision Variables x i j k = { 1                 if   patient   i   is   served   by   the   k t h   drone   of   facility   j     J   0                 otherwise
y j = { 1                 if   facility   is   opened   at   j     J   0                 otherwise
c i j   = { 1                 if   patient   i   is   a   potential   patient   at   facility   j     J   where   b i j < B   0                 otherwise  
a i j = { 1                 if   patient   i   is   assigned   to   facility   j     J   0                 otherwise
Objective FunctionTo maximize the ability of the fleet of drones to cover the total patient demand
i     I   j     J   k K w i x i j k
Constraints
  • Each patient location is covered at most once
  • The number of chosen facilities must be less than or equal to the maximum number of existing facilities
  • The drone battery range must cover the trip distance
  • The patient demand served by each selected facility must be less than or equal to the facility’s capacity
  • Drones must be assigned only to the selected facilities
Assumptions
  • The cost of transportation is not considered
  • If the demand of a patient is higher than the carrying capacity of the drone, multiple trips will be conducted to meet the patient’s needs; in this case, the number of trips will be based on drone capacity
  • Each drone can complete several one-to-one trips (where a trip lasts from drone launching center to a patient’s location and back) until the battery range B is met
  • Recharging of drone batteries is not considered (i.e., assume that the drone batteries are fully charged prior to the start of a trip)
  • The effects of charging cycles and weather on drone battery capacity are not considered
  • The effect of obstacles such as high buildings or mountains on drone battery capacity is not considered
  • The total power consumed b i j in a delivery from facility j to patient i is given by Equation (1) [31].
  • The capacity of each opened facility is calculated by Equation (2) [32].
Table 2. The parameters of the drone.
Table 2. The parameters of the drone.
Power Transfer Efficiency (η)0.66
Lift-to-Drag   Ratio   ( θ s )3.5
Tare Weight10.1 kg
Maximum Payload5 kg
Battery Capacity777 W h
Table 3. Comparison of Gurobi, Greedy heuristic, 3SH and MCGRH.
Table 3. Comparison of Gurobi, Greedy heuristic, 3SH and MCGRH.
p   1 | K |   2 GurobiGreedy3SHMCGRH
Time (s)Coverage (%)Time (s)Coverage (%)Time (s)Coverage (%)Time (s)Coverage (%)
AvgMinMaxAvgMinMaxAvgMinMaxAvgMinMax
520720056.40.145.214.714.41554.553.655.10.670.551.1151.5345.456.1
525720061.90.150.315.915.616.259.558.660.20.610.560.7857.8954.562.6
530720066.30.155.316.716.417.163.762.964.50.670.60.8163.3859.366.7
535720070.20.158.918.317.622.86766.567.90.690.591.368.0964.971.8
540720072.70.162.518.818.219.169.969.170.50.670.591.0971.0267.874.1
1020720064.40.248.216.616.116.961.459.862.60.700.670.8457.365461.6
10307200750.259.818.317.91971.570.172.90.800.71.3469.9865.373.2
1040720083.80.267.120.119.220.878.476.380.40.850.691.3579.1576.382.1
1530720079.70.259.221.921.422.775.273.277.21.050.821.7272.4068.976.6
1545720090.20.273.124.323.425.583.980.386.60.920.821.5586.4383.688.7
1560720092.60.373.124.823.625.7858188.71.070.831.5990.4386.894.5
2020720071.20.352.825.124.625.665.863.267.51.040.931.1959.3256.163.9
2040720090.40.370.728.728.129.384.282.785.31.030.951.2683.7780.386.9
206032093.80.372.230.428.631.887.283.690.11.060.961.3292.3387.695.1
20803693.80.472.230.929.632.887.583.691.31.030.951.2191.3686.895.1
2525720079.60.353.63332.13571.569.273.31.101.051.3667.7064.371.4
255033793.80.471.436.635.738.388.985.292.21.211.111.3690.9487.693.7
25752793.80.571.437.436.23988.284.2911.231.081.692.2187.994.7
251004393.80.571.438.136.939.589.586.192.21.241.071.8492.1687.994.7
3030720085.30.360.640.33941.776.874.480.21.311.161.7872.2468.477.3
30602393.80.574.844.343.345.590.988.792.81.471.222.193.2189.995.1
30903193.80.674.745.144.246.490.788.7931.221.141.5292.8789.495.1
Average4946.281.650.2863.57 26.46 78.89 0.87 80.5
1   p = number of the opened facilities. 2   | K | = number of the available drones.
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Al-Rabiaah, S.; Hosny, M.; AlMuhaideb, S. An Efficient Greedy Randomized Heuristic for the Maximum Coverage Facility Location Problem with Drones in Healthcare. Appl. Sci. 2022, 12, 1403. https://doi.org/10.3390/app12031403

AMA Style

Al-Rabiaah S, Hosny M, AlMuhaideb S. An Efficient Greedy Randomized Heuristic for the Maximum Coverage Facility Location Problem with Drones in Healthcare. Applied Sciences. 2022; 12(3):1403. https://doi.org/10.3390/app12031403

Chicago/Turabian Style

Al-Rabiaah, Sumayah, Manar Hosny, and Sarab AlMuhaideb. 2022. "An Efficient Greedy Randomized Heuristic for the Maximum Coverage Facility Location Problem with Drones in Healthcare" Applied Sciences 12, no. 3: 1403. https://doi.org/10.3390/app12031403

APA Style

Al-Rabiaah, S., Hosny, M., & AlMuhaideb, S. (2022). An Efficient Greedy Randomized Heuristic for the Maximum Coverage Facility Location Problem with Drones in Healthcare. Applied Sciences, 12(3), 1403. https://doi.org/10.3390/app12031403

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop