Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su...

64
Alicia Beriain Gil Francisco Javier Pérez Lázaro Facultad de Ciencia y Tecnología Grado en Matemáticas 2015-2016 Título Director/es Facultad Titulación Departamento TRABAJO FIN DE GRADO Curso Académico Matemáticas en un navegador GPS: algoritmos de camino más corto y cálculo de posición Autor/es

Transcript of Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su...

Page 1: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

Alicia Beriain Gil

Francisco Javier Pérez Lázaro

Facultad de Ciencia y Tecnología

Grado en Matemáticas

2015-2016

Título

Director/es

Facultad

Titulación

Departamento

TRABAJO FIN DE GRADO

Curso Académico

Matemáticas en un navegador GPS: algoritmos de camino más corto y cálculo de posición

Autor/es

Page 2: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

© El autor© Universidad de La Rioja, Servicio de Publicaciones, 2016

publicaciones.unirioja.esE-mail: [email protected]

Matemáticas en un navegador GPS: algoritmos de camino más corto y cálculode posición, trabajo fin de grado

de Alicia Beriain Gil, dirigido por Francisco Javier Pérez Lázaro (publicado por laUniversidad de La Rioja), se difunde bajo una Licencia

Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported. Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los

titulares del copyright.

Page 3: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

FacultaddeCienciayTecnología

TRABAJOFINDEGRADO

GradoenMatemáticas

MatemáticasenunnavegadorGPS:

algoritmosdecaminomáscortoycálculodeposición

Alumno:

AliciaBeriainGil

Tutores:

FranciscoJavierPérezLázaro

Logroño,Julio,2016

Page 4: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

II

Resumen

Aunque el desarrollo de los sistemas GPS es relativamente reciente, actualmente seencuentran muy extendidos debido a sus numerosas aplicaciones. En este trabajo seintenta dar una panoramica de las matematicas que hay en los navegadores GPS:desde como nuestro receptor es capaz de conocer la posicion en la que nos encon-tramos, hasta que algoritmos utiliza para decidir que camino debemos seguir parallegar a nuestro destino rapidamente.

En particular nos centraremos en los algoritmos clasicos de camino mas corto, ha-ciendo especial hincapie en los algoritmos de Dijkstra y A∗. Posteriormente, estu-diaremos los algoritmos suboptimos que funcionan mas rapido que los algoritmosclasicos. Los suboptimos encuentran una solucion desde el punto de vista practicoaceptable, aunque no sea el camino mas corto.

Por otro lado, trataremos de explicar de un modo basico cual es el funcionamiento deun sistema GPS y como es capaz de obtener y resolver las ecuaciones para localizarsu posicion.

Abstract

Even though the GPS system development is relatively new, nowadays they are veryextended because of its many applications. In this work we try to give an overviewof the mathematics behind GPS navigators: from how our receptor is able to locateour position, to which algorithms does it use to decide which way we should follow,in order to reach our destiny quickly.

In particular, we will talk about the classic shortest path algorithms, focusing inthe Dijkstra and A∗ algorithms. Then we will study the suboptimal algorithms,which work faster than the classic algorithms. The suboptimal algorithms find anacceptable practical solution, although it may not be the shortest path.

We will also try to explain the basic GPS system operation, and how it is capableof obtaining and solving the equations to locate its position.

Page 5: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

Indice general

1. Introduccion 1

2. Algoritmos de camino mas corto 7

2.1. Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2. Algoritmos clasicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1. Algoritmo de Dijkstra . . . . . . . . . . . . . . . . . . . . . . 8

2.2.2. Algoritmo de Dijkstra bidireccional . . . . . . . . . . . . . . . 16

2.2.3. Algoritmo voraz . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.2.4. Algoritmo A* . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3. Algoritmos suboptimos . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.3.1. Algoritmos que limitan el area de busqueda . . . . . . . . . . 34

2.3.2. Algoritmos que descomponen el problema de busqueda . . . . 35

2.3.3. Metodos de busqueda jerarquica . . . . . . . . . . . . . . . . . 36

3. Navegabilidad 47

III

Page 6: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

IV INDICE GENERAL

Page 7: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

Capıtulo 1

Introduccion

En este trabajo daremos una panoramica de las matematicas que se encuentran enlos navegadores GPS. En particular, para su funcionamiento, es necesario conocer laposicion en la que esta el receptor (posicionamiento GPS). Tambien es importantesaber que camino tomar para llegar al destino. Para ello se emplean algoritmos quecalculan la distancia mas corta (en km y tiempo) entre el punto que estamos ynuestro destino.

Es difıcil rastrear la historia sobre el problema del camino mas corto. Podemosimaginar que incluso en sociedades muy primitivas la busqueda de caminos cortosera esencial. En comparacion con otros problemas de optimizacion, la investigacionmatematica en el problema del camino mas corto comenzo relativamente tarde. Losmayores descubrimientos en este area se produjeron en la segunda mitad del sigloXX, dos de los algoritmos mas conocidos, el algoritmo de Dijkstra y el algoritmo A∗

se publicaron en el ano 1959 y en el ano 1968, respectivamente.

Existen diferentes tipos de problemas de camino mas corto; algunos calculan loscaminos desde un nodo a todos los nodos, como una variante del algoritmo deDijkstra, aunque solo los calcula en el caso de que el valor asociado a las aristassea siempre positivo. El algoritmo de Ford tambien determina la ruta mas cortadesde un nodo origen hasta los demas nodos, pero el valor asociado de las aristaspuede ser negativo. Este algoritmo se puede encontrar en el libro Graph Algorithmsde Shimon Even [5], cap.1. Tambien hay problemas que calculan las distancias mascortas entre todos los pares de vertices, como el algoritmo de Floyd que tambien sepuede encontrar en el libro anterior. Sin embargo, en este trabajo nos centraremosen los algoritmos de camino mas corto desde un origen hasta un destino.

Dijkstra en 1956, cuando trabajaba como programador en el Centro de Matematicasen Amsterdam, penso en el problema del camino mas corto para demostrar las

1

Page 8: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2 CAPITULO 1. INTRODUCCION

capacidades de un nuevo ordenador llamado ARMAC. Su objetivo era elegir tantoun problema, ası como una respuesta (que serıa producida por el ordenador) que laspersonas que no supieran sobre informatica pudieran entender. El diseno el algoritmodel camino mas corto y mas tarde lo implemento para ARMAC para un mapa detransporte ligeramente simplificado de 64 ciudades de los Paıses Bajos (de modo que6 bits fueran suficientes para codificar el numero de la ciudad), finalmente publicoel algoritmo en 1959 (ver [4]).

La idea detras del algoritmo de Dijkstra es que durante su ejecucion va expandiendo-se a los nodos que estan a una menor distancia del nodo inicial. Este algoritmo siem-pre encuentra la solucion optima, pero, si el grafo es grande el coste computacionales muy alto.

Otro algoritmo cuyo su coste computacional es menor y que siempre y cuando secumplan una serie de condiciones encuentra la solucion optima, es el algoritmo A∗.

En 1968 el investigador Nils Nilsson intento mejorar la planificacion del caminorealizado por el robot Shakey [19], un prototipo de robot que podıa moverse poruna habitacion con obstaculos. Este algoritmo de busqueda del camino mas corto,que Nilsson denomino A1, era una version mas rapida del algoritmo de Dijkstra paraencontrar el camino mas corto en un grafo. Bertram Raphael sugirio algunas mejorassignificativas para este algoritmo llamando a la version mejorada A2. Posteriormente,Peter E. Hart introdujo pequenos cambios en A2 obteniendo asi el algoritmo A∗. Elalgoritmo A∗ fue publicado en el ano 1968 (ver [9]).

Figura 1.1: Sven Wahlstrom y Nils Nilsson con Shakey

Page 9: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

3

El algoritmo A∗ no solo tiene en cuenta la distancia al nodo inicial, sino que tambienemplea una heurıstica para tener en cuenta la distancia al nodo final, de esta formareduce el numero de nodos a estudiar respecto al algoritmo de Dijkstra.

Otros algoritmos que requieren menor esfuerzo computacional que el de Dijkstra yel A∗ son los algoritmos jerarquicos, sin embargo no pueden asegurar la obtencionde una solucion optima. La idea detras de estos algoritmos es que dividen las aristasen jerarquıas, consiguiendo ası estudiar menos nodos. Estos son los algoritmos queactualmente emplean los GPS (ver [8], pag. 123).

Recientemente se han descubierto unos algoritmos que son igual de rapidos que losalgoritmos jerarquicos y ademas sı aseguran la obtencion de una solucion optima,estos son los denominados algoritmos exactos. Para ello hacen un preprocesado de lacarretera, ası en el momento en el que le soliciten un camino concreto lo encontrararapidamente. Estos algoritmos no se trataran en este trabajo, si se quiere obtenerinformacion sobre ellos se puede consultar el siguiente el libro [14], pag.117-40.

El problema del camino mas corto tiene varias aplicaciones como por ejemplo, si losvertices del grafo representan los estados de un puzle como el Cubo de Rubik y cadaarista dirigida corresponde a un simple movimiento o giro, los algoritmos del caminomas corto se pueden usar para encontrar la solucion que utiliza el menor numero demovimientos posibles. Sin embargo, si tomamos los nodos como routers y las aristascomo los enlaces entre los routers, tambien se pueden emplear para estudiar la mejorruta que deben seguir los paquetes a traves de la red para llegar a su destino.

Como ya he dicho, en el trabajo tambien daremos una panoramica del GPS. Elsistema de posicionamiento global (GPS) es un sistema que permite determinar laposicion de un objeto en la tierra. El sistema fue desarrollado por el Departamentode Defensa de los Estados Unidos a principios de 1970 y se declaro con capacidadpara funcionar en 1995. Para determinar las posiciones el sistema GPS utiliza 24satelites, hay 4 satelites en cada una de las seis orbitas entre las que estan repartidos.En primer lugar, el GPS fue desarrollado como un sistema para cubrir necesidadesmilitares de Estados Unidos. Sin embargo, posteriormente se puso a disposicion dela poblacion civil, y es ahora un sistema que puede ser accedido tanto por militarescomo por civiles. Hasta el 2 de mayo de 2000, debido al caracter militar del sistemaGPS, el Departamento de Defensa de los EE.UU. aplico la disponibilidad selectiva(S/A), un sistema que incluıa un cierto grado de error aleatorio en la senal delsatelite, que podıa variar de los 15 a los 100 m. Aunque actualmente no se induzcaese error, la precision del sistema GPS depende de muchos otros factores y erroresque comentare en el trabajo.

Page 10: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

4 CAPITULO 1. INTRODUCCION

El sistema GPS consta de tres elementos: los satelites (los cuales acabamos de ex-plicar), los receptores GPS y los segmentos de control. Los receptores GPS recibenla senal de los satelites. Los satelites tambien informan a los receptores en que mo-mento ha sido enviada la senal y estos calculan su distancia al satelite mediante eltiempo que ha tardado la senal en llegar hasta ellos. Los receptores una vez quetienen la distancia a los satelites, mediante el uso de la trilateracion obtienen suposicion. Los receptores de GPS solo son capaces de recibir informacion pero no detransmitirla. Las estaciones de tierra encargadas de proporcionar informacion a lossatelites se denominan segmentos de control.

La antigua Union Sovietica construyo un sistema similar al GPS denominado GLO-NASS, ahora gestionado por la Federacion Rusa. Actualmente, la Union Europeaesta desarrollando su propio sistema de posicionamiento por satelite, denominadoGalileo. El sistema se espera volver a poner en marcha en el 2020, despues de su-frir una serie de reveses tecnicos y polıticos. A su vez, la Republica Popular Chinaesta implementando su propio sistema de navegacion, conocido como Beidou, cuyossatelites solamente alcanzaran a China y a sus paıses vecinos. Por otro lado, Indiatambien esta desarrollando su propio sistema de navegacion bautizado como IRNSS,que solamente alcanzara los paıses alrededor de oceano Indico.

Dividiremos el trabajo en los siguientes apartados:

En el segundo capıtulo, hablaremos de los algoritmos de camino mas corto, centrando-nos en el caso de los caminos desde un origen hasta un destino. Para ello, primerointroduciremos unas ideas generales sobre grafos, y a continuacion, pasaremos ahablar de los algoritmos de camino mas corto, dividiendolos entre algoritmos clasi-cos y suboptimos. Dentro de los algoritmos clasicos me centrare en el algoritmo deDijkstra, el algoritmo bidireccional de Dijkstra, el algoritmo voraz y el algoritmo A∗.Dentro de los algoritmos suboptimos, estudiaremos aquellos que limitan el area debusqueda, los que descomponen el problema y los que limitan el numero de aristasestudiadas realizando una jerarquıa de aristas, de este ultimo tipo hablaremos enprofundidad.

Page 11: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

5

Para obtener el camino mas corto entre dos puntos, previamente es necesario conocersus coordenadas, por lo tanto, en el tercer capıtulo estudiaremos como los recepto-res GPS calculan sus coordenadas. Para ello, explicaremos por encima el sistemade satelites GPS y como los receptores mediante trilateracion, es decir, usando ladistancia a diferentes satelites pueden obtener su posicion. Hablaremos de los dis-tintos factores que pueden inferir un error en el calculo de la distancia al satelite,centrandonos en el inducido por la diferencia entre la hora del reloj del receptor y delsatelite. Mediante las distancias a los satelites, los receptores obtienen un sistemade ecuaciones cuyas soluciones seran sus coordenadas. Explicaremos como solucio-nar este sistema mediante un metodo iterativo y el de Bancroft, sin embargo, noestudiaremos ninguno de estos dos metodos en profundidad, ya que se sale de losobjetivos de este trabajo. En este capıtulo me he basado en el artıculo [17] y en ellibro [11], capıtulos 1-6.

