cs0512060/path.tex
1: \documentclass[conference]{IEEEtran}
2: %\documentclass{sig-alternate}
3: %\addtolength{\voffset}{0.5in}
4: %\usepackage{spconf}
5: \usepackage{graphicx}
6: \newtheorem{theorem}{Theorem}
7: \newtheorem{lemma}{Lemma}
8: \newtheorem{definition}{Definition}
9: \newtheorem{proposition}{Proposition}
10: 
11: \usepackage{float}
12: \usepackage{algorithmic}
13: 
14: \floatstyle{ruled}
15: \newfloat{algorithm}{tbp}{loa}
16: \floatname{algorithm}{Algorithm}
17: \IEEEoverridecommandlockouts
18: \title{Distributed Navigation Algorithms for Sensor Networks} 
19: 
20: \author{Chiranjeeb Buragohain, Divyakant Agrawal, Subhash Suri
21: \thanks{The research of the authors were supported by NSF grant
22: CCF-0514738 and Army Reasearch Organization grant DAAD19-03D0004.}
23: \\
24: Dept. of Computer Science, University of California, Santa Barbara, CA
25: 93106, USA\\ \texttt{\{chiran,agrawal,suri\}@cs.ucsb.edu}}
26: 
27: 
28: \begin{document}
29: 
30: \maketitle 
31: 
32: \begin{abstract} We propose efficient distributed algorithms to aid
33: navigation of a user through a geographic area covered by sensors. The
34: sensors sense the level of danger at their locations and we use this
35: information to find a safe path for the user through the sensor
36: field. Traditional distributed navigation algorithms rely upon
37: flooding the whole network with packets to find an optimal safe
38: path. To reduce the communication expense, we introduce the concept of
39: a skeleton graph which is a sparse subset of the true sensor network
40: communication graph. Using skeleton graphs we show that it is possible
41: to find approximate safe paths with much lower communication cost. We
42: give tight theoretical guarantees on the quality of our approximation
43: and by simulation, show the effectiveness of our algorithms in
44: realistic sensor network situations.
45: \end{abstract}
46: 
47: \section{Introduction}
48: Recent advances in computing, communication, and related technologies
49: have resulted in significant interest in sensors and sensor
50: networks. Sensor networks are envisioned as a new link between the
51: physical world and the virtual world as it is modeled by computers,
52: networks, and information. In particular, once the physical world is
53: instrumented with sensors and sensor networks, the information-based
54: model of the physical world changes from a passive one to an active
55: one. Currently, however, sensors are primarily being deployed as
56: information collection points to monitor the physical environment.
57: But as the pace of innovation continues, in not too distant future, it
58: is likely that their scope will grow to allow interaction with as well
59: as control the physical world.
60: %% be for both monitoring as well as controlling the physical world.
61: 
62: Most of the recent work in sensor networks has been confined to
63: developing technologies for monitoring the physical world.  Many
64: applications of sensor networks are indeed in this context: habitat
65: monitoring~\cite{szewczyk04analysis}, structural
66: monitoring~\cite{xu04wireless} and counter-sniper
67: systems~\cite{simon04sensor}.  Numerous research problems arise in the
68: context of such applications. In particular, a large body of recent
69: research activity in the area of sensor networks has focused on
70: various system level issues such as sensor
71: localization~\cite{moore04distributed}, medium access
72: protocols~\cite{polastre04low}, power-efficient
73: routing~\cite{aslam03three} and distributed query
74: processing~\cite{madden02tag}.
75: 
76: Only recently researchers have begun to explore more sophisticated
77: applications of sensor networks. Instead of viewing a sensor network
78: as a monitoring tool for the physical world, questions are being
79: explored if sensor and sensor networks can transition to become a
80: reactive system. For example, consider a world that has been
81: instrumented with sensors capable of detecting disruptive or
82: dangerous events (e.g., a chemical spill, a traffic accident)
83: and if and when such events occur, the system should be able to aid
84: navigation in the modified state of the physical world. Recently, Li et
85: al.~\cite{li03distributed} have proposed algorithms to answer exactly
86: this question: guiding the movements of a user through a sensor field in
87: the presence of dangers or obstacles. Their proposed solution
88: finds an optimal safest path, but it is based on the \emph{flooding} model
89: in which every sensor exchanges information with every other sensor.
90: This scheme does not scale well due to a very high communication cost.
91: 
92: In this paper, we propose more scalable solutions for the problem of
93: navigating a user in the presence of disruptions or hazards in a
94: sensor field. Our algorithms make two natural assumptions: (1) the
95: operational environment is assumed to have no large holes in the
96: coverage by sensors, and (2) an \emph{approximately optimal} safe path
97: is acceptable. Based on these two assumptions, we develop distributed
98: navigation algorithms that are very efficient in terms of their
99: communication cost; they find near-optimal paths with significantly
100: smaller communication (and, thus, energy) overhead.  The underlying
101: idea behind our scheme is to activate a sparse sub-network within the
102: dense sensor network and use this sparse network to solve the
103: navigation problem.  (We envision ``rotating'' the navigation duties
104: among the sensors so that a small fraction of the network is awake to
105: aid navigation at any point, while other sensors are in the sleep
106: mode.)
107: % This sparse sub-network is called the \emph{skeleton graph}.  
108: We explore two different ways to create
109: such sparse embeddings: the first one based on a uniform grid-like
110: mesh, and the other based on an adaptive mesh.
111: 
112: Our main result is that using sparse networks of size
113: $\mathcal{O}(n^{1/2+\epsilon})$, where $n$ is the total number of 
114: nodes in the networks, we can determine safe paths whose quality
115: (length, exposure, etc.) is within a small constant factor of the
116: optimal.
117: 
118: %We show that both these sparse sub-networks have size which is
119: %sublinear ($\mathcal{O}(n^{1/2+\epsilon})$) in the number of total
120: %nodes $n$ in the network.  Moreover the quality of the safe path found
121: %using these sub-networks is no worse than a constant factor of the
122: %optimal safest path.
123: 
124: 
125: 
126: %% \subsection{Our Contribution}
127: %% The key efficiency metric in any sensor network is the power
128: %% consumption which is dominated by communication.  Thus any path
129: %% planning algorithm must strive to involve as few nodes in its search
130: %% as possible.  We show that it is possible to involve only a sub-linear
131: %% (compared to $\mathcal{O}(n)$) number of nodes in the total query
132: %% processing and yet find close to optimal paths.
133: %% \begin{itemize}
134: %% \item We restrict our shortest path computation to a small subset of
135: %% all the original nodes in the network.  These nodes define a
136: %% \emph{sparse} subgraph of the original communication graph called a
137: %% \emph{skeleton graph}.  The sparse subgraph should have the same
138: %% connectivity property as the original graph.  Note that size of any
139: %% sparse subgraph must always be $\Omega(n^{1/2})$.
140: 
141: %% \item We propose two schemes which restricts the shortest path
142: %% computation to subgraphs of size $\mathcal{O}(n^{1/2+\epsilon}), 0 <
143: %% \epsilon < 1/2$, and $\mathcal{O}(n^{1/2}\log n)$ respectively.
144: 
145: %% \item We show that if a safe path exists, our algorithm always finds
146: %% it.  Moreover the Shortest Feasible Path found by the algorithm is
147: %% never longer than a constant factor of the optimal path.  Similarly
148: %% the Minimum Exposure Path found by our algorithm is never worse than a
149: %% constant factor of the optimal path.
150: 
151: %% \item By simulation, we show that the algorithm performs well under a
152: %% diverse set of circumstances.
153: %% \end{itemize}
154: 
155: \section{Preliminaries and Related Work}
156: Let us assume that $n$ sensor \emph{nodes} are placed uniformly in a
157: square area.  We choose units of length such that the size of the area
158: is $n^{1/2}\times n^{1/2}$, i.e. on the average every unit area
159: contains one single sensor.  Every sensor can communicate with any
160: other sensor which is within radio range $r$ of it.  The number of
161: radio neighbors of a single sensor is not large, i.e. $ 1 < r \ll
162: n^{1/2}$.  Thus the sensor nodes form a logical graph with nodes as
163: vertices and communication links between neighbors as edges.  Also we
164: assume that each sensor knows its geographic location through some
165: localization algorithm.  The query for safe path is injected into the
166: system at a node which we shall call \emph{source}.  The query
167: specifies a destination coordinate.  The node closest to the
168: destination coordinate will be called \emph{destination}.  The safe
169: path is a path on the communication graph starting at the source and
170: ending at the destination.
171: 
172: %% The length metric for any path is the number of hops on that path.
173: %% Since the nodes in our communication graph are spread uniformly, the
174: %% hop distance between any two nodes is roughly proportional to the true
175: %% geographic distance between them.  Note that if the source and
176: %% destination are far enough apart, the length of the path between them
177: %% can be as large as $\mathcal{O}(n^{1/2})$.
178: 
179: 
180: %% The sensors themselves can be of two types: binary or continuous.  A
181: %% binary sensor detects the absence or presence of a stimulus.  For
182: %% example a motion sensor is a binary sensor: either there is motion or
183: %% not.  In contrast, a continuous sensor measures the value of a
184: %% continuous variable such as temperature.  These two types of sensors
185: %% lead to two different paradigms for defining the path qualities.
186: 
187: \subsection{Metrics for Path Quality}
188: 
189: 
190: %% Another way to look at the safety issue to assume that as we move
191: %% along the path, we accumulate our exposure to the chemical, and it is
192: %% the total accumulation of chemical which is dangerous.  So we define
193: %% the \emph{exposure} $S(P)$ of a path $P$ as
194: %% \begin{equation}
195: %%   S(P) = \int_P \phi(x,y) d\ell,
196: 
197: %% \end{equation}
198: %% where the integral is taken along the path and $\phi(x,y)$ is the
199: %% concentration of the chemical at the point $(x,y)$.  The Minimum
200: %% Exposure Path (MEP) is then defined as the path for which the quantity
201: %% $S(P)$ is the least.
202: 
203: 
204: We consider two natural metrics for safe path: path length and
205: exposure.  We'll consider two examples to illustrate the relevance of
206: the two metrics in practice.  Suppose a dangerous chemical leak has
207: occurred in the region covered by the sensors.  We want the safe path
208: from source to destination be such that the maximum concentration of
209: the chemical on the path does not exceed a threshold $t$.  Thus we
210: define the \emph{danger zone} as the region where the chemical
211: concentration exceeds $t$.  The optimal path then is the shortest path
212: between the two points which stays outside the danger zone.  We call
213: this the \emph{shortest feasible path} (SFP).  In this paper, we shall
214: treat the hop distance in the network and true geometric distance
215: interchangeably.  Since our sensors are spread uniformly and they form
216: a dense network, such an assumption will not lead to gross
217: inaccuracies.
218: 
219: The next example is for a point like danger.  Let us assume that a
220: sensor detects the presence of an enemy soldier at some point in the
221: battlefield.  As we move through the battlefield, the enemy soldier
222: can detect us at a distance by some means, such as sight or sound, but
223: his capacity for detection goes down with distance.  Suppose the enemy
224: soldier is at the origin $(0,0)$ and he can detect us with probability
225: $\phi(x,y)$ if we are at the point $(x,y)$.  If we want to move from
226: the source to destination with the least probability of detection,
227: then we need to minimize the following quantity over all possible
228: paths $P$:
229: \begin{equation}
230:   \textrm{Probability of detection}  \propto S(P) \equiv \int_P \phi(x,y) d\ell.
231: \label{eqn-exp}
232: \end{equation}
233: We call the quantity $S(P)$ as the exposure for the path $P$ and the
234: optimal path as the \emph{minimum exposure path} (MEP).  To put it
235: more formally, the presence of enemy at $(0,0)$, creates a
236: \emph{potential} $\phi(x,y)$ at the point $(x,y)$ and we would like to
237: move along a path where the integrated potential along the path is
238: minimized.  The definition of the potential function $\phi(x,y)$
239: itself is arbitrary, but it should monotonically decrease as we move
240: away from the enemy position.  Assuming that the enemy is at the
241: origin, a convenient potential function is
242: \begin{equation}
243: \phi(x,y) = \frac{1}{(x^2+y^2)^{\beta/2}} \equiv \frac{1}{R^\beta},
244: \;\;\beta > 0, 
245: \label{eqn-pot}
246: \end{equation}
247: where $R$ is the Euclidean distance from the point of danger to the
248: point $(x,y)$.  For our purposes in this paper, we shall impose the
249: condition $\beta > 1$.
250: % Note that when $\beta \rightarrow \infty$, the
251: % minimum exposure path simply becomes the shortest path which do not
252: % approach the danger closer than one unit distance.  
253: Another desirable property for the potential is the
254: \emph{superposition} property defined as follows.  If there are $k$
255: enemy points denoted by $1, 2, \ldots k$, then the total potential at
256: $(x,y)$ is defined as
257: \begin{equation}
258:   \phi_\mathrm{total}(x,y) = \sum_{i=1}^k \phi(x-x_i,y-y_i),
259: \label{eqn-pot-superposition}
260: \end{equation}
261: where $\phi(x-x_i,y-y_i)$ is the potential at $(x,y)$ due to enemy
262: point $i$ located at $(x_i, y_i)$.  
263: 
264: % In addition to these two natural
265: % metrics, 
266: 
267: % In this paper, whenever we speak of a shortest feasible path, we shall
268: % always assume that the only constraint on the path is that it should
269: % stay out of the danger zone.  If we want the path to stay distance $d$
270: % away from the danger zone, we shall appropriately increase the size of
271: % the danger zone boundary outwards by $d$.  
272: 
273: There are some important constraints that one needs to impose on the
274: complexity of the danger zone.  In general, if the side-length of the sensor
275: field is $\mathcal{O}(n^{1/2})$, one expects the length of any
276: shortest path be bounded by $\mathcal{O}(n^{1/2})$.  But one can
277: easily conjure up pathologically shaped danger zones for which the
278: length of the optimal path can be as long as $\mathcal{O}(n)$.  We
279: exclude such exceptional cases by imposing the constraint that the
280: perimeter of the danger zone be ``well behaved'' in the following
281: sense.  Let us consider a curve and a square box of size $x$ which
282: intersects the curve.  The well behavedness property restricts the
283: length of the curve inside that box.
284: \begin{definition}
285: \label{def-well-behaved}
286: A curve is well behaved, if for any square box of side $x$ that
287: intersects the curve, the length of the curve inside the box is less
288: than $cx$ for some constant $c > 1$, and for all $x$.\footnote{This
289: condition is same as saying that the curve has fractal dimension 1.}
290: \end{definition}
291: This is not a very stringent condition and any polygon of low
292: complexity satisfies it.  This property will be key in proving the
293: efficiency of our algorithms.  We also demand that the number of
294: distinct dangerous entities be a constant much smaller than $n^{1/2}$.
295: 
296: In summary, the problem which we shall address in this paper is as
297: follows: given an area covered by sensors where one or more danger
298: zones exist, can we efficiently compute approximate shortest paths and
299: minimum exposure paths between any two points?
300: 
301: 
302: \subsection{The Skeleton Graph}
303: \begin{figure}
304:   \begin{center} \includegraphics[width=0.35\textwidth]{fig/gpsr}
305:   \end{center}
306: \caption{Bad performance of greedy geographic routing schemes: the
307: source is $p$ and destination is $q$, while the shaded area represents
308: the danger zone.  In (a), the principle of perimeter traversal leads
309: to a traversal of the whole field.  In (b), the length of the
310: path found is as large as the perimeter of the danger zone.}
311: \label{fig-gpsr}
312: \end{figure}
313: 
314: Navigating a sensor field in the presence of danger zones is a problem
315: which is similar to path planning in the presence of obstacles.  There
316: are two obvious ways one can approach this problem: a greedy
317: geographic scheme similar to GPSR routing \cite{karp00gpsr} and
318: exhaustive search.  In a geographic scheme, one would greedily move
319: towards the destination and traverse around the danger zones
320: encountered on the way.  This scheme has very low communication
321: overhead, but can lead to highly suboptimal paths as shown in
322: Fig. \ref{fig-gpsr}.
323: % A way to remedy this problem is to backtrack, and try an alternate way
324: % to traverse around the danger.  As one backtracks, the advantage of
325: % the greedy scheme begins to vanish because with backtracking more and
326: % more nodes are involved in the search.
327: The global exhaustive search algorithm floods the network with packets
328: to carry out a Breadth-First-Search (BFS) on the communication graph.
329: Obviously this algorithm is optimal in terms of path length, but very
330: expensive in terms of communication cost.
331: 
332: % Naturally we ask the question if it is
333: % possible to combine the efficiency of a greedy search with the
334: % guarantees of exhaustive search.
335: 
336: Our solution in this direction splits up the problem into two pieces.
337: The first step is to construct a reduced graph with fewer nodes from
338: the full communication graph.  We call this smaller graph the
339: \emph{skeleton graph}.  The second part is to carry out a search on
340: the skeleton graph to find shortest paths and minimal exposure paths
341: \emph{over the skeleton graph only}.  If the skeleton graph is small
342: in size, then even carrying out an exhaustive search over the skeleton
343: graph will not be very expensive in terms of communication.
344: % The key property of the skeleton graph is that none of the nodes in
345: % the skeleton graph are inside a danger zone.  
346: The requirements that we impose on the skeleton graph are as follows:
347: (i) If a safe path exists in the original graph, a safe path exists in
348: the skeleton graph too. (ii) The quality of the path found in the
349: skeleton graph is comparable to the optimal path.
350: 
351: % We call the nodes that are included in the skeleton graph as the
352: % \emph{active set} and label them as being \emph{awake}; the rest of
353: % the nodes are considered to be in \emph{sleep}.
354: 
355: % Note that since a path can be as long as $\mathcal{O}(n^{1/2})$, the
356: % number of nodes in the skeleton graph is at least $\Omega(n^{1/2})$.
357: % Intutively the most important information while planning a path
358: % consists of the information coming from the nodes near the danger
359: % zones.  So we keep most of the nodes near the danger zone awake, while
360: % nodes far away from the danger zone are put to sleep.
361: 
362: Our main contribution in this work lies in constructing a small sized
363: skeleton graph from the main communication graph.  Once the skeleton
364: graph is constructed, the problem of finding the optimal paths on
365: these graphs can be achieved with a set of simple algorithms.  These
366: algorithms are \emph{reactive} algorithms rather than \emph{proactive}
367: algorithms.  In other words, we do not maintain path information in the
368: system; only when a query is made, path discovery takes place.  We
369: briefly discuss these algorithms below.  These algorithms are
370: applicable to \emph{any} graph and not special to skeleton graphs in
371: any way.
372: 
373: \subsection{Shortest  Path Algorithm}
374: \label{sec-sfp-algo}
375: This algorithm is nothing but BFS over the communication graph.  The
376: graph is flooded with search packets starting from the source.  Every
377: packet contains two fields which specify how many hops it has traveled
378: from the source and the last node visited.  When a node receives a
379: search packet, it increments the hop count by 1 and forwards the
380: packet to the other neighbors.  Every node maintains a distance variable
381: which counts the minimum number of hops to the source and a parent
382: pointer which points to the node via which the minimum hop search
383: packet was received.  If a node receives multiple search packets from
384: the source, only packets with smallest hop counts are forwarded.  When
385: BFS terminates, every node knows its distance to the source and its
386: parent pointer points to its parent along the path towards the source.
387: 
388: Note that in a shortest path computation by BFS, the number of packets
389: transmitted by each node is exactly 1.  The first search packet that
390: arrives at a node is the packet which has traveled by the least
391: number of hops.  The packets which arrive later arrive by traveling
392: larger number of hops and hence are discarded.  This leads us to the
393: following proposition which bounds the communication cost of shortest
394: path discovery by BFS search.
395: 
396: \begin{proposition}
397:   \label{prop-bfs-cost}
398: In a network of $n$ nodes, the number of total packet transmissions
399: required for the shortest path algorithm is $\mathcal{O}(n)$.
400: \end{proposition}
401: 
402: \subsection{Minimum Exposure Path Algorithm}
403: \label{sec-mep-algo}
404: 
405: \begin{algorithm}
406:   \caption{\textsc{Minimum-Exposure}}
407:   \label{algo-min-exp}
408:   \begin{algorithmic}[1]
409:     \WHILE{TRUE}	    
410:     %\COMMENT{xyz}
411: %    \COMMENT{repeat infinitely}
412: 
413:     \STATE Receive($pkt$) from $neighbor$
414:     \STATE $pkt.exposure \gets pkt.exposure + self.potential$
415:     \IF{$pkt.exposure < minexposure$}
416:     \STATE $minexposure \gets pkt.exposure$
417:     \STATE $parent \gets neighbor$
418:     \STATE schedule $pkt$ for forwarding
419:     \ELSE
420:     \STATE Drop($pkt$)
421:     \ENDIF
422:     \IF {there is a scheduled packet}
423:     \STATE Transmit($pkt$)
424:     \ENDIF
425:     \ENDWHILE
426:   \end{algorithmic}
427: \end{algorithm}
428: 
429: 
430: Exposure computation relies upon the computation of potential
431: $\phi(x,y)$ first.  
432: % For a continuous sensor model, the potential is
433: % known directly because it is simply the value of the signal.  For
434: % binary sensors, potential calculation is not so simple.
435: We give a simple algorithm for potential calculation below.  Assume
436: that the potentials at each point are known.  Then minimum exposure
437: path calculation is very similar to the shortest path BFS algorithm.
438: In this case the path length is the total exposure, not total hop
439: count.  Search packets are injected into the network by the source and
440: nodes forward these packets to their neighbors.  Every search packet
441: carries with itself a variable \emph{exposure} which is just the sum
442: of potentials of the nodes it has passed through.  Thus any packet
443: contains within it the total exposure of the path that it has
444: traveled.  Just like BFS above, every node maintains a total exposure
445: field (\emph{minexposure}) and a parent pointer.  The variable
446: \emph{minexposure} measures the total exposure of the minimum exposure
447: path from the source.  Any packet which arrives at a node with total
448: exposure more than the value \emph{minexposure} at that node is not
449: forwarded.  Otherwise, the node updates the \emph{minexposure}
450: variable and forwards the packet.  The pseudocode is shown in
451: algorithm~\ref{algo-min-exp}.  When the algorithm terminates, every
452: node knows the exposure of the minimum exposure path to the source.
453: 
454: Now we give a simple algorithm to calculate the potential due to a
455: single danger point.  Potential due to multiple danger points can be
456: computed using the principle of superposition
457: (eqn. \ref{eqn-pot-superposition}).  Consider a sensor which detects
458: danger at its location.  This sensor floods the network with packets
459: for a BFS much like the shortest path calculation.  Thus every node on
460: the network learns its distance from the danger point and hence can
461: now compute the potential according to eqns. \ref{eqn-pot} and
462: \ref{eqn-pot-superposition}.
463: 
464: \subsection{Related Work}
465: Navigation and path planning has a long history as a robotics
466: \cite{latombe92robot} and computational geometry
467: \cite{berg00computational} problem.  The challenge for sensor network
468: environment is that path planning must be done in a distributed
469: manner.  The problem of route finding in ad-hoc networks is similar to
470: the problem that we address here.  Greedy Perimeter Stateless Routing
471: (GPSR) \cite{karp00gpsr} is a greedy routing strategy for ad hoc
472: networks which utilizes geographic information to find its
473: destination.  We have already discussed the unsuitability of
474: geographic schemes for navigation.  The alternative protocols like
475: AODV \cite{perkins00ad} and DSR \cite{johnson00dynamic} do not utilize
476: geographic information and instead flood the network with query
477: packets for finding routes.  Obviously such a flooding scheme is not
478: efficient for sensor networks.
479: 
480: The concept of minimum exposure path were introduced by Meguerdichian
481: et. al.~\cite{meguerdichian01exposure}.  Veltri
482: et. al.~\cite{veltri03minimal} has given heuristics to distributedly
483: compute minimal and maximal exposure paths in sensor networks.  Path
484: planning in the context of sensor networks was addressed by Li
485: et. al.~\cite{li03distributed} where they consider the problem of
486: finding minimum exposure path.  Their approach involves exhaustive
487: search over the whole network to find the minimal exposure path.
488: Recently Liu et.al.~\cite{liu04combs} have used the concept of
489: searching a sparse subgraph to implement algorithms for resource
490: discovery in sensor networks.  This work, which was carried out
491: independently of us, however doesn't address the problem of path
492: finding when parts of the sensor network is blocked due to danger.
493: Some of our work is inspired by the mesh generation problem
494: \cite{berg00computational,bern92mesh} in computational geometry.  
495: 
496: % For a simple overview of mesh generation, the reader might want to
497: % consult the book by de Berg et. al.~\cite{}.
498: 
499: 
500: \section{Navigation Using Uniform Skeleton Graph}
501: \label{sec-uniform-skeleton-graph}
502: 
503: \begin{figure}
504:   \begin{center}
505:     \begin{tabular}{cc}
506:   \includegraphics[width=0.15\textwidth]{fig/street} &      
507:   \includegraphics[width=0.25\textwidth]{fig/embed}
508:     \end{tabular}
509:   \end{center}
510: \caption{A street map and the corresponding skeleton graph.  There are
511: 4096 nodes with range 3 each.  The skeleton graph contains only 450
512: nodes.}
513: \label{fig-embed}
514: \end{figure}
515: 
516: 
517: Suppose we have an area $A$ covered with sensors.  Then the structure
518: of the skeleton graph can be explained most intuitively in terms of a
519: set of line segments inside this area $A$.  We call these segments
520: \emph{streets} and the collection of all the streets within the area a
521: \emph{street map}.  The nodes which are geographically ``close'' to
522: the streets constitute the skeleton graph.  We shall soon define this
523: idea of closeness more rigorously, but meanwhile an example will
524: clarify the concept.
525: % consists of a set of streets.  A street is an abstract concept
526: % ---when a street is embedded in a network, it consists of a set of
527: % nodes which form a continuous link of communication.  This
528: % communication graph is the skeleton graph.  In other words, the street
529: % map is an idealized geometric representation of the skeleton graph.
530: % Since nodes outside the skeleton graph are asleep, all communication
531: % is constrained to the nodes in the skeleton graph.  Equivalently we
532: % can think that all communication is restricted to move along the
533: % streets only.  
534: Fig. \ref{fig-embed} shows a set of streets and the corresponding
535: skeleton graph.  All nodes which are not part of the skeleton graph
536: are put to sleep and they do not communicate with other nodes.  Thus
537: the skeleton graph is a small set of nodes which geographically span
538: the area $A$ and form within themselves a connected communication
539: graph.  The street map is an ideal geometric representation of the
540: skeleton graph and its communication links.  The exact algorithm for
541: \emph{embedding} a set of streets in a true network graph will be given in
542: Section \ref{sec-embedding}.  For theoretical purposes in this paper, we
543: shall use the skeleton graph and its abstract street map
544: representation interchangeably.
545: 
546: It is clear that given an arbitrary distribution of sensors and an
547: arbitrary street map, it is not possible to successfully embed the
548: street map in the communication graph.  In most realistic settings,
549: the sensors will be deployed in a random fashion, leading to an
550: expected-case uniform coverage of the field. Mathematically, we assume
551: that each sensor's location $(x,y)$ is a pair of independent random
552: variables distributed uniformly.  In fact, the only technical
553: requirement of our scheme is that the sensor field not have any large
554: holes in its coverage.  Under these conditions and a reasonable radio
555: communication range, it is possible to carry out the embedding.  We
556: shall address this issue is a more quantitative fashion in
557: sec. \ref{sec-expt}.
558: 
559: % The uniform skeleton graph is simple and by studying it we gain many
560: % insights into the navigation problem.  In section
561: % \ref{sec-adaptive-skeleton-graph}, we use these insights to build a
562: % better version of the skeleton graph; but for now we shall confine our
563: % attention to the simplest case.  The uniform skeleton graph 
564: 
565: 
566: 
567: \begin{figure}
568:   \begin{center}
569:   \includegraphics[width=0.35\textwidth]{fig/grid-map}
570:   \end{center}
571: \caption{The street map for uniform skeleton graph.  In (a), we show
572: the danger zone as a shaded area and two points $p$ and $q$ between
573: which we seek a shortest path.  In (b) we see the street map with grid
574: size $s$ and the streets outlined in bold.  The shortest path between
575: $p$ and $q$ is is also shown.}
576: \label{fig-grid-map}
577: \end{figure}
578: 
579: 
580: In this section we introduce the uniform skeleton graph which contains
581: two classes of streets: \emph{grid streets} and \emph{perimeter
582: streets}.  The grid streets are a square grid of lines separated by
583: distance $s$ from each other.  An additional set of streets which
584: follow the perimeter of the danger zone is also included in the street
585: map and they are the perimeter streets.  Fig. \ref{fig-grid-map} shows
586: a single danger zone and the street map that results from it.
587: 
588: \subsection{The Uniform Skeleton Graph: Streets and Embeddings}
589: \label{sec-embedding}
590: We assume that all nodes know the value of $s$ which is the separation
591: between streets.  Then the embedding of the grid streets is achieved
592: as follows.  Let us imagine every grid street to be a strip of width
593: $w$ instead of being a line.  Since the nodes know their positions,
594: they can independently decide if they are within distance $w$ of any
595: grid street.  All nodes which lie on the strip include themselves in
596: the skeleton graph, while the other nodes go to sleep.  As long as $wr
597: > 1$, with high probability, the number of nodes lying along the
598: streets is enough to ensure that all the nodes lying along the streets
599: form a connected set.  The embedding of the streets can be optimized
600: by an additional step.  In general, the strip of width $w$ will
601: contain some redundant nodes which can be put to sleep without losing
602: connectivity.  To do this we assign the two nodes at each end of the
603: street to be source and destination.  The source carries out a BFS
604: search for the shortest path within this street to the destination.
605: Only the nodes which are on the shortest path from source to
606: destination are included in the skeleton graph.  
607: 
608: Note that a protocol like GPSR can be also used construct the grid
609: streets.  Let us assume that some node initiates the street
610: construction protocol.  Then using GPSR, we can send out street
611: construction packets along the perpendicular grid lines starting with
612: the initiating node.  All nodes which are touched by the construction
613: packets include themselves in the skeleton graph.  This method has
614: very low overhead for constructing skeleton graph, but it might
615: produce sub-optimal graphs in the presence of holes.
616: 
617: Next we turn to the embedding of the perimeter streets.  To do this,
618: the nodes which are on the danger zone boundary need to detect first
619: that they are on the boundary.  This is an easy problem to solve: if a
620: node realizes that it is in the danger zone, but it has at least one
621: neighbor outside the danger zone, then that node declares itself to be
622: at the boundary.  The nodes inside the danger zone can go to sleep.
623: The boundary nodes broadcast a ``wake-up'' message with lifetime of
624: $w$ hops to its neighbors.  Any node within $w$ hop of a boundary will
625: be awakened and added to the skeleton graph.  These nodes constitute
626: the perimeter streets.  Nodes inside the danger zone are always
627: excluded from the skeleton graph.
628: 
629: \begin{figure}
630:   \begin{center}
631:   \includegraphics[width=0.2\textwidth]{fig/shift}    
632:   \end{center}
633: \caption{Load balancing by shifting.}
634: \label{fig-shift}
635: \end{figure}
636: 
637: Once we have constructed the skeleton graph, the shortest path and the
638: minimum exposure paths can be constructed using the algorithms
639: described in sections \ref{sec-sfp-algo} and \ref{sec-mep-algo}.  Note
640: that although the skeleton graph requires only a small subset of the
641: nodes to participate in path finding, over time this set of nodes
642: might run out of energy prematurely compared to other nodes which are
643: not included in the skeleton graph.  This can be avoided by varying
644: the value of $s$, the street separation; or by shifting all the
645: streets by a constant amount in the diagonal direction as shown in
646: Fig. \ref{fig-shift}.  
647: 
648: \subsection{Path Discovery for Points not on Streets}
649: 
650: So far we have restricted our attention to finding shortest paths
651: between source and destination pairs which are on the streets.  What
652: can one do for source and destination pairs which do not lie on any
653: street?  There are two solutions.  The first solution is for the
654: source to initiate flooding to discover the closest street to it and
655: from then on, follow the streets for route discovery to the
656: destination.  If the destination does not lie on any street, then it
657: is enclosed in a square enclosed by four streets.  As soon as any
658: packet realizes that it is on the boundary of the square, then the
659: destination can be found by flooding that square.  This flooding adds
660: some overhead to path discovery, but this overhead is comparatively
661: low for long paths.
662: 
663: The second solution is to construct the streets on-demand rather than
664: to pre-compute them.  As soon as a source needs to discover a route to
665: the destination, it initiates construction of streets centered around
666: itself.  We can use GPSR to construct the grid streets as before.  The
667: benefit of this approach is that in this case, load balancing is
668: automatic because every path discovery query produces its own set of
669: streets.  As mentioned before, this method might be suboptimal if
670: there are significant holes in the communication graph.
671: 
672: 
673: 
674: \subsection{The Uniform Skeleton Graph: Basic Properties}
675: In this section we focus on the performance characteristics of these
676: algorithms and prove the approximation bounds.  We first prove the
677: following theorem which limits the size of the uniform skeleton graph,
678: and hence limits the total communication cost of a search in that
679: graph.
680: 
681: \begin{theorem}
682: The communication cost of discovering the shortest path in the uniform
683: skeleton graph is $\mathcal{O}(n^{1/2+\epsilon})$, for any $\epsilon$
684: such that $0 < \epsilon < 1/2$.
685: \end{theorem}
686: \begin{proof}
687: There are two sets of streets: the grid streets and the perimeter
688: streets.  Every grid street is of length $n^{1/2}$ and the number of
689: grid streets is $2\times n^{1/2}/s$.  Thus the total length of grid
690: streets is $\mathcal{O}(n/s)$.  Since the perimeter of a danger zone
691: is well behaved, the total length of the perimeter as well as the
692: perimeter streets is $\mathcal{O}(n^{1/2})$.  The width of the streets
693: $w$ is a constant of order unity, while $ 1 < s < n^{1/2}$.  Clearly,
694: the total street length is dominated by the grid streets.  Hence we
695: set $s = n^{1/2-\epsilon}$ and find that the total number of nodes in
696: the skeleton graph is $\mathcal{O}(n^{1/2+\epsilon}$).  Applying
697: proposition \ref{prop-bfs-cost}, we immediately see that the
698: communication cost must also be bound by
699: $\mathcal{O}(n^{1/2+\epsilon}$).
700: \end{proof}
701: Note that since $1 < s < n^{1/2}$, $\epsilon$ is constrained to lie
702: between 0 and 1/2.  The exact choice of $\epsilon$ involves a
703: trade-off between skeleton graph size and the quality of path found.
704: A larger value of $\epsilon$, gives better coverage of the area with
705: streets at the expense of involving large number of nodes in the path
706: search.
707: 
708: We now consider the quality of the approximate path length in the
709: uniform skeleton graph.  Let us first introduce some notation.  Given
710: any two points which are located on streets, there is an optimal path:
711: $P_\textrm{OPT}$ and a path along the streets which we call
712: $P_\textrm{USG}$.  Their lengths are $\ell_\textrm{OPT}$ and
713: $\ell_\textrm{USG}$ respectively.  The following theorem gives the
714: worst case bound on the length of $\ell_\mathrm{USG}$.
715: \begin{figure}
716:   \begin{center}
717:   \includegraphics[width=0.3\textwidth]{fig/grid-path}    
718:   \end{center}
719: \caption{Shortest path in uniform grid.}
720: \label{fig-grid-path}
721: \end{figure}
722: 
723: \begin{theorem}
724: For a path joining any two points located on the streets in uniform
725: skeleton graph,
726: \begin{displaymath}
727: \ell_\textrm{USG}/\ell_\textrm{OPT} \leq 2(1+c),
728: \end{displaymath}
729: where $c$ is the constant appearing in the definition of well
730: behavedness (Def. \ref{def-well-behaved}).
731: \label{thm-grid-path}
732: \end{theorem}
733: \begin{proof}
734: The optimal path goes through a sequence of grid street squares.  We
735: shall decompose the optimal path into segments, each of which is
736: contained completely within its own square.  The sides of the square
737: are the streets.  If we prove the bound on each square separately,
738: then the total path will also obey the required bound.  Consider a
739: segment of the optimal path that goes through a square on the grid and
740: it crosses the square at points $a$ and $b$
741: (Fig. \ref{fig-grid-path}).  Since the communication is restricted to
742: move along the streets, there are two paths to get from $a$ to $b$.
743: There are two cases to take care of while bounding the length of path
744: along the streets.
745: 
746: Fig. \ref{fig-grid-path} (a) exhibits the case when the boundary of
747: the square is free of danger.  In that case the shortest path from $a$
748: to $b$ along the streets is at most twice as long as the optimal path.
749: 
750: Fig. \ref{fig-grid-path} (b) shows the case when one of the sides of
751: the square is blocked by danger.  Let's say if the danger was not
752: there, then there would be a path of length $L$ from $a$ to $b$ along
753: the left side of the square.  Because of the danger on the edge, the
754: path is forced to traverse the perimeter street $P$ and hence becomes
755: longer.  We bound the length of the perimeter street as follows: if
756: the danger zone can be bound within a square of side $x$, then the
757: length of the perimeter street length is $cx$ by the well behaved
758: property.  So total length of the path is at most the sum of the
759: perimeter path length $cx$ and the street length $L$, i.e.
760: $\ell_\mathrm{USG} \leq cx + L$.  If $x< L$, $\ell_\textrm{OPT} \geq
761: L/2$ and then
762: \begin{displaymath}
763: \ell_\mathrm{USG} \leq cx + L \leq (c+1)L \leq 2(1+c) \ell_\textrm{OPT}.
764: \end{displaymath}
765: if $x > L$, then the optimal path length $\ell_\textrm{OPT} \geq x$ and
766: \begin{displaymath}
767: \ell_\mathrm{USG} \leq cx + L \leq (c+1)x \leq (1+c) \ell_\textrm{OPT}.
768: \end{displaymath}
769: The case when both sides of the square intersect the perimeter streets
770: can be handled in a similar fashion.
771: \end{proof}
772: 
773: \subsection{The Uniform Skeleton Graph: Exposure}
774: 
775: We now consider the minimum exposure path problem.
776: %%   In general, the
777: %% minimum exposure path in the graph is not always the shortest path.
778: Let us denote the exposure along the true minimum exposure path be
779: $S_\mathrm{OPT}$.  The minimum exposure using only the skeleton graph
780: is $S_\mathrm{USG}$.  Before we explore the relation between optimal
781: and approximate exposure, let us prove a useful lemma.
782: 
783: In this lemma, we shall consider a point danger and a path of length
784: $L$ which approaches at its closest to within distance $D$ of the
785: danger point (see Fig. \ref{fig-exp}).  The lemma gives an estimate of
786: the total exposure of this path.  Intuitively we can motivate this
787: lemma as follows: for $\beta > 1$, the potential dies fast as one goes
788: away from the danger.  So if the closest distance that the path
789: approaches the danger is $D$, then the major contribution to the
790: exposure comes from a region of size $D$ nearest to the danger.  The
791: contribution of the path outside this region contributes to the total
792: exposure only by a constant factor.
793: \begin{figure}
794:   \begin{center}
795:   \includegraphics[width=0.25\textwidth]{fig/exp2}    
796:   \end{center}
797: \caption{Exposure along a path.}
798: \label{fig-exp}
799: \end{figure}
800: \begin{lemma}
801: For a well behaved path of length $L$ with minimum approach distance
802: $D$, and $\beta > 1$, the exposure of the path is given by
803: \begin{equation}
804: S  = \left\{
805: \begin{array}{ll}
806: c_1\frac{1}{D^{\beta-1}} &  L \geq D,\\
807: c_2\frac{L}{D^{\beta}} & L < D, 
808: \end{array}
809: \right.
810: \end{equation}
811: where $c_1$ and $c_2$ are constants.
812: \label{lemma-exp}
813: \end{lemma}
814: \begin{proof}
815: Consider a curve of length $L\geq D$ as shown in Fig. \ref{fig-exp}.
816: We divide the curve into segments by concentric circles of radius $D,
817: 2D, 3D\ldots$  Since the curve is well behaved, the total length of
818: the curve \emph{inside} a circle of radius $kD$ is bounded by $c_rkD$
819: for some constant $c_r$.  Consider a segment of the curve contained
820: between circles of radius $kD$ and $(k+1)D$.  By the well behaved
821: assumption, the length of this segment is at most $c_aD$ for some
822: constant $c_a$.  So the exposure of this segment is bounded by
823: $\frac{c_aD}{(kD)^\beta}$.  The total exposure then is
824: \begin{equation}
825: S \leq \sum_{k=1}^\infty\frac{c_aD}{(kD)^\beta} =
826: \frac{c_a}{D^{\beta-1}}\sum_{k=1}^\infty\frac{1}{k^\beta}
827: \end{equation}
828: The sum on the RHS converges to a constant when $\beta > 1$.  The case
829: for $L < D$ is simple.  The potential is
830: $\frac{1}{D^\beta}$ and the length of the path is $L$.
831: The exposure immediately follows from that.
832: \end{proof}
833: \begin{figure}
834:   \begin{center}
835:   \includegraphics[width=0.25\textwidth]{fig/grid-exp}    
836:   \end{center}
837: \caption{Exposure along a path in the grid.}
838: \label{fig-grid-exp}
839: \end{figure}
840: The following theorem bounds the exposure performance of the uniform
841: skeleton graph scheme.
842: \begin{theorem}
843: For a path joining any two points located on the streets,
844: \begin{displaymath}
845: S_\mathrm{USG}/S_\mathrm{OPT} = \mathrm{const}.  
846: \end{displaymath}
847: \label{thm-grid-exp}
848: \end{theorem}
849: \begin{proof}
850: For the sake of brevity, here we give only an outline of the proof of
851: this theorem.  As in theorem \ref{thm-grid-path}, we shall decompose
852: the optimal path into segments wholly contained within a single square
853: and prove the bound for a single square.  For simplicity we assume
854: that there is a single point of danger as shown in
855: Fig. \ref{fig-grid-exp}.  Let the optimal exposure path cross the
856: square at points $a$ and $b$.  To go from $a$ to $b$ there are two
857: possible paths: a shorter path with exposure $S_1$ and a longer one
858: with exposure $S_2$.  Their respective lengths are $x$ and $4s-x$
859: where $s$ is the size of the square.  In terms of exposure, the short
860: path has the disadvantage of traversing a region of high potential,
861: while the longer path has the disadvantage of being long.
862: 
863: 
864: % As an aside, we note that the exposure computed along the streets has
865: % an error due to incorrect potential computation.  If we allowed
866: % communication in the full communication graph, then at any point on a
867: % street, we could compute accurate potential at that point.  But since
868: % we restrict communication along the streets only, the estimated
869: % distance from the danger to any point is miscalculated.  This error is
870: % easily bounded by using theorem \ref{thm-grid-path}.  Recall that the
871: % potential at a point distance $R$ from the danger point is
872: % $1/R^\beta$.  The distance to this point by going through the streets
873: % only is $R^\prime$.  The erroneous potential at point $(x,y)$ because
874: % of erroneous distance is
875: % \begin{equation}
876: %   \phi^\prime(x,y) = \frac{1}{R^{\prime\beta}}. 
877: % \end{equation}
878: % Since the erroneous distance $R^\prime$ is only a constant factor off
879: % the true distance by theorem \ref{thm-grid-path}, our error is
880: % $\phi^\prime$ is bounded by a constant factor.
881: 
882: To compute $S_\textrm{USG}$, we consider the case $x > D$ first as
883: shown in Fig. \ref{fig-grid-exp}.  By lemma \ref{lemma-exp} the
884: exposures are as follows:
885: \begin{eqnarray}
886:   S_1 & = & \mathcal{O}\left(\frac{1}{D^{\beta-1}}\right), \; 
887:   S_2 =  \mathcal{O}\left(\frac{1}{(D+x)^{\beta-1}}\right)\\ 
888:   S_\textrm{OPT} &  = & \mathcal{O}\left(\frac{1}{(D+x)^{\beta-1}}\right).
889: \end{eqnarray}
890: The worst case results when $S_1 = S_2$, which implies that $x=
891: \mathcal{O}(D)$, i.e. $S_1, S_2$ and $S_\textrm{OPT}$ are within
892: constant factor of each other.   For $x < D$, 
893: \begin{eqnarray}
894:   S_1 & = & \mathcal{O}\left(\frac{x}{D^\beta}\right), \; 
895:   S_2 =  \mathcal{O}\left(\frac{1}{(D+x)^{\beta-1}}\right)\\ 
896:   S_\textrm{OPT} &  = & \mathcal{O}\left(\frac{x}{(D+x)^{\beta}}\right).
897: \end{eqnarray}
898: The worst case exposure results when $S_1 = S_2$, which implies that $x=
899: \mathcal{O}(D)$, i.e. $S_1, S_2$ and $S_\textrm{OPT}$ are within
900: constant factor of each other.
901: 
902: The case of multiple danger points is a simple generalization.  By the
903: principle of superposition, (eqn. \ref{eqn-pot-superposition}) the
904: total exposure of a path due to multiple danger points is equal to the
905: sum of exposures due to each danger point taken separately.  Thus the
906: proof above remains valid for multiple points of danger as well.
907: \end{proof}
908: 
909: \section{Navigation  Using Adaptive Skeleton Graph}
910: \label{sec-adaptive-skeleton-graph}
911: The uniform skeleton graph is simple and effective, but it is possible
912: to improve upon it.  The uniform skeleton graph puts streets with
913: uniform density (all streets have separation $s$) in every region,
914: without regard for the region's distance from the danger zones.
915: Intuitively, if a user wants to navigate an area with danger zones, it
916: will be useful if near the danger zones, the streets are placed close
917: together, while far away the street layout is much coarser.  Readers
918: familiar with computational geometry literature will recognize a
919: similarity of this problem to the problem of adaptive mesh generation
920: \cite{bern92mesh}.
921: 
922: 
923: \begin{figure}
924:   \begin{center}
925:   \includegraphics[width=0.3\textwidth]{fig/quad2}    
926:   \end{center}
927: \caption{Street map for a danger zone using a four level quadtree. (a)
928: shows the danger zone as the shaded area.  In (b) we see the quadtree
929: division so that boundary of the danger zone is completely aligned
930: with the quadtree.}
931: \label{fig-quad}
932: \end{figure}
933: 
934: 
935: \begin{figure}
936:   \begin{center}
937:   \includegraphics[width=0.2\textwidth]{fig/voronoi}    
938:   \end{center}
939: \caption{Voronoi streets for three points of danger.}
940: \label{fig-voronoi}
941: \end{figure}
942: 
943: 
944: 
945: 
946: Let us now see how such a non-uniform adaptive street-map can be
947: produced.  For this discussion we assume that the danger zone boundary
948: is axis aligned.  Our street map will consist of a set of line
949: segments of length $1, 2, 4, \ldots, n^{1/2}$ which are also axis
950: aligned.  The logical representation of the street map can be best
951: done in terms of a quadtree.  This process is very similar to quadtree
952: mesh generation.  The whole $n^{1/2}\times n^{1/2}$ square area
953: corresponds to the root node in the quadtree.  We recursively divide
954: the area into quadtree cells until there is no quadtree cell whose
955: boundary is intersected by danger zone boundary.  The process is
956: illustrated in Fig. \ref{fig-quad}.  In the next section we show that
957: this adaptive construction is not only more efficient in terms of
958: number of nodes involved, but also has better guarantees on total path
959: length compared to the uniform skeleton graph.
960: 
961: Note that, having more detailed street map near the danger zones is
962: efficient for computing shortest paths, but it is not efficient for
963: computing minimum exposure paths.  Consider for example the three
964: points of danger inside the coverage area as shown in
965: Fig. \ref{fig-voronoi}.  Since the minimum exposure path should stay
966: as far away from the danger points as possible, intuitively the best
967: one can do is to move along the Voronoi edges
968: ~\cite{berg00computational} for the three points.  Thus for computing
969: minimum exposure paths, we would want to compute Voronoi edges for the
970: danger points and embed them using the quadtree.
971: 
972: \subsection{The Adaptive Skeleton Graph: Streets and Embeddings}
973: The quadtree street map can be created in a distributed fashion, but
974: it requires a little coordination among sensor nodes.  At this point
975: we shall be a little loose with terminology and use the word node to
976: denote a true physical sensor as well as a node on the abstract
977: quadtree representation of the street map.  No confusion should arise
978: though, because the meaning will be clear from the context.
979: 
980: A quadtree node of level $k$ in physical terms consists of a square of
981: side length $2^k$.  The sensor nodes which lie within distance $w/2$
982: of the boundary of the square correspond to a \emph{cluster}.  We
983: shall assign a single node in the cluster to be a \emph{cluster
984: leader} for that cluster.  The cluster leader can be elected using any
985: suitable leader election algorithm.  Note that a single segment of an
986: edge in the quadtree can be part of several squares of different
987: sizes.  Thus a single sensor can belong to multiple clusters.  The
988: communication primitive required by an ordinary node is very simple.
989: It needs to be able to send a message to its cluster leader and
990: forward any message to its neighbor.  The cluster leader has more
991: responsibility.  It can communicate with its cluster by sending a
992: message which traverses the boundary of the square.  A cluster leader
993: also needs to know the leaders of its parent cluster and children
994: clusters
995: 
996: The quadtree is built recursively.  At the beginning the quadtree
997: consists of all the leaf squares and hence the skeleton graph consists
998: of all nodes.  If a cluster leader of a leaf square determines that
999: none of its nodes are within the danger zone, then it sends a message
1000: informing its parent cluster leader of this fact.  If a parent cluster
1001: determines that all its children are danger free, then it can instruct
1002: its children to go to sleep.  This process repeats recursively up the
1003: quadtree all the way to the root.  The skeleton graph then consists of
1004: all the clusters which are still awake.
1005: 
1006: The embedding of Voronoi edges can be done in a very similar manner.
1007: To compute nodes which are on the Voronoi edge, we adopt the following
1008: algorithm.  Recall that every sensor located at a danger point carries
1009: out a potential computation (Section \ref{sec-mep-algo}) which is
1010: nothing but a BFS distance computation.  A node which finds that it is
1011: equidistant from any two danger points declares itself to be on a
1012: Voronoi edge.  Once the Voronoi edges are computed, embedding them
1013: using a quadtree can be done as outlined above.
1014: 
1015: \subsection{The Adaptive Skeleton Graph: Properties}
1016: The following theorem shows that the adaptive skeleton graph is highly
1017: efficient in terms of total number of nodes in the graph.
1018: \begin{theorem}
1019: The communication cost of discovering the shortest path in the
1020: adaptive skeleton graph is $\mathcal{O}(n^{1/2}\log n)$.
1021: \end{theorem}
1022: \begin{proof}
1023: For simplicity we shall assume that there is only one danger zone with
1024: perimeter length $p$.  By the assumption that the perimeter is well
1025: behaved, $p = \mathcal{O}(n^{1/2})$.  Let us number the quadtree
1026: levels as $0, 1, 2, \ldots $ with level 0 as the leaf level.  Thus the
1027: quadtree level of $k$ corresponds to a square of side $2^k$.  Since
1028: the perimeter length is $p$, the perimeter is adjacent to $p$ squares
1029: of level 0.  By the same logic, the perimeter crosses $p/2$ nodes of
1030: level 2, $p/4$ nodes of level 2 and so on.  In general the perimeter
1031: crosses $p/2^k$ nodes of level $k$ (size $2^k$), and hence requires
1032: $p/2^k$ nodes in its representation.  These $p/2^k$ nodes contribute a
1033: total of $\mathcal{O}(p/2^k\times 2^k) = \mathcal{O}(p)$ length of
1034: streets to the street map.  Since there are a total of $\log(n)$
1035: levels in the quadtree, the total length of streets in the quadtree is
1036: $\mathcal{O}(p\log n) = \mathcal{O}(n^{1/2}\log n)$.  The length of
1037: streets in the quadtree immediately gives us the upper bound on the
1038: number of nodes in the adaptive skeleton graph and by proposition
1039: \ref{prop-bfs-cost}, the upper bound on the communication cost of the
1040: shortest path computation.
1041: \end{proof}
1042: 
1043: Now we turn to the issue of path lengths and exposure in the adaptive
1044: skeleton graph.  Here we can mostly take over the discussion that we
1045: have gone over in Section \ref{sec-uniform-skeleton-graph} and simplify
1046: the proofs.  The following theorem shows that the adaptive skeleton
1047: graph is very efficient in terms of shortest path.  Let the length for
1048: the shortest path in the quadtree grid be $\ell_\textrm{ASG}$.
1049: \begin{theorem}
1050: For a path joining any two points located on the streets in the
1051: adaptive skeleton graph, 
1052: \begin{displaymath}
1053: \ell_\textrm{ASG}/\ell_\textrm{OPT} \leq 2 .    
1054: \end{displaymath}
1055: \end{theorem}
1056: \begin{proof}
1057: The optimal path passes through a set of quadtree squares.  Unlike the
1058: uniform skeleton graph, in the adaptive skeleton graph none of the
1059: squares are intersected by the danger zone boundary.  Now consider a
1060: segment of the optimal path going through a single square as shown in
1061: Fig. \ref{fig-grid-path} (a).  It is clear that a path which sticks to
1062: the sides of the square is at most twice long as the optimal path.
1063: \end{proof}
1064: The performance bound for the minimum exposure path for the adaptive
1065: skeleton graph is identical to the uniform skeleton graph.  Note that
1066: in theorem \ref{thm-grid-exp}, the size of the square itself did not
1067: appear anywhere.  Hence that proof can serve without any modification
1068: for the following theorem:
1069: \begin{theorem}
1070: For a path joining any two points located on the streets in adaptive
1071: skeleton graph,
1072: \begin{displaymath}
1073: \frac{S_\mathrm{ASG}}{S_\mathrm{OPT}} = \mathrm{const},
1074: \end{displaymath}
1075: where $S_\mathrm{ASG}$ is the exposure for the adaptive skeleton graph.
1076: \end{theorem}
1077: 
1078: \begin{figure}
1079:   \begin{center}
1080:   \includegraphics[width=0.3\textwidth]{fig/obstacle}    
1081:   \end{center}
1082: \caption{Simple and complex danger zone shapes used to test shortest
1083: path algorithms.}
1084: \label{fig-obstacle}
1085: \end{figure}
1086: 
1087: 
1088: \section{Experimental Results}
1089: \label{sec-expt}
1090: 
1091: We simulated our algorithms on simulated communication graph
1092: topologies.  The simulation parameters are as follows.  We place $n$
1093: sensor nodes in a $\sqrt{n}\times \sqrt{n}$ area.  The node
1094: coordinates are random variables uniformly distributed within this
1095: area.  The experiments were done with $n=1024, 4096$ and 16384 nodes.
1096: Note that the average separation between nodes in our experiments is
1097: 1.  So the radio range decides the number of communication neighbors
1098: of each node and is an indirect measure of node deployment density.
1099: Experimentally we find that unless radio range is larger than 1.5, the
1100: resulting graph is almost always disconnected.  Even when the
1101: communication graph is connected, because of random fluctuations in
1102: node density there are always large voids in the communication graph.
1103: These voids are known to cause significant problems for geographic
1104: routing protocols \cite{karp00gpsr}.  For our experiments we assume
1105: that the radio range is 3 and in this range the occurrence of large
1106: voids is rare.  Note that this is not a very dense deployment of
1107: nodes.  For MICAz motes manufactured by the Crossbow
1108: Corp. \cite{crossbow04micaz} which have radio range of 300ft, this
1109: works out to a deployment where average node separation is 100ft.  
1110: 
1111: The
1112: shortest path algorithms were implemented for two different types of
1113: danger zones which we label \emph{simple} and \emph{complex}.  Their
1114: shapes are shown in Fig. \ref{fig-obstacle}.
1115: \begin{figure}
1116:   \begin{center}
1117:   \includegraphics[width=0.4\textwidth]{fig/numnodes}    
1118:   \end{center}
1119:   \caption{Number of nodes in skeleton graph for different sized
1120:   networks.  The label 1K(S) means 1024 nodes with simple danger zone,
1121:   16K(C) means 16384 nodes with complex danger zone etc.  The exponent
1122:   $\epsilon = 0.05$.  Note that the vertical scale is logarithmic.}
1123:   \label{fig-numnodes}
1124: \end{figure}
1125: The skeleton graph is a complex experimental system where one can
1126: measure many relevant quantities such as the effect of varying size
1127: and shapes of danger zones, effect of street separation $s$ on path
1128: lengths and others.  In the interest of space, we only report the
1129: results of a limited set of experiments which evaluate the size of
1130: skeleton graphs and their performance in finding shortest paths and
1131: minimum exposure paths.  
1132: % Results of more detailed exeriments will be related in a future publication.
1133: \subsection{Skeleton Graph Size}
1134: In Fig. \ref{fig-numnodes}, we exhibit the size of the skeleton graph
1135: for different shapes of danger zones and different number of sensors.
1136: As we can see, the size of the skeleton graphs are much much smaller
1137: than the full graph and this difference is more pronounced for larger
1138: network sizes.  For a network of 1024 sensors and a simple danger
1139: zone, the size of the adaptive skeleton graph is only 377, i.e. 37\%
1140: of the original graph.  When we increase network size to 16384, there
1141: are 659 nodes are in the adaptive skeleton graph ----which is only 4\%
1142: of the full graph.  The uniform skeleton graph is slightly larger than
1143: the adaptive graph, but this difference is not highly significant.
1144: \begin{figure}
1145:   \begin{center}
1146:   \includegraphics[width=0.4\textwidth]{fig/pathlen}
1147:   \end{center}
1148:   \caption{Path length performance ratio of the uniform and adaptive
1149:   skeleton graphs for different network sizes.  The label 1K(S) means
1150:   1024 nodes with simple danger zone, 16K(C) means 16384 nodes with
1151:   complex danger zone etc.  The exponent $\epsilon = 0.05$. }
1152:   \label{fig-pathlen}
1153: \end{figure}
1154: 
1155: \subsection{Shortest Path}
1156: To evaluate the quality of the shortest path found in the skeleton
1157: graph we generated a set of 200 random point pairs lying within the
1158: sensor coverage area.  Let us assume that the lengths of the optimal
1159: path and approximate skeleton graph paths are $\ell_\mathrm{OPT}$ and
1160: $\ell_\mathrm{SG}$ respectively.  Then the efficiency of the algorithms
1161: is defined by the $ \textrm{Path Length Performance Ratio} \equiv
1162: \ell_\mathrm{SG}/\ell_\mathrm{OPT}$.
1163: Closer the performance ratio to 1, better the algorithm.  In
1164: Fig. \ref{fig-pathlen} we plot the average performance ratio for both
1165: uniform and adaptive skeleton graphs.  The optimal path was found by
1166: carrying out BFS over the full graph.  We see that for a large range
1167: of network sizes and a combination of simple as well as complex danger
1168: zones, the approximate path lengths are no worse than 50\% of the
1169: optimal.  The adaptive skeleton graph performs better as expected.
1170: 
1171: 
1172: \subsection{Minimum Exposure Path}
1173: \begin{figure}
1174:   \begin{center}
1175:   \includegraphics[width=0.4\textwidth]{fig/pot}
1176:   \end{center}
1177:   \caption{Exposure performance ratio of the uniform and adaptive
1178:   skeleton graphs for different network sizes.  The exponent $\epsilon
1179:   = 0.2$. }
1180:   \label{fig-pot}
1181: \end{figure}
1182: For minimum exposure path we generated 20 different scenarios, each of
1183: which consists of three points of danger randomly placed inside the
1184: coverage area.  For each set of three points we computed 10 minimum
1185: exposure paths using the skeleton graph.  The exponent $\epsilon$ was
1186: chosen such that the size of the uniform skeleton graph was roughly
1187: equal to the size of the adaptive graph.  The optimal exposure was
1188: calculated by BFS over the full graph as before.  If the exposures for
1189: optimal and approximate paths are $S_\mathrm{OPT}$ and
1190: $S_\mathrm{SG}$, we define the performance ratio as before to be $
1191: \textrm{Exposure Performance Ratio} \equiv
1192: S_\mathrm{SG}/S_\mathrm{OPT}$.  The average performance ratio is
1193: plotted in Fig. \ref{fig-pot}.  As we can see both the uniform and
1194: adaptive skeleton graphs perform equally well with neither holding a
1195: decisive advantage.
1196: 
1197: \section{Discussion}
1198: 
1199: We have shown that the problem of finding shortest path and minimum
1200: exposure path on a sensor network can be solved approximately with low
1201: communication cost using skeleton graphs.  Our experiments confirm
1202: that both the uniform and adaptive skeleton graphs provide close to
1203: optimal paths with very low communication overhead.  Although, in the
1204: asymptotic limit of large networks, adaptive skeleton graph is more
1205: scalable, this is not a real issue for realistically sized networks.
1206: Moreover as we have noted in the end of sec. \ref{sec-embedding},
1207: there exists simple load balancing schemes for uniform skeleton graph.
1208: Thus from the perspective of a practical implementation, the uniform
1209: skeleton graph is superior to the adaptive graph in terms of its
1210: simplicity and  load distribution.
1211: 
1212: %%    The adaptive
1213: %% scheme generally outperforms the uniform scheme for shortest path
1214: %% computations; but the extra complexity of the adaptive scheme might
1215: %% not be worth the performance gains.
1216: 
1217: 
1218: \bibliographystyle{IEEEtran} 
1219: % \itemsep=-5pt  
1220: % \small
1221: \bibliography{biblio}
1222: 
1223: \end{document}
1224: % LocalWords:  eqn BFS eqns sparsification RHS
1225: 
1226: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1227: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1228: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1229: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1230: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1231: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1232: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1233: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1234: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1235: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1236: 
1237: \subsection{Problem Definition} 
1238: An area covered by a sensor network contains certain dangerous areas.
1239: The dangerous areas might contain high concentration of some dangerous
1240: chemicals.  A user needs to go from one point in the area to another
1241: while avoiding the dangerous areas.  How can we use the network to
1242: find the best possible path for the user?
1243: 
1244: 
1245: \subsection{Metrics}   Multiple possible metrics for the best path
1246: \begin{itemize}
1247:   \item Shortest Feasible Path (SFP) : the shortest path which does not go
1248:   closer than distance $d$ to the dangerous areas.
1249:   \item Minimum Exposure Path (MEP) : Every point $(x,y)$ in the sensor
1250:   network field has a certain potential $\phi(x,y)$ which indicates
1251:   level of exposure to danger.  For example $\phi(x,y)$ could be the
1252:   concentration of dangerous chemical in that area.  The exposure
1253:   $S$ of a path $P$ can be thought of as the total
1254:   exposure to the chemical that the user accumulates while traveling
1255:   the path.  In more formal terms
1256:   \begin{equation}
1257:     S[\phi] = \int_P\phi(x,y) d\ell
1258:   \end{equation}
1259: where the integral is taken along the path $P$.
1260: 
1261: \end{itemize}
1262: 
1263: \subsection{Current Approaches}
1264: Assumptions : a square field is covered uniformly with $n$ sensors.
1265: Every sensor knows its geographic coordinates.  Two sensors can
1266: communicate with each other if they are within radio range $R$ of each
1267: other.  This induces a communication graph on the sensors.  If we
1268: agree to measure length in units of average sensor separation, then
1269: each side of the square measures $n^{1/2}$.  Thus any path which
1270: traverses the whole field has length $\Omega(n^{1/2})$.  The safe
1271: path is also assumed to go from one sensor to another.  In another
1272: words, the safe path is a set of vertices of the sensor network
1273: specified in order.
1274: 
1275: A sensor network is a mapping tool: it allows the user to probe the
1276: environment and map out areas to avoid.  One way to use the network is
1277: to aggregate all information at a base station and construct a map.
1278: The user can use this map as a guide.  This is a centralized approach
1279: and may lead to massive amounts of information bottleneck at the base
1280: station.  The other way is to spread the geographic information
1281: throughout the network.  No single node in the network knows
1282: everything about the network.  The user enters a path query at any
1283: node and the query is processed in a distributed fashion throughout
1284: the network.  This approach is more scalable and this is the avenue
1285: that we would like to pursue.  Following are the two most obvious ways
1286: to do a distributed path query.
1287: 
1288: \subsubsection{Geographic Routing}   
1289: Similar to GPSR. Greedily proceed toward the destination and if danger
1290: is encountered, then traverse around danger.  This approach requires
1291: very little communication cost to find a path.  But in the worst case,
1292: it might nor find a path even when a path exists, or the found path
1293: can be very long compared to the optimal shortest path.  This approach
1294: can not find a Minimum Exposure Path.
1295: 
1296: \subsubsection{Exhaustive Search} Carry out a shortest path
1297: computation (e.g. using breadth first search) over the sensor
1298: communication graph.  This approach can optimally solve both the
1299: Minimum Exposure Path and Shortest Feasible Path problems, but suffers
1300: from excessive communication overhead.  The shortest path computation
1301: involves $\mathcal{O}(n)$ nodes and flooding over the entire network
1302: which is highly inefficient.
1303: 
1304: 
1305: