Ruteo con Entrega Garantizada en Redes Geométricas y Sin Cables.
Ruteo con Entrega Garantizada en Redes Geométricas y Sin Cables.
Ruteo con Entrega Garantizada en Redes Geométricas y Sin Cables.
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Ruteo</strong> <strong>con</strong> <strong>Entrega</strong> <strong>Garantizada</strong> <strong>en</strong> <strong>Redes</strong><br />
<strong>Geométricas</strong> y <strong>Sin</strong> <strong>Cables</strong>.<br />
Jorge Figueroa Canales.<br />
jfigueroac@uxmcc2.iimas.unam.mx<br />
Maestría <strong>en</strong> Ci<strong>en</strong>cia e Ing<strong>en</strong>iería de la Computación.<br />
Universidad Nacional Autónoma de México.<br />
Extracto. El principal estudio aquí es sobre algoritmos locales de ruteo para comunicación<br />
<strong>en</strong> redes. Estos algoritmos muestran v<strong>en</strong>tajas cuando se utilizan <strong>en</strong> redes geométricas que<br />
sean planas. Prestamos especial at<strong>en</strong>ción <strong>en</strong> los algoritmos de ruteo los cuales garantic<strong>en</strong><br />
que un m<strong>en</strong>saje llegue a su destino. Un m<strong>en</strong>saje <strong>con</strong>siste <strong>en</strong> paquetes de datos que t<strong>en</strong>gan<br />
que <strong>en</strong>viarse de un nodo a otro, i.e. que el m<strong>en</strong>saje por si mísmo y disponi<strong>en</strong>do solo de<br />
una cantidad pequeña de memoria, pueda valerse unicam<strong>en</strong>te de esta y del algoritmo para<br />
arribar a su destino. Qué el algoritmo sea local significa que <strong>en</strong> cada sitio (nodo) t<strong>en</strong>emos a<br />
nuestra disposición solo información local refer<strong>en</strong>te al nodo y sus vecinos i.e. que no se ti<strong>en</strong>e<br />
<strong>con</strong>ocimi<strong>en</strong>to global de la red, solo que esta es planar y <strong>con</strong>exa. Añadimos que los m<strong>en</strong>sajes<br />
no dejan marcas sobre los nodos que han visitado. Estos algoritmos están diseñados para<br />
redes de comunicación wireless, <strong>en</strong> particular como las redes de telefonia móvil (celular).<br />
1. Introducción.<br />
Los vértices de una red geométrica son puntos <strong>en</strong> el plano, y sus aristas son segm<strong>en</strong>tos<br />
de línea recta que los un<strong>en</strong>. Una red geométrica es llamada plana si no <strong>con</strong>ti<strong>en</strong>e aristas<br />
que se intersect<strong>en</strong> <strong>con</strong> excepción de un vértice común al final. En este artículo se asume<br />
que los grafos tratados son redes geométricas planas.<br />
El objetivo principal aquí es el estudio de algoritmos de ruteo 1 que toman v<strong>en</strong>tajas de<br />
la localización de los nodos <strong>en</strong> una red geométrica. Al principio los artículos sobre ruteo<br />
ignoraban la información <strong>con</strong> respecto a la localización física de los nodos de la red. Con<br />
la llegada de las nuevas tecnologías como el Sistema de Posición Global ó Global Position<br />
System (GSP), la posición de los usuarios se ha <strong>con</strong>vertido <strong>en</strong> información que puede ser<br />
recuperada de GPS, y usada para desarrollar mejores algoritmos de ruteo.<br />
Para otras aplicaciones, nosotros podemos usar la localización de un nodo como parte<br />
de su etiqueta. Esto puede alternadam<strong>en</strong>te ser utilizado para obt<strong>en</strong>er efici<strong>en</strong>tes algoritmos<br />
de ruteo. En muchas aplicaciones como una red de telefonía móvil, proveedores de internet,<br />
y otros, muchos nodos ti<strong>en</strong><strong>en</strong> posiciones fijas. <strong>Redes</strong> como las de telefonía celular <strong>con</strong>sist<strong>en</strong><br />
de una sub-red columna y una colección de usuarios móviles que se desplazan librem<strong>en</strong>te,<br />
y se <strong>con</strong>ectan a través de switches fijos. En muchas de estas redes el uso de sistemas<br />
de posición global permite a los usuarios obt<strong>en</strong>er la localización física o la información<br />
geográfica que relaciona a los usuarios <strong>con</strong> los switches de la red.<br />
1 Hago un abuso del l<strong>en</strong>guaje pues <strong>en</strong> realidad la palabra ruteo no existe <strong>en</strong> el idioma español, lo<br />
correcto sería <strong>en</strong>caminami<strong>en</strong>to.<br />
1
La información que relaciona la posición de los nodos de una red puede, y se ha<br />
utilizado de hecho para obt<strong>en</strong>er nuevos planes de <strong>en</strong>caminami<strong>en</strong>to que toman v<strong>en</strong>tajas de<br />
esta información. Algunos artículos propon<strong>en</strong> varios tipos de algoritmos de ruteo usando<br />
datos geográficos.<br />
En este artículo, nos <strong>en</strong>focaremos <strong>en</strong> algoritmos locales de ruteo para grafos geométricos<br />
<strong>con</strong>exos y planos, que toman v<strong>en</strong>tajas de la posición física de los vértices de la red.<br />
Estamos interesados <strong>en</strong> un algoritmo on-line que use la información geográfica <strong>en</strong> los nodos<br />
y ligas de una red, y además garantice que los m<strong>en</strong>sajes llegan a su destino. Nuestra aproximación<br />
difiere de algoritmos similares estudiados <strong>en</strong> la literatura, particularm<strong>en</strong>te <strong>en</strong><br />
el <strong>con</strong>texto de redes inalámbricas <strong>en</strong> los cuales, muchos planes han sido desarrollados y<br />
sobre todo probados experim<strong>en</strong>talm<strong>en</strong>te.<br />
Al principio, algunos trabajos proponian algoritmos basados <strong>en</strong> la localización <strong>con</strong><br />
varias nociones de progreso. Muchos de estos protocolos de ruteo no necesariam<strong>en</strong>te garantizaban<br />
la llegada de los m<strong>en</strong>sages. En muchos casos, multiples copias redundantes de<br />
los m<strong>en</strong>sajes son <strong>en</strong>viados <strong>con</strong> la esperanza de que alguno de ellos ev<strong>en</strong>tualm<strong>en</strong>te llegue<br />
a su destino. Pero, mandando muchas copias del m<strong>en</strong>saje crea otros problemas como la<br />
<strong>con</strong>gestión de la red. Nosotros creemos que el uso de algoritmos tales como el pres<strong>en</strong>tado<br />
aquí se <strong>con</strong>vertirá <strong>en</strong> primordial <strong>con</strong>forme el número de usuarios de la red de comunicación<br />
se increm<strong>en</strong>te. Otro algoritmo llamado Compass Routing ó <strong>Ruteo</strong> por Brújula fue<br />
propuesto, <strong>en</strong> el cual, si un m<strong>en</strong>saje se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> un nodo v y quiere llegar a un nodo<br />
t, el algoritmo lo mandará por el vecino u que sea adyac<strong>en</strong>te a v, tal que la p<strong>en</strong>di<strong>en</strong>te del<br />
segm<strong>en</strong>to de línea que une a u <strong>con</strong> v es la más cercana a la p<strong>en</strong>di<strong>en</strong>te del segm<strong>en</strong>to de<br />
línea que une a v <strong>con</strong> t. Mi<strong>en</strong>tras ocacionalm<strong>en</strong>te Compass Routing puede caer <strong>en</strong> ciclos<br />
infinitos fallando <strong>en</strong> su arribo a t, trabaja para algunas importantes clases de red. En<br />
particular, Compass Routing trabaja correctam<strong>en</strong>te para Triangulaciones de Delaunay;<br />
un resultado que puede ser utilizado para desarrollar algoritmos de ruteo para redes de<br />
comunicación inalámbricas.<br />
El objetivo principal aquí es mostrar un algoritmo que garantice la llegada de los m<strong>en</strong>sajes<br />
a su destino. Se ha propuesto que el algoritmo pres<strong>en</strong>tado aquí puede ser <strong>con</strong>siderado<br />
como un método de seguridad para ser usado cuando las técnicas heurísticas fallan. Argum<strong>en</strong>tamos<br />
que las técnicas aquí pres<strong>en</strong>tadas son estandar, como ellos no solo garantizan<br />
que un m<strong>en</strong>saje llega a su destino, pero también ti<strong>en</strong>de a crear pequeños costos indirectos,<br />
<strong>en</strong> los cuales se ti<strong>en</strong>e que resolver otros problemas al pres<strong>en</strong>tarse multiples broadcasts <strong>con</strong><br />
copias de los datos del m<strong>en</strong>saje.<br />
2. La Posición Local Ayuda al Algoritmo de <strong>Ruteo</strong>.<br />
Pres<strong>en</strong>taremos algunas de las ideas básicas usadas <strong>en</strong> el desarrollo de nuestro algoritmo<br />
<strong>en</strong> línea de ruteo para redes geométricas planas donde la posición local ayuda. Algunos<br />
de estos algoritmos han sido refinados y mejorados, pero <strong>con</strong> todo sigue habi<strong>en</strong>do ideas<br />
básicas. Por algoritmo de ruteo <strong>en</strong> línea <strong>con</strong> ayuda de la posición local o geométrica<br />
<strong>en</strong>t<strong>en</strong>demos un algoritmo que trabaja bajo las sigui<strong>en</strong>tes restricciones:<br />
1. Un m<strong>en</strong>saje típico <strong>con</strong>ti<strong>en</strong>e la localización de su nodo inicial s, la localización del<br />
destino t, el <strong>con</strong>t<strong>en</strong>ido del m<strong>en</strong>saje v.gr. el texto de un e-mail, y quizá una cantidad<br />
<strong>con</strong>stante de almac<strong>en</strong>ami<strong>en</strong>to extra <strong>en</strong> la cual una cantidad <strong>con</strong>stante de información<br />
<strong>con</strong> respecto a algún dato <strong>con</strong>cerni<strong>en</strong>te a la ruta que un m<strong>en</strong>saje a registrado <strong>en</strong> su<br />
2
ecorrido.<br />
2. En cada nodo de la red, un procesador ti<strong>en</strong>e alguna información geográfica local<br />
<strong>con</strong>cerni<strong>en</strong>te solo a él mismo y a la localzación de sus vecinos.<br />
3. Basado solo <strong>en</strong> la información local almac<strong>en</strong>ada <strong>en</strong> los nodos de una red, la localización<br />
de s, t y la información almac<strong>en</strong>ada <strong>en</strong> la memoria extra que ti<strong>en</strong><strong>en</strong> los<br />
m<strong>en</strong>sajes; una decisión es tomada <strong>con</strong> respecto hacia dónde se <strong>en</strong>viará <strong>en</strong> el sigui<strong>en</strong>te<br />
paso, el m<strong>en</strong>saje.<br />
No es s<strong>en</strong>cillo desarrollar un algoritmo de ruteo que satisfaga las restricciones previas.<br />
Y que garantice que un m<strong>en</strong>saje arriba a su destino. El pres<strong>en</strong>te artículo desarrolla tal<br />
algoritmo.<br />
3. <strong>Ruteo</strong> por Brújula <strong>en</strong> Subdivisiones Convexas.<br />
Un grafo ó gráfica geométrica es llamada Subdivisión Convexa si todas sus caras son<br />
<strong>con</strong>vexas, i.e. para cualquier sub<strong>con</strong>junto de vértices que <strong>con</strong>forman una cara del grafo,<br />
las aristas que lo limitan forman un polígono <strong>con</strong>vexo.<br />
A <strong>con</strong>tinuación se pres<strong>en</strong>tan los pasos a seguir, det<strong>en</strong>i<strong>en</strong>dose una vez que se llega al<br />
nodo destino t:<br />
1. Com<strong>en</strong>zando <strong>en</strong> el nodo s, determinamos la cara F incid<strong>en</strong>te a s que intersecta<br />
a la línea que une a los vértices orig<strong>en</strong> y destino: s − t. Elegimos una de las dos<br />
aristas incid<strong>en</strong>tes a s, y empezamos a recorres las aristas de la cara F hasta que<br />
<strong>en</strong><strong>con</strong>tremos la segunda arista de F que intersecta a la recta s − t; llamemos a esta<br />
arista (u, v).<br />
2. Actualizamos F a ser la sigui<strong>en</strong>te cara <strong>en</strong> el grafo geométrico que <strong>con</strong>t<strong>en</strong>ga a (u, v)<br />
<strong>en</strong>tre sus límites.<br />
3. Recorremos las aristas de nuestra nueva cara F hasta que <strong>en</strong><strong>con</strong>tremos la sigui<strong>en</strong>te<br />
arista (x, y) intersectada por la recta s − t.<br />
Veamos el esquema <strong>en</strong> la figura 1.<br />
s<br />
F1<br />
F2<br />
Figura 1: <strong>Ruteo</strong> <strong>con</strong> Brújula <strong>en</strong> subdivisiones <strong>con</strong>vexas.<br />
3<br />
F3<br />
t
Para provar que un m<strong>en</strong>saje siempre llega a su destino, procederemos de la sigui<strong>en</strong>te<br />
manera: Etiquetemos las caras intersectadas por la línea s − t, que une al nodo orig<strong>en</strong><br />
s <strong>con</strong> el nodo destino t, de la forma {F1, . . . , Fm} de acuerdo <strong>con</strong> el ord<strong>en</strong> <strong>en</strong> el cual<br />
aparec<strong>en</strong> <strong>en</strong> la intersección. Inicialm<strong>en</strong>te nuestra cara F = F1. Observemos que cada vez<br />
que actualizamos F nos movemos de Fi a Fi+1. Ev<strong>en</strong>tuam<strong>en</strong>te nosotros llegaremos a la<br />
cara Fm que <strong>con</strong>ti<strong>en</strong>e al nodo t, y por <strong>con</strong>secu<strong>en</strong>cia a t. Notemos también que el algoritmo<br />
recorre cada arista del grafo a lo más una vez. Es fácil ver que si las caras de un grafo<br />
geométrico no son <strong>con</strong>vexas, el algoritmo previo puede caer <strong>en</strong> un ciclo. En la sección<br />
sigui<strong>en</strong>te se mostrará como modificar el algortimo de manera que también trabaje <strong>en</strong><br />
grafos geométricos arbitrarios. El precio que hay que pagar es que <strong>en</strong> g<strong>en</strong>eral, las rutas<br />
que t<strong>en</strong>emos que recorrer, pued<strong>en</strong> increm<strong>en</strong>tarse substancialm<strong>en</strong>te <strong>en</strong> longitud. Esta es<br />
una <strong>con</strong>sideración a t<strong>en</strong>er <strong>en</strong> m<strong>en</strong>te cuando usemos los resultados para una aplicación <strong>en</strong><br />
particular.<br />
4. <strong>Ruteo</strong> por Brújula <strong>en</strong> Gráfos Geométricos.<br />
Observemos primero que los vértices y las aristas de un grafo geométrico G = (V, E)<br />
induc<strong>en</strong> una partición del plano <strong>en</strong> un <strong>con</strong>junto de regiones <strong>con</strong>exas <strong>con</strong> interiores disjuntos,<br />
no necesariam<strong>en</strong>te <strong>con</strong>vexos, llamados caras de G. Los límites Bi de cada una de<br />
estas caras forman una línea poligonal cerrada <strong>en</strong> la cual admitimos que algunas aristas<br />
de G pert<strong>en</strong>ezcan a dos caras. Por ejemplo, <strong>en</strong> el grafo mostrado <strong>en</strong> la figura 2 <strong>en</strong> el límite<br />
poligonal la cara externa de la arista (m, n) aparece dos veces.<br />
s<br />
m<br />
Figura 2: <strong>Ruteo</strong> <strong>con</strong> Brújula <strong>en</strong> subdivisiones no <strong>con</strong>vexas.<br />
Supongamos ahora que queremos llegar del vértice s al vértice t <strong>en</strong> el grafo G. Como<br />
antes, calculamos el segm<strong>en</strong>to de línea s − t que une a s <strong>con</strong> t, y determinamos la cara<br />
F = F1 incid<strong>en</strong>te a s e intersectada por s−t. Ahora recorreremos el polígono determinado<br />
por F1. Cada vez que una arista por la que pasamos se intersecte <strong>con</strong> la línea s−t, digamos<br />
<strong>en</strong> el punto p1, mi<strong>en</strong>tras recorremos los límites de F1, calculamos la distancia de p1 a s. Una<br />
vez que regresamos a s (a m<strong>en</strong>os que lleguemos a t, <strong>en</strong> cuyo caso el algoritmo se deti<strong>en</strong>e),<br />
todo lo que necesitamos recordar es el punto p1, <strong>en</strong> el cual el poligono F1 intersecta a s−t.<br />
Ahora recorremos F1 nuevam<strong>en</strong>te hasta alcanzar el punto p1 <strong>en</strong> el cual actualizaremos la<br />
cara F para ser la sigui<strong>en</strong>te cara cuyos límites <strong>con</strong>ti<strong>en</strong><strong>en</strong> a p1.<br />
Repetimos el procedimi<strong>en</strong>to usando p1 y la actualización de F (<strong>en</strong> este caso F = F2)<br />
<strong>en</strong> lugar de s y de F1 respectivam<strong>en</strong>te. Es s<strong>en</strong>cillo de ver que ev<strong>en</strong>tualm<strong>en</strong>te se llega a t.<br />
4<br />
n<br />
t
Note que cada arista de nuestro grafo, es <strong>con</strong>t<strong>en</strong>ida <strong>en</strong> a lo más dos caras. Note también<br />
que si el lado de una cara es recorrido, <strong>en</strong>tonces cada lado de una cara es recorrido a lo<br />
más dos veces. Se sigue que cada arista del grafo es recorrida a lo más cuatro veces. Una<br />
ligera modificación puede ser usada de modo que cada arista sea recorrida a lo más tres<br />
veces.<br />
Teorema 1 Existe un algoritmo de ruteo de información local <strong>en</strong> grafos geométricos el<br />
cual garantiza que llegaremos a nuestro destino. Más aún, nuestro algoritmo es tal que<br />
recorreremos un número lineal de aristas.<br />
Debe ser precisado que el objetivo principal del algoritmo pres<strong>en</strong>tado es que garantice<br />
la llegada de los m<strong>en</strong>sajes. Esto implicitam<strong>en</strong>te implica que las rutas g<strong>en</strong>eradas por el<br />
algoritmo pued<strong>en</strong> ser <strong>en</strong> g<strong>en</strong>eral no las rutas más cortas que <strong>con</strong>ectan a s <strong>con</strong> t. En efecto,<br />
es fácil de ver que para cada k podemos <strong>con</strong>struir ejemplos <strong>en</strong> los cuales la longitud de las<br />
rutas <strong>en</strong><strong>con</strong>tradas por nuestro algoritmo son k veces más grandes que la ruta más corta<br />
<strong>en</strong>tre s y t. Esto puede ser logrado si la longitud de una ruta cualquiera es medida <strong>en</strong><br />
términos de la suma de las longitudes de sus aristas , o <strong>en</strong> número de aristas usadas <strong>en</strong> la<br />
ruta. En la práctica sin embargo esto no sucede a m<strong>en</strong>udo.<br />
Un parámetro común de medida <strong>en</strong> muchos de los métodos propuestos y probados <strong>en</strong><br />
numerosos tipos de comunicación como los wireless; es la tasa de éxito, i.e. el porc<strong>en</strong>taje<br />
de m<strong>en</strong>sajes que llegan a su destino. Además, muchos de estos algoritmos transmit<strong>en</strong><br />
multiples copias de un m<strong>en</strong>saje <strong>en</strong> espera de que al m<strong>en</strong>os uno de ellos llegue a su destino.<br />
Observe que esto crea una gran sobrecarga <strong>en</strong> términos de la cantidad de tráfico g<strong>en</strong>erada.<br />
En tiempo, esto ha sido un factor importante a ser evitado. En <strong>con</strong>traste, nuestro algoritmo<br />
ti<strong>en</strong>e un 100% de índice de éxito mi<strong>en</strong>tras manda solo una copia de cada m<strong>en</strong>saje. A<br />
<strong>con</strong>tinuación se pres<strong>en</strong>tará como los resultados vistos son usados para obt<strong>en</strong>er algoritmos<br />
de ruteo <strong>en</strong> redes de comunicación inalámbricas tales como telefonía celular.<br />
5. Aplicaciones Ad Hoc a <strong>Redes</strong> de Comunicación Inalámbricas.<br />
Una red de comunicación inalámbrica puede ser modelada como un <strong>con</strong>junto de estaciones<br />
de radio localizadas sobre un <strong>con</strong>junto de puntos Pn = {p1, . . .,pn}, cada uno de<br />
los cuales está asociado a un número real ri, su poder de transmisión, tal que dos puntos<br />
pi, pj estan <strong>con</strong>ectados si su distancia es más pequeña que el mínimo de {ri, rj}. Ahora<br />
tratamos de resolver el problema de desarrollar un algoritmo de ruteo <strong>en</strong> línea para redes<br />
de comunicación móvil inalámbrica.<br />
Las redes de comunicación celular <strong>con</strong>sist<strong>en</strong> <strong>en</strong> un <strong>con</strong>junto de estaciones de radio de<br />
baja pot<strong>en</strong>cia localizados <strong>en</strong> Pn = {p1, . . . , pn}, todas <strong>con</strong> el mismo poder de transmisión<br />
r(i) = 1, y un <strong>con</strong>junto de usuarios móviles que se desplazan librem<strong>en</strong>te. Los usuarios<br />
móviles se <strong>con</strong>ectan a la red a través de la más cercana estación de radio fija. El <strong>con</strong>junto<br />
de estaciones de radio fijas defin<strong>en</strong> una red unidad de comunicación inalámbrica UW(Pn)<br />
sobre Pn <strong>en</strong> el cual, dos elem<strong>en</strong>tos p, q ∈ Pn estan <strong>con</strong>ectados si su distanciá es a lo más<br />
1.<br />
Procederemos ahora a desarrollar un algoritmo local <strong>en</strong> línea para redes unidad de<br />
comunicación inalámbrica. Observe primero que UW(Pn) no es necesariam<strong>en</strong>te plana.<br />
Por ejemplo, si Pn <strong>con</strong>siste <strong>en</strong> 12 puntos <strong>con</strong>t<strong>en</strong>idos d<strong>en</strong>tro de un circulo de radio 1,<br />
UW(Pn) no es plana.<br />
5
En órd<strong>en</strong> de uso de los resultados previos, somos capaces de extraer una subred plana<br />
de alguna UW(Pn). Dos requerimi<strong>en</strong>tos deb<strong>en</strong> ser satisfechos por el método que usemos<br />
para extraer el subgrafo plano para asegurar su completa funcionalidad para aplicaciones<br />
de la vida real.<br />
Si una red de comunicación celular es <strong>con</strong>exa, el subgrafo plano resultante debe ser<br />
<strong>con</strong>exo.<br />
Debemos t<strong>en</strong>er un protocolo local tal que cada nodo de la red pueda decidir de<br />
manera <strong>con</strong>sist<strong>en</strong>te cuales <strong>con</strong>exiones a sus vecinos debe mant<strong>en</strong>er, y asegurarse de<br />
eso colectivam<strong>en</strong>te sin la necesidad de comunicarse; el <strong>con</strong>junto de aristas se escog<strong>en</strong><br />
individualm<strong>en</strong>te por los nodos de la red formando un grafo plano.<br />
La necesidad para la segunda <strong>con</strong>dición se sigue de nuestro deseo de t<strong>en</strong>er protocolos<br />
distribuidos completos que evit<strong>en</strong> el uso de algún tipo de protocolo c<strong>en</strong>tralizado.<br />
El problema de extraer o incluso decidir si un grafo <strong>con</strong>ti<strong>en</strong>e una subgráfica <strong>con</strong>exa<br />
plana es un bi<strong>en</strong> <strong>con</strong>ocido problema NP −Completo. Afortunadam<strong>en</strong>te las redes UW(Pn)<br />
siempre ti<strong>en</strong><strong>en</strong> tales subgráficas, y <strong>en</strong> efecto, <strong>en</strong><strong>con</strong>trarlas es relativam<strong>en</strong>te s<strong>en</strong>cillo.<br />
La clave de nuestro resultado se pres<strong>en</strong>ta del uso de las gráficas de Gabriel. Dados<br />
dos puntos p y q <strong>en</strong> el plano, sea C(p, q) el círculo que pasa a través de ellos tal que el<br />
segm<strong>en</strong>to de línea que une a p <strong>con</strong> q es un diámetro de C(p, q). Dado un <strong>con</strong>junto de<br />
n puntos Pn = {p1, . . .,pn} <strong>en</strong> el plano, la gráfica de Gabriel para Pn es el grafo cuyo<br />
<strong>con</strong>junto de vértices es Pn <strong>en</strong> el cual dos puntos u y v de Pn son adyac<strong>en</strong>tes si y solo si<br />
C(p, q) no <strong>con</strong>ti<strong>en</strong>e otros puntos de Pn.<br />
Sea G ′ (Pn) el grafo <strong>con</strong> vértices <strong>en</strong> Pn tal que dos vértices p y q son adyac<strong>en</strong>tes <strong>en</strong><br />
G ′ (Pn) si y solo si C(p, q) no <strong>con</strong>ti<strong>en</strong>e otros puntos de Pn y además p y q son adyac<strong>en</strong>tes<br />
<strong>en</strong> la red inalámbrica W(Pn), eso es que G ′ (Pn) es la intersección de la gráfica de Gabriel<br />
de Pn <strong>con</strong> la red inalámbrica W(Pn). T<strong>en</strong>emos el sigui<strong>en</strong>te:<br />
Teorema 2 Si UW(Pn) es <strong>con</strong>exa <strong>en</strong>tonces G ′ (Pn) también es <strong>con</strong>exa.<br />
La prueba más fácil de este resultado procede como sigue. Sean p y q vértices adyac<strong>en</strong>tes<br />
<strong>en</strong> UW(Pn), y que no hay ruta que los <strong>con</strong>ecte <strong>en</strong> G ′ (Pn). Supongamos además<br />
que su distancia es la más pequeña posible <strong>en</strong>tre todos los pares de puntos <strong>en</strong> Pn. Ya que<br />
p y q no estan <strong>con</strong>ectados <strong>en</strong> G ′ (Pn), <strong>en</strong>tonces el círculo C(p, q) <strong>con</strong>ti<strong>en</strong>e al m<strong>en</strong>os un<br />
tercer punto r ∈ Pn. Observe que las distancias de r a p y r a q son más pequeñas que la<br />
distancia de p a q, y así hay una ruta P ′ <strong>en</strong> G ′ (Pn) <strong>con</strong>ectando a r <strong>con</strong> p y una ruta P ′′<br />
<strong>en</strong> G ′ (Pn) <strong>con</strong>ectando a r <strong>con</strong> q. La <strong>con</strong>cat<strong>en</strong>ación de estas rutas produce una ruta de p<br />
a q <strong>en</strong> G ′ (Pn).<br />
Es obvio que cada nodo p <strong>en</strong> UW(Pn) puede decidir localm<strong>en</strong>te cuales de sus vecinos<br />
<strong>en</strong> UW(Pn) serán también vecinos <strong>en</strong> G ′ (Pn). Simplem<strong>en</strong>te recoge las localizaciones de<br />
todos sus vecinos i.e. los elem<strong>en</strong>tos de Pn <strong>con</strong> distancá a lo más 1 de p, y probar para cada<br />
q de ellos si el círculo C(p, q) es vacio. Esto se puede lograr usando algoritmos estandar<br />
<strong>en</strong> geometría computacional <strong>con</strong> ○(k log k) donde k es el número de vecinos de p <strong>en</strong><br />
UW(Pn).<br />
T<strong>en</strong>emos <strong>en</strong> g<strong>en</strong>eral, herrami<strong>en</strong>tas para obt<strong>en</strong>er un algoritmo local de ruteo <strong>en</strong> línea<br />
<strong>en</strong> una red unidad de comunicación inalámbrica. Primero <strong>en</strong><strong>con</strong>tramos G ′ (Pn), y <strong>en</strong>tonces<br />
usamos el algoritmo de ruteo referido <strong>en</strong> el teorema 1 para <strong>en</strong>viar m<strong>en</strong>sajes. El cálculo de<br />
G ′ (Pn) puede ser hecho una sola vez, o periodicam<strong>en</strong>te <strong>en</strong> casos donde fallas <strong>en</strong> los nodos<br />
pued<strong>en</strong> ocurrir.<br />
6
Teorema 3 Existe un algoritmo de ruteo <strong>en</strong> línea para una red unidad de comunicación<br />
inalámbrica que garantice la <strong>en</strong>trega. Cualquier m<strong>en</strong>saje toma a lo más un número lineal<br />
de pasos para llegar a su destino.<br />
6. Triangulaciones de Delaunay.<br />
Una aproximación común <strong>en</strong> el diseño de redes es <strong>en</strong><strong>con</strong>trar bu<strong>en</strong>as arquitecturas que<br />
garantic<strong>en</strong> un bu<strong>en</strong> desempeño, v.gr. Hipercubos, y <strong>en</strong>tonces <strong>con</strong>struir redes que satisfagan<br />
esas arquitecturas. En muchas aplicaciones de redes de comunicación inalámbrica el<br />
costo de las estaciones de radio reales es relativam<strong>en</strong>te barato. En estas aplicaciones, la<br />
mejor forma de tratar de resolver problemas de ruteo es el sugerido por el algoritmo de<br />
ruteo por brújula. Si una red inalámbrica (no necesariam<strong>en</strong>te una red unidad de comunicación<br />
inalámbrica), no <strong>con</strong>ti<strong>en</strong>e una triangulación de Delaunay como subgráfica, es mejor<br />
realizarla. Esto puede ser obt<strong>en</strong>ido de dos difer<strong>en</strong>tes maneras. En la primera podemos<br />
desplegar estaciones extra hasta que nuestro objetivo sea alcanzado. El segundo método<br />
para alcanzar esto sería aum<strong>en</strong>tar, si las <strong>con</strong>diciones de nuestra apliacción lo permit<strong>en</strong>, el<br />
poder de transmisión de nuestra estación hasta que las triangulaciones de Delaunay est<strong>en</strong><br />
<strong>con</strong>t<strong>en</strong>idas <strong>en</strong> nuestra red de comunicación inalámbrica. En algunas instancias, cuando<br />
todos los nodos puedan comunicarse <strong>con</strong> cada otro, la triangulación de Delaunay puede<br />
ser calculada localm<strong>en</strong>te. Esto se sigue <strong>en</strong> efecto de que una vez que hemos calculado el<br />
diagrama de Voronoi de Pn, t<strong>en</strong>emos también la triangulación de Delaunay.<br />
Una vez calculada la triangulación de Delaunay, por cada vértice podemos definir<br />
para cada elem<strong>en</strong>to de Pn el parámetro Del(Pi) a ser la distancía de Pi a su vecino<br />
más próximo <strong>en</strong> D(Pn). Este valor puede ser usado para determinar el mínimo poder de<br />
transmisión requerido por Pi de modo que su vecino más cercano <strong>en</strong> D(Pn) pueda ser<br />
alcanzado.Esto alternadam<strong>en</strong>te ayudará a ahorrar <strong>en</strong>ergía la cuál es esc<strong>en</strong>cial <strong>en</strong> varias<br />
redes de comunicación inalámbricas.<br />
En caso de que la comunicación directa no sea posible, es todavía posible correr un<br />
procedimi<strong>en</strong>to distribuido de instalar que calcule Del(Pi) por re<strong>en</strong>vio de la posición de<br />
todos los nodos de nuestra red a cada vértice. El valor de Del(Pi) puede ser usado para<br />
ajustar el poder de transmisión de pi.<br />
7. Conclusiones.<br />
En este artículo repasamos algoritmos de ruteo <strong>en</strong> línea sobre redes geométricas y<br />
redes de comunicación inalámbricas que garantic<strong>en</strong> que un m<strong>en</strong>saje llega a su destino. En<br />
la práctica, nuestro algoritmo es bastante competitivo, y ti<strong>en</strong>e la v<strong>en</strong>taja de que <strong>en</strong>via<br />
solo una copia del m<strong>en</strong>saje, <strong>en</strong> <strong>con</strong>traste a muchos algoritmos publicados hasta la fecha.<br />
El algoritmo pres<strong>en</strong>tado aquí elimina el costo indirecto creado por muchos algoritmos<br />
exist<strong>en</strong>tes que <strong>en</strong>vian multiples copias del mismo m<strong>en</strong>saje, esto alternadam<strong>en</strong>te puede<br />
producir problemas de tráfico.<br />
7
Refer<strong>en</strong>cias<br />
[1] Jorge Urrutia<br />
“Routing with Guaranteed Delivery in Geometric and Wireless Networks”<br />
Handbook of Wireless Networks and Mobile Computing<br />
Capítulo 18, Páginas 393-406<br />
In I. Stojm<strong>en</strong>ovic, editor.<br />
John Wiley & Sons, 2002.<br />
8