Page 12: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

6 CAPITULO 1. INTRODUCCION

Page 13: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

Capıtulo 2

Algoritmos de camino mas corto

Es posible encontrar una gran variedad de algoritmos de camino mas corto. Sinembargo, como he nombrado en la introduccion, en este trabajo nos centraremos enlos que calculan la ruta mas corta entre dos puntos predeterminados, porque ese esel caso con el que trabajan los GPS.

2.1. Grafos

Un grafo G(V,E) es una estructura que consiste en una serie de vertices V =v1, v2, ... y un conjunto de aristas E = e1, e2, ..., cada arista e tiene como extre-mos un par de vertices u, v, que no tienen por que ser distintos.

Un camino es una secuencia de aristas e1, e2, ... tal que:

(1) ei y ei+1 tienen un extremo en comun

(2) Si ei no es un bucle y no es la primera o la ultima arista entonces comparte unode sus extremos con ei−1 y el otro con ei+1

Dos vertices u y v se dice que estan conectados si existe un camino cuyo verticeinicial es v y cuyo vertice final es u. Un circuito es un camino cuyo vertice inicial yfinal son el mismo. Un camino es denominado simple si ningun vertice aparece masde una vez.

Un digrafo (o grafo dirigido) tiene una definicion similar a un grafo excepto que elpar de vertices estan ordenados. El primer extremo se denomina vertice de saliday el segundo se denomina vertice de llegada. La arista (u

e−→ v) e se dice que estadirigida del vertice u al vertice v. Las aristas que tienen el mismo vertice de salida

7

Page 14: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

8 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

y de llegada se denominan paralelas.

Un camino dirigido es una secuencia de aristas e1, e2, .. de modo que el vertice finalde llegada de ei−1 es el vertice inicial de ei.

En el caso del camino mas corto, un nodo representa una interseccion de carreteraso un punto sin salida y una arista representa el segmento de una carretera que unedos intersecciones o una interseccion y un punto sin salida.

2.2. Algoritmos clasicos

Por algoritmos clasicos nos referimos a aquellos algoritmos mas conocidos. Surgie-ron a mediados del siglo XX y en ellos se apoyan los algoritmos mas modernos yavanzados.

2.2.1. Algoritmo de Dijkstra

El GPS se encarga de encontrar la ruta mas corta entre dos lugares definidos por elusuario, empleando carreteras que tienen una cierta longitud. Para representar estoen forma de grafo, este debe ser finito y dirigido. Ademas, cada arista e tiene unpeso que se corresponde con la distancia l(e) ≥ 0.

Uno de los algoritmos para calcular la ruta mas corta entre un nodo origen o source sy un nodo destino o target t, conectados mediante aristas, con un peso positivo es elalgoritmo de Dijkstra. Recordemos de la introduccion que este algoritmo fue publi-cado en 1956 por Dijkstra, intentando demostrar las capacidades de un ordenador.El algoritmo de Dijkstra consta de los siguientes pasos (ver [5]):

1. λ(s) = 0 y para todo v 6= s, λ(v) =∞. Donde λ(x) es la distancia que el algoritmoha encontrado hasta el momento del vertice s a un vertice x.

2. T = V .

3. Sea u un vertice en T para el cual λ(u) es mınimo.

4. Si u = t paramos.

5. Para cada arista ue−→ v, si v ∈ T y λ(v) > λ(u)+ l(e) entonces λ(v) = λ(u)+ l(e).

6. T = T − u y volvemos al paso 3.

Teorema 1. En el algoritmo de Dijkstra si λ(v) es finito entonces existe un camino

Page 15: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 9

de s a v cuya longitud es λ(v)

Demostracion. Sea u el vertice que le ha asignado a v su valor actual λ(v), dondeexiste una arista e, u

e−→ v. Tras esta asignacion el valor de λ(u) no varıa, ya queen el paso previo u ha sido eliminado de T , por lo tanto a partir de entonces λ(u)queda fija.

A continuacion, buscamos el vertice el cual le ha aportado a u su valor λ(u), yrepitiendo este proceso hacia atras, encontramos un camino de s a v cuya longitud esλ(v). La busqueda hacia atras encuentra en cada paso un vertice que ha abandonadoT previamente, por ello ningun vertice en este camino hacia atras puede repetirse.Este camino solo puede finalizar en s, cuyo valor λ(s) hemos obtenido en la primeraiteracion.

Teorema 2. Sea δ(u) la longitud mas corta de s a u, veamos que cuando u es elegidopara abandonar T entonces δ(u) = λ(u). En consecuencia, el algoritmo de Dijkstrafunciona correctamente.

Demostracion. Lo demostraremos por induccion, aplicandola en el orden en el quelos vertices abandonan el conjunto T . El primer vertice en abandonar es s y porsupuesto δ(s) = λ(s) = 0.

Asumiendo que la propiedad λ(n) = δ(n) se cumple para todos los vertices quehan abandonado T antes que u. Si λ(u) = ∞, tomemos como u′ el primer verticeelegido (paso 3) cuya λ(u′) es infinito en ese momento. Claramente, para todo v enT , λ(v) =∞, y para todos los vertices v′ en V − T , λ(v′) es finita. Por lo tanto, nohay ninguna artista cuyo vertice inicial esta en V − T y cuyo vertice final esta enT , porque en el caso de que la hubiera no todos los λ(v) =∞ . En consecuencia, nohay ningun camino de s a u.

Si λ(u) es finito, entonces por el Teorema 1, λ(u) es la longitud de algun caminode s a u. Por lo tanto λ(u) ≥ δ(u), ya que δ(u) es el camino mas corto de s a u.Debemos ver que es imposible que se cumpla que λ(u) > δ(u). Sea s = v0

e1−→ v1e2−→

· · · vk−1ek−→ vk = u el camino mas corto de s a u, entonces el camino mas corto de

s a cualquier vi con i < k sera s = v0e1−→ v1

e2−→ · · · vi−1ei−→ vi, ya que si hubiera un

camino mas corto de s a vi, tambien podrıamos encontrar un camino mas corto des a u.

Page 16: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

10 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

Por lo tanto, para cada i = 0, 1, ..., k

δ(vi) =i∑

j=1

l(ej).

Sea vi el vertice mas a la derecha del camino que abandona T antes que u. Porhipotesis inductiva

λ(vi) = δ(vi) =i∑

j=1

l(ej).

Supongamos que vi+1 6= u y sea vi+1 el vertice unido a vi mediante la arista ei+1,entonces λ(vi+1) ≤ λ(vi) + l(ei+1), al ejecutar el algoritmo de Dijkstra despues deque vi haya abandonado T . Como las λ, en el caso de que cambien su valor, solopueden decrecer, cuando u es elegido, λ(vi+1) sigue satisfaciendo esta desigualdad.Por ello tenemos:

λ(vi+1) ≤ λ(vi) + l(ei+1) = δ(vi) + l(ei+1) =i+1∑j=1

l(ej) = δ(vi+1) ≤ δ(u)

y si δ(u) < λ(u), u no deberıa haber sido elegido para abandonar T por tenerun λ mayor que vi+1, por lo tanto δ(u) = λ(u). En el caso de que vi+1 = u, elmismo argumento muestra que λ(u) ≤ δ(u), y como antes habıamos afirmado queλ(u) ≥ δ(u) entonces δ(u) = λ(u).

En la siguiente figura podemos ver como se expande el algoritmo de Dijkstra. Estealgoritmo primero se expande a los nodos que tiene mas cercanos a su alrededor, acontinuacion a los siguientes mas cercanos... De este modo, el algoritmo de Dijkstrase expande en forma de bola (ver [12], 260-269).

Page 17: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 11

Ejemplo algoritmo de Dijkstra

Tomemos como ejemplo el grafo de la Figura 1, G(V,E) donde V = s, t, a, b, c, d yE = e1, e2, e3, e4, e5, e6, e7, e8, en el cual queremos encontrar el camino mas cortodel vertice s al vertice t.

Figura 2.1: Grafo dirigido

Comenzamos a aplicar el algoritmo de Dijkstra

Primera iteracion

Page 18: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

12 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

1. λ(s) = 0 y para todo v 6= s, λ(v) =∞.

2. T = s, a, b, c, d, t.

3. s es el vertice pare el cual λ(s) es mınimo.

5. λ(a) = 30, λ(c) = 55, λ(d) = 40.

6. T = a, b, c, d, t.

Segunda iteracion

3. a es el vertice pare el cual λ(a) es mınimo.

5. λ(b) = 50, λ(c) = 55, λ(d) = 40.

6. T = b, c, d, t.

Figura 2.2: Segunda iteracion algoritmo de Dijkstra

Tercera iteracion

3. d es el vertice pare el cual λ(d) es mınimo.

5. λ(b) = 50, λ(c) = 55, λ(t) = 70.

6. T = b, c, t.

Page 19: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 13

Figura 2.3: Tercera iteracion algoritmo de Dijkstra

Cuarta iteracion

3. b es el vertice pare el cual λ(b) es mınimo.

5. λ(c) = 55, λ(t) = 70.

6. T = c, t.

Figura 2.4: Cuarta iteracion algoritmo de Dijkstra

Quinta iteracion

3. c es el vertice pare el cual λ(c) es mınimo.

5. λ(t) = 70.

Page 20: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

14 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

6. T = t.

Figura 2.5: Quinta iteracion algoritmo de Dijkstra

Sexta iteracion

3. t es el vertice pare el cual λ(t) es mınimo.

4. Paramos.

Figura 2.6: Sexta iteracion algoritmo de Dijkstra

Al observar el grafico podemos ver que la ruta elegida, aquella formada por lasaristas e3 y e7, es efectivamente el camino optimo, ya que ninguno de los otrosposibles caminos proporciona una distancia menor.

Complejidad algoritmo de Dijkstra

Page 21: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 15

Estudiemos ahora la complejidad del algoritmo de Dijkstra (ver [5], cap.1). En elpaso 3 hay que encontrar u, un vertice en T para el cual λ(u) es mınimo, esto puedeser realizado en |T | − 1 comparaciones. Al comienzo T = V , pero T disminuye unnodo en cada iteracion, por lo tanto la busqueda es repetida |V | veces. En conclusion,el tiempo total invertido en el paso 3 es O(|V |2). En el paso 5, si tenemos en cuentatodas las iteraciones, cada arista va a ser recorrida una sola vez por lo tanto el tiempoinvertido es O(|E|). En nuestro caso no tiene sentido que haya dos carreteras quetengan el mismo lugar de partida y el mismo lugar de llegada, ni que haya unacarretera que parta de un lugar y vuelva al mismo lugar, entonces el grafo queconsideramos no tendra aristas paralelas ni bucles, entonces |E| ≤ |V | · (|V | − 1).Por consiguiente, la complejidad del algoritmo es O(|V |2).

Nota 1. Utilizando cola de prioridad (por ejemplo un montıculo), la complejidaddel algoritmo de Dijkstra es O(|E| log |V |).

Estudiemos ahora la complejidad del algoritmo de Dijkstra, expresando T como unmontıculo binario mınimo en el cual el valor del nodo padre es siempre menor alde sus nodos hijos. Es decir, ordenaremos T en forma de arbol binario en el que elvertice padre sera aquel con la λ menor.

En el primer paso para formar el montıculo inicial habra que recorrer todos losvertices, por lo tanto tiene una complejidad de O|V |. En el paso 3 hay que encontraru, un vertice en T para el cual λ(u) es mınimo, pero como T esta ordenado de menora mayor este paso tiene una complejidad de O(1). En el paso 5, si tenemos en cuentatodas las iteraciones, cada arista va a ser recorrida una sola vez, por consiguiente,el tiempo invertido es O(|E|). En este paso, si se modifica el valor de alguna λ elmontıculo queda desordenado. Reordenar el montıculo tendra una complejidad deO(log |V |), ya que como mucho habra que intercambiar los nodos modificados unnumero de veces igual a la altura del montıculo que es log |V |. En consecuancia lacomplejidad en este paso sera de O(|E| log |V |). En el paso 6 una vez eliminado elnodo padre, como esa posicion no debe quedar vacıa, lo sustituimos por el ultimonodo del montıculo. Si no se mantiene el orden del montıculo hay que restaurarlo,para ello se intercambia el nuevo nodo con el menor de sus hijos cuantas veces seanecesario, que como maximo sera la altura del montıculo log |V |. Teniendo en cuentatodas la iteraciones este paso se realiza un maximo de |V | veces, el tiempo totalinvertido es O(|V | log |V |). Sumando las complejidades de los diferentes pasos nosqueda que la complejidad total es O(|V |)+O(|E| log |V |)+O(|V | log |V |) = O((E+V ) log |V |), ya que el numero de vertices es alto | log V | ≥ 0. Teniendo en cuenta

que en cualquier grafo en el que no haya vertices aislados se cumple que |V |2≤ |E|,

entonces en nuestro caso podemos afirmar que |V | ≤ 2|E| ⇒ |E| + |V | ≤ 3|E|, porlo tanto, O((E + V ) log |V |) ≤ O((3|E|) log |V |) = O(|E| log |V |). Ası, concluimosque la complejidad total es O(|E| log |V |).

Page 22: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

16 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

2.2.2. Algoritmo de Dijkstra bidireccional

El algoritmo de busqueda bidireccional alterna entre dos algoritmos de Dijkstra,uno del nodo inicial s al nodo destino t, llamado busqueda hacia delante y el otrollamado busqueda hacia atras, del nodo destino t al nodo origen s. Observar que noes necesario que las aristas esten en ambas direcciones, simplemente en la busquedahacia atras consideraremos las aristas en sentido contrario. El algoritmo va alter-nando ambas busquedas hasta que sacan el mismo nodo del conjunto T (no tienepor que ser a la vez), entonces se para la ejecucion del algoritmo. En este puntoel camino mas corto puede ser encontrado recorriendo los predecesores (en ambasdirecciones) del nodo en el que se han encontrado. En la siguiente figura se puedever el concepto y su eficacia comparado con el algoritmo de Dijkstra.

