Energy-efficient routing in the proximity of a complicated hole in wireless sensor networks

A quest for geographic routing schemes of wireless sensor networks when sensor nodes are deployed in areas with obstacles has resulted in numerous ingenious proposals and techniques. However, there is a lack of solutions for complicated cases wherein the source or the sink nodes are located close to a speciﬁc hole, especially in cavern-like regions of large complex-shaped holes. In this paper, we propose a geographic routing scheme to deal with the existence of com-plicated-shape holes in an effective manner. Our proposed routing scheme achieves routes around holes with the (1 ? (cid:2) )- stretch. Experimental results show that our routing scheme yields the highest load balancing and the most extended network lifetime compared to other well-known routing algorithms as well


Introduction
Wireless sensor nodes can be applied to build many reallife applications (medical and health, environmental monitoring, transportation and logistics, etc.) [1]. Sensor nodes for environmental monitoring may be deployed in areas with obstacles (holes), such as waterlogged areas, that poses a challenge for the design of geographic routing. Natural obstacles, such as ponds or lakes (for example Dai Lai lake in Vinh Phuc Vietnam, Balaton lake in Hungary, Boy Lake in Minnesota, Lago do Arroz Lake in Brazil, Ozero Lake in Russia, Laguna Yanauyac Lake in Peru, etc.), may contain significant concave parts. Figure 1 plots the deployment example of a wireless sensor network around a lake with cavern-like regions. In such cases a routing procedure should take into account a problem of traffic build-up in nodes near the cavern. Most existing hole-bypassing proposals that consider the load-balancing issues still could not solve the problem of traffic hotspots when either the senders or the recipients are in cavern-like regions. It worth emphasizing that greedy geographic routing algorithms [2][3][4][5][6][7] do not work well in the presence of holes. Recently, the problem of ''routing in a cavern'' has been tackled in [8] and [9]. However, these schemes [8,9] could not achieve a small route stretch and suffer from possible congestion in hotspots.
In this paper, we propose a load-balancing, constantstretch routing scheme to deal with caverns around a large hole of complicated shape. Source-destination pair s and t builds k almost-parallel lanes (a ''strip'' of width k, which is a small constant integer). Then, source node s randomly selects among these lanes to forward a packet, which disperses the traffic between s and t. Since the kwidth strip is aligned with the shortest path between s and t, any almost-parallel lane to this k-strip would have a length not far-off from the shortest path. This technique is termed k-multi-lane path routing, or k-MLP routing in this paper. The routing scheme could achieve a good trade-off between shortening routes and load-balancing by applying k-MLP whenever possible. However, for a cavern of complicated shape, it is not always possible to perform k-MLP routing from any given node (e.g., within a narrow alley of width less than k). Thus, for a given integer k, the algorithm must identify the area where k-MLP routing is possible.
To sum up, the main contributions of this paper are as follows.
• We propose k-MLP routing technique with the combination of small stretch routing and load-balancing to solve the issue of traffic hotspots completely. • We rigorously prove that for any given [ 0 and a given network-hole scenario k can be chosen so that the k-MLP routing produces routes with 1 þ -stretch. • We compare the proposed k-MLP routing with 4 other existing routing schemes. Results show that the k-MLP routing achieves significantly longer network lifetime, especially, in problematic scenarios where caverns have a zig-zag turn at the entrance. Table 1 captures a quick look at these comparative results.
It is also worth emphasizing that our k-MLP routing proposal can be further developed to solve the problem of planning short paths with clearance through a crowded environment. This problem of planning short path with  , where M is the number of sensor nodes and p i is the total number of packets sent or forwarded by the ith node clearance is crucial in applications for virtual environments such as robotics, computer graphics, simulations, geographic information systems (GIS), very-large-scale integration (VLSI) design, and games [11,12].
The remainder of this paper is structured as follows. The related works are discussed in Sect. 2. Assumptions and definitions are presented in Sect. 3. Our proposed routing protocol is described in details in Sect. 4. The performance of the proposed protocol is theoretically analyzed in Sect. 5, and then evaluated by experiments in Sect. 6. Finally, the general conclusion and future work are stated in Sect. 7.

Related work
Nodes near holes should perform a specialised routing procedure to forward packets to their destination, which is a critical issue in the geographic routing. Otherwise, those nodes may not find 1-hop neighbour closer to the destination at the hole's surroundings.

Hole-bypassing approaches
The ''Greedy Perimeter Stateless Routing for Wireless Networks'' (GPSR) proposal was the pioneer work [2] to deal with the ''local minimum phenomenon'' where the simplified approach combines the greedy and perimeter routing modes. That is, nodes may alternatively switch between two modes to overcome the so-called ''stuck nodes'' problem. The GPSR variants, however, have severe shortcomings because the nodes located on the hole boundary should handle a large amount of traffic. Therefore, the battery of the boundary nodes quickly drain, and consequently, the hole is enlarged. Subramanian et al. [14] show that GPSR can cause the throughput capacity of the whole network to drop due to the traffic build-up significantly. Furthermore, perimeter routing may lead to long routing paths, especially for a hole with a complicated shape, and therefore, result in energy inefficiency for the whole network. In [3], Kuhn et al. prove that perimeter routing can produce path length quadratic of the optimal.
Several later efforts [15][16][17][18] follow the regular strategy to explore beforehand and acquire the core information of the holes' shapes. These approaches utilise modest core information to find routes that bypass a hole. Based on this hole-bypassing strategy, many proposals create some special forbidden areas that are often minimum coverage of the hole and a particular shape, e.g. a circle [19], a hexagon [20] or an ellipse [21]. Whenever a data packet encounters the forbidden areas, it is pushed back to follow a detour route to the destination.
On the one hand, the hole-bypassing approach decreases traffic on the hole boundary. On the other hand, it may cause traffic congestion around the perimeter of the forbidden area. Some proposals such as [22] introduce a variable distance between the detour and the forbidden area that can be randomly determined to overcome such a problem. Most of the hole-bypassing proposals, however, lead to routing paths that may be unnecessarily long due to the rerouting overhead. That is, the hole-bypassing routing algorithm overestimates the forbidden area compared to the original hole.
Routing algorithms by [5][6][7] can guarantee short routes with a constant stretch. These algorithms require a lot of communication overhead to acquire and maintain knowledge of the whole network topology (e.g. a visibility graph in [5] or a global road map in [23]) in contrast with the approach based on only local information with limited node states GPSR [2]. Therefore, the proposed algorithms [5][6][7]23] are not energy-efficient.
Routing procedures [7,9,24,25] change the shape of the forbidden area of hole H to disperse the traffic on the hole border, reducing its concentration in the hotspots. The distance and position of each node influence the forbidden area with a randomised factor.
Heuristic methods [26][27][28][29][30] maintain load-balancing between all nodes. Here, every node utilises either the workload or the remained energy of the neighbour nodes to make routing decisions. Huang et al. [30] exploit energy to improve the load balance in that every source node sends two so-called burst packets towards the destination before sending data packets where one burst packet is forwarded along the right-hand side, and the other is sent along the left-hand side of the hole. Note that these proposals may lead to the extra energy consumption of the sensor nodes due to the significant overhead of exchanging burst packets between the nodes.
Recently, IoT technologies have been studied intensively. Thus more effort are made to create and control WSNs in harsh environments where overcoming routing holes is typical. Several protocols have been proposed to solve the void hole problem in underwater WSNs, which is due to frequent topology changes (nodes moving around because of water flows) and signal attenuation and long delay [31][32][33][34]. Also, in [35] a virtual force based routing strategy is proposed to handle the energy hole problem, while in [36] a routing algorithm is created to overcome dynamic holes.
Several graph-theoretic or geometric techniques have been introduced to capture the border of the hole (as a polygon) [37,38]. A technique to bypass a hole in a 3D wireless sensor networks has also been proposed by [39].

