<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s121217295</article-id>
<article-id pub-id-type="publisher-id">sensors-12-17295</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>Towards a Hybrid Energy Efficient Multi-Tree-Based Optimized Routing Protocol for Wireless Networks</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Mitton</surname><given-names>Nathalie</given-names></name><xref ref-type="aff" rid="af1-sensors-12-17295"><sup>1</sup></xref><xref ref-type="corresp" rid="c1-sensors-12-17295"><sup>★</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Razafindralambo</surname><given-names>Tahiry</given-names></name><xref ref-type="aff" rid="af1-sensors-12-17295"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Simplot-Ryl</surname><given-names>David</given-names></name><xref ref-type="aff" rid="af1-sensors-12-17295"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Stojmenovic</surname><given-names>Ivan</given-names></name><xref ref-type="aff" rid="af2-sensors-12-17295"><sup>2</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-12-17295">
<label>1</label> INRIA Lille-Nord Europe, 59650 Villeneuve d’Ascq, France; E-Mails: <email>tahiry.razafindralambo@inria.fr</email> (T.R.); <email>david.simplot-ryl@inria.fr</email> (D.S.-R.)</aff>
<aff id="af2-sensors-12-17295">
<label>2</label> SITE, University of Ottawa, Ottawa, ON K1N 6N5, Canada; E-Mail: <email>ivan@site.uottawa.ca</email></aff>
<author-notes>
<corresp id="c1-sensors-12-17295">
<label>*</label> Author to whom correspondence should be addressed; E-Mail: <email>nathalie.mitton@inria.fr</email>; Tel.: +33-359-577-846.</corresp></author-notes>
<pub-date pub-type="collection">
<month>12</month>
<year>2012</year></pub-date>
<pub-date pub-type="epub">
<day>13</day>
<month>12</month>
<year>2012</year></pub-date>
<volume>12</volume>
<issue>12</issue>
<fpage>17295</fpage>
<lpage>17319</lpage>
<history>
<date date-type="received">
<day>24</day>
<month>10</month>
<year>2012</year></date>
<date date-type="rev-recd">
<day>10</day>
<month>12</month>
<year>2012</year></date>
<date date-type="accepted">
<day>12</day>
<month>12</month>
<year>2012</year></date></history>
<permissions>
<copyright-statement>© 2012 by the authors; licensee MDPI, Basel, Switzerland</copyright-statement>
<copyright-year>2012</copyright-year>
<license>
<p>This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).</p></license></permissions>
<abstract>
<p>This paper considers the problem of designing power efficient routing with guaranteed delivery for sensor networks with unknown geographic locations. We propose HECTOR, a hybrid energy efficient tree-based optimized routing protocol, based on two sets of virtual coordinates. One set is based on rooted tree coordinates, and the other is based on hop distances toward several landmarks. In HECTOR, the node currently holding the packet forwards it to its neighbor that optimizes ratio of power cost over distance progress with landmark coordinates, among nodes that reduce landmark coordinates and do not increase distance in tree coordinates. If such a node does not exist, then forwarding is made to the neighbor that reduces tree-based distance only and optimizes power cost over tree distance progress ratio. We theoretically prove the packet delivery and propose an extension based on the use of multiple trees. Our simulations show the superiority of our algorithm over existing alternatives while guaranteeing delivery, and only up to 30% additional power compared to centralized shortest weighted path algorithm.</p></abstract>
<kwd-group>
<kwd>geographic routing</kwd>
<kwd>guaranteed delivery</kwd>
<kwd>energy efficiency</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>Wireless <italic>ad hoc</italic> networks, especially sensor networks, have received a lot of attentions in recent years due to their potential applications in various areas such as monitoring, security and data gathering. However, they have some limitations compared with wired infrastructure networks. Energy consumption and scalability are two challenging issues when designing sensor network protocols such as routing protocols since they operate on limited capacity batteries while the number of deployed sensors could be very large.</p>
<p>Position awareness in sensor networks improves the efficiency of route discovery and broadcasting algorithms. The fundamental idea behind position awareness (referred also as <italic>geographic</italic> or <italic>geometric</italic> information) is to provide a global position information to each node in the network. This information can be obtained through devices such as GPS or Galileo. Protocols using geographic information for routing (Cost-over-Progress [<xref ref-type="bibr" rid="b1-sensors-12-17295">1</xref>], GFG [<xref ref-type="bibr" rid="b2-sensors-12-17295">2</xref>], EtE [<xref ref-type="bibr" rid="b3-sensors-12-17295">3</xref>]) are competitive alternatives to the classical routing protocols for wireless <italic>ad hoc</italic> networks (AODV [<xref ref-type="bibr" rid="b4-sensors-12-17295">4</xref>], OLSR [<xref ref-type="bibr" rid="b5-sensors-12-17295">5</xref>]). Indeed, classical routing protocols exchange <italic>O</italic>(<italic>n</italic><sup>2</sup>) messages for route discovery and require <italic>O</italic>(<italic>n</italic>) routing states at each node where <italic>n</italic> is the total number of nodes. On the other hand, in geographic routing protocols, nodes only need to store their and their neighbor’s coordinates.</p>
<p>Nevertheless, position information provided by devices is not always a feasible solution for sensor networks since GPS do not work in every environment. GPS are bulky, energy-costly and expensive. Without such positioning devices, the option is to assign nodes ’virtual’ geographical coordinates with an <italic>internal location service</italic>. These virtual coordinates do not necessarily embed global positioning information. They just have to be consistent to allow routing. Internal location services have already been studied in the literature. The first common approach proposed in VCap [<xref ref-type="bibr" rid="b6-sensors-12-17295">6</xref>], JUMPS [<xref ref-type="bibr" rid="b7-sensors-12-17295">7</xref>] or Gliders [<xref ref-type="bibr" rid="b8-sensors-12-17295">8</xref>] consists in computing a distance based on node hop count from a set of landmarks to obtain a virtual position. This approach is easy to implement and performances are interesting in terms of stretch factor and energy efficiency for some of the algorithms cited above [<xref ref-type="bibr" rid="b9-sensors-12-17295">9</xref>]. However, packet delivery is not guaranteed even if a route between the source and the destination exists. Indeed, several nodes may hold the same virtual coordinates and label uniqueness is required for guaranteeing delivery.</p>
<p>The authors of [<xref ref-type="bibr" rid="b10-sensors-12-17295">10</xref>] propose an alternative approach. In LTP [<xref ref-type="bibr" rid="b10-sensors-12-17295">10</xref>], labels are assigned to nodes by building a tree through a depth-first search on the network. Each node is assigned a label depending on its position in the tree. The routing paths are embedded in the labels. LTP guarantees the delivery but is not energy aware and may provide paths with a high stretch factor.</p>
<p>In this paper, we focus on designing an energy-aware and scalable routing protocol that guarantees delivery for sensor networks where nodes are not aware of any positioning information. We introduce HECTOR, a Hybrid Energy-effiCient Tree-based Optimized Routing protocol. HECTOR builds two sets of virtual coordinates: <italic>(i)</italic> virtual coordinates similar to the ones built in VCost, <italic>i.e.</italic>, based on a node hop count distances to landmarks and <italic>(ii)</italic> a set of labels as in LTP. The first set of virtual coordinates allows HECTOR to find a greedy path in the forwarding direction of the destination. The second set of labels prevents HECTOR from reaching a dead end and the routing from failing by maintaining low stretch factor paths. Based on these two sets of coordinates, a node holding a packet chooses its neighbor to forward the message in a Cost-over-Progress (COP [<xref ref-type="bibr" rid="b1-sensors-12-17295">1</xref>]) fashion to save energy. The COP looks for nodes in the forwarding direction (here based on virtual coordinates or/and labels) and selects the one that minimizes the cost of transmission to this node over the progress made towards the destination.</p>
<p>HECTOR has the following properties:
<list list-type="bullet">
<list-item>
<p><bold>Scalable:</bold> Except the labeling steps which occurs at the bootstrap, to make a routing decision, a node has to be aware only of the location of itself, of its neighbors and of the final destination. Moreover, HECTOR is memoryless: no routing information has to be stored at the node and constant amount of information is embedded in the message along the path.</p></list-item>
<list-item>
<p><bold>Loop free:</bold> HECTOR is loop-free since it is a greedy routing that always makes any sender node <italic>s</italic> on the path forward to a node closer to the destination (in our coordinate system) than the sender node.</p></list-item>
<list-item>
<p><bold>Guaranteed delivery:</bold> HECTOR guarantees the delivery thanks to its set of labels derived from a tree. In the very worst case, HECTOR follows the tree that provides exactly one path between any pair of nodes.</p></list-item>
<list-item>
<p><bold>Energy efficient:</bold> HECTOR selects the node that minimizes the cost over the progress towards the destination. Simulations show its superiority over existing alternatives while guaranteeing delivery, and only up to 30% additional power compared to centralized shortest weighted path algorithm.</p></list-item></list></p>
<p>We then propose an extension of HECTOR based on multiple trees and theoretically prove the packet delivery. Simulations show that HECTOR provides fair performances regarding the energy efficiency and the path length. In addition, as far as we know, it is the first algorithm to propose a geographic routing protocol where nodes are not aware of their positions, which is both energy-efficient and guaranteed-delivery. Moreover, HECTOR does not rely on specific assumptions (e.g., Unit Disk Graph) or any radio propagation model. It may be applied in any general topology. For all these reasons, to our knowledge, HECTOR has no competing solutions. Indeed, classical routing protocols such as AODV [<xref ref-type="bibr" rid="b4-sensors-12-17295">4</xref>] or DSR [<xref ref-type="bibr" rid="b11-sensors-12-17295">11</xref>] trigger a flooding from each source while HECTOR provides a fixed amount of flooding (only at bootstrap) from all landmarks and tree root. Existing geographical protocols either need positioning system such as MFR [<xref ref-type="bibr" rid="b12-sensors-12-17295">12</xref>] or GFG [<xref ref-type="bibr" rid="b2-sensors-12-17295">2</xref>], do not guarantee delivery such as VCap [<xref ref-type="bibr" rid="b6-sensors-12-17295">6</xref>] or VCost [<xref ref-type="bibr" rid="b9-sensors-12-17295">9</xref>], or are not energy-aware like LTP [<xref ref-type="bibr" rid="b10-sensors-12-17295">10</xref>].</p>
<p>The global analysis of HECTOR is performed by assuming that the network topology remains stable for at least the time needed to route a packet from its source to its final destination.</p>
<p>This paper is organized as follows. We briefly cover related work in Section 2. In Section 3, we present the way of assigning the two sets of coordinates and introduce our model and assumptions. We describe HECTOR in Section 4. The HECTOR extension to multiple trees is motivated in Section 5. Then, we compare HECTOR’s performances to existing methods in Section 6 by simulations and conclude in Section 7.</p></sec>
<sec>
<label>2.</label>
<title>Related Work and Motivations</title>
<p>Routing in wireless sensor networks is a challenging task. Many different approaches have been proposed in the literature. We can identify three main classes of routing protocols: <italic>(i)</italic> proactive routing such as OLSR [<xref ref-type="bibr" rid="b5-sensors-12-17295">5</xref>]<italic>(ii)</italic> reactive routing such as AODV [<xref ref-type="bibr" rid="b4-sensors-12-17295">4</xref>] and <italic>(iii)</italic> geographic routing, or georouting. This latter approach is receiving more and more attention since it is a memory-less and scalable approach, unlike the two other ones. In a geographic approach, every node is aware of the exact or virtual coordinates (position) of itself, its neighbors and of the destination. Exact location coordinates may be available from GPS [<xref ref-type="bibr" rid="b13-sensors-12-17295">13</xref>] or any other position mean [<xref ref-type="bibr" rid="b7-sensors-12-17295">7</xref>].</p>
<p>Each of two families of georouting protocols (with exact and virtual coordinates) can be divided based on its properties with respect to the metric used (hop count or power), and whether or not it guarantees delivery. Therefore there are four classes of algorithms: <italic>(i)</italic> simple hop count based algorithms without guaranteed delivery, <italic>(ii)</italic> hop count based with guaranteed delivery, <italic>(iii)</italic> energy-efficient without guaranteed delivery or <italic>(iv)</italic> guaranteed-delivery and energy-efficient. <xref ref-type="table" rid="t1-sensors-12-17295">Table 1</xref> sums up the different categories and algorithms.</p>
<p>There are two well-known algorithms for the case where nodes are aware of their exact geographical coordinates available from GPS [<xref ref-type="bibr" rid="b13-sensors-12-17295">13</xref>] or Galileo [<xref ref-type="bibr" rid="b15-sensors-12-17295">15</xref>] or any estimation of them [<xref ref-type="bibr" rid="b16-sensors-12-17295">16</xref>]. In <italic>Most Forward Routing with progress (MFR)</italic>[<xref ref-type="bibr" rid="b12-sensors-12-17295">12</xref>], the node <italic>S</italic> currently holding the packet for destination <italic>D</italic> forwards it to neighbor <italic>A</italic> whose projection on line <italic>SD</italic> is closest to <italic>D</italic>. In <italic>greedy</italic> routing [<xref ref-type="bibr" rid="b14-sensors-12-17295">14</xref>], <italic>S</italic> forwards the message to the node that is closest to <italic>D</italic>. These are simple localized algorithms that do not guarantee delivery. A packet can be trapped in a local minimum and the algorithms fail to find a path to the destination leading to low delivery rates. In dense networks the algorithms perform well.</p>
<p>Greedy georouting has then been enhanced in two directions, toward changing hop count to another metric, and toward providing guaranteed delivery. Power aware greedy routing algorithms were first studied in [<xref ref-type="bibr" rid="b17-sensors-12-17295">17</xref>]. Instead of counting hops, power consumption on edges on a route was considered as the cost. An algorithm with general cost metric was proposed in [<xref ref-type="bibr" rid="b1-sensors-12-17295">1</xref>]. Cost over Progress based routing [<xref ref-type="bibr" rid="b1-sensors-12-17295">1</xref>] (COP) is a localized metric aware greedy routing scheme. A node forwards a packet to the neighbor closer to destination <italic>D</italic> such that the ratio of the energy consumed to the progress made (measured as the reduction in distance to <italic>D</italic>) is minimized. Though cost efficient, this algorithm does not guarantee delivery. Cost could be an arbitrary metric, such as hop count, power consumption, reluctance to forward packet, delay <italic>etc</italic>.</p>
<p>In [<xref ref-type="bibr" rid="b2-sensors-12-17295">2</xref>], greedy routing is applied till reaching either the destination or a dead end. In latter case, face routing is applied to recover from failure. Face routing requires the network topology to be a planar graph (<italic>i.e.</italic>, no edges intersect each other). The graph planarization (through a Gabriel Graph [<xref ref-type="bibr" rid="b18-sensors-12-17295">18</xref>] or a Relative Neighborhood Graph [<xref ref-type="bibr" rid="b19-sensors-12-17295">19</xref>]) divides the graph in faces. The face that contains the line (<italic>SD</italic>), where <italic>S</italic> is the failure node, and <italic>D</italic> is the destination node, is traversed by right/left-hand rule (placing a virtual hand on the wall of the face) until a node <italic>A</italic> closer to destination than <italic>S</italic> is encountered. It has been shown in [<xref ref-type="bibr" rid="b2-sensors-12-17295">2</xref>] that face routing guarantees recovery traversing the first face. Greedy routing continues from <italic>A</italic> until delivery or another failure node is encountered. GFG guarantees delivery but uses hop count as metric, and is therefore not energy-aware. Many georouting protocols guaranteeing delivery are only variants of GFG [<xref ref-type="bibr" rid="b3-sensors-12-17295">3</xref>,<xref ref-type="bibr" rid="b20-sensors-12-17295">20</xref>]. There also exist some beaconless georouting protocols based on the same idea [<xref ref-type="bibr" rid="b21-sensors-12-17295">21</xref>].</p>
<p>We now describe approaches that rely exclusively on virtual coordinates, derived from either relative distances or hop counting to a set of landmark nodes in the network, without the intervention of external location services. The general idea is to define a virtual coordinate system and use it to induce a routing protocol based on the virtual coordinates. We survey some of them below (Jumps [<xref ref-type="bibr" rid="b7-sensors-12-17295">7</xref>] or VCost [<xref ref-type="bibr" rid="b9-sensors-12-17295">9</xref>]). A system of virtual coordinates based on three <italic>landmarks</italic> is proposed. Nodes are assigned a tuple of coordinates given as the number of hops the node is distant from each <italic>landmark</italic>. This virtual coordinate system establishment is described in detail in Section 3.1.</p>
<p>In VCap and JUMPS [<xref ref-type="bibr" rid="b7-sensors-12-17295">7</xref>], nodes apply a greedy routing [<xref ref-type="bibr" rid="b14-sensors-12-17295">14</xref>], based on the Hamming distance computed on these coordinates (instead of the Euclidean distance). The storage overhead for each sensor is limited to the storage of its coordinates and the coordinates of its neighbors. The authors show how the coordinate system is consistent for a given density of the network, <italic>i.e.</italic>, nodes with the same coordinates lie within a limited number of hops from each other. A different approach is used in [<xref ref-type="bibr" rid="b8-sensors-12-17295">8</xref>] where landmarks are selected more carefully after partitioning the nodes into tiles, and elaborate gradient descent procedures are used to route packets, and high communication and storage overhead is required to increase the delivery rate. However these approaches are neither energy-efficient nor guaranteed-delivery. Therefore VCost [<xref ref-type="bibr" rid="b9-sensors-12-17295">9</xref>] proposes to use this system by applying a greedy cost-over-progress routing, as in COP [<xref ref-type="bibr" rid="b1-sensors-12-17295">1</xref>], still based on the Hamming distance. VCost is energy aware but still does not guarantee delivery.</p>
<p>Liu and Abu-Ghazaleh [<xref ref-type="bibr" rid="b22-sensors-12-17295">22</xref>] observed that increasing the number of landmarks cannot eliminate virtual anomalies since some portions of the network may be 1-connected to the rest of network. They propose a one-dimensional virtual coordinate system based on depth first search (DFS) preorder traversal of the graph. Starting from a root node, nodes are labeled 1, 2, 3... with label assigned when a node is visited for the first time. Each node <italic>m</italic> also has an interval [m, q] starting from itself until all its children nodes are assigned, before traversal returns back to its parent. Routing is based on these labels. Current node may have few forwarding options; each of them is a neighbor that contains destination label within its interval of labels. Forwarding to a child node is favored to forwarding to parent node.</p>
<p>In LTP [<xref ref-type="bibr" rid="b10-sensors-12-17295">10</xref>], the authors introduce a new coordinate system, based on a tree construction. Each node is assigned a label which embeds the path between this node to any other node in the network, based on the path in the tree which is unique. The labeling process of LTP is described in more details in Section 3.2. Because of this labeling, LTP ensures the delivery of the message and the success of the routing but is not energy aware and may provide paths which are much longer than the optimal ones.</p>
<p>In this paper, we propose a routing protocol that combines early results from the literature in order to provide a protocol routing that at the same time <italic>(i)</italic> is energy efficient, <italic>(ii)</italic> guarantees packet delivery and <italic>(iii)</italic> does not need any external position information but a means to estimate relative distance between neighboring nodes.</p></sec>
<sec>
<label>3.</label>
<title>Preliminaries</title>
<p>Our routing process uses two sets of coordinates (<italic>V</italic>, <italic>T</italic>). <italic>V</italic>(<italic>u</italic>) is the set of coordinates of node <italic>u</italic> used to provide a progress in the geographic graph, limiting the stretch factor of the path length, but which cannot ensure the delivery if used alone. We use <italic>V</italic> coordinates based on landmark hop distances, as in VCost [<xref ref-type="bibr" rid="b9-sensors-12-17295">9</xref>]. <italic>T</italic>(<italic>u</italic>) is the set of labels that allows guaranteed packet delivery, <italic>i.e.</italic>, if the network is connected, <italic>T</italic> coordinates provide a path between any pair of nodes. We use <italic>T</italic> coordinates as in LTP [<xref ref-type="bibr" rid="b10-sensors-12-17295">10</xref>]. Each of these coordinates is associated to a distance: <italic>d<sub>V</sub></italic> and <italic>d<sub>T</sub></italic> respectively in order to measure a progress over each kind of coordinates. In the rest of this paper we will refer as “virtual coordinates” for <italic>V</italic> coordinates and to “labels” for <italic>T</italic> coordinates.</p>
<sec>
<label>3.1.</label>
<title>Building V Coordinates</title>
<p>These coordinates are similar to the ones in VCap [<xref ref-type="bibr" rid="b6-sensors-12-17295">6</xref>], JUMPS [<xref ref-type="bibr" rid="b7-sensors-12-17295">7</xref>] or VCost [<xref ref-type="bibr" rid="b9-sensors-12-17295">9</xref>]. Several nodes, <italic>L</italic><sub>1</sub>, . . . , <italic>L<sub>k</sub></italic> with <italic>k</italic> ≥ 3, in the network are distinguished as <italic>landmarks</italic>. Each landmark broadcasts a beacon in the network incremented at each hop. From it, an arbitrary node <italic>x</italic> knows its virtual coordinate vector <italic>V</italic>(<italic>x</italic>) = (<italic>h</italic><sub>1</sub>, . . . , <italic>h<sub>k</sub></italic>) where <italic>h<sub>i</sub></italic> is the hop-distance between <italic>x</italic> and <italic>L<sub>i</sub></italic>. <xref ref-type="fig" rid="f1-sensors-12-17295">Figure 1(a)</xref> shows an example of how nodes are assigned virtual coordinates. We suppose 3 landmarks: nodes 10, 9 and 14. Every node thus has a 3-dimensional vector as coordinates constituted by the number of hops between itself and every landmark. For instance, node 0 can reach Landmark 1 (node 10) in 2 hops, Landmarks 2 (node 9) in 4 hops and Landmark 3 (node 14) in 3 hops. Its virtual coordinate is thus <italic>V</italic>(0) = (2, 4, 3). The distance used on these virtual coordinates is <italic>d<sub>V</sub></italic> where <italic>d<sub>V</sub></italic> (<italic>u</italic>, <italic>u</italic>′) is the Hamming distance from node <italic>u</italic> to node <italic>u</italic>′ on <italic>V</italic> coordinates 
<inline-formula>
<mml:math id="mm1" display="inline">
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>V</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>′</mml:mo></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>M</mml:mi></mml:msubsup>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>′</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow>
<mml:mo>|</mml:mo></mml:mrow></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>. For example, on <xref ref-type="fig" rid="f1-sensors-12-17295">Figure 1(a)</xref>, the distance <italic>d<sub>V</sub></italic> (0, 8) between node 0 (<italic>V</italic> (0) = (2, 4, 3)) and node 8 (<italic>V</italic> (8) = (4, 1, 3)) is <italic>d<sub>V</sub></italic> (0, 8) = |4 − 2| + |1 − 4| + |3 − 3| = 2 + 3 + 0 = 5.</p>
<p>Obviously, using only these coordinates does not guarantee delivery since the node coordinates are not unique (<italic>i.e.</italic>, several nodes may have the same virtual coordinates) and thus do not identify a single node. This is for example the case for nodes 6 and 15 on <xref ref-type="fig" rid="f1-sensors-12-17295">Figure 1(a)</xref> which are both labeled with (4, 2, 4).</p></sec>
<sec>
<label>3.2.</label>
<title>Building T Labels</title>
<p>We build <italic>T</italic> labels in the same fashion as in LTP [<xref ref-type="bibr" rid="b10-sensors-12-17295">10</xref>]. This labeling is performed through a tree construction. The tree is built iteratively from the root to the leaves. At bootstrap, a node is designed as root. This node may be a special node such as a fixed landmark. At each step, every freshly labeled node queries its unlabeled neighbors and then gives a label to each answering node. If <italic>l</italic>(<italic>u</italic>) is the label of node <italic>u</italic>, the <italic>k<sup>th</sup></italic> neighbor of node <italic>u</italic> is labeled <italic>l</italic>(<italic>u</italic>)<italic>k</italic>. <xref ref-type="fig" rid="f1-sensors-12-17295">Figure 1(b)</xref> gives an example of how the nodes are labeled. The tree root is node 4 and has the label <italic>R</italic>. Node 13 is labeled <italic>R</italic>211 since is it the first child of node 0 which has label <italic>R</italic>21. The tree gives the shortest path in number of hops from the root to any other node. The distance used in the tree is based on label size and common prefix which can give the hop distance between any two nodes of the network. Thus the distance between node <italic>a</italic> and node <italic>b</italic> is <italic>d<sub>T</sub></italic> (<italic>a</italic>, <italic>b</italic>) = |<italic>l</italic>(<italic>a</italic>) − <italic>l</italic>(<italic>c</italic>)| + |<italic>l</italic>(<italic>c</italic>) − <italic>l</italic>(<italic>b</italic>)| where <italic>c</italic> is the lowest common ancestor of <italic>a</italic> and <italic>b</italic> and <italic>l</italic>(<italic>a</italic>) is the label size of node <italic>a</italic>. From <xref ref-type="fig" rid="f1-sensors-12-17295">Figure 1(b)</xref> the distance between node 9 and node 5 is thus <italic>d<sub>T</sub></italic> (9, 5) = |<italic>l</italic>(9) − <italic>l</italic>(4)| + |<italic>l</italic>(4) − <italic>l</italic>(5)| = |3 − 1| + |1 − 2| = 3.</p>
<p>As described in [<xref ref-type="bibr" rid="b10-sensors-12-17295">10</xref>], the path is encoded in the labels. There exists a path encoded in node labels between any two nodes of the network. This path is the path in the tree, which, by definition, always exists and is unique (for <italic>t</italic> = 1).</p></sec>
<sec>
<label>3.3.</label>
<title>Assumptions and Notations</title>
<p>Let <italic>N</italic>(<italic>u</italic>) be the set of physical neighbors of node <italic>u</italic>, <italic>i.e.</italic>, the set of nodes in communication range of node <italic>u</italic>. Let <italic>δ</italic>(<italic>u</italic>) be the cardinality of this set, also called the degree of node <italic>u: δ</italic>(<italic>u</italic>) = |<italic>N</italic>(<italic>u</italic>)|. We define <italic>N<sub>V</sub></italic> (<italic>u</italic>, <italic>u</italic>′) as the set of neighbors of node <italic>u</italic> that reduce the distance to node <italic>u</italic>′, regarding the <italic>V</italic> coordinates: <italic>N<sub>V</sub></italic> (<italic>u</italic>, <italic>u</italic>′) = {<italic>v</italic>|<italic>v</italic> ∈ <italic>N</italic>(<italic>u</italic>), and <italic>d<sub>V</sub></italic> (<italic>v</italic>, <italic>u</italic>′) &lt; <italic>d<sub>V</sub></italic> (<italic>u</italic>, <italic>u</italic>′)}. Similarly, <italic>N<sub>T</sub></italic> (<italic>u</italic>, <italic>u</italic>′) is the set of neighbors of node <italic>u</italic> that reduce the distance to node <italic>u</italic>′, in <italic>T</italic> coordinates: <italic>N<sub>T</sub></italic> (<italic>u</italic>, <italic>u</italic>′) = {<italic>v</italic>|<italic>v</italic> ∈ <italic>N</italic>(<italic>u</italic>), <italic>d<sub>T</sub></italic> (<italic>v</italic>, <italic>u</italic>′) &lt; <italic>d<sub>T</sub></italic> (<italic>u</italic>, <italic>u</italic>′)}.</p>
<p>Although HECTOR is cost model-independent, for the sake of proof of concept, we use the most common energy model [<xref ref-type="bibr" rid="b23-sensors-12-17295">23</xref>], which is as follows: <italic>cost</italic>(<italic>r</italic>) = <italic>r<sup>α</sup></italic> + <italic>c</italic> if <italic>r</italic> ≠ 0, 0 otherwise, where <italic>r</italic> is the distance separating two neighboring nodes, <italic>c</italic> is the overhead due to signal processing, and <italic>α</italic> is a real constant (&gt;1) that represents the signal attenuation. Note that, in reality, this needs to be multiplied with a constant that includes, for example, the message length.</p>
<p>The optimal transmission radius, <italic>r</italic>*, that minimizes the total power consumption for a routing task is equal to: 
<inline-formula>
<mml:math id="mm2" display="inline">
<mml:mrow>
<mml:msup>
<mml:mtext>r</mml:mtext>
<mml:mo>*</mml:mo></mml:msup>
<mml:mo>=</mml:mo>
<mml:mroot>
<mml:mrow>
<mml:mfrac>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mi>α</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:mfrac></mml:mrow>
<mml:mi>α</mml:mi></mml:mroot></mml:mrow></mml:math></inline-formula> assuming that nodes can be placed on a line toward the destination [<xref ref-type="bibr" rid="b17-sensors-12-17295">17</xref>].</p>
<p>Let us introduce the functions <italic>COP<sub>T</sub></italic> and <italic>COP<sub>V</sub></italic> as functions defining selection criteria of <italic>s</italic>’s next hop toward <italic>d</italic> in a cost-over-progress fashion [<xref ref-type="bibr" rid="b1-sensors-12-17295">1</xref>] over coordinates <italic>T</italic> and <italic>V</italic> respectively. <italic>s</italic> selects node <italic>b</italic>, which minimizes <italic>COP<sub>T</sub></italic> or <italic>COP<sub>V</sub></italic> as defined later in <xref ref-type="table" rid="t2-sensors-12-17295">Algorithm 1</xref>. These functions are as follows:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math id="mm3" display="block">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">COP</mml:mi>
<mml:mi>T</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">cost</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mo>|</mml:mo>
<mml:mi mathvariant="italic">uv</mml:mi>
<mml:mo>|</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>T</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>T</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:mrow></mml:math></disp-formula>
<disp-formula id="FD2">
<label>(2)</label>
<mml:math id="mm4" display="block">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">COP</mml:mi>
<mml:mi>V</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">cost</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mi mathvariant="italic">uv</mml:mi>
<mml:mo>|</mml:mo></mml:mrow></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>V</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>V</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:math></disp-formula>where |<italic>uv</italic>| is the Euclidean distance between nodes <italic>u</italic> and <italic>v</italic>.</p>
<p><xref ref-type="table" rid="t2-sensors-12-17295">Algorithm 1</xref> formally describes this routing process.</p>
<table-wrap id="t2-sensors-12-17295" position="float">
<label>Algorithm 1</label>
<caption>
<p>Run at each node <italic>u</italic> on the routing path toward <italic>d</italic> to select next hop.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td align="right" valign="top">1:</td>
<td align="left" valign="top"><bold>if</bold> <italic>u</italic> = <italic>d</italic> <bold>then</bold></td></tr>
<tr>
<td align="right" valign="top">2:</td>
<td align="left" valign="top">   exit {/*Routing has succeeded*/}</td></tr>
<tr>
<td align="right" valign="top">3:</td>
<td align="left" valign="top"><bold>else</bold></td></tr>
<tr>
<td align="right" valign="top">4:</td>
<td align="left" valign="top">   <italic>H</italic> = {{<italic>N<sub>T</sub></italic> (<italic>u</italic>, <italic>d</italic>)} ∪ {<italic>v</italic>|<italic>d<sub>T</sub></italic> (<italic>v</italic>, <italic>d</italic>) = <italic>d<sub>T</sub></italic> (<italic>u</italic>, <italic>d</italic>)}} ∩ {<italic>N<sub>V</sub></italic> (<italic>u</italic>, <italic>d</italic>)}</td></tr>
<tr>
<td align="right" valign="top">5:</td>
<td align="left" valign="top">   <bold>if</bold> (<italic>H</italic> = ∅) <bold>then</bold></td></tr>
<tr>
<td align="right" valign="top">6:</td>
<td align="left" valign="top">      {/*No node is closer to <italic>d</italic> than <italic>u</italic> on both <italic>V</italic> and <italic>T</italic>.*/}</td></tr>
<tr>
<td align="right" valign="top">7:</td>
<td align="left" valign="top">      <italic>H</italic>′ = {<italic>v</italic>|<italic>COP<sub>T</sub></italic> (<italic>u</italic>, <italic>v</italic>, <italic>d</italic>) = min<sub><italic>w</italic>∈<italic>N</italic><sub><italic>T</italic></sub></sub> (<italic>u</italic>) <italic>COP<sub>T</sub></italic> (<italic>u</italic>, <italic>w</italic>, <italic>d</italic>)}</td></tr>
<tr>
<td align="right" valign="top">8:</td>
<td align="left" valign="top">   <bold>else</bold></td></tr>
<tr>
<td align="right" valign="top">9:</td>
<td align="left" valign="top">      <italic>H</italic>′ = {<italic>v</italic>|<italic>COP<sub>V</sub></italic> (<italic>u</italic>, <italic>v</italic>, <italic>d</italic>) = min<italic><sub>w</sub></italic><sub>∈</sub><italic><sub>H</sub></italic><italic>COP<sub>V</sub></italic> (<italic>u</italic>, <italic>w</italic>, <italic>d</italic>)}</td></tr>
<tr>
<td align="right" valign="top">10:</td>
<td align="left" valign="top">   <bold>end if</bold></td></tr>
<tr>
<td align="right" valign="top">11:</td>
<td align="left" valign="top">   <bold>if</bold> (|<italic>H</italic>′| &gt; 1) <bold>then</bold></td></tr>
<tr>
<td align="right" valign="top">12:</td>
<td align="left" valign="top">      <italic>Next_Hop</italic> = <italic>rand</italic>(<italic>H</italic>′)</td></tr>
<tr>
<td align="right" valign="top">13:</td>
<td align="left" valign="top">   <bold>else</bold></td></tr>
<tr>
<td align="right" valign="top">14:</td>
<td align="left" valign="top">      <italic>Next_Hop</italic> = <italic>v</italic> where <italic>H</italic>′ = {<italic>v</italic>}</td></tr>
<tr>
<td align="right" valign="top">15:</td>
<td align="left" valign="top">   <bold>end if</bold></td></tr>
<tr>
<td align="right" valign="top">16:</td>
<td align="left" valign="top"><bold>end if</bold></td></tr></tbody></table></table-wrap>
<p>In this paper, we assume every node is able to control its transmitting power (and thus its range) and to estimate the Euclidean distance between itself and every of its neighbor, based on the received signal strength (RSSI).</p>
<p>HECTOR uses RSSI rather than the angle of arrivals or triangulation that require additional communication overhead. In addition, even if some obstacles or external environment impact could mislead the computing of the distance based on RSSI, this computed distance reflects the state of the link. If a short link is seen as long by the node because of low RSSI, the link will be less likely to be used, which is a positive point. Virtual distances are not suitable in the cost calculation since they do not reflect the real cost of the transmission.</p></sec></sec>
<sec>
<label>4.</label>
<title>HECTOR</title>
<sec>
<label>4.1.</label>
<title>Algorithm Description</title>
<p>Each node <italic>u</italic> has two sets of coordinates (<italic>V</italic>, <italic>T</italic>) as defined in Section 3.</p>
<p>The routing algorithm combines advantages of both kinds of coordinates : <italic>(i)</italic> virtual coordinates as in VCost [<xref ref-type="bibr" rid="b9-sensors-12-17295">9</xref>] allow the reduction of the path length and <italic>(ii)</italic> labels as in LTP [<xref ref-type="bibr" rid="b10-sensors-12-17295">10</xref>] avoiding reaching a dead end and to guarantee delivery.</p>
<p>The basic idea is the following. A source node <italic>s</italic> holding a packet for a destination node <italic>d</italic> performs an energy-efficient greedy routing scheme in a VCost fashion. In order to avoid to be trapped in a local minima, the routing algorithm selects the next hop with regard to not only the virtual coordinates but also the labels. The routing process runs as follows. When node <italic>u</italic> receives a message for node <italic>d</italic>, it first considers its neighbors in the forward direction, based on both their labels and virtual coordinates. It only considers nodes <italic>v</italic> for which <italic>d<sub>T</sub></italic> distance toward <italic>d</italic> is equal or smaller than the tree distance between <italic>u</italic> and <italic>d</italic> (<italic>d<sub>T</sub></italic> (<italic>v</italic>, <italic>d</italic>) ≤ <italic>d<sub>T</sub></italic> (<italic>u</italic>, <italic>d</italic>)). Such neighbors always exist (whenever source and destination nodes are connected) because of convergence of label-based routing. The algorithm first checks whether any one of these nodes also provides a progress with respect to landmark coordinates. Let <italic>H</italic> = <italic>N<sub>T</sub></italic> (<italic>u</italic>) ∩ {<italic>N<sub>V</sub></italic> (<italic>u</italic>) ∪ <italic>v</italic> |<italic>d<sub>T</sub></italic> (<italic>v</italic>, <italic>d</italic>) = <italic>d<sub>T</sub></italic> (<italic>u</italic>, <italic>d</italic>)} be the set of such nodes.</p>
<p>If <italic>H</italic> ≠ ∅, then <italic>u</italic> selects its next hop among the nodes in <italic>H</italic> (thus reducing the distance toward the destination regarding coordinates <italic>V</italic> and not increasing distance regarding <italic>T</italic> labels) as the node <italic>v</italic> that provides the best ratio cost over progress to the destination regarding the virtual coordinates (<italic>v</italic> such that <italic>COP<sub>V</sub></italic> (<italic>u</italic>, <italic>v</italic>, <italic>d</italic>) = min<sub><italic>w</italic>∈<italic>N<sub>V</sub></italic></sub> (<italic>u</italic>) <italic>COP<sub>V</sub></italic> (<italic>w</italic>)).</p>
<p>Otherwise (that is, if <italic>H</italic> = ∅), the node selects its neighbor <italic>v</italic> that provides the best ratio cost over progress (as in [<xref ref-type="bibr" rid="b1-sensors-12-17295">1</xref>]) to the destination regarding the labels (<italic>v</italic> such that <italic>COP<sub>T</sub></italic> (<italic>u</italic>, <italic>v</italic>, <italic>d</italic>) = min<sub><italic>w</italic>∈<italic>N<sub>T</sub></italic></sub> (<italic>u</italic>) <italic>COP<sub>T</sub></italic> (<italic>u</italic>, <italic>w</italic>, <italic>d</italic>)). Such a node always exists since there always exists exactly one path in the tree between any two nodes. In case of ties, the next hop is chosen at random between candidates.</p></sec>
<sec>
<label>4.2.</label>
<title>Algorithm Quality</title>
<p><bold>Lemma 1</bold> <italic>A packet cannot transit from a node u to another node v if V</italic> (<italic>u</italic>) = <italic>V</italic> (<italic>v</italic>) <italic>(or if d<sub>V</sub></italic> (<italic>u</italic>, <italic>d</italic>) <italic>&lt; d<sub>V</sub></italic> (<italic>v</italic>, <italic>d</italic>)<italic>) unless there is an absolute progress regarding T labels (if d<sub>T</sub></italic> (<italic>u</italic>, <italic>d</italic>) &gt; <italic>d<sub>T</sub></italic> (<italic>d</italic>, <italic>v</italic>)<italic>)</italic>.</p>
<p>Proof Let us assume that node <italic>u</italic> holds a packet for a destination <italic>d</italic>. Suppose that nodes <italic>u</italic> and <italic>v</italic> have the same <italic>V</italic> coordinates (<italic>V</italic> (<italic>u</italic>) = <italic>V</italic> (<italic>v</italic>)) or that <italic>v</italic> is farther than node <italic>u</italic> regarding <italic>V</italic> coordinates (<italic>d<sub>V</sub></italic> (<italic>u</italic>, <italic>d</italic>) &lt; <italic>d<sub>V</sub></italic> (<italic>v</italic>, <italic>d</italic>)). Then <italic>v</italic> ∉ <italic>N<sub>V</sub></italic> (<italic>u</italic>, <italic>d</italic>), which means that <italic>v</italic> ∉ <italic>H</italic>. The selected next hop thus belongs to <italic>H</italic>′ = {<italic>v</italic>|<italic>COP<sub>T</sub></italic> (<italic>u</italic>, <italic>v</italic>, <italic>d</italic>) = min<sub><italic>i</italic>∈<italic>N<sub>T</sub></italic></sub> (<italic>u</italic>) <italic>COP<sub>T</sub></italic> (<italic>u</italic>, <italic>i</italic>, <italic>d</italic>)}, which contains every neighbor of <italic>u</italic> closer to <italic>d</italic> than <italic>u</italic> regarding <italic>T</italic> labels. Thus, if node <italic>v</italic> is chosen as the next hop, that means that <italic>v</italic> ∈ <italic>H</italic>′ and thus provides a progress regarding <italic>T</italic> labels. Note that in the worst case (<italic>i.e.</italic>, when the progress on <italic>T</italic> labels is minimal), the next hop is either the parent or a child of node <italic>u</italic>.</p>
<p><bold>Lemma 2</bold> <italic>The routing protocol described in <xref ref-type="table" rid="t2-sensors-12-17295">Algorithm 1</xref> is loop free.</italic></p>
<p>Proof We introduce an order among all nodes with respect to combined distance to destination <italic>d</italic>. Consider <italic>d<sub>T</sub></italic> (<italic>u</italic>, <italic>d</italic>) as the primary key, and <italic>d<sub>V</sub></italic> (<italic>u</italic>, <italic>d</italic>) as the secondary one. Two nodes are sorted by their primary key. In case of ties, the secondary key is used. Thus <italic>u</italic> &lt; <italic>v</italic> if and only if <italic>d<sub>T</sub></italic> (<italic>u</italic>, <italic>d</italic>) ≤ <italic>d<sub>T</sub></italic> (<italic>v</italic>, <italic>d</italic>) and (<italic>d<sub>V</sub></italic> (<italic>u</italic>, <italic>d</italic>) &lt; <italic>d<sub>V</sub></italic> (<italic>v</italic>, <italic>d</italic>) or <italic>H</italic> = ∅). Let us assume that node <italic>u</italic><sub>0</sub> is the source of a packet, <italic>d</italic> its destination and node <italic>u</italic><sub>1</sub> the next hop chosen by node <italic>u</italic><sub>0</sub>. If <italic>H</italic> ≠ ∅ then <italic>d<sub>T</sub></italic> (<italic>u</italic><sub>1</sub>, <italic>d</italic>) ≤ <italic>d<sub>T</sub></italic> (<italic>u</italic><sub>0</sub>, <italic>d</italic>) as per restriction. Also similarly <italic>d<sub>V</sub></italic> (<italic>u</italic><sub>1</sub>, <italic>d</italic>) &lt; <italic>d<sub>V</sub></italic> (<italic>u</italic><sub>0</sub>, <italic>d</italic>). Therefore <italic>u</italic><sub>1</sub> &lt; <italic>u</italic><sub>0</sub> in our order. Let <italic>H</italic> = ∅. Then <italic>d<sub>T</sub></italic> (<italic>u</italic><sub>1</sub>, <italic>d</italic>) &lt; <italic>d<sub>T</sub></italic> (<italic>u</italic><sub>0</sub>, <italic>d</italic>) and therefore again <italic>u</italic><sub>1</sub> &lt; <italic>u</italic><sub>0</sub>. Our routing process therefore strictly reduces distances to destination regarding <italic>T</italic> coordinates at every step in the order defined by given primary and secondary keys. This means that loops cannot be created.</p>
<p><bold>Lemma 3</bold> <italic>In the routing protocol described in <xref ref-type="table" rid="t2-sensors-12-17295">Algorithm 1</xref>, there always exists a next hop that is closer to the destination regarding both sets of virtual coordinates.</italic></p>
<p>Proof Let us consider a source <italic>u</italic> and a destination <italic>d</italic>. By construction, if a node in <italic>N<sub>V</sub></italic> (<italic>u</italic>, <italic>d</italic>) is chosen as the next hop, this ensures a progress on the <italic>V</italic> coordinates. If the next hop is chosen in <italic>N<sub>T</sub></italic> (<italic>u</italic>, <italic>d</italic>) this ensures a progress in the tree toward the destination. The progress will occur since <italic>N<sub>T</sub></italic> (<italic>u</italic>, <italic>d</italic>) is a nonempty set.</p>
<p>It is worth noting that the progress made on <italic>V</italic> is more important than the progress made on <italic>T</italic> labels in the geographical space. Indeed, the next hop in the <italic>T</italic> labels can have the same <italic>V</italic> coordinates and thus more or less the same Euclidean distance to the destination. These lemmas show that the routing protocol HECTOR described in <xref ref-type="table" rid="t2-sensors-12-17295">Algorithm 1</xref> always works in a greedy way. The greedy aspect provided by this algorithm makes it simple, memoryless and scalable.</p>
<p><bold>Theorem 4</bold> <italic>The routing algorithm described in <xref ref-type="table" rid="t2-sensors-12-17295">Algorithm 1</xref> guarantees delivery.</italic></p>
<p>Proof Each node has a unique label due to the labeling process described in Section 3. This ensures that the destination of a packet is unique and that at each step of the routing protocol, a next hop closer to the destination can be found. Based on Lemmas 1, 2 and 3, if a path exists (if the network is connected), the routing protocol will find it in a greedy way.</p></sec></sec>
<sec>
<label>5.</label>
<title>Multiple Trees Hector Extension</title>
<p>As we could see, in Hector, the packet delivery is guaranteed because of the use of a tree. Nevertheless, following that tree may lead to important stretch factors in the routing path. One way to bypass this drawback is to use multiple trees. All trees are built independently as explained in Section 3.2. Each node has one label per tree. The <italic>T</italic> label of a node <italic>u</italic> is now: <italic>T</italic> (<italic>u</italic>) = {<italic>l<sub>i</sub></italic>(<italic>u</italic>)}<sub><italic>i</italic>=0,..,<italic>t</italic>−1</sub> where <italic>t</italic> is the number of trees and <italic>l<sub>i</sub></italic>(<italic>u</italic>) is the label of node <italic>u</italic> in Tree <italic>i</italic>.</p>
<p>A 2-tree example is displayed by <xref ref-type="fig" rid="f2-sensors-12-17295">Figure 2</xref>. Let us illustrate on this example what advantages may bring the use of several trees. Let us assume that node 0 wants to send a message to node 6. The shortest path in the graph from node 0 to node 6 is 0 − 3 − 4 − 5 − 6 (path length: 4 hops). If we use Tree <italic>A</italic> (blue tree), the message will follow labels <italic>A</italic>00 − <italic>A</italic>0 − <italic>A</italic> − <italic>A</italic>1 − <italic>A</italic>10 − <italic>A</italic>100 − <italic>A</italic>1000, which corresponds to a 6-hop path going through nodes 0 − 1 − 10 − 2 − 4 − 5 − 6. If we use Tree <italic>B</italic> (blue tree), the message will follow labels <italic>B</italic>0110 − <italic>B</italic>011 − <italic>B</italic>01 − <italic>B</italic>0 − <italic>B</italic>1 − <italic>B</italic>10, which corresponds to a 5-hop path going through nodes 0 − 3 − 4 − 7 − 8 − 6. Note that using Tree <italic>B</italic> allows the use of a shortcut between nodes 7 and 8.</p>
<p>Hence, the use of several trees allows the use of more routes, which provides a better load balancing and shorter paths. In our example, node 0 will follow Tree <italic>B</italic> since it provides a shorter path than Tree <italic>A</italic>.</p>
<p>The use of several trees may even allow even shorter paths since the choice of the tree is performed independently at each routing step. If we look back at our example, node 0 computes the distance between each neighbor of its and the destination on every tree. It finds out that it has to send the message through Tree <italic>B</italic> to node 3. Node 3 runs the same algorithm and sends the message to node 4, still through Tree <italic>B</italic>. When node 4 has to elect the next hop to the destination, it finds out that the path is shorter by following Tree <italic>A</italic> and sends the message to node 5, which delivers the message to node 6. By switching dynamically and naturally between trees all along the path from the source to the destination, a 4 − <italic>hop</italic> path is followed (through nodes 0 − 3 − 4 − 5 − 6).</p>
<p>This is the motivation of multiple-tree HECTOR.</p>
<p>Note that building several trees bring obviously better performances but also presents a higher costs linked to the construction and maintenance of several trees. The evaluation performed in Section 6.4 shows the trade-off to adopt between cost and performance.</p>
<sec>
<label>5.1.</label>
<title>Algorithm</title>
<p>For using multiple trees, some additional notations are introduced.</p>
<p>Let Ω be the set of trees. We note <italic>d<sub>mT</sub></italic> (<italic>u</italic>, <italic>v</italic>) the distance in the forest or set of trees between nodes <italic>u</italic> and <italic>v</italic>:
<disp-formula>
<mml:math id="mm5" display="block">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi mathvariant="italic">mT</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>v</mml:mi></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi mathvariant="italic">min</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>∈</mml:mo>
<mml:mo>Ω</mml:mo></mml:mrow></mml:msub>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi>T</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>where <italic>d<sub>T<sub>i</sub></sub></italic> (<italic>u</italic>, <italic>v</italic>) if the <italic>d<sub>T</sub></italic> distance in tree <italic>i</italic> between nodes <italic>u</italic> and <italic>v</italic>. We note <italic>N<sub>mT</sub></italic> (<italic>u</italic>, <italic>u</italic>′) the set of neighbors of node <italic>u</italic> that provides a positive progress to <italic>u</italic>′ in the forest: <italic>N<sub>mT</sub></italic> (<italic>u</italic>, <italic>u</italic>′) = {<italic>v</italic>|<italic>v</italic> ∈ <italic>N</italic>(<italic>u</italic>), <italic>d<sub>mT</sub></italic> (<italic>v</italic>, <italic>u</italic>′) &lt; <italic>d<sub>mT</sub></italic> (<italic>u</italic>, <italic>u</italic>′)}.</p>
<p>Based on this, we can now define the <italic>COP<sub>mT</sub></italic> function as the cost over the progress realized over the forest and not a single tree as follows: 
<inline-formula>
<mml:math id="mm6" display="inline">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">COP</mml:mi>
<mml:mi>T</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">cost</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mi>v</mml:mi></mml:mrow>
<mml:mo>|</mml:mo></mml:mrow></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi mathvariant="italic">mT</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi mathvariant="italic">mT</mml:mi></mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi></mml:mrow>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula>.</p>
<p>By replacing 1-tree notations by these new notation, the same algorithm as <xref ref-type="table" rid="t2-sensors-12-17295">Algorithm 1</xref> applies. <xref ref-type="table" rid="t3-sensors-12-17295">Algorithm 2</xref> details the new routing algorithm. The current node <italic>u</italic> holding the packet first considers the set of its neighbors that provide both a positive progress on <italic>V</italic> coordinates and a positive or null progress over <italic>T</italic> coordinate whatever the tree considered (<italic>u</italic> considers nodes <italic>v</italic> such that <italic>v</italic> ∈ {{<italic>N<sub>mT</sub></italic> (<italic>u</italic>, <italic>d</italic>)} ∪ {<italic>v</italic>|<italic>d<sub>mT</sub></italic> (<italic>v</italic>, <italic>d</italic>) = <italic>d<sub>mT</sub></italic> (<italic>u</italic>, <italic>d</italic>)}} ∩ {<italic>N<sub>V</sub></italic> (<italic>u</italic>, <italic>d</italic>)}) and chooses the one among them that provides the best cost-over-progress over <italic>V</italic> coordinates. If no such node exists, <italic>u</italic> chooses the next hop as the one that provides the best progress over <italic>T</italic> coordinates over every tree. To break ties, it applies the <italic>minimizing label</italic> and <italic>label balancing</italic> rules that we describe below.</p>
<table-wrap id="t3-sensors-12-17295" position="float">
<label>Algorithm 2</label>
<caption>
<p>Run at each node <italic>u</italic> on the routing path toward <italic>d</italic> to select next hop.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td align="right" valign="top">1:</td>
<td align="left" valign="top"><bold>if</bold> <italic>u</italic> = <italic>d</italic> <bold>then</bold></td></tr>
<tr>
<td align="right" valign="top">2:</td>
<td align="left" valign="top">   exit {/*Routing has succeeded*/}</td></tr>
<tr>
<td align="right" valign="top">3:</td>
<td align="left" valign="top"><bold>else</bold></td></tr>
<tr>
<td align="right" valign="top">4:</td>
<td align="left" valign="top">   <italic>H</italic> = {{<italic>N<sub>mT</sub></italic> (<italic>u</italic>, <italic>d</italic>)} ∪ {<italic>v</italic>|<italic>d<sub>mT</sub></italic> (<italic>v</italic>, <italic>d</italic>) = <italic>d<sub>mT</sub></italic> (<italic>u</italic>, <italic>d</italic>)}} ∩ {<italic>N<sub>V</sub></italic> (<italic>u</italic>, <italic>d</italic>)}</td></tr>
<tr>
<td align="right" valign="top">5:</td>
<td align="left" valign="top">   <bold>if</bold> (<italic>H</italic> = ∅) <bold>then</bold></td></tr>
<tr>
<td align="right" valign="top">6:</td>
<td align="left" valign="top">      {/*No node is closer to <italic>d</italic> than <italic>u</italic> on both <italic>V</italic> and <italic>T</italic> for all trees.*/}</td></tr>
<tr>
<td align="right" valign="top">7:</td>
<td align="left" valign="top">      <italic>H</italic>′ = {<italic>v</italic>|<italic>COP<sub>mT</sub></italic> (<italic>u</italic>, <italic>v</italic>, <italic>d</italic>) = min<sub><italic>w</italic>∈<italic>N</italic><sub><italic>mT</italic></sub> (<italic>u</italic>)</sub> <italic>COP<sub>mT</sub></italic> (<italic>u</italic>, <italic>w</italic>, <italic>d</italic>)}</td></tr>
<tr>
<td align="right" valign="top">8:</td>
<td align="left" valign="top">   <bold>else</bold></td></tr>
<tr>
<td align="right" valign="top">9:</td>
<td align="left" valign="top">      <italic>H</italic>′ = {<italic>v</italic>|<italic>COP<sub>V</sub></italic> (<italic>u</italic>, <italic>v</italic>, <italic>d</italic>) = min<italic><sub>w</sub></italic><sub>∈</sub><italic><sub>H</sub></italic><italic>COP<sub>V</sub></italic> (<italic>u</italic>, <italic>w</italic>, <italic>d</italic>)}</td></tr>
<tr>
<td align="right" valign="top">10:</td>
<td align="left" valign="top">   <bold>end if</bold></td></tr>
<tr>
<td align="right" valign="top">11:</td>
<td align="left" valign="top">   <italic>M</italic> = {<italic>v</italic>|<italic>v</italic> ∈ <italic>H</italic>′ ∩ |<italic>l</italic>(<italic>v</italic>, <italic>t</italic>)| = <italic>min<sub>t</sub></italic><sub>′∈Ω,</sub><italic><sub>w</sub></italic><sub>∈</sub><italic><sub>H</sub></italic><sub>′</sub> |<italic>l<sub>t</sub></italic><sub>′</sub> (<italic>w</italic>)|} {Minimizing label rule}</td></tr>
<tr>
<td align="right" valign="top">12:</td>
<td align="left" valign="top">   <italic>M</italic>′ = {<italic>v</italic> such that <italic>v</italic> has the best balanced labels over nodes in <italic>M</italic>} {Label balancing rule}</td></tr>
<tr>
<td align="right" valign="top">13:</td>
<td align="left" valign="top"/></tr>
<tr>
<td align="right" valign="top">14:</td>
<td align="left" valign="top">      <italic>Next_Hop</italic> = <italic>rand</italic>(<italic>M</italic>′)</td></tr>
<tr>
<td align="right" valign="top">15:</td>
<td align="left" valign="top"><bold>end if</bold></td></tr></tbody></table></table-wrap>
<p>Indeed, some cases may appear in which, from the local point of view of the current node, every tree provides the same progress to the destination. For instance, let us consider node 13 on <xref ref-type="fig" rid="f2-sensors-12-17295">Figure 2</xref> aiming to send a message to node 6. Here, paths in both trees <italic>A</italic> and <italic>B</italic> have the same length, regarding <italic>T</italic> coordinates (7 hops). Nevertheless, the message may follow the path through nodes 13−0−3−4−5−6, which is the shortest one but only if node 13 chooses Tree <italic>A</italic>. To help node 13 make the right decision, two selection rules are introduced: the <italic>minimizing labels</italic> rule and the <italic>label balancing</italic> rule.</p>
<p><italic>Minimizing labels</italic> rule: When paths are equivalent, the next hop in route selection is the node with the lowest label size. The idea here is that by selecting the next hop in such a way, the message goes at least 1 hop toward the tree roots and, as further stated by Theorem 6, the path in the tree from the root to any other node is the shortest path. This is easily done by counting and summing the number of digits of every label of a node. For instance, node 13 has to choose between node 0 (which label global size is |<italic>A</italic>00| + |<italic>B</italic>0110| = 3 + 5 = 8) and node 12 (which global label size is |<italic>A</italic>0010| + |<italic>B</italic>0200| = 5 + 5 = 10). Thus here, Tree <italic>A</italic> is selected since the number of digits of node 0 is the smallest one. When node 0 is reached, it reiterates the same process and so on.</p>
<p><italic>Minimizing label</italic> rule: This rule allows the selection of a node with a high position in every tree. This is interesting when the routes from the source to the destination have to pass through a parent in both trees.</p>
<p>Nevertheless, these two rules do not prevent from having nodes choosing at random, as it is the case if node 0 handles a packet for node 6. It has the choice between Tree <italic>A</italic> through node 1 and Tree <italic>B</italic> through node 3 which both offer a path of length 6 hops and which both have a global label size equal to 7. So, to break that final tie, we apply the <italic>Label balancing</italic> rule. This rule will favor the node which label sizes are load balanced. Indeed if label sizes are load balanced, that means that the root of the trees are more likely to be bypassed, which may prevent from contention. In this case, node 0 will choose node 3.</p></sec>
<sec>
<label>5.2.</label>
<title>Algorithm Quality</title>
<p>We now prove that <xref ref-type="table" rid="t3-sensors-12-17295">Algorithm 2</xref> finds the shortest path in the forest.</p>
<p><bold>Definition 1</bold> (<bold>shortcut</bold>) <italic>We call shortcut a link between two distinct branches of the tree on the routing path.</italic></p>
<p><bold>Definition 2</bold> (<italic>t</italic>-<bold>shortcut</bold>) <italic>A t-shortcut is a link on a routing path that allows the switching from a tree to another one.</italic></p>
<p><bold>Lemma 5</bold> <italic>We assume that the network is stable at least during a minimum time that ensures that a packet can be routed from its source to its final destination. If the MAC layer and the Physical layer are ideal (no packet loss or interferences), there is no t-shortcut between a parent and a child.</italic></p>
<p>Proof Let us assume 3 nodes with labels <italic>A</italic>, <italic>A</italic>1 and <italic>A</italic>11. Let us assume that a <italic>t</italic>-shortcut exists between nodes <italic>A</italic> and <italic>A</italic>11 from another tree. This means that node <italic>A</italic>11 did not receive the <italic>Discovery</italic> request from node <italic>A</italic>, which is impossible since we assume that there is no message loss.</p>
<p>Lemma 5 can easily be extended to <italic>t</italic>-shortcuts between nodes with labels of size <italic>X</italic> and labels of size <italic>X</italic> + 2 resp.</p>
<p>We now give two definitions for a subtree. Definitions 3 and 4 are equivalent.</p>
<p><bold>Definition 3</bold> (<bold>Subtree</bold>) <italic>Node u belongs to the subtree of node v iff l</italic>(<italic>u</italic>) ⊂ <italic>l</italic>(<italic>v</italic>).</p>
<p><bold>Definition 4</bold> (<bold>Subtree</bold>) <italic>Node u belongs to the subtree of node v iff node v is on the path in the tree from node u to the tree root.</italic></p>
<p><bold>Theorem 6</bold> <italic>If the MAC layer and the Physical layer are ideal, which means that there is no message loss, a shortest path to a destination node in the subtree of the source is the path which follows the tree.</italic></p>
<p>Proof This is true based on Lemma 5, because there is no possible <italic>t</italic>-shortcut in the same subtree.</p>
<p>This theorem means that, if a path from a node to another node in the same subtree exists, this path (by using this tree) is the shortest path. The two previous theorems mean that the <italic>t</italic>-shortcut and the <italic>minimizing labels</italic> rules are interesting when the destination is not in the subtree of the source. The <italic>minimizing labels</italic> rule is thus important when the destination is not in the subtree of the source (for all trees) because when the labels are minimized, it means that in at least 1 tree the message is forwarded toward the root of this tree.</p></sec></sec>
<sec sec-type="results">
<label>6.</label>
<title>Simulation Results</title>
<p>This section presents the simulation results of our algorithm. We compare our solution to the geographical algorithms of the literature that assume no position information: VCost [<xref ref-type="bibr" rid="b9-sensors-12-17295">9</xref>], which is the best algorithm known regarding energy-efficiency, and LTP [<xref ref-type="bibr" rid="b10-sensors-12-17295">10</xref>], which is one of the first known to guarantee delivery. In order to further evaluate the energy saving contributions of HECTOR, we also compare it to its variant HECTOR’, which selects as the next hop the node that maximizes the progress towards the destination (<italic>i.e.</italic>, it considers that <italic>cost</italic>(|<italic>uv</italic>|) = 1 ∀ <italic>u</italic>, <italic>v</italic> and tries to minimize <italic>COP<sub>T</sub></italic> or <italic>COP<sub>V</sub></italic>). HECTOR’ guarantees delivery but uses hop count as metric and is not energy aware. We first present the simulation setup and then give some performance results about energy consumption overhead, mean path length and mean hop length.</p>
<sec>
<label>6.1.</label>
<title>Simulation Setup</title>
<p>As we focus our performance evaluation study on network layer mechanisms, for our performance results to be independent of the lower layers, we chose to use our home-made simulator that assumes ideal MAC (no packet collision, no delay) and Physical layers (no interference, BER = 0, isotropic radiation pattern). The network can be described as follows. Nodes are deployed in a 1,000 × 1,000 square following a two dimensional Poisson Point Process with different intensities <italic>λ</italic>. In such a Poisson Point Process, the total number of nodes is probabilistic and is obtained from a Poisson Law of intensity <italic>λ</italic>, which is correlated to the mean node degree 
<inline-formula>
<mml:math id="mm7" display="inline">
<mml:mrow>
<mml:mi>δ</mml:mi>
<mml:mo>:</mml:mo>
<mml:mi>λ</mml:mi>
<mml:mi>=</mml:mi>
<mml:mfrac>
<mml:mi>δ</mml:mi>
<mml:mrow>
<mml:mi>π</mml:mi>
<mml:msup>
<mml:mi>R</mml:mi>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula>. Nodes are uniformly distributed over the area. Nodes can adapt their range between 0 and <italic>R</italic> = 200. We only consider connected networks.</p>
<p>We compare HECTOR, LTP [<xref ref-type="bibr" rid="b10-sensors-12-17295">10</xref>] and VCost [<xref ref-type="bibr" rid="b9-sensors-12-17295">9</xref>] for the same samples of node distribution, same source and destination pairs, both randomly chosen. Landmarks and the tree root are randomly chosen among the nodes. Finally, to show the impact of the use of the two sets of coordinates over the guaranteed delivery, we evaluate the performances of the routing schemes over a homogeneous network and over a topology with a crescent hole (see <xref ref-type="fig" rid="f3-sensors-12-17295">Figure 3</xref>).</p>
<p>All results are the average of statistics retrieved from more than 100 simulation runs and meet a 98% interval. Note that the bootstrap cost induced by the coordinates setting is not integrated in these results. We keep for future work the evaluation of this cost and the maintenance of the virtual coordinates.</p>
<p>We evaluate the energy consumption overhead (ECO) of each algorithm based on the energy model described in Section 3. As in [<xref ref-type="bibr" rid="b23-sensors-12-17295">23</xref>], we use <italic>c</italic> = 10<sup>7</sup> and <italic>α</italic> = 4, which leads to an optimal range of <italic>r</italic><sup>*</sup> = 100 [<xref ref-type="bibr" rid="b24-sensors-12-17295">24</xref>]. To further evaluate the routing protocols, we computed their energy overhead using as reference the optimal centralized energy weighted shortest path (SP) (Dijkstra algorithm [<xref ref-type="bibr" rid="b25-sensors-12-17295">25</xref>]). We let <italic>e<sub>i</sub></italic> and <italic>e</italic><sup>*</sup> be the energy consumed using any described protocol and the centralized SP protocol, respectively. We define the energy overhead as the ratio 
<inline-formula>
<mml:math id="mm8" display="inline">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mo>*</mml:mo></mml:msup></mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mo>*</mml:mo></mml:msup></mml:mrow></mml:mfrac>
<mml:mo>×</mml:mo>
<mml:mn>100</mml:mn></mml:mrow></mml:math></inline-formula>. Note that 0% overhead means that the algorithm consumes the same energy than the optimal algorithm.</p>
<p>We also evaluate the mean path length and mean hop length obtained for each protocol and give visual results of routing process.</p></sec>
<sec sec-type="results">
<label>6.2.</label>
<title>HECTOR Results</title>
<p><bold>Energy consumption overhead when VCost succeeds.</bold> <xref ref-type="fig" rid="f4-sensors-12-17295">Figure 4</xref> shows the ECO for paths provided by the different algorithms when VCost succeeds for a given source-destination pair. The energy overhead is drawn depending on the mean node degree and on the number of landmarks used to build <italic>V</italic> coordinates. We can see from this figure that HECTOR provides the lowest overhead within the protocols that guarantee delivery. We can see that the node degree and the number of landmarks have a limited impact on the performances of each protocol since the figure shows the energy overhead once a path has been found. Since the environment is homogeneous, the impact of these parameters is thus negligible on the path features. <xref ref-type="fig" rid="f5-sensors-12-17295">Figure 5</xref> shows the same results in a topology with a hole, still when VCost succeeds. Here we can also see that the performances of HECTOR are the best within the protocols that guarantee delivery.</p>
<p>As expected, for each case, HECTOR provides a greater overhead than VCost. This is due to the routing process in HECTOR that tries to provide a progress in the tree at any step. Therefore, the tree root position is important for minimizing the energy consumption for a given source and destination, but it is not possible to have an optimal tree root position for all possible source-destination pairs.</p>
<p>Nevertheless, as <xref ref-type="fig" rid="f6-sensors-12-17295">Figure 6(a)</xref> shows, the success rate of VCost is far from 100% and is not the same following the different scenarios. We can note that the more VCost succeeds, the more HECTOR is energy-efficient and sticks to VCost performances. This is because, in <xref ref-type="table" rid="t2-sensors-12-17295">Algorithm 1</xref>, the <italic>V</italic> coordinates are chosen uppermost. On the other hand, the less VCost succeeds, the more HECTOR sticks to LTP performance. If VCost fails, that means that there is no path following <italic>V</italic> coordinates and thus HECTOR algorithm follows <italic>T</italic> labels to ensure packet delivery, as in LTP. This is also confirmed by results displayed by <xref ref-type="fig" rid="f6-sensors-12-17295">Figure 6(b)</xref> which are the percentage of times HECTOR progresses over <italic>V</italic> coordinates rather than only on <italic>T</italic> labels. This is correlated with the success rate of VCost which only follows <italic>V</italic> coordinates.</p>
<p>Note that an exception occurs for low densities of HECTOR with 3 landmarks. This is due to, by construction and because of the low densities, the path followed by VCost can be far from the label root, which forces HECTOR not to follow the VCost coordinates but the LTP labels. This is less the case in topologies with holes because VCost coordinates also bypass the hole, which make the path followed by VCost closer to the root. This explains this phenomenon. We integrated this explanation in the revised version.</p>
<p><bold>Energy consumption overhead when VCost fails.</bold> When VCost fails, HECTOR has to follow <italic>T</italic> labels to reach the destination. This feature is one of the main contributions of HECTOR and cannot be observed in <xref ref-type="fig" rid="f4-sensors-12-17295">Figures 4</xref> and <xref ref-type="fig" rid="f5-sensors-12-17295">5</xref> since the latter ones show results for simulation runs where VCost succeeds. Therefore, <xref ref-type="fig" rid="f7-sensors-12-17295">Figures 7</xref> and <xref ref-type="fig" rid="f8-sensors-12-17295">8</xref> draw the results of HECTOR, HECTOR’ and LTP for every simulation run, about paths on which VCost fails.</p>
<p>In <xref ref-type="fig" rid="f7-sensors-12-17295">Figures 7</xref> and <xref ref-type="fig" rid="f8-sensors-12-17295">8</xref>, HECTOR is the algorithm that provides the best performances regarding energy consumption, followed by HECTOR’. LTP, once again, is the least performing algorithm. Moreover, as expected, we can note that the global behavior of HECTOR and HECTOR’ is the same as LTP’s. As already mentioned, this is because, when there is no progress over <italic>V</italic> coordinates, HECTOR and HECTOR’ follow the <italic>T</italic> labels, as LTP, and so on till reaching a node which can provide a progress regarding <italic>V</italic> coordinates.</p>
<p><bold>Hop length.</bold> <xref ref-type="fig" rid="f9-sensors-12-17295">Figure 9</xref> shows the mean hop length along the routing path for every algorithm. The optimal hop length (based on energy consumption) is plotted as a reference. Results are similar for other choices of the number of landmarks and the topology. We can notice that VCost and HECTOR follow edges whose lengths are close to the optimal one [<xref ref-type="bibr" rid="b17-sensors-12-17295">17</xref>] in every case. The mean hop length is greater than the optimal one with HECTOR because the choice of the next hop is conditioned by the progress made over <italic>T</italic> labels, which leads to greater hop length because of tree construction. Indeed, because of the labeling process, close nodes are mainly at the same level in the tree and thus the progress they provide is null. Therefore, since nodes try to minimize the cost over progress ratio, they generally try to maximize the progress, thus reaching farther nodes.</p>
<p><bold>Path Length.</bold> <xref ref-type="fig" rid="f10-sensors-12-17295">Figure 10</xref> draws the path length in number of hops when VCost succeeds. We can notice that VCost is the algorithm that provides the shortest paths. This is because it is the only algorithm to select the next hop in the forwarding direction at each hop. LTP is the one achieving the longest paths since it follows the path in the tree, sometimes with shortcuts between branches but which is rarely the shortest path. The tree construction affects the mean hop length of LTP. The impact of having an energy efficient tree or a tree with optimized range is left to future works. As already mentioned, HECTOR tries to stick to VCost when it is possible. HECTOR’ acts as VCost but since it is not energy-aware, HECTOR’ takes long edges and thus gets shorter paths than HECTOR. Note that in the worst cases when HECTOR can never provide a progress over <italic>V</italic> coordinates and that there is only one candidate that provides a progress over <italic>T</italic> labels, it also follows the tree. In this latter case, the path length provided by HECTOR is longer than the one achieved by LTP since they both follow more or less the same route, but LTP takes longer edges and HECTOR tries to fit the optimal range.</p>
<p>When VCost fails, HECTOR and HECTOR’ make decision based on <italic>T</italic> labels only, and thus HECTOR and HECTOR’ stick to LTP. Thereby, HECTOR provides longer paths than LTP and HECTOR’, which are not energy aware and take long links while HECTOR favors edges less energy-costly. This behavior is highlighted in <xref ref-type="fig" rid="f11-sensors-12-17295">Figure 11</xref>, which shows the path length in number of hops when VCost fails.</p>
<p>Another interesting feature to point out is that globally, HECTOR provides longer paths than HECTOR’ and VCost while it spends less energy. This also shows that HECTOR distributes the energy spending over the nodes on the paths.</p>
<p><bold>Path shapes.</bold> <xref ref-type="fig" rid="f12-sensors-12-17295">Figure 12</xref> shows example of the paths followed by each protocol in a network with a crescent hole. Five landmarks are randomly chosen and the tree root is the red/black node in the middle of the network. Source and destination are also randomly chosen. These schemes clearly show the behavior of each algorithm.</p>
<p>We can see in <xref ref-type="fig" rid="f12-sensors-12-17295">Figure 12</xref> that VCost and HECTOR follow exactly the same path. This means that every hop provides a progress on both <italic>V</italic> and <italic>T</italic> coordinates. It is nevertheless worth noting that this would not appear in the general case. Indeed, for HECTOR to follow exactly the same path that VCost, a progress has to be made at each step on both sets of coordinates. Even if a progress is made on <italic>V</italic> coordinates by a node <italic>u</italic>, to be chosen, this node <italic>u</italic> has to also provide a progress on <italic>T</italic> labels, which is strongly related to the tree root, the source and the destination position. In the contrary, HECTOR’ does not try to minimize the COP and thus the first hop is different from that in VCost and directs it toward the hole. From it, in order to provide a progress regarding <italic>T</italic> labels and avoiding the dead end, HECTOR’ has to follow the path in the tree, as in LTP. The path followed by LTP goes trough the tree root which, in this particular case, increases the path length.</p>
<p>In <xref ref-type="fig" rid="f13-sensors-12-17295">Figure 13</xref>, the same simulation is run with different source and destination pairs. The tree root is also modified. We can see from this figure that the path followed by VCost falls into a dead end after the second hop. One may think that when VCost fails, HECTOR follows the path of LTP. We can see in <xref ref-type="fig" rid="f13-sensors-12-17295">Figure 13(d)</xref> that HECTOR first follows the <italic>V</italic> coordinates and then avoids the dead end encountered by VCost by using both <italic>T</italic> and <italic>V</italic> coordinates. This example shows how the combination of both <italic>T</italic> and <italic>V</italic> coordinates can guarantee delivery and optimize the path length. Once again, LTP follows the complete path in the tree and provides a very long path.</p>
<p>It is worth noting that the landmarks and the tree root positions have a great impact on the routing process. In VCost, landmarks position may affect the success rate. In LTP, the tree root position may increase the path length, and in HECTOR, the path may be different depending on these positions.</p></sec>
<sec>
<label>6.3.</label>
<title>Enlarging the Network</title>
<p>Till now, we have evaluated HECTOR by comparing it to other existing algorithms by running them in a restricted area and by making the node density grow. In this section, we fix the node density to <italic>δ</italic> = 15 and the maximum node range radius to <italic>R<sub>max</sub></italic> = 200 and expand the network area size.</p>
<p>Indeed, in such a scenario, the energy consumption will necessary grow since nodes may be further one from the others and more hops are needed to connect them than in previous scenarios. This section allows us to check the scalability of HECTOR (in terms of growing area rather than increasing node density) in very large networks by being sure that we still ensure a low ECO.</p>
<p><xref ref-type="fig" rid="f14-sensors-12-17295">Figure 14</xref> draws the ECO of the routes taken by each algorithm when the network size grows, for 5 landmarks. The results are similar for 3 landmarks. The abscissa axis plots the factor by which the network size has been multiplied. We only plot results where VCost fails since these runs represent the most energy costly results and the longest paths, as seen in previous sections.</p>
<p>One can notice that for homogeneous networks, even if the network grows as well as the route length, the energy overhead compared with the optimal shortest path consumed by HECTOR grows slowly with the network size. This is because HECTOR can follow <italic>V</italic> coordinates, and thus can have an energy consumption close to the optimal. Therefore, the energy consumed by paths followed by each algorithm is within a constant factor of the optimum. Also note that for distributions with a hole, the energy overhead tends to increase with the network size. This is due to the fact that the bigger the network (and longer the routes), the more likely greedy routing encounters a dead end and thus HECTOR has to follow the <italic>T</italic> labels and the tree, which gives longer paths and thus consumes more energy.</p></sec>
<sec>
<label>6.4.</label>
<title>Multiple Trees</title>
<p>We now measure the benefit of using multiple trees for HECTOR as described in Section 5. Indeed, paths is tress should be shortened but in return, this means that there are several trees to maintain and there is a cost. To do so, we compare the energy consumption of paths found by HECTOR with different numbers of trees, both when VCost succeeds and when it fails. Tree roots are spread randomly in the network. Results are displayed in <xref ref-type="fig" rid="f15-sensors-12-17295">Figure 15</xref>.</p>
<p>We can notice that globally, the energy consumption is lower when VCost succeeds. This is still because HECTOR is more likely to follow the VCost coordinates. What is interesting to notice is that in both cases, using two trees instead of one allows the great enhancement of the energy consumption while using more than two trees does not bring a lot, since energy consumed by HECTOR is globally the same whatever the number of trees. When the network is sparse, it can be worth using a third tree but this is only for some low density scenarios.</p>
<p>This means that two trees are enough to find appropriate paths by switching from one tree to another one. This is confirmed by results shown in <xref ref-type="fig" rid="f16-sensors-12-17295">Figure 16</xref> that displays the path length of each variant. Path length is similar for every variant that has two trees or more. These figures show that there is no need to build more than 4 trees since the energy saved is negligible. This is due to the fact that 4 trees are enough to find a direct way in the graph.</p></sec></sec>
<sec>
<label>7.</label>
<title>Conclusion</title>
<p>In this paper, we introduce HECTOR, a Hybrid Energy-effiCient Tree-based Optimized Routing protocol. HECTOR is a geometric routing protocol designed for wireless sensor networks. Unlike the approaches proposed in the literature, HECTOR is <italic>(i)</italic> based on virtual coordinates, <italic>(ii)</italic> energy aware, <italic>(iii)</italic> guarantees delivery, <italic>(iv)</italic> scalable and <italic>(v)</italic> do not assume any propagation radio model such as the Unit Disk Graph. These properties are provided by the combination of two sets of virtual coordinates used in HECTOR: landmark-based coordinates and tree-based coordinates. We proved the packet delivery and proposed some extension. Simulation results show that HECTOR exhibits fair performances compared to the protocols presented in the literature, regarding energy consumption and stretch factor. Analysis of the extension to multiple trees shows that with the use of only a single additional tree, performances could be enhanced even more. Moreover, as far as we know, HECTOR is the first geographic routing protocol based on virtual coordinates that is both energy-efficient and with guaranteed delivery. Note that in this paper we use landmark-based coordinates for the energy efficient step, but any other coordinate system may be used instead, including GPS localization. Therefore, we intend to explore another coordinate system other than the landmark-based one in order to avoid the preprocessing flooding step by applying dominating set [<xref ref-type="bibr" rid="b26-sensors-12-17295">26</xref>].</p>
<p>The next step of this work is to provide a more reliable way to build the tree coordinates in HECTOR. Indeed, a weakness of HECTOR is due to the underlying tree(s) used for one set of coordinates. Building a tree with energy-aware properties would make HECTOR even more efficient. At last, other aspects to analyze are the study of HECTOR towards node mobility, asymmetric links and extension to heterogeneous networks [<xref ref-type="bibr" rid="b27-sensors-12-17295">27</xref>].</p></sec></body>
<back>
<ref-list>
<title>References</title>
<ref id="b1-sensors-12-17295"><label>1.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Stojmenovic</surname><given-names>I.</given-names></name></person-group><article-title>Localized Network Layer Protocols in Sensor Networks Based on Optimizing Cost over Progress Ratio</article-title><source>IEEE Netw.</source><year>2006</year><volume>20</volume><fpage>21</fpage><lpage>27</lpage></citation></ref>
<ref id="b2-sensors-12-17295"><label>2.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Frey</surname><given-names>H.</given-names></name><name><surname>Stojmenovic</surname><given-names>I.</given-names></name></person-group><article-title>On Delivery Guarantees of Face and Combined Greedy-Face Routing in <italic>Ad Hoc</italic> and Sensor Networks</article-title><conf-name>Proceedings of ACM MOBICOM 2006: The Twelfth Annual International Conference on Mobile Computing and Networking</conf-name><conf-loc>Los Angeles, CA, USA</conf-loc><conf-date>24–29 September 2006</conf-date></citation></ref>
<ref id="b3-sensors-12-17295"><label>3.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hamouda</surname><given-names>E.</given-names></name><name><surname>Mitton</surname><given-names>N.</given-names></name><name><surname>Pavkovic</surname><given-names>B.</given-names></name><name><surname>Simplot-Ryl</surname><given-names>D.</given-names></name></person-group><article-title>Energy-Aware Georouting with Guaranteed Delivery in Wireless Sensor Networks with Obstacles</article-title><source>Int. J. Wirel. Inform. Netw.</source><year>2009</year><volume>16</volume><fpage>142</fpage><lpage>153</lpage><pub-id pub-id-type="doi">10.1007/s10776-009-0105-1</pub-id></citation></ref>
<ref id="b4-sensors-12-17295"><label>4.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Perkins</surname><given-names>C.</given-names></name><name><surname>Belding-Royer</surname><given-names>E.</given-names></name><name><surname>Das</surname><given-names>S.</given-names></name></person-group><source>Ad Hoc On-Demand Distance Vector Routing</source><comment>RFC 3561;</comment><publisher-name>The Internet Society</publisher-name><publisher-loc>Reston, VA, USA</publisher-loc><year>2003</year></citation></ref>
<ref id="b5-sensors-12-17295"><label>5.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Clausen</surname><given-names>T.</given-names></name><name><surname>Jacquet</surname><given-names>P.</given-names></name><name><surname>Laouiti</surname><given-names>A.</given-names></name><name><surname>Muhlethaler</surname><given-names>P.</given-names></name><name><surname>Qayyum</surname><given-names>A.</given-names></name><name><surname>Viennot</surname><given-names>L.</given-names></name></person-group><source>Optimized Link State Routing Protocol (OLSR)</source><comment>RFC 3626;</comment><publisher-name>The Internet Society</publisher-name><publisher-loc>Reston, VA, USA</publisher-loc><year>2003</year></citation></ref>
<ref id="b6-sensors-12-17295"><label>6.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Caruso</surname><given-names>A.</given-names></name><name><surname>Chessa</surname><given-names>S.</given-names></name><name><surname>De</surname><given-names>S.</given-names></name><name><surname>Urpi</surname><given-names>A.</given-names></name></person-group><article-title>GPS-Free Coordinate Assignment and Routing in Wireless Sensor Networks</article-title><conf-name>Proceedings of IEEE INFOCOM 2005: 24th Annual Joint Conference of the IEEE Computer and Communications Societies</conf-name><conf-loc>Miami, FL, USA</conf-loc><conf-date>13–17 March 2005</conf-date><fpage>150</fpage><lpage>160</lpage></citation></ref>
<ref id="b7-sensors-12-17295"><label>7.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Benbadis</surname><given-names>F.</given-names></name><name><surname>Puig</surname><given-names>J.J.</given-names></name><name><surname>de Amorim</surname><given-names>M.</given-names></name><name><surname>Chaudet</surname><given-names>C.</given-names></name><name><surname>Friedman</surname><given-names>T.</given-names></name><name><surname>Simplot-Ryl</surname><given-names>D.</given-names></name></person-group><article-title>Jumps: Enhanced Hop-Count Positioning in Sensor Networks Using Multiple Coordinates</article-title><source>EURASIP J. Adv. Sign. Process.</source><year>2008</year><volume>20</volume><fpage>12</fpage><lpage>18</lpage></citation></ref>
<ref id="b8-sensors-12-17295"><label>8.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Fang</surname><given-names>Q.</given-names></name><name><surname>Gao</surname><given-names>J.</given-names></name><name><surname>Guibas</surname><given-names>L.</given-names></name><name><surname>Silva</surname><given-names>V.</given-names></name><name><surname>Li</surname><given-names>Z.</given-names></name></person-group><article-title>GLIDER: Gradient Landmark-Based Distributed Routing for Sensor Networks</article-title><conf-name>Proceedings of IEEE INFOCOM 2005: 24th Annual Joint Conference of the IEEE Computer and Communications Societies</conf-name><conf-loc>Miami, FL, USA</conf-loc><conf-date>13–17 March 2005</conf-date><fpage>339</fpage><lpage>350</lpage></citation></ref>
<ref id="b9-sensors-12-17295"><label>9.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Elhafsi</surname><given-names>E.</given-names></name><name><surname>Mitton</surname><given-names>N.</given-names></name><name><surname>Simplot-Ryl</surname><given-names>D.</given-names></name></person-group><article-title>Cost over Progress Based Energy Efficient Routing over Virtual Coordinates in Wireless Sensor Networks</article-title><conf-name>Proceedings of T2pWSN'2007: The First Annual IEEE International Workshop: From Theory To Practice in Wireless Sensor Networks</conf-name><conf-loc>Helsinki, Finland</conf-loc><conf-date>18–21 June 2007</conf-date></citation></ref>
<ref id="b10-sensors-12-17295"><label>10.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chávez</surname><given-names>E.</given-names></name><name><surname>Mitton</surname><given-names>N.</given-names></name><name><surname>Tejeda</surname><given-names>H.</given-names></name></person-group><article-title>Routing in Wireless Networks with Position Trees</article-title><source>Ad Hoc Mobile Wirel. Netw.</source><year>2007</year><volume>4686</volume><fpage>32</fpage><lpage>45</lpage></citation></ref>
<ref id="b11-sensors-12-17295"><label>11.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Johnson</surname><given-names>D.B.</given-names></name><name><surname>Maltz</surname><given-names>D.A.</given-names></name><name><surname>Broch</surname><given-names>J.</given-names></name></person-group><article-title>DSR: The Dynamic Source Routing Protocol for Multihop Wireless <italic>Ad Hoc</italic> Networks</article-title><source>Ad Hoc Networking</source><publisher-name>Addison-Wesley Longman Publishing Co., Inc.</publisher-name><publisher-loc>Boston, MA, USA</publisher-loc><year>2001</year><fpage>139</fpage><lpage>172</lpage></citation></ref>
<ref id="b12-sensors-12-17295"><label>12.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Takagi</surname><given-names>H.</given-names></name><name><surname>Kleinrock</surname><given-names>L.</given-names></name></person-group><article-title>Optimal Transmission Ranges for Randomly Distributed Packet Radio Terminals</article-title><source>IEEE Trans. Commun.</source><year>1984</year><volume>32</volume><fpage>246</fpage><lpage>257</lpage><pub-id pub-id-type="doi">10.1109/TCOM.1984.1096061</pub-id></citation></ref>
<ref id="b13-sensors-12-17295"><label>13.</label><citation citation-type="web"><person-group person-group-type="author"><collab>GPS: Global Positioning System</collab></person-group><comment>Available online: <ext-link xlink:href="www.gps.gov" ext-link-type="uri">www.gps.gov</ext-link> (accessed on 12 December 2012)</comment></citation></ref>
<ref id="b14-sensors-12-17295"><label>14.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Finn</surname><given-names>G.</given-names></name></person-group><source>Routing and Addressing Problems in Large Metropolitan-Scale Internetworks</source><comment>Technical Report ISI/RR-87-180;</comment><publisher-name>Information Sciences Institute (ISI), The University of Southern California</publisher-name><publisher-loc>Marina del Rey, CA, USA</publisher-loc><year>1987</year></citation></ref>
<ref id="b15-sensors-12-17295"><label>15.</label><citation citation-type="web"><person-group person-group-type="author"><collab>Galileo Positioning System</collab></person-group><comment>Available online: <ext-link xlink:href="http://www.aatl.net/publications/galileo.htm" ext-link-type="uri">http://www.aatl.net/publications/galileo.htm</ext-link> (accessed on 12 December 2012)</comment></citation></ref>
<ref id="b16-sensors-12-17295"><label>16.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Ermel</surname><given-names>E.</given-names></name><name><surname>Fladenmuller</surname><given-names>A.</given-names></name><name><surname>Pujolle</surname><given-names>G.</given-names></name><name><surname>Cotton</surname><given-names>A.</given-names></name></person-group><article-title>On Selecting Nodes to Improve Estimated Positions</article-title><conf-name>Proceedings of IFIP TC6/WG6.8 Conference on Mobile and Wireless Communication Networks (MWCN 2004)</conf-name><conf-loc>Paris, France</conf-loc><conf-date>25–27 October 2004</conf-date></citation></ref>
<ref id="b17-sensors-12-17295"><label>17.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Stojmenovic</surname><given-names>I.</given-names></name><name><surname>Lin</surname><given-names>X.</given-names></name></person-group><article-title>Power-Aware Localized Routing in Wireless Networks</article-title><source>IEEE Trans. Paral. Distrib. Syst.</source><year>2001</year><volume>12</volume><fpage>1122</fpage><lpage>1133</lpage><pub-id pub-id-type="doi">10.1109/71.969123</pub-id></citation></ref>
<ref id="b18-sensors-12-17295"><label>18.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Bose</surname><given-names>P.</given-names></name><name><surname>Morin</surname><given-names>P.</given-names></name><name><surname>Stojmenovic</surname><given-names>I.</given-names></name><name><surname>Urrutia</surname><given-names>J.</given-names></name></person-group><article-title>Routing with Guaranteed Delivery in <italic>Ad Hoc</italic> Wireless Networks</article-title><conf-name>Proceedings of DIAL-M '99: The 3rd International Workshop on Discrete Algorithms and Methods for Mobile Computing and Communications</conf-name><conf-loc>Seattle, WA, USA</conf-loc><conf-date>20 August 1999</conf-date><fpage>48</fpage><lpage>55</lpage></citation></ref>
<ref id="b19-sensors-12-17295"><label>19.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Toussaint</surname><given-names>G.</given-names></name></person-group><article-title>The Relative Neighborhood Graph of a Finite Planar Set</article-title><source>Patt. Recogn.</source><year>1980</year><volume>12</volume><fpage>261</fpage><lpage>268</lpage><pub-id pub-id-type="doi">10.1016/0031-3203(80)90066-7</pub-id></citation></ref>
<ref id="b20-sensors-12-17295"><label>20.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Manjula</surname><given-names>T.</given-names></name><name><surname>Mungara</surname><given-names>J.</given-names></name><name><surname>Behera</surname><given-names>S.</given-names></name></person-group><article-title>Efficient Routing Strategy for Prioritized Messages in Mobile WSN Using Geographic Forwarding Protocol</article-title><source>Int. J. Comput. Technol. Appl.</source><year>2012</year><volume>3</volume><fpage>1439</fpage><lpage>1444</lpage></citation></ref>
<ref id="b21-sensors-12-17295"><label>21.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ruehrup</surname><given-names>S.</given-names></name><name><surname>Stojmenovic</surname><given-names>I.</given-names></name></person-group><article-title>Optimizing Communication Overhead while Reducing Path Length in Beaconless Georouting with Guaranteed Delivery for Wireless Sensor Networks</article-title><source>IEEE Trans. Comput.</source><year>2012</year><pub-id pub-id-type="doi">10.1109/TC.2012.148</pub-id></citation></ref>
<ref id="b22-sensors-12-17295"><label>22.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Liu</surname><given-names>K.</given-names></name><name><surname>Abu-Ghazaleh</surname><given-names>N.</given-names></name></person-group><article-title>Stateless and Delivery Guaranteed Geometric Routing on Virtual Coordinate System</article-title><conf-name>Proceedings of IEEE International Conference on Mobile Ad-Hoc and Sensor Systems (MASS)</conf-name><conf-loc>Atlanta, GA, USA</conf-loc><conf-date>29 September–2 October 2008</conf-date></citation></ref>
<ref id="b23-sensors-12-17295"><label>23.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rodoplu</surname><given-names>V.</given-names></name><name><surname>Meng</surname><given-names>T.</given-names></name></person-group><article-title>Minimizing Energy Mobile Wireless Networks</article-title><source>IEEE J. Sel. Areas</source><year>1999</year><volume>17</volume><fpage>1333</fpage><lpage>1347</lpage><pub-id pub-id-type="doi">10.1109/49.779917</pub-id></citation></ref>
<ref id="b24-sensors-12-17295"><label>24.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kuruvila</surname><given-names>J.</given-names></name><name><surname>Nayak</surname><given-names>A.</given-names></name><name><surname>Stojmenovic</surname><given-names>I.</given-names></name></person-group><article-title>Progress and Location Based Localized Power Aware Routing for Sensor Networks</article-title><source>Int. J. Distrib. Sens. Netw.</source><year>2006</year><volume>2</volume><fpage>147</fpage><lpage>159</lpage><pub-id pub-id-type="doi">10.1080/15501320500259159</pub-id></citation></ref>
<ref id="b25-sensors-12-17295"><label>25.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dijkstra</surname><given-names>E.</given-names></name></person-group><article-title>Solution of a Problem in Concurrent Programming Control</article-title><source>Commun. ACM</source><year>1965</year><volume>8</volume><pub-id pub-id-type="doi">10.1145/365559.365617</pub-id></citation></ref>
<ref id="b26-sensors-12-17295"><label>26.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Couture</surname><given-names>M.</given-names></name><name><surname>Barbeau</surname><given-names>M.</given-names></name><name><surname>Bose</surname><given-names>J.</given-names></name><name><surname>Kranakis</surname><given-names>E.</given-names></name></person-group><article-title>Incremental Construction of k-Dominating Sets in Wireless Sensor Networks</article-title><source>Ad Hoc Sens. Wirel. Netw.</source><year>2008</year><volume>5</volume><fpage>47</fpage><lpage>68</lpage></citation></ref>
<ref id="b27-sensors-12-17295"><label>27.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Mamatas</surname><given-names>L.</given-names></name><name><surname>Tsaoussidis</surname><given-names>V.</given-names></name></person-group><article-title>Exploiting Energy-Saving Potential in Heterogeneous Networks</article-title><source>Int. J. Parall. Emerg. Distrib. Syst.</source><year>2008</year><volume>23</volume><fpage>309</fpage><lpage>324</lpage><pub-id pub-id-type="doi">10.1080/17445760801930922</pub-id></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Table</title>
<fig id="f1-sensors-12-17295" position="float">
<label>Figure 1.</label>
<caption>
<p>On <xref ref-type="fig" rid="f1-sensors-12-17295">Figure 1(a)</xref>, the tree root is node 4 and has the label <italic>R</italic>. Node 13 is labeled <italic>R</italic>211 since it is the first child of node 0, which has label <italic>R</italic>21. Dashed lines represent physical links. On <xref ref-type="fig" rid="f1-sensors-12-17295">Figure 1(b)</xref>, node 4 has coordinates (2, 2, 3) since it is 2-hop away from landmarks 1 and 2 and 3-hop away from landmark 3.</p></caption>
<graphic xlink:href="sensors-12-17295f1.gif"/></fig>
<fig id="f2-sensors-12-17295" position="float">
<label>Figure 2.</label>
<caption>
<p>Illustration of the use of multiple trees.</p></caption>
<graphic xlink:href="sensors-12-17295f2.gif"/></fig>
<fig id="f3-sensors-12-17295" position="float">
<label>Figure 3.</label>
<caption>
<p>Network topologies.</p></caption>
<graphic xlink:href="sensors-12-17295f3.gif"/></fig>
<fig id="f4-sensors-12-17295" position="float">
<label>Figure 4.</label>
<caption>
<p>ECO when VCost succeeds for 3 and 5 landmarks for a homogeneous topology.</p></caption>
<graphic xlink:href="sensors-12-17295f4.gif"/></fig>
<fig id="f5-sensors-12-17295" position="float">
<label>Figure 5.</label>
<caption>
<p>ECO when VCost succeeds for 3 and 5 landmarks for a topology with a hole.</p></caption>
<graphic xlink:href="sensors-12-17295f5.gif"/></fig>
<fig id="f6-sensors-12-17295" position="float">
<label>Figure 6.</label>
<caption>
<p>Success rate of VCost routing algorithm (<bold>a</bold>) and number of times HECTOR follows <italic>V</italic> coordinates (<bold>b</bold>) for each scenario.</p></caption>
<graphic xlink:href="sensors-12-17295f6.gif"/></fig>
<fig id="f7-sensors-12-17295" position="float">
<label>Figure 7.</label>
<caption>
<p>ECO when VCost fails for a homogeneous topology.</p></caption>
<graphic xlink:href="sensors-12-17295f7.gif"/></fig>
<fig id="f8-sensors-12-17295" position="float">
<label>Figure 8.</label>
<caption>
<p>ECO when VCost fails for a topology with a hole.</p></caption>
<graphic xlink:href="sensors-12-17295f8.gif"/></fig>
<fig id="f9-sensors-12-17295" position="float">
<label>Figure 9.</label>
<caption>
<p>Mean hop length.</p></caption>
<graphic xlink:href="sensors-12-17295f9.gif"/></fig>
<fig id="f10-sensors-12-17295" position="float">
<label>Figure 10.</label>
<caption>
<p>Path length in number of hops when VCost succeeds (3 landmarks).</p></caption>
<graphic xlink:href="sensors-12-17295f10.gif"/></fig>
<fig id="f11-sensors-12-17295" position="float">
<label>Figure 11.</label>
<caption>
<p>Path length in number of hops when VCost does not succeed. For VCost: number of hops before failing (3 landmarks).</p></caption>
<graphic xlink:href="sensors-12-17295f11.gif"/></fig>
<fig id="f12-sensors-12-17295" position="float">
<label>Figure 12.</label>
<caption>
<p>Illustration of the paths followed by each algorithm with the use of 5 landmarks. Source is in the right side. VCost and HECTOR follow the same path while LTP and HECTOR’ passes through the tree root.</p></caption>
<graphic xlink:href="sensors-12-17295f12.gif"/></fig>
<fig id="f13-sensors-12-17295" position="float">
<label>Figure 13.</label>
<caption>
<p>Illustration of the paths followed by each algorithm with the use of 5 landmarks. VCost fails after the second hop, LTP passes through the tree root and HECTOR combines both <italic>T</italic> and <italic>V</italic> coordinates.</p></caption>
<graphic xlink:href="sensors-12-17295f13.gif"/></fig>
<fig id="f14-sensors-12-17295" position="float">
<label>Figure 14.</label>
<caption>
<p>ECO when the network grows.</p></caption>
<graphic xlink:href="sensors-12-17295f14.gif"/></fig>
<fig id="f15-sensors-12-17295" position="float">
<label>Figure 15.</label>
<caption>
<p>Energy consumption overhead.</p></caption>
<graphic xlink:href="sensors-12-17295f15.gif"/></fig>
<fig id="f16-sensors-12-17295" position="float">
<label>Figure 16.</label>
<caption>
<p>Path length.</p></caption>
<graphic xlink:href="sensors-12-17295f16.gif"/></fig>
<table-wrap id="t1-sensors-12-17295" position="float">
<label>Table 1.</label>
<caption>
<p>Classification of Georouting Protocols.</p></caption>
<table frame="hsides" rules="all">
<thead>
<tr>
<th align="center" valign="bottom"/>
<th align="center" valign="bottom">Exact Position</th>
<th align="center" valign="bottom">Virtual Position</th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top">hop count (HC)</td>
<td align="center" valign="top">MFR [<xref ref-type="bibr" rid="b12-sensors-12-17295">12</xref>], greedy [<xref ref-type="bibr" rid="b14-sensors-12-17295">14</xref>]</td>
<td align="center" valign="top">VCap</td></tr>
<tr>
<td align="center" valign="top">Energy-efficient (EE)</td>
<td align="center" valign="top">COP [<xref ref-type="bibr" rid="b1-sensors-12-17295">1</xref>]</td>
<td align="center" valign="top">VCost [<xref ref-type="bibr" rid="b9-sensors-12-17295">9</xref>]</td></tr>
<tr>
<td align="center" valign="top">HC+Guaranteed-delivery (GD)</td>
<td align="center" valign="top">GFG [<xref ref-type="bibr" rid="b2-sensors-12-17295">2</xref>]</td>
<td align="center" valign="top">LTP [<xref ref-type="bibr" rid="b10-sensors-12-17295">10</xref>]</td></tr>
<tr>
<td align="center" valign="top">EE+GD</td>
<td align="center" valign="top">EtE [<xref ref-type="bibr" rid="b3-sensors-12-17295">3</xref>]</td>
<td align="center" valign="top">HECTOR</td></tr></tbody></table></table-wrap></sec></back></article>