En el caso ideal la busqueda en el espacio consta de dos cırculos, cada uno deellos con un radio igual a dst/2, representando la mitad de la distancia entre s yt. La complejidad temporal del algoritmo depende del numero de nodos, los cualesse consideran proporcionales al area de busqueda del cırculo. Como el area totalde los cırculos es proporcional a d2

st/2 la busqueda bidireccional reduce el esfuerzocomputacional al 50 % comparado con la busqueda unidireccional, donde el area delcırculo es proporcional a d2

st (ver [12], cap.14).

2.2.3. Algoritmo voraz

Un algoritmo voraz o greedy es aquel que, para resolver un determinado problema,en cada paso elege la opcion optima con la esperanza de llegar a una solucion generaloptima.

Page 23: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 17

En el caso de los grafos G(V,E) en el que cada arista e ∈ E tienen una longitudasociada l(e), en cada vertice v ∈ V , se elige tomar la arista asociada que tengamenor longitud.

Cada arista e se evalua una unica vez, siendo descartada o seleccionada, de tal formaque si es seleccionada forma parte de la solucion, y si es descartada, no forma partede la solucion ni volvera a ser considerada para la misma. De ahı viene su nombre,voraz.

Al contrario que con otros metodos algorıtmicos, no siempre es posible dar unasolucion a un problema empleando un algoritmo voraz.

Ejemplo algoritmo voraz

Tomemos como ejemplo el grafo anterior G(V,E) donde V = s, t, a, b, c, d y E =e1, e2, e3, e4, e5, e6, e7, e8, en el cual queremos encontrar el camino mas corto delvertice s al vertice t.

Figura 2.7: Grafo dirigido

El algoritmo voraz parte del vertice s donde toma la arista con menor longitudasociada, que sera e1, luego llega al vertice a donde toma la arista e4, a continuacional vertice b donde toma la arista e6 y finalmente al vertice c donde toma la arista e8

y llega a t.

Page 24: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

18 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

Figura 2.8: Solucion algoritmo voraz

En consecuencia, la solucion es aquella formada por las aristas e1, e4, e6 y e8 cuyasuma de longitudes serıa 90. Sin embargo, si observamos el grafico cualquiera de losotros posibles caminos serıa mejor que este.

Este ejemplo es un caso en el que el algoritmo voraz no funciona correctamente, yaque elige la ruta mas larga de entre todas las posibles rutas. Pero aun ası este ejem-plo esta preparado para que llegue a una solucion, no obstante, podrıa no obtenerninguna solucion.

Complejidad algoritmo Voraz

El algoritmo voraz como maximo va a recorrer todos los vertices de V antes deencontrar la solucion, por lo tanto tiene una complejidad lineal O(|V |).

Tambien podrıa existir otro algoritmo voraz que se mueva al nodo que esta mascerca del nodo destino empleando para ello una heurıstica.

2.2.4. Algoritmo A*

El algoritmo A∗ es un algoritmo de busqueda que encuentra el camino de menorlongitud entre dos puntos, siempre y cuando se cumplan una serie de condiciones.

El algoritmo A∗ se dice que es un algoritmo informado, ya que en cada paso decidimosque rama seguir dependiendo de una regla o heurıstica. La heurıstica es una funcionque nos da informacion sobre ciertas partes del grafo, aunque todavıa no hayansido estudiadas. El uso de una heurıstica permite resolver un problema de maneramas rapida que los algoritmos no informados, como pueden ser el de Dijkstra, el

Page 25: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 19

bidireccional o el voraz.

Como hemos visto en la introduccion este algoritmo se realizo para implementar elmovimiento de un robot y fue publicado por E. Hart et al. en 1968 (ver [9] y [10]).Este algoritmo se suele emplea en inteligencia artificial y es frecuentemente usadoen juegos (para el movimiento de un personaje), en movimientos de robots o en laresolucion de rompecabezas.

Es un algoritmo que tiene un cierto paralelismo con el algoritmo de Dijkstra. Partedel nodo s y se expande visitando los nodos adyacentes a s. Los nodos expandidosse introducen en el conjunto abierto T . A continuacion se elegira, de los nodos deT , aquel que tenga una funcion de evaluacion f mınima y se pasara del conjunto Tal conjunto cerrado V . Se exploraran los nodos adyacentes al nodo elegido siendoanadidos al conjunto T . Cuando el algoritmo se expanda a un nodo cuya f ya hasido calculada, si el valor de la nueva f es menor, se actualizara el valor de la f .Una de las principales diferencias con Dijkstra es que si un nodo esta en el conjuntocerrado y el valor de su f disminuye, este sale del conjunto cerrado V y vuelve alconjunto abierto T . La otra diferencia principal es que la funcion de evaluacion f(n)del algoritmo A∗ se calcula de la siguiente forma f(n) = g(n) + h(n), donde:

g(n) es la distancia mas corta del nodo inicial al nodo n encontrada hasta elmomento con el algoritmo. Es similar a la λ de Dijkstra.

h(n) es la estimacion de la distancia desde el nodo actual n hasta el final.

Se trata de un algoritmo heurıstico, ya que una de sus principales caracterısticas esque hace uso de h(n) una funcion heurıstica, h(n) ≥ 0 porque es la distancia de n alnodo destino. Esta expresa la idea de cuan lejos se esta de alcanzar el nodo destino,y de su correcta eleccion dependera en gran medida el rendimiento del algoritmoA*. Ası, en el caso de que esta funcion heurıstica no sobrestime nunca el valor de ladistancia real entre el nodo y el destino, se dice que es admisible, y esta garantizada lasolucion optima. Por el contrario, en el caso en que la funcion no sea admisible, no sepuede garantizar el hallazgo de la solucion optima para el problema del camino mascorto. La cause por la que se les llama funciones admisibles es porque un algoritmose denomina admisible si garantiza encontrar un camino optimo del nodo origen sal nodo destino t.

Si f(n) dependiera solo de g(n) entonces serıa como el algoritmo de Dijkstra, sinembargo si f(n) solo dependiera de h(n) se parecerıa al segundo algoritmo voraz,del cual he hablado anteriormente.

Para calcular la ruta mas corta entre dos vertices s y t, conectados mediante aristas,con un peso positivo el algoritmo A* emplea los siguientes pasos:

Page 26: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

20 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

1. Establecer el nodo s como origen. Hacer f(s) = g(s) + h(s) = 0 + h(s) y anadirel nodo s al conjunto abierto T .

2. Seleccionar el nodo i del conjunto T que presente menor valor de la funcion f(i).En el caso de que haya un empate entre las menores f(i) se escoge una u otraarbitrariamente, pero siempre en favor del nodo t.

3. Si i = t parar y pasar i a V .

4. Si i 6= t pasar i de T a V y analizar los nodos vecinos j de i. Para cada enlace(i, j) con coste cij calcular: f(j) = g(i) + cij + h(j). Si f(j) no estaba calculadoanadir el nodo j a T . Si j ∈ T entonces f(j) ya estaba calculado y si su valor eramayor que el actual, actualizar f(j). Si j ∈ V y el f(j) actual es menor que cuandoj fue marcado como cerrado, actualizar f(j) y pasar a j de V a T . Volver al paso 2.

Ejemplo algoritmo A*

Tomemos como ejemplo el grafo de la Figura 2.2.4,G(V,E) donde V = s, a, b, c, d, e, f, g, ty E = e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, en el cual queremos encontrar elcamino mas corto del vertice s al vertice t. Tomaremos como heurıstica h(n) ladistancia en lınea recta (distancia euclıdea) al nodo t y como ci,j la longitud de laarista ek que une al vertice i y al vertice j.

Comenzamos a aplicar el algoritmo A*

Primera iteracion

1. f(s) = 366 y T = s.

2. s es el vertice pare el cual f(s) es mınimo, V = s.

Page 27: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 21

4. f(a) = 146 + 380 = 526, f(b) = 329 + 118 = 447, f(c) = 140 + 253 = 393 yT = a, b, c.

Segunda iteracion

2. c es el vertice pare el cual f(c) es mınimo, V = s, c.

4. f(d) = 140+80+193 = 413, f(e) = 140+99+178 = 417, f(a) = 526, f(b) = 447y T = a, b, d, e.

Tercera iteracion

2. d es el vertice pare el cual f(d) es mınimo, V = s, c, d.

4. f(f) = 140 + 80 + 146 + 160 = 526, f(g) = 140 + 80 + 97 + 98 = 415, f(a) = 526,f(b) = 447, f(e) = 417 y T = a, b, e, f, g.

Page 28: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

22 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

Cuarta iteracion

2. g es el vertice pare el cual f(g) es mınimo, V = s, c, d, g.

4. f(t) = 140+80+97+101 = 418, f(a) = 526, f(b) = 447, f(e) = 417, f(f) = 526y T = a, b, e, f, t.

Quinta iteracion

3. e es el vertice pare el cual f(e) es mınimo, V = s, c, d, g, e.

4. f(a) = 526, f(b) = 447, f(f) = 526, f(t) = 418 y T = a, b, f, t.

Page 29: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 23

Sexta iteracion

2. t es el vertice pare el cual f(t) es mınimo.

3. Paramos.

Al observar el grafico podemos ver que la ruta elegida, aquella formada por lasaristas e3, e7, e9 y e12 es efectivamente el camino optimo, ya que ninguno de losotros posibles caminos proporciona una distancia menor.

Lema 1. Sea g(n) la longitud de un camino optimo de s a n. Para cualquier nodono cerrado, es decir n 6∈ V y para cualquier camino optimo P de s a n, existe unnodo n′ abierto, es decir n′ ∈ T , en P tal que g(n′) = g(n′).

Page 30: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

24 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

Demostracion. Sea P = (s = n0, n1, n2, ..., nk = n). Si s ∈ T , sea n′ = s entoncesel lema es trivial porque g(s) = g(s) = 0. Ahora supongamos que s ∈ V . Sea∆ el conjunto de todos los nodos cerrados ni que pertenecen a P para los cualesg(ni) = g(ni). ∆ no es un conjunto vacıo ya que por hipotesis s ∈ ∆. Sea n∗ elelemento de ∆ con ındice mayor. Claramente n∗ 6= n porque n no es cerrado. Sean′ el sucesor de n∗ en P . (Posiblemente n′ = n.) Ahora g(n′) ≤ g(n∗) + cn∗,n′ porla definicion de g, g(n∗) = g(n∗), porque n∗ ∈ ∆, y g(n′) = g(n∗) + cn∗,n′ porque Pes el camino optimo. Por lo tanto g(n′) ≤ g(n′). Pero en general g(n′) ≥ g(n′) yaque la longitud menor de s a n obtenida en cualquier momento no es menor que lalongitud de un camino optimo de g(n′). Entonces g(n′) = g(n′), ademas, n′ debe serabierto por la definicion de ∆.

Denotamos por h(n) la longitud de un camino optimo de n al nodo destino t y seaf(n) la longitud de un camino optimo de s a t, restringido a pasar por n.

Corolario 1. Suponiendo que h(n) ≤ h(n) para todo n (heurıstica admisible) y queA∗ no ha terminado. Entonces para cualquier camino optimo P de s al nodo destinot, existe un nodo abierto n′ en P con f(n′) ≤ f(s).

Demostracion. Por el Lema anterior existe un nodo abierto n′ en P con g(n′) =g(n′), entonces por definicion de f

f(n′) = g(n′) + h(n′) = g(n′) + h(n′) ≤ g(n′) + h(n′) = f(n′)

Pero como P es un camino optimo se tiene que f(n′) = f(s) para todo n′ ∈ P .

Teorema 3. Sea s el nodo origen y t el nodo destino y l el camino mas corto entres y t. Si h(n) ≤ h(n) para todo n, entonces el algoritmo A∗ finaliza y f(t) = l.

Demostracion. Para probar este teorema asumiremos que estamos trabajando conun grafo que tiene un numero de aristas finito y que el coste asociado a las aristas esmayor que 0, por lo tanto, podemos afirmar que el peso asociado a todas las aristases mayor que un δ > 0.

Probaremos este teorema asumiendo lo contrario, es decir, que cuando el algoritmoA∗ termina, no encuentra el camino optimo al nodo destino. Podemos distinguir trescasos: 1) el algoritmo finaliza en un nodo que no es el destino, 2) el algoritmo no

Page 31: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 25

termina, 3) el algoritmo termina en el nodo destino pero mediante un camino queno es el optimo.

Caso 1

El algoritmo termina en un nodo que no es el destino, en este caso contradice lacondicion de parada del algoritmo por lo tanto debe ser descartado inmediatamente.

Caso 2

El algoritmo no termina. Sea t el nodo destino, accesible desde s en un numero finitode pasos, con f(s) el mınimo coste asociado. Como el coste asociado a cualquierarista es mayor que δ, para cualquier nodo n mas alejado que M = f(s)/δ pasosde s, tenemos f(n) ≥ g(n) ≥ g(n) > Mδ = f(s). Claramente ningun nodo n maslejano de M pasos va a ser expandido, ya que son mas lejanos que el nodo destinot. Por el corolario 1, va a haber algun nodo abierto n′ en un camino optimo tal quef(n′) ≤ f(s) ≤ f(n), entonces por el paso 2, el algoritmo A∗ va a elegir n′ en vezde n. Que el algoritmo falle al finalizar solo puede ser provocado por la continuareapertura de nodos a M pasos de s. Sea χ(M) el conjunto de nodos accesibles enM pasos desde s y sea v(M) el numero de nodos en χ(M). Ahora cualquier nodon ∈ χ(M) puede ser reabierto un numero finito de veces, digamos ρ(n,M), porquesolo hay un numero finito de caminos de s a n pasando solo a traves de nodos deχ(M). Sea

ρ(M) = maxn∈χ(M)ρ(n,M)

el maximo numero de veces que un nodo perteneciente a χ(M) puede ser reabierto.Por lo tanto, despues de como mucho v(M)ρ(M) expansiones, todos los nodos enχ(M) van a ser cerrados para siempre. Y como ningun nodo fuera de χ(M) puedeser expandido el algoritmo debe finalizar.

Caso 3

El algoritmo termina en el nodo destino pero sin obtener el camino optimo. Supon-gamos que el algoritmo A∗ termina en el nodo destino t con f(t) = g(t) > f(s). Peropor el corolario 1 existe justo antes de terminar un nodo abierto n′ en un caminooptimo con f(n′) ≤ f(s) ≤ f(t). Entonces en el paso 2, n′ hubiera sido seleccionadoen vez de t, contradiciendo el hecho de que el algoritmo termine.

Heurısticas consistentes y admisibles

El algoritmo de Dijkstra aplicado al problema de encontrar el camino mas corto de unnodo inicial a un nodo destino, que estan a un distancia D, acaba examinando todoslos nodos a una distancia D del nodo inicial. Lo podemos visualizar geometricamentedibujando un cırculo, centrado en el nodo inicial con la distancia mas corta del nodoinicial al destino como radio. El algoritmo de Dijkstra explorara todos los nodos

Page 32: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

26 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

dentro del cırculo. La parte en la que busca a lo largo del camino mas corto esnecesaria, pero el resto es trabajo perdido (ver [18]).

La idea basica del algoritmo A∗ es cambiar las distancias en el grafo de tal formaque los caminos mas cortos no cambien, pero que los vertices, que no estan en elcamino mas corto, parezcan mas lejanos del nodo inicial, causando que menos nodossean explorados. El modificar las distancias hace que el cırculo sea distorsionado enun sentido que esperemos que lo haga menor.

Por ello, la funcion de evaluacion f(n) del algoritmo A∗ no depende unicamente dela g(n), ya que en ese caso explorarıa los mismos nodos que el algoritmo de Dijkstra,sino que tambien depende de una h(n) que suma la distancia desde el nodo n hasta

Page 33: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 27

el final. Para que el algoritmo A∗ encuentre el camino optimo la h(n) debe ser unaheurıstica admisible.

Como ya hemos nombrado anteriormente, h(n) sera una heurıstica admisible en elcaso de que la estimacion de la longitud de alcanzar el nodo objetivo desde el nodon nunca sea mayor que la menor longitud posible, es decir, h(n) ≤ h(n), donde h(n)es la longitud mınima desde un nodo n hasta el nodo objetivo.

Una heurıstica h(n) es consistente si, para cada nodo n y cada sucesor n′ de n elcoste estimado de alcanzar el objetivo desde n no es mayor que la longitud de laarista e que va de n a n′, mas el coste estimado de alcanzar el objetivo desde n′:

h(n) ≤ l(e) + h(n′)

Esto forma una desigualdad triangular general, que especifica que cada lado de untriangulo no puede ser mas largo que la suma de los otros dos lados. En nuestro casoel triangulo esta formado por n,n′ y el objetivo.

Mientras que todas las heurısticas consistentes son admisibles, no todas las heurısti-cas admisibles son consistentes. Sea h una heurıstica consistente que cumple queh(t) = 0 y sea n

e1−→ v1e2−→ v2 · · · vk−1

ek−→ t el camino mas corto de n a t. Entonces te-nemos que h(n) ≤ l(e1)+h(v1), h(v1) ≤ l(e2)+h(v2), ... , h(vk−1) ≤ l(ek)+h(t) por lotanto combinando las desigualdades anteriores obtenemos que h(n) ≤ l(e1)+ l(e2)+... + l(ek) + h(t), pero como h(t) = 0 tenemos que h(n) ≤ l(e1) + l(e2) + ... + l(ek)entonces h(n) es menor que la longitud mınima desde un nodo n hasta el nodoobjetivo y es un heurıstica admisible.

Veamos un ejemplo de una heurıstica admisible y no consistente. Si tomamos h(n) =6 y h(n′) = 4 en el siguiente triangulo la heurıstica sera admisible pero no consistente.

Veamos que cuando la heurıstica es consistente, el algoritmo A∗ no reabre ningunnodo que ya este en el conjunto cerrado V . Sea e una arista que une al nodo u conel nodo v, veamos que si al ejecutar el algoritmo A∗ el valor de f(v) se actualiza alllegar a v a traves de e entonces f(v) ≥ f(u). Sean f(u) = g(u) + h(u) y f(v) =g(u) + h(v) + l(e), como estamos trabajando con una heurıstica consistente h(u) ≤

Page 34: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

28 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

h(v)+ l(e), por lo tanto f(v) ≥ f(u). En consecuencia si n pasa al conjunto cerrado,a partir de ahora todos los nodos u que estan en el conjunto abierto cumplen quef(u) ≥ f(n). Esto obviamente lo cumplen los nodos que ya estaban en el conjuntoabierto. Tambien lo cumplen los nodos que se han abierto desde que n ha pasadoal conjunto cerrado, ya que debido al resultado anterior sus f(u) van a ser mayoresque los nodos que ya estaban en el conjunto abierto, cuando n salio. Por lo tanto losnodos no se podran reabrir. En el ejemplo que he puesto del algoritmo A∗ como heempleado la distancia euclıdea, que es consistente, no se puede reabrir ningun nodo.

Como el algoritmo A∗ no reabre ningun nodo, entonces se podrıa emplear el al-goritmo de Dijkstra recalculando la longitud de las aristas. Sea e una arista conlongitud l(e) que va del nodo u al v. Recalculamos su longitud haciendo l∗(e) =l(e)−h(u)+h(v), como h es una heurıstica consistente se tiene que l∗(e) ≥ 0 porqueh(u) ≤ l(e) + h(v) (ver [8]).

En el siguiente teorema veremos que si se tienen varias heurısticas consistentes, laque mejor funciona sera la de mayor valor, es decir, la que mejor aproxime la solucionoptima real sin sobrepasar su valor. De ahı si tenemos varias heurısticas admisiblesy no sabemos cual elegir, podemos crear una nueva que sea el maximo de todas lasotras.

Teorema 4. Sean h y h′ dos heurısticas consistentes tal que h(t) = h′(t) = 0 ypara cualquier vertice v, h′(v) ≥ h(v). Asumimos que en el momento de seleccionarel siguiente vertice rompemos los empates basandonos en los identificadores de losnodos, cuando ponemos v > w queremos decir que el identificador de v es mayorque el de w. El numero de vertices expandidos por el algoritmo A∗ usando h′(t) esun subconjunto del conjunto de vertices expandidos por el algoritmo A∗ usando laheurıstica h(t).

Demostracion. Suponemos una busqueda usando h, que no se expande al vertice v.Es suficiente con demostrar que la misma busqueda empleando h′ no se expande alvertice v.

Como el algoritmo no ha sido expandido a v se debe cumplir que o bien g(v) −h(s) + h(v) > g(t) − h(s) + h(t) o que g(v) − h(s) + h(v) = g(t) − h(s) + h(t)y v > t. Como h(t) = 0 esto es equivalente a que o bien g(v) + h(v) > g(t),o bien g(v) + h(v) = g(t) y v > t. Como h′(v) ≥ h(v) esto implica que o bieng(v) + h′(v) > g(t), o bien g(v) + h′(v) = g(t) y v > t. Por lo tanto v no esexpandido por la busqueda empleando h′.

Como h(n) en el algoritmo de Dijkstra es 0 y en el algoritmo A∗ es ≥ 0 entoncespor el teorema anterior, el algoritmo A∗ explorara menos nodos que el algoritmo deDijkstra.

Page 35: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 29

La heurıstica ideal es la distancia mınima al nodo destino, pero solo es posibletrabajar con ella de forma teorica,ya que si la conocieramos ya sabrıamos el caminomas corto al nodo destino. Esta heurıstica es monotona y admisible, empleada pararecalcular las longitudes en todas las aristas del camino mas corto, obtendrıamosl∗(e) = 0, mientras que en el resto de aristas del grafo l∗(e) > 0. Por lo tanto,el algoritmo A∗ solo explorarıa los vertices del camino mas corto de s a t. Y si elcamino mas corto fuera unico, entonces el algoritmo terminarıa despues de escanearexactamente los vertices del camino mas corto exceptuando a t.

La complejidad computacional del algoritmo esta ıntimamente relacionada con lacalidad de la heurıstica que se utilice en el problema. En el peor caso, cuando laheurıstica es 0, la complejidad sera la de Dijkstra.

Optimalidad de A∗

A continuacion veremos que A∗ es un algoritmo optimo ya que cualquier otro algo-ritmo que conozca la misma informacion estudiara los mismos o mas nodos (ver [9]).Para ello primero debemos ver que cuanta mas informacion se tiene, mas se reduceen numero de posibles subgrafos.

A. Limitacion de subgrafos mediante informacion del problema

Sea G un grafo, Gn es el subgrafo de los nodos alcanzables desde n. Por ejemplo enel grafo del ejemplo anterior, el subgrafo Gc estarıa formado por lo nodos e, d, f, g, t.

El algoritmo A∗ se va expandiendo por los diferentes nodos de un grafo G, cuandollega a un nodo n no sabe como es el grafo a continuacion. Si no tiene ningunainformacion el sobre el grafo, este puede ser de infinitas formas diferentes, por lotanto habra infinitosGn. Supongamos que denotamos a todo el conjunto de subgrafosa partir de un nodo n con el sımbolo Gn,ω, donde ω indexa cada subgrafo y ω estaen algun conjunto de ındices Ωn. En el caso de que tengamos cierta informacion (porejemplo la posicion fısica de los nodos), el numero de posibles formas del grafo G seramenor y el conjunto de subgrafos del nodo n tambien. Al conjunto de subgrafos lodenotaremos como Gn,θ donde θ esta en algun conjunto de indices menor Θn ⊂ Ωn.

A cada Gn,θ en Gn,θ le corresponde un coste hθ(n) del camino optimo desde n hastael nodo destino. Podemos tomar ahora como nuestra estimacion h(n), el mayor lımiteinferior para hθ(n). Este es,

h(n) = ınfθ∈Θn

hθ(n). (2.1)

Asumimos que el ınfimo es alcanzado por algun θ ∈ Θn.

Page 36: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

30 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

Para poder conocer el ınfimo de hθ(n), deberıamos conocer todos los Gn,θ, com-patibles con la informacion disponible, pero en los problemas reales casi nunca setiene una representacion explıcita para Gn,θ. En cambio, se puede seleccionar unprocedimiento para calcular h(n) sabiendo, por la informacion obtenida del dominiode problema, que es un lımite inferior de h(n). Esta seleccion induce el conjuntoGn,θ por (2.1). A partir de ahora asumimos que el algoritmo A∗ usa (2.1) comouna definicion de h.

B. Prueba de la optimalidad de A∗

Lema 2. Supongamos que h(n) ≤ h(n) para todo n (heurıstica admisible) y supon-gamos que A∗ no ha terminado. Entonces si el nodo n es cerrado, f(n) ≤ f(s).

Demostracion. Como por hipotesis A∗ no ha terminado, entonces el nodo n no es elnodo destino. Por el Corolario 1 del Lema 1, en el momento en el que n fue cerradopor ultima vez, existıa un nodo abierto n′ en un camino optimo P de s al nododestino con f(n′) ≤ f(s). En el momento en el que n fue cerrado, como n′ estabaabierto, se cumple que

f(n) ≤ f(n′) ≤ f(s).

Definimos un δ grafo como un grafo que tiene un numero de aristas finito y que elcoste asociado a las aristas es mayor que 0, por lo tanto, podemos afirmar que elpeso asociado a todas las aristas es mayor que un δ > 0.

Para expandir el menor numero de nodos posibles en la busqueda del camino optimo,un algoritmo de busqueda debe tomar una decision informada sobre que nodo debeexpandir a continuacion. Si expande nodos que obviamente no estan en el caminooptimo, esta perdiendo esfuerzo. Por otro lado, si ignora nodos que pueden estar enel camino optimo, en ocasiones puede fallar en encontrar ese camino, por lo tanto,el algoritmo no serıa admisible.

Ahora podemos probar un teorema sobre la optimalidad de A∗ comparado con cual-quier otro algoritmo admisible A que no usa mas informacion sobre el problema queA∗. Sea ΘA

n el conjunto de ındices usado por el algoritmo A en el nodo n. Entoncessi ΘA∗

n ⊂ ΘAn para todos los nodos n ∈ Gs, diremos que el algoritmo A no tiene mas

informacion que el algoritmo A∗.

El siguiente teorema afirma que si un algoritmo admisibleA no tiene mas informacionque un algoritmo A∗, entonces cualquier nodo expandido por A∗ debe ser tambienexpandido por A. Primero introduciremos la prueba para cuando no se puedenproducir empates (si n 6= m, donde n y m son nodos, entonces f(n) 6= f(m)) porque

Page 37: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.2. ALGORITMOS CLASICOS 31

es muy clara. Posteriormente, generalizaremos el teorema para cubrir el caso en elcual se pueden producir empates.

Teorema 5. Sea A cualquier algoritmo admisible que no tenga mas informacionque A∗. Sea Gs cualquier δ grafo tal que n 6= m implica f(n) 6= f(m) y que la hempleada por A∗ cumpla que h(n) ≤ h(n) (heurıstica admisible). Entonces si el nodon fue expandido por A∗ tambien sera expandido por A.

Demostracion. Sea t el nodo destino encontrado por A y por A∗, entonces tenemosque

f(t) = g(t) + h(t) = g(t) + 0 = f(t) = f(s),

ya que g(t) = g(t) porque t es el nodo destino y por consiguiente no se puede reabriry f(t) = f(s) porque el camino mas corto entre s y t pasando por s es igual al mascorto pasando por t. Supongamos que A∗ ha expandido un nodo n antes de pasar tal conjunto cerrado, entonces por el Lema 2

f(n) < f(t) = f(s). (2.2)

En este caso la desigualdad es estricta porque no se pueden producir empates.

Existira algun grafo Gn,θ, con θ ∈ Θn para el cual h(n) = hθ(n), por la definicionque hemos dado de h. Como g(n) ≤ g(n), entonces, en el grafo G modificado apartir de n como Gn,θ, la distancia del camino mas corto de s a t pasando por n

sera g(n) + hθ(n) ≤ f(n) y empleando (2.2) entonces el camino mas corto pasandopor n sera menor que f(t). Por esto el camino que pasa por n podrıa ser un caminooptimo, y para que A sea un algoritmo admisible, deberıa expandir a n.

Sea N(A,Gs) el conjunto de nodos en Gs expandidos por el algoritmo A, podemosenunciar el siguiente Corolario

Corolario 2. Bajo las premisas del teorema anterior,

N(A∗, Gs) ≤ N(A,Gs)

la igualdad se cumplira ssi A expande un conjunto identico de nodos que A∗

En este sentido, podemos decir que A∗ es un algoritmo optimo. Comparado con otroalgoritmo admisible que no esta mas informado, expande el menor numero de nodosnecesarios para garantizar encontrar un camino optimo.

Page 38: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

32 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

En el caso de que sı pudieran existir empates, es decir, si existen dos o mas nodosn1, ..., nk con f(n1) = ... = f(nk) < f(n) para cualquier otro nodo abierto n, A∗

escoge arbitrariamente ni. Consideramos el conjunto A∗ de todos los algoritmosque actuan como A∗ cuando no hay empates, pero de manera diferente cuando hayempates. Un algoritmo es miembro de A∗ si es como A∗ con una regla arbitrariapara romper empates.

El siguiente teorema expande el teorema anterior para el caso en el que se puedenproducir empates. Dice que para cualquier algoritmo admisible A, se puede encontrarun miembro A∗ de A∗ tal que cada nodo expandido por A∗ tambien es expandidopor A.

Teorema 6. Sea A cualquier algoritmo admisible no mas informado que los algo-ritmos de A∗. Suponemos que la heurıstica h usada en los algoritmos de A∗ es unaheurıstica admisible. Entonces para cualquier δ grafo de Gs, existe un A∗ ∈ A∗ talque cualquier nodo expandido por A∗ es expandido por A.

Demostracion. SeaGs cualquier δ grafo yA∗1 cualquier algoritmo enA∗. Si cada nodode Gs que es expandido por A∗1 tambien es expandido por A, entonces tomaremosA∗1 como el A∗ del teorema. De otra forma mostraremos como construir el A∗ delteorema cambiando la regla para romper empates de A∗1. Sea L el conjunto de nodosexpandidos por A y sea P = (s, n1, n2, ..., nk, t) el camino optimo encontrado por A.

Expandimos los nodos como se indica en A∗1 siempre y cuando los nodos seleccionadossean elementos de L. Sea n el primer nodo seleccionado para la expansion de A∗1,que no esta en L. Entonces por el lema 2, f(n) ≤ f(s). Si f(n) < f(s) = f(t)implicarıa que A no es un algoritmo admisible, por el razonamiento realizado en lademostracion del teorema anterior, por tanto podemos concluir que f(n) = f(s). Enel momento en el que A∗1 selecciona el nodo n, el nodo destino t no estaba cerrado(si no A∗1 habrıa terminado). Entonces por el corolario 1 del Lema 1, existe un nodoabierto n′ en P tal que f(n′) ≤ f(s) = f(n). Pero como n ha sido expandido porA∗1 en vez de n′, f(n) ≤ f(n′). Por lo tanto f(n) ≤ f(n′) ≤ f(n), por lo cualf(n) = f(n′). Sea A∗2 identico a A∗1, excepto que la regla para romper empates hasido modificada ligeramente para que elija n′ en vez de n. Repitiendo el argumentoanterior obtenemos para algun i un A∗i ∈ A∗, que expande solo nodos que tambienhan sido expandidos por A, completando la prueba del teorema.

Corolario 3. Suponiendo que la premisas del teorema son satisfechas. Entoncespara cualquier δ grafo Gs, existe un A∗ ∈ A∗ tal que N(A∗, Gs) ≤ N(A,Gs), laigualdad se dara ssi A expande un conjunto identico de nodos que A∗.

Como no podemos seleccionar la regla mas correcta para romper los empates antes

Page 39: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.3. ALGORITMOS SUBOPTIMOS 33

de tiempo para cada grafo, es interesante comparar todos los miembros de A∗ concualquier algoritmo admisible A en numero de nodos expandidos. Si definimos unempate crıtico entre n y n′ como aquel empate en el que f(n) = f(n′) = f(s),entonces tenemos el siguiente corolario.

Corolario 4. Suponiendo que la premisas del teorema son satisfechas. Sea R(A∗, Gs)el numero de empates crıticos que han ocurrido durante la ejecucion de A∗ en Gs.Entonces para cualquier δ grafo Gs y cualquier A∗ ∈ A∗,

N(A∗, Gs) ≤ N(A,Gs) +R(A∗, Gs).

Demostracion. Para cualquier empate no crıtico,los nodos expandidos por A∗ tam-bien son expandidos por A o A no serıa admisible, como hemos visto en la demos-tracion del teorema anterior. Por lo tanto cada nodo expandido por A∗ pero no porA corresponde a un empate crıtico diferente, en el cual la regla A∗ para romperempates realiza una eleccion inapropiada.

Debemos recordar que cuando A expande menos nodos que algun A∗ en A∗, essolo porque A ha tenido suerte en la busqueda en el grafo y que existe un grafoconsistente con la informacion disponible para A y A∗ para el cual A∗ no se expandea mas nodos que A.

Debemos notar que aunque se puede realizar un estimacion de R mientras se ejecutael algoritmo, no se conoce el valor de f(s) hasta que el algoritmo termina y R puedeser facilmente calculado. En la mayor parte de casos R no suele ser muy grandeporque los empates crıticos suelen ocurrir cuando el algoritmo va a finalizar ya quenecesitan que h sea una estimacion perfecta de h.

2.3. Algoritmos suboptimos

La eficiencia de ciertos algoritmos clasicos podrıa ser mejorada si se emplease masinformacion en el proceso de busqueda. Los algoritmos suboptimos que emplean es-ta informacion son mas rapidos en obtener la solucion optima que los algoritmosclasicos, sin embargo no siempre llegan a la solucion optima. Las estrategias debusqueda heurıstica se dividen en tres tipos: limitar el area de busqueda, descom-poner el problema de busqueda y limitar el numero de aristas estudiadas realizandouna jerarquıa de aristas.

Page 40: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

34 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

2.3.1. Algoritmos que limitan el area de busqueda

La idea de esta estrategia es usar algun conocimiento sobre los atributos del caminomas corto para restringir la busqueda a un cierto area. Los dos metodos mas po-pulares para reducir el area de busqueda son A∗, el cual ya hemos detallado, y elmetodo de podar ramas (ver [7]).

Metodo de podar ramas.

La idea fundamental de este metodo es limitar el area de busqueda podando losnodos intermedios que tienen poca posibilidad de estar en el camino mas cortoal nodo destino. Estos no se tendran en cuenta a la hora de ejecutar el algoritmoreduciendo ası el tiempo de ejecucion. Fu L. (ver [6]) propuso la siguiente desigualdadpara limitar el area de busqueda:

g(i) + h(i, t) ≤ E(s, t),

donde g(i) es el mınimo tiempo actual para viajar del nodo s al nodo i; h(i, t) esel tiempo estimado para viajar del nodo i al nodo destino t; E(s, t) es un lımitesuperior estimado del menor tiempo de viaje entre el origen y el destino.

En la siguiente figura podemos ver un ejemplo de reduccion del area.

La eficiencia de este metodo depende de la calidad de las estimaciones de las fun-ciones h(i, t) y E(s, t). La estimacion h(i, t) debe ser siempre menor que el mınimotiempo de viaje del nodo i al nodo destino t, y al mismo tiempo, el valor estimado de

Page 41: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.3. ALGORITMOS SUBOPTIMOS 35

E(s, t) mayor que el mınimo tiempo de viaje del nodo de origen s al nodo de destinot, si no el camino mas corto al nodo destino podrıa ser descartado antes de que elnodo destino sea examinado. El algoritmo de poda de ramas sera optimo cuandoh(i, t) se aproxime a cero y E(s, t) se aproxime a infinito. Fu decidio usar la distanciade viaje D(i, t) y una velocidad media V para estimar h(i, t) = D(i, t)/V y definirE(s, t) = Kh(s, t) donde K es un factor lımite para marcar la diferencia entre enlımite inferior, estimado respecto al tiempo de viaje (h(s, t)), y el lımite superior entiempo de viaje (E(s, t)); cuanto mayor es K mayor es el area de busqueda. Si elalgoritmo para antes de encontrar la solucion, se puede anadir un bucle que aumenteel valor de K.

2.3.2. Algoritmos que descomponen el problema de busque-da

Si el problema se puede descomponer en subproblemas menores se puede ahorrarmucho esfuerzo de calculo. Hay dos metodos que utilizan esta tecnica: el metodo debusqueda A∗ bidireccional (similar al explicado anteriormente pero empleando A∗

en vez de Dijkstra) y el metodo de los subdestinos.

Metodo de subdestinos.

Un subdestino puede ser definido como un estado intermedio de la solucion optimade un problema. Para el problema de busqueda del camino mas corto en una redde carreteras, los subdestinos pueden ser los nodos o aristas que estan localizadasentre el origen y el destino en un camino mas corto que debera ser identificado. Elproblema de encontrar el camino mas corto del nodo origen al nodo destino puede serdescompuesto en dos problemas mas pequenos: uno encontrar el camino mas cortodel nodo origen al nodo subdestino y otro del nodo subdestino al nodo destino.Cuantos mas subdestinos haya y cuanto mas uniformemente distribuidos esten, mascalculos ahorraremos. En una situacion ideal, si hay M subnodos equitativamenterepartidos entre el nodo origen y destino en una red larga, uniforme e infinita, lareduccion del area usando subnodos sera 1/(M + 1). Por ejemplo, si un subdestinoesta en el medio del camino mas corto entre un origen y un destino, entonces eluso de este subdestino, reducira el area de busqueda un 50 % aproximadamente,como podemos observar en la siguiente figura. El problema de este metodo es queno siempre encuentra la ruta optima.

Page 42: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

36 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

2.3.3. Metodos de busqueda jerarquica

La idea basica detras de la busqueda jerarquica es que para encontrar la solucionde un problema complejo eficientemente, la busqueda se debe centrar en las carac-terısticas esenciales del problema sin considerar los detalles de bajo nivel y luegocompletar los detalles. Para ello, un metodo jerarquico divide a la red de carreterasen dos o mas capas. Cuando se divide en dos capas, la capa mas baja de la jerarquıaincluye todas las carreteras e intersecciones de la red, mientras que la capa superiorconsta solo de las carreteras principales y sus intersecciones.

Diferentes autores propusieron criterios de division distintos para diferenciar entrecarreteras principales y secundarias: Chou et al. (ver [3]) propusieron usar la longitudcomo criterio de division entre carreteras principales y secundarias, sin embargo Liu(ver [15]) y Jagadeesh (ver [13]) et al. propusieron agrupar las carreteras de acuerdoa ciertos atributos como el lımite de velocidad y el numero de carriles.

Decidido el criterio de diferenciacion las carreteras principales de la capa superiordividen la red en diferentes cuadros. Las carreteras menores de un cuadro estanconectadas con la red de carreteras principales mediante nodos de entrada o salida(E-nodos). Los E-nodos de un cuadro son aquellos que estan presentes tanto en lacapa superior como inferior.

En la siguiente figura, los nodos O y D, representan el origen y el destino, y loscuadros que los contienen se denominan O-cuadro y D-cuadro respectivamente.E1,E2,E3 y E4 forman los E-nodos del O-cuadro y los E-nodos del D-cuadro sonE5,E6,E7 y E8.

Page 43: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.3. ALGORITMOS SUBOPTIMOS 37

La ruta entre O y D encontrada por cualquier algoritmo jerarquico consiste en lastres componentes siguientes:

1) Un camino en el O-cuadro de O a uno de sus E-nodos.

2) Un camino en la capa superior entre un E-nodo del O-cuadro a un E-nodo delD-cuadro.

3) Un camino en el D-cuadro de uno de sus E-nodos a D.

Elegir el mejor E-nodo para conectar con la capa superior no es una tarea sencilla.A continuacion, veremos las propuestas de diferentes autores.

Car y Frank (ver [2]) propusieron seleccionar el E-nodo mas cercano al origen enel O-cuadro y el mas cercano al destino en el D-cuadro. Para hacer esta eleccion,ejecutaban el algoritmo de Dijkstra comenzando en el O-nodo y lo paraban cuandollegaba a uno de los E-nodos del O-cuadro, hacıan lo mismo con el D-nodo. Sinembargo, el E-nodo mas cercano no tiene por que ser el mejor para acceder a lacarretera principal. En la figura anterior el E-nodo mas cercano a O es E1, noobstante, para calcular la ruta mas corta a D parece mas logico salir por E4 o E3.

Un metodo propuesto por Chou et al. (ver [3]) garantizan la mejor solucion jerarquicaposible. Sea la funcion fG(x, y) la que denota el coste del camino mas corto del nodox al nodo y en el cuadro G. Sea f ∗(x, y) el coste del camino mas corto entre elnodo x e y en la capa superior. Sea NO y ND el conjunto de E-nodos en el O-cuadro y D-cuadro respectivamente. En la figura anterior NO = E1, E2, E3, E4 yND = E5, E6, E7, E8. Si la mejor ruta jerarquica entre el origen O y el destinoD pasa por los E-nodos EO ∈ NO y ED ∈ ND, entonces EO y ED pueden serdeterminados de la siguiente manera: (EO, ED) = arg min(i,j)∈NO×ND

fO(O, i) +f ∗(i, j) + fD(j,D). Aunque este algoritmo garantiza la mejor solucion jerarquicaposible, requiere muchos calculos del camino mas corto porque hay que calcularlopara cualquier combinacion posible entre un Ei ∈ NO y un Ej ∈ ND

Quek (ver [16]) propuso un metodo jerarquico que garantiza la mejor solucion posible

Page 44: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

38 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

requiriendo solamente de tantos calculos como el algoritmo del nodo mas cercano.Nos referimos a este algoritmo como el algoritmo jerarquico de ascension de nodos,que requiere que el origen y el destino de la capa mas baja asciendan a la capasuperior. El metodo comienza calculando las rutas optimas en el O-cuadro entre elorigen y cada uno de los E-nodos. Se realiza lo mismo con el nodo destino y el D-cuadro. Entonces, los nodos O y D son ascendidos a la red de carreteras principalesconectandolos a cada uno de sus E-nodos a traves de enlaces logicos. El coste de losenlaces logicos es el de la ruta optima (calculada anteriormente) entre los dos nodosconectados a el. Ahora que la red de carreteras principales contiene el origen y eldestino se encuentra el camino optimo entre ellos con un algoritmo del camino mascorto como podrıa ser Dijkstra o A∗. La ruta encontrada de esta manera requiereque el vehıculo salga del O-cuadro a traves de un E-nodo particular, entonces serecupera la ruta optima entre el origen y ese E-nodo. De la misma forma el enlacelogico entre el destino y su E-nodo debe ser reemplazado por la ruta optima entreellos.

El algoritmo de ascension de nodos en la figura anterior tendrıa que calcular 8 rutaspara calcular la ruta optima entre el origen y el destino y sus respectivos E-nodos. Sinembargo, solamente dos de estas rutas son empleadas en la solucion final. Jagadesh etal. (ver [13]) proponen una tecnica, a la que denominan metodo heurıstico-jerarquico,para eliminar los calculos de ruta innecesarios. Para ello, emplean una heurıstica paracalcular el coste de los enlaces logicos. La heurıstica se describe como la distanciaeuclıdea entre dos nodos, cuando el calculo de una ruta esta basado en el criterio dela mınima distancia. No obstante, si el calculo de la ruta esta basado en el criteriode menor tiempo, la heurıstica se describe como te = de

vgdonde de es la distancia

Euclıdea entre los dos nodos y vg es la velocidad media en las carreteras del cuadrado.

Una vez que ya se ha calculado el valor de cada enlace logico mediante la heurıstica,los nodos O y D son ascendidos a la red de carreteras principales conectandolos acada uno de sus E-nodos a traves de enlaces logicos. Ahora que la red de carreterasprincipales contiene el origen y el destino, se encuentra el camino optimo entre elloscon un algoritmo del camino mas corto como podrıa ser Dijkstra o A∗. La rutaencontrada de esta manera requiere que el vehıculo salga del O-cuadro a traves deun E-nodo particular, entonces se calcula la ruta optima entre el origen y ese E-nodoya que hasta ahora solo se disponıa de la estimacion heurıstica. De la misma formase debe calcular la ruta optima entre el destino y su E-nodo. Por lo tanto, medianteel metodo de Jagadesh et al. para cualquier par origen-destino en una jerarquıa dedos capas, solo se necesita el calculo de las siguientes tres rutas: del origen al destinoen la capa superior, del origen al E-nodo elegido en el O-cuadro y del E-nodo elegidoal destino en el D-cuadro.

Merece la pena senalar que la funcion heurıstica tiene baja influencia en las eleccionesde los E-nodos de entrada/salida. Como la mayor parte del viaje se encuentra fuera

Page 45: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.3. ALGORITMOS SUBOPTIMOS 39

del O-cuadro y del D-cuadro, la eleccion de los E-nodos de entrada/salida estaprincipalmente determinada por el coste de las carreteras principales fuera de losdos cuadros.

Jagadesh et al. aplicaron este metodo a la ciudad de Singapur. En el 94 % de loscasos este metodo encontro las mismas rutas que el algoritmo que no emplea laheurıstica. En el resto de casos las rutas eran ligeramente mayores, descubrieronque esto solıa suceder a las afueran de la ciudad donde la red de carreteras es masdispersa y los cuadros mas grandes. La exactitud de las rutas usando la heurıstica sepuede mejorar haciendo estos cuadros mas pequenos. En la tabla 2.1 podemos veruna comparacion de la longitud de las rutas calculadas por el algoritmo de ascensionde nodos y por el algoritmo heurıstico-jerarquico.

Tabla 2.1: Comparacion de las rutas obtenidas por algoritmo de ascension de nodosy por el algoritmo heurıstico-jerarquicoDistancia Distancia media

de las rutas en-contradas por elalgoritmo de as-cension de nodos

Distancia mediade las rutasencontradas porel algoritmoheurıstico-jerarquico

Exceso de dis-tancia media(m)

% de exceso dedistancia media

0-5 km 4534 4568 34 0.755-10 km 10306 10326 20 0.1910-25 km 20504 20545 41 0.20> 25 km 33955 34027 72 0.21

All 17325 17367 42 0.24

Por otro lado Jagadesh para reducir mas los calculos que tiene que realizar el algo-ritmo, propone realizar un preprocesado de la red de carreteras eliminando nodosintermedios y eliminando vıas de acceso con los criterios que explicaremos a conti-nuacion.

Los nodos que no son intersecciones o nodos finales no son requeridos por el algo-ritmo para localizar el camino mas corto. Hablando estrictamente ni siquiera losnodos finales son necesarios para calcular la ruta mas corta, excepto cuando los no-dos finales sean el origen o el destino. Teniendo en cuenta este hecho los nodos semantienen en la red, pero no se consideran en el momento de ejecutar el algoritmo.Por lo tanto, en la siguiente figura los nodos D y E pueden ser eliminados.

Page 46: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

40 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

Como he nombrado anteriormente tambien se pueden eliminar las vıas de acceso. Lasvıas de acceso son carreteras muy cortas construidas en las mayores aglomeracionesde trafico para aligerarlo y evitar la congestion. En la figura siguiente el camino realde A a K es A−B − J −K. Como la longitud de la vıa de acceso es normalmentemuy pequena, el camino de A a K podrıa ser aproximado por A−D−K. Eliminadolas vıas de acceso, el numero de nodos y de aristas puede ser reducido drasticamente.En la siguiente figura se puede ver que el numero de nodos se ha reducido de 11 a 5y el numero de aristas de 14 a 4. Jagadesh et al. realizaron un programa que escaneala red de carretas y mediante el uso de conocimiento topologico y posicional detectalas vıas de acceso y las elimina.

Jagadesh et al. aplican la tecnicas anteriores a la red de carreteras de Singapur queinicialmente tiene 30442 nodos y 64792 aristas pasa a tener 11742 nodos y 30108aristas, es decir su tamano original se reduce un tercio.

Para evaluar la precision de estas tecnicas en la red de carreteras de Singapur, laorganizan en una jerarquıa de dos capas. A pesar de que las carreteras principalesparten la red en cuadros, necesitaron mejorar los cuadros porque tenıan tamanosmuy diversos. Esto lo consiguieron ascendiendo carreteras menores a principales,para romper cuadros, y degradando una carreteras principales a secundarias conca-tenando cuadros.

En la tabla 2.2 se compara la distancia de las rutas obtenidas mediante el algoritmo

Page 47: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.3. ALGORITMOS SUBOPTIMOS 41

Tabla 2.2: Evaluacion del algoritmo de ascension de nodos usando el criterio de lamenor distanciaDistancia Distancia media

de las rutasoptimas encon-tradas por elalgoritmo A∗

(m)

Distancia mediade las rutas en-contradas por elalgoritmo de as-cension de no-dos (m)

Exceso de dis-tancia media(m)

% de exceso dedistancia media

0-5 km 4440 4534 94 2.125-10 km 9886 10306 420 4.2510-25 km 19810 20504 694 3.51> 25 km 33256 33955 699 2.10

All 16848 17325 477 2.83

jerarquico de ascension de nodos (el que no usa la heurıstica) con las obtenidaspor el algoritmo A∗. Como en realidad la mayor parte de conductores prefieren laruta mas rapida a la ruta mas corta, en la tabla 2.3, usando como criterio el menortiempo de viaje, el algoritmo de ascension de nodos encuentra rutas mas cercanas alas optimas.

Tabla 2.3: Evaluacion del algoritmo de ascension de nodos usando el criterio delmenor tiempoDistancia Tiempo medio

de viaje de lasrutas optimasencontradas porel algoritmo A∗

(min)

Tiempo medio deviaje de las rutasencontradas porel algoritmo deascension denodos (min)

Exceso detiempo medio(min)

% de exceso detiempo medio

0-5 km 4.79 4.88 0.09 1.885-10 km 10.46 10.71 0.25 2.3910-25 km 20.48 20.86 0.38 1.86> 25 km 34.34 34.71 0.37 1.08

All 17.52 17.79 0.27 1.56

La diferencia entre la ruta encontrada por el algoritmo de ascension de nodos y laruta optima es mınima cuando el origen y el destino son lejanos. Sin embargo, laprecision en las rutas en la categorıa de 0-5 km es mejor que en las de 5-10 kmdebido a la tecnica de concatenar dos cuadros, que explicare a continuacion.

Los algoritmos jerarquicos que fuerzan a una ruta a pasar por los E-nodos funcionanmal cuando el origen y el destino son cercanos, especialmente cuando estan en dos

Page 48: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

42 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

cuadros adyacentes. Esto es porque las carreteras menores que actuan como atajosentre dos cuadros no son consideradas por el algoritmo jerarquico. Como se muestraen la siguiente figura, la ruta encontrada por el algoritmo jerarquico es considera-blemente mayor que la ruta optima. Este problema puede ser resuelto combinandolos dos cuadros y aplicando un algoritmo de camino mas corto para encontrar unaruta optima en su union.

Por otra parte Jagadesh et al. tambien proponen disminuir mas los calculos quetiene que realizar el algoritmo podando la red, es decir, seleccionando los N nodosque tengan mas probabilidad de estar en la solucion. A continuacion explicare comolo realizan.

Tengamos en cuanta que idealmente el camino mas corto entre un origen y un destinodados es la carretera en lınea recta conectandolos. Pero en redes de carreteras realesesas rutas no suelen existir. Aun ası, la ruta optima entre el origen y el destino seaproxima lo maximo posible a la lınea recta entre los nodos. Esto significa que losnodos cercanos a la linea recta imaginaria, tienen mas posibilidad de estar en elcamino mas corto.

Si s es el origen y t es el destino, una funcion de estimacion f es calculada para cadanodo en la red de carreteras superior. Para un nodo n dado, la funcion de estimacionf(n) se expresa como

f(n) = h(s, n) + h(n, t), (2.3)

donde h es una funcion de distancia, h(s, n) es la distancia entre el origen s y el

Page 49: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.3. ALGORITMOS SUBOPTIMOS 43

nodo n y h(n, t) es la distancia entre el nodo n y el destino t. La funcion de distanciamas usada comunmente es la distancia Euclıdea.

Entre todos los nodos de la red, f(n) es menor en aquellos nodos que estan en lalınea recta imaginaria entre el origen y el destino. Los nodos en la red de carreterassuperior son ordenados en funcion de su valor f y se eligen N nodos con el menorvalor. El calculo del camino mas corto continua estudiando solamente estos nodosy el resto de nodos no se consideran. El peor de los casos serıa que no existiera unaruta entre el origen y el destino en la red podada, mas adelante veremos que estaprobabilidad es muy baja.

En la siguiente figura (a) se muestra una red simple con 48 nodos. Asumimos quepara localizar la red mas corta del O-nodo al D-nodo necesitamos 16 nodos. El valorf para todos los nodos de esta red se calcula usando (2.3) con la distancia Euclıdeacomo la funcion de distancia. La subred consiste en los 16 nodos que tienen masprobabilidad de estar en el camino mas corto porque tienen un valor de f menor.Como se muestra en la siguiente figura (b) el camino mas corto entre O y D (lıneade puntos) esta en esta subred.

Jagadesh et al. aplicaron la tecnica de poda a la red de carreteras principales deSingapur con N=128. En la tabla 2.4 podemos ver una comparacion de las rutasencontradas en la subred podada y las rutas optimas en la red original.

En la tabla 2.4 tambien podemos observar que si podamos la red de carreterasprincipales usando la distancia euclıdea, la funcion proporciona buenos resultados.Sin embargo, calcular la distancia Euclıdea entre dos puntos conlleva calculos decuadrados y de raıces cuadradas. Usando la distancia Manhattan para calcular elvalor de h los calculos son mas sencillos, pero como podemos ver en la siguiente tabla2.5 disminuye su precision. La distancia Manhattan entre dos nodos con coordenadas(x1, y1) y (x2, y2) se expresa como dm = |x1 − x2|+ |y1 − y2|.

Page 50: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

44 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

Tabla 2.4: Evaluacion de la poda de la red usando la distancia euclıdeaDistancia Tamano

demuestra

No derutasencontradas

Numero derutas identi-cas a la rutaoptima

Numero derutas diferen-tes de la rutaoptima

% medio deexceso dedistancia

0-5 km 25 25 25 0 05-10 km 25 25 25 0 010-25 km 25 25 25 0 0> 25 km 25 24 18 6 0.37

All 100 99 93 6 0.18

Tabla 2.5: Evalucion de la poda de la red usando la distancia manhattanDistancia Tamano

demuestra

No derutasencontradas

Numero derutas identi-cas a la rutaoptima

Numero derutas diferen-tes de la rutaoptima

% medio deexceso dedistancia

0-5 km 25 25 25 0 05-10 km 25 25 25 0 010-25 km 25 24 22 2 0.06> 25 km 25 25 16 9 0.63

All 100 99 88 11 0.32

Al algoritmo que recoge todos los apartados anteriores, Jagadesh et al. lo denomi-naron el algoritmo heurıstico-jerarquico. Su metodo de ejecucion se puede observaren la figura 2.9.

De los experimentos realizados por ellos en Singapur, se obtiene los resultados expe-rimentales mostrados en la tabla 2.6. Podemos observar que el algoritmo heurıstico-jerarquico difiere de la ruta mas corta un 3,31 % de media y un 14,62 % en el peorcaso.

El algoritmo heurıstico-jerarquico calcula una ruta cercana a la optima dividiendoel calculo de la ruta en tres calculos de ruta optima en subredes de tamano muchomenor. Como el tamano de cada subred es solo una fraccion del tamano original, eltiempo de calculo se reduce considerablemente como podemos ver en la tabla 2.7.En ella se puede observar que mientras el algoritmo jerarquico de ascension de nodoses 25 veces mas rapido que el algoritmo A∗, el algoritmo heurıstico-jerarquico es 52veces mas rapido que el algoritmo A∗.

Page 51: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

2.3. ALGORITMOS SUBOPTIMOS 45

Tabla 2.6: Evalucion del algoritmo heurıstico-jerarquicoDistancia Distancia

media deviaje de lasrutas opti-mas(m)

Distancia me-dia de viajede las rutasencontradas porel algoritmoheurıstico-jerarquico

Exceso dedistanciamedia (m)

% medio deexceso dedistanciamedia

% de excesode distanciaen el peorcaso

0-5 km 4440 4568 128 2.89 10.005-10 km 9886 10326 440 4.45 14.6210-25 km 19810 20545 735 3.71 11.45> 25 km 33256 34181 925 2.78 7.97

All 16848 17405 557 3.31 14.62

Tabla 2.7: Tabla de comparacion de tiempos de ejecucion de 100 rutasAlgoritmo Tiempo de ejecucion para el calculo

de 100 rutas (segundos)A∗ 13.765

Algoritmo jerarquico de ascension de nodos 0.551Algoritmo heurıstico-jerarquico 0.263

Page 52: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

46 CAPITULO 2. ALGORITMOS DE CAMINO MAS CORTO

Figura 2.9: Esquema metodo heurıstico-jerarquico.

Page 53: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

Capıtulo 3

Navegabilidad

Casi todos los sistemas de navegacion por satelite utilizan el sistema de posicio-namiento global(GPS). Este sistema operado por el departamento de defensa deEstados Unidos esta formado por una red de 24 satelites, distribuidos en 6 planosorbitales, con una inclinacion de 55 grados respecto al ecuador. Las orbitas son casicirculares, tienen una excentricidad menor que 0.02, con un semieje mayor de unos26000 km y un periodo de 12 horas sidereas (11h 58min 2seg). Esta configuracionpermite que, desde cualquier lugar de la Tierra, siempre haya mas de 4 satelites porencima del horizonte visible del observador, con un angulo de elevacion superior alos 15 grados.

Los satelites disponen de estructuras y mecanismos para poder mantenerse en orbita,comunicarse con el segmento de control y emitir las senales a los receptores. Uno delos puntos crıticos del sistema GPS son los relojes de los satelites. Por este motivo,los satelites estan equipados con relojes atomicos de muy alta estabilidad.

Cada satelite transmite en dos frecuencias en banda L, denominadas L1 y L2. Elhecho de que los satelites emitan en dos frecuencias distintas, permite al usuariocancelar una de la principales fuentes de error, la refraccion ionosferica. Esto esdebido a que la ionosfera se comporta como un medio dispersivo para la senal GPS.Sobre las dos portadoras se modulan los siguientes tipos de codigos PRN y mensajes:

• Coarse/Acquisition code [C/A(t)], tambien llamado ”Standard Positioning Servi-ce”(SPS). Se modula unicamente sobre L1.

• Precision code [P(t)], tambien llamado ”Precise Positioning Service(PPS)”, re-servado para uso militar y usuarios civiles autorizados. Se modula sobre ambasportadoras L1 y L2.

El segmento de control es el responsable del funcionamiento del sistema GPS, es el

47

Page 54: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

48 CAPITULO 3. NAVEGABILIDAD

que proporciona informacion a los satelites desde la tierra, ya que los receptores GPSnunca emiten informacion. Sus funciones basicas son el control y mantenimientodel estado y configuracion de la constelacion de satelites y mantener la escala detiempo del GPS (mediante relojes atomicos). El segmento de control consiste encinco estaciones de seguimiento localizadas en Hawaii, Colorado Springs, en la islade Ascension (Oceano Atlantico sur), en Diego Garcıa (Oceano Indico) y en la islade Kwajalein (Oceano Pacıfico Norte); una estacion central de control situada enColorado Springs y, tres antenas de transmision de datos a los satelites en Ascension,Diego Garcıa y Kwajalein.

Un receptor GPS utiliza la trilateracion para determinar su posicion en la superficiede la Tierra mediante la resolucion de un sencillo problema geometrico. A partir delas coordenadas de un conjunto de satelites GPS y del tiempo que tarda en llegarla senal emitida por el satelite al receptor, este calcula la posicion del usuario conuna precision del orden de una decena de metros.

El observable basico del sistema GPS es el tiempo de propagacion de la senal elec-tromagnetica entre el satelite (emisor) y el receptor. Esta senal en el vacıo se muevea la velocidad de la luz que denotaremos como c. Entonces el tiempo de propagacionmultiplicado por la velocidad de la luz nos dara a que distancia esta el satelite, enel caso de que la senal solo se mueva por el vacıo.

Para saber nuestra posicion necesitamos informacion de tres satelites, los denomina-remos S1, S2 y S3 y suponemos que Sj esta localizado en (xj, yj, zj) cuando transmitela senal a la hora Tj. Si la senal es recibida a la hora T ′j , de acuerdo con el reloj denuestro receptor ∆tj = T ′j − Tj y d(∆tj) indica como de lejos estamos de cada uno

Page 55: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

49

de los satelites. Nuestra posicion (x0, y0, z0) sera localizada en cada una de las tresesferas con radio la distancia geometrica entre los centros de fase de las antenas delsatelite j y el receptor, es decir, c∆tj =

√(xj − x)2 + (yj − y)2 + (zj − z)2. Por lo

tanto nuestra posicion es determinada resolviendo el siguiente sistema de ecuaciones:

(x0 − x1)2 + (y0 − y1)2 + (z0 − z1)2 = (c∆t1)2

(x0 − x2)2 + (y0 − y2)2 + (z0 − z2)2 = (c∆t2)2

(x0 − x3)2 + (y0 − y3)2 + (z0 − z3)2 = (c∆t3)2

La distancia calculada por el receptor no siempre coincide la distancia geometricaentre el satelite y el receptor debido, entre otros factores, a errores de sincronismoentre los relojes del receptor y del satelite. Estos errores de sincronismo se deben aque el reloj de los satelites es muy preciso, cada satelite lleva cuatro relojes atomicos,pero, los relojes de los receptores gps son mucho menos precisos ya que son relojesde cuarzo. Ademas supondremos que los relojes de todos los satelites tienen la horacorrecta y estan perfectamente coordinados. Tomando la distancia a cuatro satelitesse puede calcular la diferencia del reloj del receptor respecto al reloj de los satelitesanadiendolo al sistema como una variable.

A los cuatro satelites de los cuales el receptor obtiene informacion, los denominamosS1, S2, S3 y S4 y suponemos que Sj esta localizado en (xj, yj, zj) cuando transmitela senal a la hora Tj. Si la senal es recibida a la hora T ′j , de acuerdo con el reloj denuestro receptor ∆tj = T ′j −Tj y dt es el error en la hora de nuestro reloj respecto ala hora de los satelites. Denominamos como pseudodistancia a ∆t multiplicado porla velocidad de la luz en el vacıo c. El receptor calcula las distancias c(∆tj − dt)que indican como de lejos estamos de cada uno de los satelites. Nuestra posicion(x0, y0, z0) es localizada en cada una de las esferas con radio la distancia al satelite.En la mayor parte de situaciones habra solo un valor sensible de dt que permita quelas esferas tengan un punto en comun. Nuestra posicion es determinada resolviendoel siguiente sistema de ecuaciones:

(x0 − x1)2 + (y0 − y1)2 + (z0 − z1)2 = (c(∆t1 − dt))2

(x0 − x2)2 + (y0 − y2)2 + (z0 − z2)2 = (c(∆t2 − dt))2

(x0 − x3)2 + (y0 − y3)2 + (z0 − z3)2 = (c(∆t3 − dt))2

(x0 − x4)2 + (y0 − y4)2 + (z0 − z4)2 = (c(∆t4 − dt))2

Cuando una solucion numerica es encontrada. las coordenadas (x0, y0, z0) son con-vertidas esencialmente en coordinadas de latitud, longitud y altitud sobre el niveldel mar.

Hay ocasiones en las que el receptor GPS solo recibe informacion de tres satelites, enesos casos la posicion al nivel del mar puede ser encontrada. El receptor simplemente

Page 56: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

50 CAPITULO 3. NAVEGABILIDAD

sustituye la superficie de la tierra por la cuarta esfera que falta.

La medida de pseudodistancia Pj obtenida por el receptor incluye, ademas de ladistancia geometrica pj entre el receptor y el satelite j y el error de sincronismoentre los relojes del receptor y satelites, otros terminos de naturaleza no geometricadebidos a la propagacion de la senal a traves de la atmosfera (ionosfera y troposfera),efectos relativistas, retardos instrumentales (del satelite y del receptor), interferen-cia debida al multicamino, etc. Si se tienen en cuenta explıcitamente todos estosterminos, la ecuacion de la pseudodistancia, para la frecuencia fi, puede escribirsede la siguiente forma:

Pj = pj + c(dt− dtj) + relj + Tj + αiIj +Kij +MP,j + εP,j

• pj es la distancia geometrica entre los centros de fase de las antenas del sateli-te j y el receptor en los instantes de emision y recepcion, respectivamente: pj =√

(xj − x)2 + (yj − y)2 + (zj − z)2.

• dtj representa la diferencia entre el tiempo GPS y el del reloj del satelite j.

• dt representa la diferencia entre el tiempo GPS y el del reloj del receptor.

• Tj representa el retardo troposferico.

• relj representa el efecto relativista.

• Kij representa los retardos debidos a las constantes instrumentales de los satelitesy receptor, que son dependientes de la frecuencia fi.

• MP,j representa el efecto debido al multicamino (multipath). La interferencia pormulticamino se produce cuando una senal llega por diferentes caminos a la antena.Su causa principal es la proximidad de la antena a estructuras reflectantes, y esimportante cuando la senal proviene de satelites con baja elevacion.

• εP,j es un termino de ruido que contiene todos los efectos no modelados.

• Ij representa el retardo ionosferico, que depende de la frecuencia fi de la senal(αi = 40,3/f 2

i ). Para receptores con una sola frecuencia puede utilizarse un modelode prediccion ionosferica. El modelo definido en el SPS es el de Klobuchar, cuyosparametros se transmiten en el mensaje de navegacion. A pesar de ser un modeloionosferico bastante simple, en el que se suponen todos los electrones concentradosen una capa delgada situada a 350Km de altura sobre la superficie, se consiguereducir el efecto de la ionosfera entre un 50 % y un 60 %.

La distancia aparente entre el satelite y el receptor tambien podrıa medirse tomando

Page 57: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

51

como observable la fase de la portadora de la senal (en vez de la pseudodistancia) yse obtiene una ecuacion diferente.

Para determinar la posicion (x, y, z) de un receptor y el offset dt de su reloj a partirde las pseudodistancias Pj, son necesarias las posiciones (xj, yj, zj) de cuatro satelitescomo mınimo y los offsets dtj de sus relojes.

A partir de las pseudodistancias entre satelite y receptor se plantea un sistema deecuaciones con cuatro incognitas (x, y, z, dt) de la forma:

Pj − δj '√

(x− xj)2 + (y − yj)2 + (z − zj)2 + cdt, (3.1)

donde j = 1, 2, · · · , n (n ≥ 4) (se han despreciado los terminos de multipath y ruidoen general, y se ha llamado δ = −cdtj+relj+Tj+α1Ij+Kj). Se supone que δ puedeser estimado aproximadamente en base a distintos modelos, y por tanto Pj, δj, xj, yjy zj se suponen conocidos y las incognitas son x, y, z y dt.

Se trata de un sistema no lineal, y en general sobredimensionado, cuya tecnica deresolucion habitual consiste en linealizar la distancia ρ en el entorno de un punto(x0, y0, z0) correspondiente a una posicion aproximada del receptor.