Routing in close proximity to a hole
If a destination t is within the proximity of a specific hole, then the greedy perimeter routing is utilised. However, such a strategy can lead to a significant buildup of traffic on the perimeter of a hole, especially a large one with extensive data transmission to its surrounding area. Figure 2 illustrates such a scenario where sensor nodes at positions P 1 and P 3 collect 2 different important environmental factors in their respective localities and continuously transmit the collected data to the 2 respective base stations at P4 and P 5 . Also, a sink node is placed at position P 2 to gather other environmental data. Severe hotspots can occur at end-points B and C of the cavern's gate and the convex vertices A and D. As a consequence, the battery of the sensor nodes at these hotspots quickly drains, which further enlarges the hole. Situations like this can lead to unnecessary shortening of the network lifetime.
In [8], a procedure is proposed to avoid creating hotspots around the hole boundary. However, the routing algorithm may compute the unnecessarily high route stretch. In [7,9,40], novel techniques are applied to achieve load-balancing and small route stretch. For loadbalancing, the common idea is to produce Around a hole, the procedure randomly selects alternative pathways that are similar to the contour lines with a varying degree factor (reflecting the distance to the hole border).
For example, in [9], these alternative pathways can be created through a specific homothetic transformation of the shortest path. This mechanism, however, would cause a severe hotspot if the cavern has a zig-zag turn at the entrance (Fig. 3), e.g., the G-shape hole in Fig. 3. The shortest route from P 1 to P 2 (blue line) switches from the right wall to the left wall of the cavern (looking from the inside), and the lines created by homothetic transformation would converge at the centre point of the cavern mouth.

