Keywords

1 Introduction

In this study, a multiple drone node-and-arc-routing problem is investigated. In the problem, each of the target nodes and edges must be observed by taking photos with low or high quality photo using drones. The target nodes and edges can be observed by drones at two altitudes [1]. Flying at the lower altitude allows the drones to obtain photos with high quality, but within a smaller observation range. Meanwhile, flying at the higher altitude restrict the drones to only produce observation photos with low quality, but allows the drones to capture more target nodes and edges. Performing observations of target nodes and edges at appropriate altitudes can reduce the total surveillance times and this is important in this post-disaster surveillance.

The problem is related to the arc routing problems, which have been studied by many researches including [2,3,4,5]. However, only few papers including [1, 6, 7] have studied drone observation at multiple altitudes. Waharte and Trigoni [1] and Zorbas et al. [7], the most related researches, proposed heuristic algorithms to perform search and rescue operations using drones and studied an optimal drone placement to minimize the cost while assuring the complete surveillance of all targets.

Different with the previous researches, we explicitly consider the drone routing problem at two altitudes by modeling all drone movements throughout the network. This paper is the first study on the drone routing problem at two altitudes for observing nodes and edges, which considers required observation quality and battery recharging. This paper focuses on introducing this new routing problem, in which different altitudes of drone flying determine the captured photo quality. This problem is different from well-known arc routing problem and vehicle routing problem because in those previous problems, any target node or edge requires direct visit, whereas the considered problem of this paper assumes that target nodes and edges require indirect visit (camera watching) and multiple observations of nodes and edges are possible from a single point visit. In addition, changing the flying altitude allows to change the observed area, which allows faster surveillance process.

This paper is organized as follows: The problem is defined in Sect. 2. The mathematical model is presented in Sect. 3. Numerical experiments are presented in Sect. 4. Finally, conclusions are given in Sect. 5.

2 Problem Definition

In this study, a network (S, E) is considered, where \( S = \left\{ {1,2, \ldots ,\psi } \right\} \) and \( E = \left\{ {1,2, \ldots ,e} \right\} \) represent the sets of target nodes and edges on the ground that must be observed. In a disaster area, the nodes to be observed in S are distribution centers, residential area, and road intersections. The edges in E are roads connecting the nodes. After a disaster occurrence, it is necessary to deliver supplies from the distribution centers to the residential areas. It is necessary to perform the surveillance on the nodes in order to assess the availability of the supplies at the distribution centers, the magnitude of disaster at residential areas along with the number of people in those area, and the possibility to use the roads and intersections in the post-disaster period. The surveillance is performed by taking photos using several drones. Photos with high quality must be captured for important nodes and edges, while other nodes and edges with less importance can be observed using photos with low quality.

The drones travel on a network (N, A), where N is the set of the depot and points, and A is the set of arcs. Set N includes the depot indices (0 for start depot and 2s + 1 for end depot), a set of drone observation points at the lower altitude \( \left( {S_{low} = \{ 1,2, \ldots ,s\} } \right) \), and another set of drone observation points at the higher altitude \( \left( {S_{high} = \{ s + 1,s + 2, \ldots ,2s\} } \right) \). Observation points in \( S_{low} \) and \( S_{high} \) have the same horizontal positions with the target nodes on the ground. The set of arcs, A, includes a set of arcs for observation at lower altitude \( \left( {E_{low} } \right) \), a set of arcs for observation at higher altitude \( \left( {E_{high} } \right) \), arcs connecting both depot indices, arcs connecting each depot index with each observation point, and arcs connecting observations points at different altitudes.

Observations using drones are performed at two altitudes with different sizes of covered areas, as shown in Fig. 1. Travelling at a lower altitude allows the drones to observe less number of target nodes and edges, and drone movements at a higher altitude enable the drones to observe more number of target nodes and edges. The observation of some target edges may not be possible from any point. In that case, drones are required to flight through arcs above them to perform the observation. The required photo quality for each target node and edge must be satisfied. The total observation time must be minimized while each drone’s flight duration is limited by its battery level.

Fig. 1.
figure 1

Drone observation at two altitudes with different sizes of covered areas.

3 Mixed Integer Programming Model

The problem is formulated as a mixed integer programming (MIP) model as follows:

Sets:

\( K \) :

set of drone routes, \( K = \left\{ {1,2, \ldots ,ld} \right\} \)

\( R \) :

set of individual drones, \( R = \left\{ {1,2, \ldots ,l} \right\} \)

\( O_{i} \) :

set of target nodes covered when a drone performs the observation at point i, \( i \in S_{low} \cup S_{high} ,O_{i} \subset S \)