Entonces linealizamos ρj(x, y, z) =√

(x− xj)2 + (y − yj)2 + (z − zj)2 en el puntor0 = (x0, y0, z0), denominaremos ρj(r0) = ρj(x0, y0, z0). Aplicaremos el polinomio deTaylor de primer grado en varias variables en el entorno del punto r0 y se obtiene:

ρj = ρj(r0) +x0 − xjρj(r0)

dx+y0 − yjρj(r0)

dy +z0 − zjρj(r0)

dz,

con dx = x− x0, dy = y − y0, dz = z − z0,

resultando el sistema de ecuaciones lineales:

Pj − ρj(r0)− δj =x0 − xjρj(r0)

dx+y0 − yjρj(r0)

dy +z0 − zjρj(r0)

dz + cdt, j = 1, 2, ..., 4(n ≥ 4).

Expresion matricial del sistema de ecuaciones de navegacion:

P1 − ρ1(r0)− δ1...

Pn − ρn(r0)− δn

=

x0−x1ρ1(r0)

y0−y1ρ1(r0)

z0−z1ρ1(r0)

1...

......

x0−xnρn(r0)

y0−ynρn(r0)

z0−znρn(r0)

1

dxdydzcdt

En general se obtendran sistemas sobredimensionados (para n > 4) que deberanresolverse mediante la tecnica de mınimos cuadrados. Expresando el sistema anteriorcomo Y = AX su solucion mınimo cuadratica es X = (AtA)−1AtY .

Page 58: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

52 CAPITULO 3. NAVEGABILIDAD

En la primera iteracion de este metodo se llegara a una solucion dx, dy, dz y cdt.Con estos valores se obtendran nuevos valores de x0, y0 y z0 y se volvera aplicar elmismo metodo. Ası iterativamente hasta que se llegue hasta un valor mas o menosestable, que tomaremos como solucion.

Una solucion cerrada al conjunto de ecuaciones (3.1) anterior fue desarrollada porBancroft. El metodo de Bancroft es mejor en situaciones de alto o malo DOP, encomparacion con los metodos iterativos de mınimos cuadrados (ver [1]). El DOP es ladescripcion del efecto de la geometrıa de los satelites que intervienen en la medicionsobre el calculo de las coordenadas del punto y el tiempo. Estos coeficientes varıancon el tiempo, al variar la posicion de los satelites observados o al cambiar algunosde ellos. Se representa por un escalar que multiplica al error medio cuadratico dela medida, por lo tanto, a mayor DOP mayor inexactitud en el valor calculado.Los menores DOP estan asociados a satelites separados y bien distribuidos sobre laesfera celeste.

El metodo de Bancroft es algebraico y a diferencia de los metodos numericos pue-de ser utilizado por cuatro o mas satelites. El metodo de Bancroft permite ob-tener una solucion directa de la posicion del receptor y el offset de su reloj pa-ra las ecuaciones de navegacion vistas anteriormente. Desarrollando la ecuacionPj =

√(x− xj)2 + (y − yj)2 + (z − zj)2 + cdt se obtiene (pongo Pj por simplificar

la notacion, para introducir δj habrıa que restarselo a Pj):

[x2j + y2

j + z2j − P 2

j ]− 2[xjx+ yjy + zjz − Pjcdt] + [x2 + y2 + z2 − (cdt)2] = 0.

denotando rj = [xj, yj, zj, Pj]t y r = [x, y, z, cdt]t se puede expresar como:

〈rj, rj〉 − 2〈rj, r〉+ 〈r, r〉 = 0,

donde 〈a,b〉 = atMb =[a1, a2, a3, a4

]1 0 0 00 1 0 00 0 1 00 0 0 −1

b1

b2

b3

b4

es el producto de

Lorentz.

Esta ecuacion anterior puede plantearse para cada satelite (o medida Pj). Suponga-mos que se dispone de cuatro medidas Pj y consideremos la siguiente matriz, quecontiene la informacion disponible de las coordenadas de los satelites y pseudodis-tancias (cada fila corresponde a un satelite):

Page 59: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

53

B =

x1 y1 z1 P1

x2 y2 z2 P2

x3 y3 z3 P3

x4 y4 z4 P4

y denotando a =

〈r1, r1〉〈r2, r2〉〈r3, r3〉〈r4, r4〉

, Λ = 〈r, r〉,1 =

1111

podemos expresar el sistema de ecuaciones de la siguiente forma

a− 2BMr + Λ1 = 0,

de donde

r =1

2MB−1(a + Λ1).

Entonces teniendo en cuenta que se cumple la igualdad 〈Mg,Mh〉 = 〈g,h〉 y susti-tuyendo en Λ = 〈r, r〉 se obtiene :

〈B−11, B−11〉Λ2 + 2[〈B−11, B−1a〉 − 1]Λ + 〈B−1a, B−1a〉 = 0.

La expresion anterior es una ecuacion cuadratica en Λ (notar que tanto la matriz Bcomo el vector a son conocidos) y proporciona dos soluciones, una de las cuales esla solucion buscada Λ y a partir de ella podemos obtener r.

Si se tienen mas de cuatro observaciones la matriz B no es cuadrada. Sin embargo,multiplicando por Bt, se obtiene (solucion de mınimos cuadrados):

Bta− 2BtBMr + ΛBt1 = 0,

de donde

r =1

2M(BtB)−1Bt(Λ1 + a),

y sustituyendo en Λ = 〈r, r〉 se obtiene :

〈(BtB)−1Bt1, (BtB)−1Bt1〉Λ2 + 2[〈(BtB)−1Bt1, (BtB)−1Bta〉 − 1]Λ+

+〈(BtB)−1Bta, (BtB)−1Bta〉 = 0.

Page 60: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

54 CAPITULO 3. NAVEGABILIDAD

Recordemos del principio del capıtulo que el Servicio de Posicionamiento Preci-so(PPS), esta disponible solo para uso gubernamental, utiliza senales transmitidasen las dos frecuencias GPS para eliminar gran parte de la variabilidad causada porla ionosfera de la Tierra. La ionosfera es la zona de la atmosfera terrestre que seextiende desde unos 60 km hasta mas de 2000 km de altura. Debido a la interaccioncon los electrones libres, las senales electromagneticas que la atraviesan sufren unretardo/adelanto respecto a la propagacion en el vacıo. La reduccion en la veloci-dad de una onda de radio a medida que pasa a traves de la ionosfera depende desu frecuencia. Por lo tanto, las mediciones de la llegada tiempos de dos senales dediferentes frecuencias se pueden utilizar para mejorar en gran medida la precision denuestras estimaciones de distancia. El uso de de dos frecuencias en el PPS produceconsiderablemente mas precision de la que se puede obtener con una sola frecuencia(SPS).

A continuacion, se presentan las ecuaciones de los diferentes terminos que intervienenen el modelado de los observables codigo P para las dos frecuencias f1 y f2

P1j = pj + c(dt− dtj) + relj + Tj + α1Ij +K1j +MP,j + εP,j,

P2j = pj + c(dt− dtj) + relj + Tj + α2Ij +K2j +MP,j + εP,j.

El efecto de la ionosfera depende del cuadrado de la frecuencia (αi = 40,3/f 2i ). Por

lo tanto, mediante la siguiente combinacion su efecto se puede cancelar:

PC =f 2

1P1− f 22P2

f 21 − f 2

2

.

Otro sistema que reduce de forma importante los errores de posicionamiento es elGPS diferencial (DGPS). Consiste en posicionar un receptor respecto a otro queactua como referencia y cuyas coordenadas son conocidas. Los errores producidospor el sistema GPS afectan por igual (o de forma muy similar) a los receptores si-tuados proximos entre sı. El receptor GPS fijo que conoce exactamente su posicion,recibe la posicion dada por el sistema GPS, y puede calcular los errores producidoscomparandola con la suya, conocida de antemano. Este receptor transmite la correc-cion de errores a los receptores proximos a el, y ası estos pueden corregir los erroresproducidos por el sistema.

Page 61: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

Conclusion

En este trabajo hemos estudiado las matematicas detras de un sistema de navegacionGPS, el funcionamiento de este sistema consiste en que, conociendo la posicion deunos satelites y las distancias a ellos, el receptor es capaz de calcular la posicion enla que se encuentra. Este procedimiento se denomina trilateracion y son necesariosal menos tres satelites. No obstante es imposible calcular la distancia de los satelitescon total exactitud, ya que hay diversos factores que inducen errores. Para disminuirestos errores necesitamos recibir la senal de cuatro o mas satelites. Modelizando lasdistancias y los errores podemos deducir las ecuaciones de navegacion. Hemos vistodos modos de solucionarlas: un metodo iterativo basado en linearizacion y el metodode Bancroft.

Por otro lado hemos estudiado los algoritmos de camino mas corto. En primer lugarhemos presentado el algoritmo de Dijkstra, que es un algoritmo que encuentra lasolucion optima en O(|V |2) o O(|E|log|V |), donde V es el conjunto de vertices y Eel conjunto de aristas. A continuacion hemos visto el algoritmo de Dijkstra bidirec-cional que en algunos contextos permite reducir el tiempo de busqueda, realizandosimultaneamente una busqueda de origen a destino y viceversa. Despues hemos es-tudiado un algoritmo de tipo voraz que es simple y rapido pero en la mayor partede casos no encontrara una solucion aceptable. Tambien hemos detallado el algorit-mo A∗ que es una algoritmo exacto, que utiliza una informacion (heurıstica) sobreel grafo. No obstante, los algoritmos implementados en los gps son algoritmos detipo suboptimo, es decir, encuentran una solucion razonablemente buena, desde unpunto de vista practico, aunque no sea exactamente el camino mas corto. Hemosvisto varias de las tecnicas heurısticas mas empleadas y hemos detallado los algorit-mos jerarquicos. Estos algoritmos dividen la red en jerarquıas, disminuyendo ası elnumero de nodos a estudiar. En particular, nosotros estudiaremos el algoritmo de as-cension de nodos y el algoritmo heurıstico-jerarquico y se presenta una comparativade su desempeno.

55

Page 62: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

56 CAPITULO 3. NAVEGABILIDAD

Page 63: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

Bibliografıa

[1] S. Bancroft, An Algebraic Solution of the GPS Equations, IEEE Transac-tions on Aerospace and Electronic Systems, vol. AES-21, 1985, pag. 56–59.

[2] A. Car, A.U. Frank, General principles of hierarchical spatial reasoning—thecase of way-finding. Proceedings of the sixth international symposium on spatialdata handling, vol. 2, 1994, pag. 646-664.

[3] Y. Chou, E. Romeijn, R.L. Smith, Approximating shortest paths in large-scale networks with an application to ITS, INFORMS J. Journal on Computing,vol. 10, 1998, pag. 163-179.

[4] E.W. Dijkstra, A note on two problems in connexion with graphs, Numeris-che Mathematik, vol. 1, 1959, pag. 269-271.

[5] S. Even, Graph algorithms, Computer Science Press, 1979.

[6] L. Fu, Real-time vehicle routing and scheduling in dynamic and stochastic traf-fic networks, tesis doctoral sin publicar de la universidad de Alberta, 1996.

[7] L. Fu, D. Sun, L.R. Rilett, Heuristic shortest path algorithms for trans-portation applications: State of the art, Computers and Operations Research,vol. 33, 2005, pag. 3324–3343.

[8] A.V. Goldberg, C. Harrelson, Computing the Shortest Path: A∗ SearchMeets Graph Theory, Technical Report, vol. MSR-TR-2004-24, Microsoft Re-search, 2004.

[9] E. Hart, J. Nilsson, B. Raphael, A Formal Basis for the Heuristic De-termination of Minimum Cost Paths, IEEE Transactions of system science andcybernetics, vol. ssc-4, 1968, pag. 100-107.

[10] E. Hart, J. Nilsson, B. Raphael, Correction to ((A Formal Basis for theHeuristic Determination of Minimum Cost Paths)), SIGART Nesletter, vol. 37,1972, pag. 28-29.

57

Page 64: Matemáticas en un navegador GPS: algoritmos de camino · PDF fileOtro algoritmo cuyo su coste computacional es menor y que siempre y cuando se cumplan una serie de condiciones encuentra

58 BIBLIOGRAFIA

[11] M. Hernandez, J.M. Zornoza, J. Sanz, Procesado de Datos GPS: codigoy fase. Algoritmos, Tecnicas y Recetas, Centre de Publicacions del CampusNord, UPC, 2001.

[12] B. Hofmann-Wellenhof, K. Legat, M. Wiser, Navegation: Principlesof Positioning and Guidance, Springer-Verlag, 2003.

[13] G.R. Jagadeesh, T. Srikanthan, K.H. Quek, Heuristic techniques foraccelerating hierarchical routing on road networks, IEEE Transactions on Inte-lligent Transportation Systems, vol. 4, 2002, pag. 301-308.

[14] J. Lerner, D. Wagner, K.A. Zweig, Algorithmics of Large and ComplexNetworks, Springer-Verlag, 1998.

[15] B. Liu, Route finding by using knowledge about the road network, IEEETransactions on Systems, Man, and Cybernetics-Part A: Systems and Humans,vol. 27, 1997 , pag. 436-448.

[16] K.H. Quek, High Performance VLSI Architecture for Dynamic Routing inKnowledge Intensive Networks, Singapore: Nanyang Technological Univ., 2000.

[17] R.B. Thomson, Global Positioning System: The Mathematics of GPS Recei-vers, Mathematics Magazine, vol. 71, 1998, pag. 260-269.

[18] Reweighting a graph for faster shortest paths,((http://11011110.livejournal.com/135302.html)), 2008.

[19] Graph Algorithms Wikipedia.