Assumptions
Following the literature [2][3][4][5][6][7], wireless network sensors are assumed to be built from the homogeneous radio hardware with a transmission range normalized to 1. Also, each node knows its position (using GPS or other positioning services [41]), its 1-hop neighbours (through the neighbour notification packets), and the source node knows the position of the destination node. The energy consumption of the computation performed for one packet is negligible compared to the energy consumption of the transmission of one packet.
For theoretical analysis, we make a reasonable assumption that the considered network is sufficiently dense such that there are sensors everywhere apart from the considered hole. Given such an ideal situation, we can model the geographical greedy routing path between two given nodes s and t as the Euclidean line connecting s and t.  So, for two Euclidean parallel lines with distance 1 apart, the two actual routes (that can be created aligning with each Euclidean line by using only sensor nodes nearest to it) can be almost perfectly separate, i.e. using almost non node in common. 1

Definitions and notations
In this section, we provide the definitions and notations used throughout this article.
The illustration of the definitions is presented in Fig. 4.

Definition 1 (Routing hole and the boundary)
A routing hole is a non-self-intersecting with its vertices as sensor nodes S 1 ; . . .; S n and satisfies the following conditions: 1. Its interior does not contain any sensor nodes. 2. The Euclidean distance between S i and S iþ1 is within the transmission range (8i ¼ 1; n; S nþ1 S 1 ). 3. S i and S iþj are out of the transmission range (8i ¼ 1; n; 8j ! 2; S nþk S k ; 8k 2 N).
The sensor nodes at the boundary of a hole are called the boundary nodes.
Throughout this article, the boundary nodes, H 1 ; H 2 ; ::::; H n , of a hole H are sorted in an order such that the hole's interior stays on the right side of the boundary when going from H 1 to H n .
The Euclidean length between two points A and B is denoted by AB j j, l j j is the Euclidean length of the line l. c H i 1. Polygon C ¼ fH k ; H kþ1 ; :::; H l g is called a concave region -or a cavern -of H with the two nodes H k ; H l being the gate-points of the cavern C (in red as illustrated in Fig. 4). 2. The depth of C, denoted as d C , is defined as the maximum distance from its vertices to its gate, i.e., 3. For a convex vertex H i inside a cavern, let AðH i ; rÞ denote the circular arc centered at H i with radius r Fig. 4 for illustration).
Then, the accessibility level -or just level, in brief -of node H i is defined as the maximum value of r such that AðH i ; rÞ does not intersect the hole's interior.
Definition 4 (Positive/negative segments, mono-tone broken lines and related) Assume that the hole boundary nodes are indexed in the direction that the hole's interior stays on the right side of the boundary when one travels from H 1 to H n .  4 Illustration of definitions 1 The probability of these two actual routes having a node in common can be as small as we want by increasing the sensor density. In our theoretical analysis we assume this probability negligible. In reality, it can still be non-negligible but would have a very little impact as our numerical results by simulations strongly reflect our theoretical expectation.