\( P_{i} \) :

set of target edges covered when a drone performs the observation at point i, \( i \in S_{low} \cup S_{high} ,P_{i} \subset E \)

\( \pi_{ij} \) :

set of target edges covered when a drone performs the observation at arc(i, j) at the higher altitude, \( \left( {i,j} \right) \in E_{low} ,\pi_{ij} \subset E \)

\( \mu_{ij} \) :

set of target edges covered when a drone performs the observation at arc(i, j) at the higher altitude, \( \left( {i,j} \right) \in E_{high} ,\mu_{ij} \subset E \)

Parameters:

\( b \) :

battery charging time at the depot

\( d \) :

maximum possible number of routes per individual drone

\( f_{0,k} \) :

initial battery level of a drone for route k at depot 0

\( g_{ij} \) :

reduced battery level during movement from depot or point i to depot or point j

\( q_{h} \) :

1, if the required photo quality captured for node h is high; 0, otherwise, \( h \in S \)

\( r_{qy} \) :

1, if the required photo quality captured for edge \( \left( {q,y} \right) \) is low; 0, otherwise, \( \left( {q,y} \right) \in E \)

\( t_{ij} \) :

required time for a drone to travel from depot or point i to depot or point j, \( i \in N\backslash \left\{ {2s + 1} \right\},j \in N\backslash \left\{ 0 \right\} \)

Decision variables:

\( a_{ik} \) :

the arrival time of a drone in route k at the depot or point i

\( c_{qy} \) :

1, if edge \( \left( {q,y} \right) \) is covered by a drone observation at its higher altitude; 0, otherwise, \( \left( {q,y} \right) \in E \)

\( f_{ik} \) :

the battery level of a drone in route k at the depot or point i

\( m_{qy} \) :

1, if edge \( \left( {q,y} \right) \) is covered by a drone observation at its lower altitude; 0, otherwise, \( \left( {q,y} \right) \in E \)

\( n_{qy} \) :

1, if edge \( \left( {q,y} \right) \) is covered by a drone visit to any depot or point at the higher altitude; 0, otherwise, \( \left( {q,y} \right) \in E \)

\( u_{h} \) :

1, if the photo quality captured for node h is high; 0, otherwise, \( h \in S \)

\( v_{qy} \) :

1, if the photo quality captured for edge \( \left( {q,y} \right) \) is high; 0, otherwise, \( \left( {q,y} \right) \in E \)

\( w_{qy} \) :

1, if edge \( \left( {q,y} \right) \) is covered by a drone visit to any depot or point at the lower altitude; 0, otherwise, \( \left( {q,y} \right) \in E \)

\( x_{ijk} \) :

1, if a drone travels from stop i to stop j in route k; 0, otherwise, \( i \in N\backslash \left\{ {2s + 1} \right\},j \in N\backslash \left\{ 0 \right\} \), \( i \ne j \)

\( z \) :

the latest arrival time of drones at depot \( 2s + 1 \)

\( \alpha_{h} \) :

1, if node h is covered by any drone; 0, otherwise, \( h \in S \)

\( \beta_{qy} \) :

1, if edge \( \left( {q,y} \right) \) is covered by any drone; 0, otherwise, \( \left( {q,y} \right) \in E \)

\( \gamma_{ih} \) :

1, if node h is covered by a drone visit at point i at the lower altitude; 0, otherwise, \( i \in S_{low} \), \( h \in S \)

\( \delta_{ih} \) :

1, if node h is covered by a drone visit at point i at the higher altitude; 0, otherwise, \( i \in S_{high} \), \( h \in S \)

\( \varepsilon_{iqy} \) :

1, if edge \( \left( {q,y} \right) \) is covered by a drone visit at point i at the lower altitude; 0, otherwise, \( i \in S_{low} \), \( \left( {q,y} \right) \in E \)

\( \theta_{iqy} \) :

1, if edge \( \left( {q,y} \right) \) is covered by a drone visit at point i at the higher altitude; 0, otherwise, \( i \in S_{high} \), \( \left( {q,y} \right) \in E \)

The formulated MIP is as follows:

$$ {\text{min }}\;\,z $$
(1)
$$ \begin{array}{*{20}l} {{\text{s}} . {\text{t}} .\;\gamma_{ih} \ge x_{ijk} ,} \hfill & {\forall i \in S_{low} ,j \in N\backslash \{ 0\} , k \in K ,\,h \in O_{i} } \hfill \\ \end{array} $$
(2)
$$ \begin{array}{*{20}l} {\gamma_{ih} \ge x_{jik} ,} \hfill & {\forall i \in S_{low} , j \in N\backslash \{ 2s{ + 1}\} ,k \in K ,\,h} \hfill \\ \end{array} $$
(3)
$$ \begin{array}{*{20}l} {\mathop \sum \limits_{k} \left( {\mathop \sum \limits_{{j \in N\backslash \{ 0\} }} x_{ijk} { + }\mathop \sum \limits_{{j \in N\backslash \{ 2s{ + 1}\} }} x_{jik} } \right) \ge \gamma_{ih} ,} \hfill & {\forall i \in S_{low} ,\,h \in O_{i} } \hfill \\ \end{array} $$
(4)
$$ \begin{array}{*{20}l} {\gamma_{ih} { = 0,}} \hfill & {\forall i \in S_{low} ,\,h \in S - O_{i} } \hfill \\ \end{array} $$
(5)
$$ \begin{array}{*{20}l} {u_{h} \ge \gamma_{ih} ,} \hfill & {\forall h \in S , i \in S_{low} } \hfill \\ \end{array} $$
(6)
$$ \begin{array}{*{20}l} { \mathop \sum \limits_{{i \in S_{low} }} \gamma_{ih} \ge u_{h} ,} \hfill & {\forall h \in S} \hfill \\ \end{array} $$
(7)
$$ \begin{array}{*{20}l} {\alpha_{h} \ge u_{h} ,} \hfill & {\forall h \in S} \hfill \\ \end{array} $$
(8)
$$ \begin{array}{*{20}l} {u_{h} { + }\mathop \sum \limits_{{i \in S_{high} }} \delta_{ih} \ge \alpha_{h} ,} \hfill & {\forall h \in S} \hfill \\ \end{array} $$
(9)
$$ \begin{array}{*{20}l} {\varepsilon_{iqy} \ge x_{ijk} ,} \hfill & {\forall i \in S_{low} ,\,j \in N\backslash \{ 0\} ,\,k \in K ,\left( {q ,y} \right) \in P_{i} } \hfill \\ \end{array} $$
(10)
$$ \begin{array}{*{20}l} {\varepsilon_{iqy} \ge x_{jik} ,} \hfill & {\forall i \in S_{low} ,\,j \in N\backslash \{ 2s{ + 1}\} ,\,k \in K ,\left( {q ,y} \right) \in P_{\text{i}} } \hfill \\ \end{array} $$
(11)
$$ \begin{array}{*{20}l} {\mathop \sum \limits_{k} \left( {\mathop \sum \limits_{{j \in N\backslash \{ 0\} }} x_{ijk} { + }\mathop \sum \limits_{{j \in N\backslash \{ 2s{ + 1}\} }} x_{jik} } \right) \ge \varepsilon_{iqy} ,} \hfill & {\forall i \in S_{low} ,\left( {q ,y} \right) \in P_{\text{i}} } \hfill \\ \end{array} $$
(12)
$$ \begin{array}{*{20}l} {\varepsilon_{iqy} = 0 ,} \hfill & {\forall i \in S_{low} ,\,\left( {q ,y} \right) \in E - P_{\text{i}} } \hfill \\ \end{array} $$
(13)
$$ \begin{array}{*{20}l} {w_{qy} \ge \varepsilon_{iqy} ,} \hfill & {\forall \left( {q,y} \right) \in E ,\,i \in S_{low} } \hfill \\ \end{array} $$
(14)
$$ \begin{array}{*{20}l} {\mathop \sum \limits_{{i \in S_{low} }} \varepsilon_{iqy} \ge w_{qy} ,} \hfill & {\forall \left( {q,y} \right) \in E} \hfill \\ \end{array} $$
(15)
$$ \begin{array}{*{20}l} {m_{qy} \ge x_{ijk} ,} \hfill & {\forall \left( {i ,j} \right) \in E_{low} ,\left( {q,y} \right) \in \pi_{ij} ,\,k \in K} \hfill \\ \end{array} $$
(16)
$$ \begin{array}{*{20}l} {\mathop \sum \limits_{k} \mathop \sum \limits_{{\left( {i ,j} \right) ; \left( {q,y} \right) \in \pi_{ij} }} x_{ijk} \ge m_{qy} ,} \hfill & {\forall \left( {i ,j} \right) \in E_{low} } \hfill \\ \end{array} $$
(17)
$$ \begin{array}{*{20}l} {v_{qy} \ge w_{qy} ,} \hfill & {\forall \left( {q,y} \right) \in E} \hfill \\ \end{array} $$
(18)
$$ \begin{array}{*{20}l} {v_{qy} \ge m_{qy} ,} \hfill & {\forall \left( {q,y} \right) \in E} \hfill \\ \end{array} $$
(19)
$$ \begin{array}{*{20}l} {w_{qy} + m_{qy} \ge v_{qy} ,} \hfill & {\forall \left( {q,y} \right) \in E} \hfill \\ \end{array} $$
(20)
$$ \begin{array}{*{20}l} {\beta_{qy} \ge v_{qy} ,} \hfill & {\forall \left( {q,y} \right) \in E} \hfill \\ \end{array} $$
(21)
$$ \begin{array}{*{20}l} {\beta_{qy} \ge w_{qy} ,} \hfill & {\forall \left( {q,y} \right) \in E} \hfill \\ \end{array} $$
(22)
$$ \begin{array}{*{20}l} {\beta_{qy} \ge m_{qy} ,} \hfill & {\forall \left( {q,y} \right) \in E} \hfill \\ \end{array} $$
(23)
$$ \begin{array}{*{20}l} {v_{qy} + n_{qy} + c_{qy} \ge \beta_{qy} ,} \hfill & {\forall \left( {q,y} \right) \in E} \hfill \\ \end{array} $$
(24)
$$ \begin{array}{*{20}l} {\alpha_{h} \ge 1 ,} \hfill & {\forall h \in S} \hfill \\ \end{array} $$
(25)
$$ \begin{array}{*{20}l} {\beta_{qy} \ge 1 ,} \hfill & {\forall \left( {q,y} \right) \in E} \hfill \\ \end{array} $$
(26)
$$ \begin{array}{*{20}l} {u_{h} \ge q_{h} , } \hfill & {\forall h \in S} \hfill \\ \end{array} $$
(27)
$$ \begin{array}{*{20}l} {v_{qy} \ge r_{qy} , } \hfill & {\forall \left( {q,y} \right) \in E} \hfill \\ \end{array} $$
(28)
$$ \begin{array}{*{20}l} {\mathop \sum \limits_{{j \in N\backslash \{ 0\} }} x_{ 0 ,j ,k} = 1 ,} \hfill & {\forall k \in K} \hfill \\ \end{array} $$
(29)
$$ \begin{array}{*{20}l} {\mathop \sum \limits_{{i \in N\backslash \{ 2s{ + 1}\} }} x_{{i , 2s{ + 1,}k}} = 1 ,} \hfill & {\forall k \in K} \hfill \\ \end{array} $$
(30)
$$ \begin{array}{*{20}l} {\mathop \sum \limits_{{i \in N\backslash \{ 2s{ + 1}\} }} x_{imk} - \mathop \sum \limits_{{j \in N\backslash \{ 0\} }} x_{mjk} { = 0,}} \hfill & {\forall k \in K , m \in S_{low} \cup S_{high} } \hfill \\ \end{array} $$
(31)
$$ \begin{array}{*{20}l} {a_{ik} + t_{ij} \le a_{jk} + M\left( { 1- x_{ijk} } \right) ,} \hfill & {\forall i \in N\backslash \{ 2s{ + 1}\} , j \in N\backslash \{ 0\} , k \in K} \hfill \\ \end{array} $$
(32)
$$ \begin{array}{*{20}l} {z \ge a_{{ 2s{ + 1,}k}} ,} \hfill & {\forall k \in K} \hfill \\ \end{array} $$
(33)
$$ \begin{array}{*{20}l} {f_{ik} - g_{ij} \ge f_{jk} - M\left( { 1- x_{ijk} } \right) ,} \hfill & {\forall i \in N\backslash \{ 2s{ + 1}\} , j \in N\backslash \{ 0\} , k \in K} \hfill \\ \end{array} $$
(34)
$$ \begin{array}{*{20}l} {a_{ 2s + 1 ,r + wl} + b \le a_{{ 0 ,r + \left( {w + 1} \right)l}} ,} \hfill & {\forall r \in R ,w \in \left\{ { 0 , 1 ,\ldots ,d - 1} \right\}} \hfill \\ \end{array} $$
(35)
$$ f_{ik} ,a_{ik} = {\text{positive}}\;{\text{integer}} $$
(36)
$$ c_{qy} ,m_{qy} ,n_{qy} ,v_{qy} ,w_{qy} ,\beta_{qy} ,u_{h} ,\alpha_{h} ,x_{ijk} ,\gamma_{ih} ,\delta_{ih} ,\varepsilon_{iqy} ,\theta_{iqy} = {\text{binary}} $$
(37)