Proposed scheme
Our aim is to design a routing scheme that achieves a short path with a given width k [ 1 between a given source s and destination t. In normal situations, short paths are aligned with the shortest route (as close to the shortest route as possible). Since the actual routes based on these parallel lanes have almost the similar length, the route stretch is 1 þ with [ 0 as small as possible. Besides, the width of the lane large enough is selected to ensure that these actual routes are almost separate from each other. Thus, each packet from s to t can be randomly sent over a route amongst the set of routes based on the parallel lanes. This random selection alleviates the hotspots phenomenon.
However, it is not simple to construct these parallel lanes in a situation with the G-shaped hole (see Sect. 2.2). In such a case, contour lines straightforwardly are to be used, which could still produce convergence points at a zig-zag turn (Fig. 6).
We propose a mechanism for constructing parallel lanes with three major points as follows: 1. We use the shortest s À t route as the basis to align the parallel lanes. Fig. 6 Activity diagram of the routing mechanism: The three main steps of a given s À t routing task We introduce the concept of accessibility level of a boundary, a convex vertex node that helps to compute the maximum number of establishable lanes. 3. We number lanes to deal with zig-zag turns. If the hole is on the left of the lanes, the lanes are numbered from 1 to k. Otherwise, they are numbered from k to 1.
The purpose of the second point is to find the proper path width k for each s À t pair and ensures that within a cavern, even the outermost lane does not cut into the other side of the cavern. The third point solves the mentioned convergence issue when packets travel from one side to the opposite of the cavern. If lane a inside lane b at one side of a cavern, a is outside of b and they are not crossing each other at a zig-zag turn (see an illustration in Fig. 7). Our proposed routing scheme consists of an initialization phase and a working (routing) phase. During the first phase, sensor nodes on the hole's boundary cooperate to identify the hole boundary. Then, the information of the hole boundary is disseminated to all sensor nodes around the hole by a simple mini-broadcast. Such hole-awareness involves some communication overhead but greatly aid in making intelligent and energy-saving routing decisions. Moreover, to reduce the setup overhead, we do not broadcast the hole information all over the network but limit to only the nodes that are close enough to the hole.
In the routing phase, once the routed packet reaches the hole-aware region, the current node first determines k max -MLP path to the destination whose width k max is computed based on its route stretch upper-bounded by a given 1 þ . Then, the current node determines the projected path to the destination by randomly selecting a Euclidean routing path from the set of almost parallel lanes of the k max -MLP path. This selected Euclidean routing path is created by shifttransforming the shortest hole-bypassing path whose shifting factor d is randomly selected from f1::k max g. Finally, the packet is greedily forwarded along the projected Euclidean routing path using the sensor nodes that are the nearest to it. Figures 8 and 9 illustrates our proposed scheme.

Initialization phase
In the hole boundary determination step, sensor nodes collaborate to formulate the hole's boundary polygon using   the technique introduced in GAR [38]. If a node is on the hole boundary, it initiates a hole-collecting packet that is repeatedly forwarded to the adjacent node on the hole boundary until the packet returns to the sending node. As the position information of nodes is appended to the info packet, the hole's boundary polygon is collected when the information packet returns to the sending node.
In the next step, the node broadcasts the information about the boundary polygon across the area within distance d of the hole boundary. The value of d will be discussed in Sect. 5. Each boundary node inside a cavern can compute the convex hull of the hole or the shape of the cavern based on the boundary polygon. Inside the cavern, each convex boundary node determines its accessibility level, then the proper number of lanes (k).

Routing phase
Note that nodes far from the hole forward packets with the greedy forwarding scheme. When a packet arrives at a hole-aware node (we call this node as a sub-source), the sub-source node then performs the following process of three stages: • determining the shortest path to the destination, • creating the projected path, i.e. the Euclidean routing path, • forwarding packet along the Euclidean routing path (used as the projected path).
Let s and t be the source and destination, respectively. Source node s is far from the hole, and x is the sub-source node. In what follows, we show how s (or x) can utilize the hole information to make a routing decision. Figure 6 summarizes all these main steps (Table 2).

Determining the shortest path
Generally, the shortest path is composed of three sections: an outward section from a cavern if the source node s is inside a cavern, a section around the hole, and an inward section into a cavern if the destination t is inside a cavern. Figure 7 illustrates an example of the shortest path between s and t. Nodes H i and H j are the two gate points of the caverns, respectively. The segment from s to H i is the outof-cavern section, the segment from H i to H j the holearound section, and the segment from H j to t is the intocavern path, respectively. The algorithm [42] is used to build a visibility graph whose vertices are boundary nodes inside the caverns. Then, either Dijkstra or A* algorithm can be applied to determine the shortest out-of-cavern section and the intocavern section. The total computational complexity is O(m 2 log m), where m is the number of boundary nodes in the caverns. Let O and I be the other endpoints of the shortest out-of-cavern segment and the into-cavern section, (apart from s and t), respectively. Then the hole-around path is the shortest path from O to I that goes through the vertices of the convex hull of the hole.

Determining the Euclidean routing path
Let L o ; L a and L i denote the out-of-cavern section, holearound section, and the into-cavern section, respectively.
On the one hand, a k-MLP (k-Multi-lane) path based on monotone broken line L is a set of k (almost) parallel lanes, called the j-lanes for j ¼ 1::k, where the j-Lane can be obtained by the shifting transformation of L (see Definition 5) with an appropriate shifting factor.
On the other hand, each twisted broken line L can be divided into mono-tone segments, denoted as L 1 ; :::; L u . Thus, the j-lane L 0 is the concatenation of L 0 i (i ¼ 1; :::; u), which are obtained by the appropriate shifting transformations of the L i (i ¼ 1; :::; u).
Following the lane-numbering rule (Sect. 4), the shifting transformation F ðL i ; jÞ or F ðL i ; k À jÞ is performed depending on whether L i is left or right monotone, respectively. So, the obtained L 0 i is parallel to L i and has a distance of j or k À j to L i . The lane-numbering rule ensures that these j-lanes are not crisscrossing but instead, (almost) parallel. Figure 8  If either source node s or destination node t stay inside a deep caverns (Fig. 9), the k max o -MLP and k max i -MLP of L o and L i may intersect the hole's interior. A procedure to cope with such a situation as follows. Source node s determines points s 0 and t 0 that are on the shortest path Sðs; tÞ and the nearest to s and t. The levels of s 0 and t 0 are greater than k max o and k max i . Then, node s creates the multi-lane path Pðs 0 ; t 0 Þ corresponding to the shortest path from s 0 to t 0 . The Euclidean routing path for every packet from s to t is determined as the concatenation of Sðs; s 0 Þ, a shifted image of Sðs 0 ; t 0 Þ which stays inside Pðs 0 ; t 0 Þ, and Sðt 0 ; tÞ. Note that Sðs; s 0 Þ and Sðt 0 ; tÞ are identical for all the packets from s to t, while the shifted image of Sðs 0 ; t 0 Þ is varied for every packet.

Forwarding along the Euclidean routing path
In the final stage, a procedure to forward packets along the Euclidean routing path L 0 ðs; tÞ is presented. Suppose L 0 ðs; tÞ ¼ sH 0 i 1 H 0 i 2 :::H 0 i m t (1 i 1 ; i 2 ; :::; i m n). In the beginning, node s inserts L 0 ðs; tÞ into the packet header as a list of anchor points. Then, the packet is routed towards H 0 i 1 ; H 0 i 2 ; :::; H 0 i m ; t sequentially using a forwarding algorithm given in Algorithm 2. Specifically, after receiving the packet, a current node u extracts the anchor list LA and determines the previous anchor a p and the current anchor a c as the first and second elements in LA. Node u then finds the next node v amongst u's neighbors. Next node v must satisfy that v is the closest node to the current anchor a c while it does not deviate too far from the Euclidean routing path. Namely, in lines 3-6, only the neighbour w whose distance to the determined routing path, dðw; a p a c Þ, is less than value d, is considered and the nearest node to the anchor a c is selected as the next node. The value of d is chosen based on the spatial density of the sensor nodes, wherein it must be large enough to ensure that there is always at least one point within that distance (line 4). Finally, before forwarding the packet to the next node v, node u removes the first element from the list of anchors (i.e. a p ) if v reaches the current anchor a c , that is dðv; a c Þ\R.

Shifting factors
Let l o , l a and l i denote the lengths of sL o , L a , and L i t, respectively. And l is the total length of the shortest path from s to t, i.e., l ¼ l o þ l a þ l i . Let L 0 o , L 0 a , and L 0 i be the images of L o , L a , and L i through the shifting transformation with the shifting factors of k o , k a , and k i , respectively. Let l 0 o , l 0 a and l 0 i represent the lengths of the images of sL 0 o , L 0 a , and L 0 i t, respectively. As will be proved in Sect. 5, we have where the m x 's, x 2 fo; a; ig, are the number of mono-tone lines of the L x 's, respectively. Therefore, to guarantee the stretch upper bound of ð1 þ Þ, we should ensure that: and DðC t Þ 2 , where C s , C t are the caverns containing s and t, and DðC s Þ, DðC t Þ are their widths, respectively. Following the analysis described above, the widths of the multi-lane path Pðs; tÞ are determined as Note that for a common hole, the out-of-cavern, aroundhole and into-cavern paths are usually mono-tone paths; thus, m o ; m i and m a are usually equal to 1. Moreover, it can be proved that uðL o Þ; uðL a Þ and uððL i Þ do not exceed 2p. Therefore, k max o ; k max a and k max i can be approximated as follows

Routing stretch
Let H 1 H 2 ::::H n be all the vertices of the hole boundary that are sorted in an order such that the hole interior stays on the right side of H i H iþ1 ! (8i ¼ 1; :::; n À 1).
Lemma 1 Let L be a mono-tone broken line and d is a positive number. Suppose that L 0 is the image of L through Proof Let us denote L 1 ; L 2 ; :::; L m as the vertices of L (Fig. 10). According to the definition 5, L 0 is the concatenation of CðL i ; dÞ and PðL iÀ1 L i ; dÞ, where CðL i ; dÞ is a circle with a radius of d and centered at L i , and PðL iÀ1 L i ; dÞ is the parallel line whose distance to L iÀ1 L i is d. Suppose that T 1 i is the tangent point of CðL i ; dÞ and PðL iÀ1 L i ; dÞ, while T 2 i is the tangent point of CðL i ; dÞ and PðL i L iþ1 ; dÞ. Then, L 0 is the concatenation of all line segments T 2 i T 1 iþ1 (i ¼ 1; m À 1), circular arcs (j ¼ 1; m) and line segments T 2 j T 1 jþ1 (j ¼ 2; m À 1). Clearly, we have Proof Let us denote S i and E i as the two endpoints of l i ; S 0 i and E 0 i are the two endpoints of l 0 i as shown in Fig. 11. We have According to Lemma 1 we get Moreover, by using the triangular inequality, we have From (9,10,11,12), it is deduced that Theorem 1 The stretch of all Euclidean routing paths is bounded by 1 þ .
Proof Let Sðs; tÞ and Rðs; tÞ be the shortest path and routing path from the source node s to the destination node t, respectively. Without loss of generality, we assume that Sðs; tÞ is comprised of an out-of-cavern path L o , a holearound path L a , and an into-cavern path L i . Moreover, suppose that Rðs; tÞ is obtained by shifting L o , L a and L i with the shifting factors of k o , k a and k i . Let us denote L 0 o , L 0 a and L 0 i as the images of L o , L a and L i through the shifting transformation. According to Lemma 2, we have for each subscript x 2 fo; a; ig. Moreover, we have Therefore, we obtain As k o , k a and k i are smaller than k max o , k max a and k max i , respectively, from (6), (7), (8) and (16), we have: 6 Numerical results In our simulation experiments, we assume that sensors are deployed in 20 Â 20 square grids of four network scenarios, as shown in Fig. 12. One sensor is placed at a random position in each square. In the first three scenarios, Fig. 12a-c, holes emulate the shapes of 3 natural lakes. We construct an artificial G-shape hole to test the behaviour of our proposed solution in a scenario (Fig. 12d) with a cavern that has a zig-zag turn at the entrance. Traffic is generated between sources in the green region and destinations in the blue region. We use the Castalia simulator v.3.3 [43] to conduct our experiments with parameters listed in Table 3. We compare our scheme with 4 existing protocols: GPSR [2], ALBA-R [27], ADAV [9], and STABLE [40]. GPSR is the landmark geographic routing proposal that combines the greedy routing and the perimeter routing to bypass a hole. ALBA-R is focused on load-balancing. ADAV and STABLE are two different approaches that attempt at combining small route stretch with high loadbalancing.  Figure 13 presents results on the following performance metrics:

Simulations with holes based on natural lakes
• The average routing path stretch is the ratio between the hop count of the routing path using this routing algorithm and the theoretical shortest path. • Balance index (BI) [13] is to quantify how the traffic load is balanced among the sensor nodes: , where M is the number of sensor nodes and p i is the total number of packets sent or forwarded by the ith node. It is easy to see that 1 M BI 1 and a larger BI indicates the better balanced realisation of traffic.
• Network lifetime is defined as the length of time that the network functions as a whole, which ends when the first sensor node runs out of energy. Note that this choice corresponds to the most popular approach regarding the definition of the network lifetime [1].
Simulation results are obtained with the 95%-confidence interval. For the k-MLP algorithm and the ADAV algorithm, we set the upper-bound stretch ¼ :3, so the average routing stretch is always less than 1.3. As shown in Fig. 13c, the average stretch of k-MLP, ADAV and STABLE is quite similar, ranging from 1.20 to 1.26. Meanwhile, the average stretch of GPSR and ALBA-R schemes is significantly larger, from 1.5 to 4 times larger than k-MLP, ADAV and STABLE to long detour paths around the hole. From Fig. 13b), the k-MLP has the largest balancing index BI, which shows that both ADAV and STABLE algorithms cannot solve the problem of load-balancing completely as k-MLP. In the ADAV protocol, the routing paths created by using homothetic transformation can intersect each other, resulting in traffic build-up at these points. In STABLE, the routing paths are parallel in the case of simple holes (without a zig-zag turn), but the number of parallel paths depends on the shape and size of the hole, thus, reducing the load balancing capabilities. It can be observed that GPSR is the worst protocol in terms of load-balancing as it often creates routes along the hole's perimeter. In contrast, the ALBA-R achieves a competitively high BI as it mainly focuses on supporting load balancing when making routing decisions. Among routing schemes, our proposal k-MLP always achieves the highest network lifetime as shown in Fig. 13a, namely higher than ADAV, STABLE, GPSR and ALBA-R respectively 16%, 43%, 160% and 37% in average. The three k-MLP, ADAV and STABLE are efficient in terms of network lifetime thanks to the implementation of adaptive and small stretch routing paths. The ALBA-R protocol, though produces a high BI, has an inferior network lifetime because of large routing stretch and high energy consumption for nodes located at the boundary between two different coloured regions. Table 4 sums up the numerical results so far.
With the assumption, the network continuously operate with the respective routing protocol after the death of each node, we plot the time to the death instance of the first 50 nodes in Fig. 15 (axis x represents the death sequence of nodes in the network). The results strongly confirm the superiority of our proposal k-MLP.

Scenario with the G-shape hole
In a particular scenario with an artificial G-shape hole (a zig-zag turn in the cavern entrance), the performance gap is high between our k-MLP scheme and the others. As shown in Fig. 14, the k-MLP scheme always achieves the most extended network lifetime while it still keeps a small average route stretch (less than 1.3). In particular, the average network lifetime in k-MLP is 1.7, 1.9, 2.5, or 1.8 times greater than in ADAV, STABLE, GPSR or ALBA-R, respectively. Regarding the balancing index, our k-MLP has BI 1.2, 2.2 or 2.0 times larger than ADAV's, STABLE's, GPSR's, and less than ALBA-R's -the topmost. This performance gap increases because the existing proposals ADAV and STABLE cannot deal efficiently with complex holes. It can be observed in the heat-maps (Fig. 16) that the routing paths created in STABLE can converge at a specific point in the cavern, inflicting the hotspot problem. Meanwhile, in the ADAV scheme, the routing paths usually intersect the hole boundary; thus, individual packets can be either dropped or routed along the perimeter of the hole, creating hotspots on the hole boundary.

Conclusion and future works
We have addressed a challenging problem that caused by a large hole of complicated shape in wireless sensor networks. We have proposed a load-balancing, (1 þ )-stretch routing scheme k-MLP routing that achieves k almostparallel routes with stretch at most 1 þ from the shortest routes for any constant [ 0 and a given network-hole scenario, The main idea is to construct k almost parallel lanes between source s and a destination d such that this kwidth strip always aligns itself with the shortest path between s and t. Thus, routing scheme k-MLP routing can achieve a good trade-off between shortening routes and load balancing (by choosing a random ''lane'' for each packet to be sent through). The derivation of the algorithm requires the combination of two supporting techniques. One is on the accessibility level of each convex vertex inside a cavern, and the other is on the lane-numbering rule. While the latter is for avoiding lane crisscrossing at a zig-zag turn, the former is for computing the maximum Fig. 16 Heatmaps in the scenario with the G-shape hole width (in the number of parallel lanes, i.e. k in k-MLP) of the path segment that is possible to have outside any given convex vertex.
We have provided a comparison between our k-MLP routing algorithm and four other existing routing schemes that represent different approaches and strategies in dealing with holes. Our simulation results show that our k-MLP routing scheme outperforms the existing algorithm. In regular hole-scenarios, our network lifetime is about 17% longer than the second-best candidate's and nearly three times greater than the traditional GPSR's. In the challenging scenario of a cavern that has a zig-zag turn at the entrance, our algorithm performs exceptionally well with a network lifetime several times longer than all the other candidates (twice better than the second-top performer).

Possible applications and future works
Our k-MLP routing algorithm is most suited to WSN scenarios, that need intensive communication between locations surrounded by a massive obstacle of a complicated shape (such as a large building). For example, the organizer of a significant street event would want to deploy several reading devices to collect information at essential locations and stream data sets to different places. In another possible application, a WSN can be deployed in a building's carpark to provide short, intensive communication sessions between any corners and the park gate.
For future work, we aim to explore if we can further develop our mechanism of constructing a path with a given width (i.e. in k lanes) and other relevant techniques to help in solving the problem of planning short paths with clearance through crowded environment. 2 Our mechanism for planning paths using WSNs can be a potential approach to solve problems related to moving objects in physical environments, such as guiding autonomous vehicles in parking, where obstacles could be both static and dynamic. Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons. org/licenses/by/4.0/.