The objective function (1) minimizes the total time required to perform observations of all nodes and edges. Constraints (2)–(7) assure photo quality captured at each node and constraints (15)–(25) ensure photo quality captured at each edge. In order to check whether target nodes are observed from points at the higher altitude, some constraints are written as same as Constraints (2)–(6), except that \( \gamma_{ih} \) is replaced with \( \delta_{ih} \) and \( S_{low} \) with \( S_{high} \). These constraints together with Constraints (2)–(9) and (25) ensure that each node is observed by at least one drone. In order to check whether target edges are observed from points at the higher altitude, some other constraints are written as same as Constraints (10)–(17) and Constraint (22)–(23), respectively, except that \( \varepsilon_{iqy} \) is replaced with \( \theta_{iqy} \), \( w_{qy} \) with \( n_{qy} \), \( m_{qy} \) with \( c_{qy} \), \( \pi_{ij} \) with \( \mu_{ij} \), \( S_{low} \) with \( S_{high} \), and \( E_{low} \) with \( E_{high} \). These constraints with Constraints (10)–(24) and (26) enforce that each edge is observed by at least one drone. Constraints (27) and (28) restrict that the requested photo quality at each target node and edge must be satisfied. Constraints (29) and (30) indicate that each drone should start and finish its travel at the depot. Constraints (31) are the flow conservation constraints. Constraints (32) update the arrival time of drone k at depot or point j if the drone travels from depot or point i to depot or point j. Constraints (33) obtain the completion time of all drone operations. Constraints (34) measure the battery level of drone k after its travel from depot or point i to depot or point j. Constraints (35) ensure that the next departure time of drone k is larger than its previous arrival time at depot and its required battery charging time. Constraints (36)–(37) are the binary and integer constraints.

4 Numerical Experiments

In this study, advantages of considering two altitudes for drone movements (LH case) are shown by contrasting it with their movements in the lower altitude only (L case), in which observations with high quality are assured. Comparison with cases in which the drones only travel at the higher altitude is not considered because in this case, the drones can only obtain photos with low quality and more travel time is required to visit the points at the higher altitude. Moreover, this case is already considered as a part of the LH case.

Two data sets with different characteristics are considered. Each data set consists of five instances. In the first and second data sets, four and five target nodes are observed, as shown in Table 1. In both sets, two drones are considered and each drone can travel twice. Required photo qualities for nodes and edges are randomly generated. Target points and edges that can be observed from points are preset. It is assumed that a drone travels through an arc can observe the target edge below the travelled arc. Networks of target nodes and edges, and drones’ travels for Instance 10 are presented in Fig. 1.

Table 1. Parameter settings for data sets

Parameters used in both experiments are listed as follows: λ in Fig. 1 is 60° [7] and f0,k is 360 min [8]. The drones are considered to fly at 44 m and 70 m altitudes in order to perform observations on target nodes within a spherical area with radius of 14 and 22 m from the observation point, as shown in Fig. 1. Values for qh, rqy, and tij are randomly generated between 0 and 1, 0 and 1, and [7, 27] minutes, meanwhile values for gij are assumed to be equivalent with tij. Value of b is set to 1 min. The MIP solutions are obtained using CPLEX 12.6.0. All experiments were performed on an Intel® Core™ i5-6400 CPU at 2.70 GHz with 8 GB RAM. Computational time for each instance is limited to 30 min. The experiment results are presented in Table 2. It is necessary to understand that optimal solutions in L cases are only optimal for the cases in which the lower altitude in the drone network is considered. In LH cases, drones visit more points at the higher altitude, which allows the drones to observe more target nodes and edges and reduces the total required travel times to observe all target nodes and edges, while satisfying the required photo qualities for target nodes and edges. The advantage of performing observation in lower and higher altitudes to reduce the total observation time is proven, with average gap equal to −4.6%, compared when the observations are performed only at lower altitude.

Table 2. Experiment results

5 Conclusions

In this study, a multiple drone routing problem at two different altitudes are discussed. The drones perform observations of target nodes and edges that require minimum or maximum photo qualities. In addition, the drones have limited battery level and need to return to depot for a battery charging process. The objective was to minimize the total observation times. An MIP model was developed. Experiment results show the advantages of performing observations at two altitudes instead of only at the lower altitude. Efficient heuristic algorithms will be developed in the near future.

For further researches related with drone routing, a drone network design problem is necessary to be studied. In this drone network design, various decision variables can be considered, such as observation altitudes and horizontal positions of the observation points at each altitude. Finding the best observation altitude is also necessary to determine the best observation range and the appropriate altitude that allow the drones to visit those points, while performing the observations in a short time. Possible collisions between the drones must be avoided, especially if the visited points are located close to each other.