ruta más corta Álgebra

7
Ruta más corta Proyecto tercer parcial: Álgebra Lineal Alejandro Cárdenas Islas Bustamante A01182797 A01182797 ALEJANDRO CÁRDENAS ÁLGEBRA LINEAL

Upload: rafa-rivas-m

Post on 28-Dec-2015

53 views

Category:

Documents


3 download

TRANSCRIPT

!!

Ruta más corta Proyecto tercer parcial: Álgebra Lineal

!Alejandro Cárdenas Islas Bustamante

A01182797

A01182797ALEJANDRO CÁRDENASÁLGEBRA LINEAL

El algoritmo de Dijkstra Encontrar el camino más corto

!¿Qué es?

El algoritmo de Dijkstra, nombrado en honor a su inventor Edgser Dijkstra, fue publicado en 1959. El propósito del algoritmo es encontrar la ruta más corta desde una fuente única a un destino único. Es comúnmente aplicado

y representado en grafos, así como en matrices de adyacencia. A pesar de que su concepción tiene ya más de 50 años, el algoritmo es ampliamente utilizado hoy en día. Con ayuda de investigaciones por parte de Fredman & Tarjan, el algoritmo tiene un orden O(M + N*log(N)) en el peor de los casos. Esto lo hace el algoritmo más rápido que conocemos para calcular este tipo de rutas, además, el algoritmo es fácilmente implementable en un lenguaje de programación computacional posibilitando así el cálculo de rutas muy complejas. Estos programas son utilizados muy frecuentemente en industrias de logística y aviación y en protocolo de rateo de internet que nuestros dispositivos electrónicos utilizan todos

los días como por ejemplo OSPF (Open Shortest Path First) y IS-IS (Intermediate System to Intermediate System). !

A01182797ALEJANDRO CÁRDENASÁLGEBRA LINEAL

Expresión Matemática !! El motivo de este reporte es encontrar diferentes rutas existentes entre mi casa, el punto A, y el Tecnológico de Monterrey Campus Toluca, punto K y de entre ellas, con ayuda de matrices, grafos, y el algoritmo previamente discutido, encontrar la ruta óptima entre esos dos puntos. El primer paso es crear un grafo. Con ayuda de Google Maps (http://maps.google.com), tracé un grafo sobre imágenes satelitales que muestra diferentes rutas posibles entre dichos puntos.

! De la imagen satelital podemos apreciar claramente el grafo sobre el que trabajaremos para calcular la ruta óptima. Tenemos un grafo con 11 vértices, en este caso representando vueltas significantes en las calles que puedo recorrer desde mi casa al Tecnológico, y 13 conexiones, que representan las calles. Podemos, a través de este grafo, calcular la matriz de adyacencia entre vértices:

A01182797ALEJANDRO CÁRDENASÁLGEBRA LINEAL

La matriz de adyacencia que resulta del grafo es una matriz simétrica ya que las rutas que puedo tomar desde mi casa hacia el Tecnológico de Monterrey son las mismas que puedo tomar desde el Tecnológico de Monterrey hacia mi casa; todas las calles son de doble sentido. El siguiente paso es calcular el peso de cada conexión. Esto se realizó con ayuda de software satelital:

!

A01182797ALEJANDRO CÁRDENASÁLGEBRA LINEAL

El peso de cada conexión está expresado en términos de distancia, con metros como unidad. Ahora que hemos calculado la distancia entre cada vértice, nuestro grafo esta completo y lo podemos expresar en una matriz de distancias:

Expresada esta matriz, podemos utilizar el algoritmo de Dijkstra para calcular la ruta óptima. Como mencioné anteriormente, hay muchas implementaciones del algoritmo. Utilicé una implementación del algoritmo escrita en el lenguaje de programación Ruby, el código se encuentra en la página web pública en

<http://rosettacode.org/wiki/Dijkstra's_algorithm#Ruby> !!!!!

A01182797ALEJANDRO CÁRDENASÁLGEBRA LINEAL

Código del algoritmo Dijkstra implementado en el lenguaje Ruby !! Proporcionando nuestro grafo como entrada al programa, obtenemos la siguiente salida:

!!

A01182797ALEJANDRO CÁRDENASÁLGEBRA LINEAL

El algoritmo de Dijkstra nos dice que la distancia más corta es de 8973 metros y la ruta óptima es la denotada en rojo:

Este algoritmo calcula únicamente un peso entre vértices, por lo tanto para el algoritmo que corrimos, la ruta óptima resulta ser aquella de la menor distancia, que no necesariamente es la mejor cuando consideramos factores externos como accidentes, tráfico, semáforos, etcétera, pero resulta ser la que tomo diario para llegar a la escuela. !!!!Conclusión ! Encontramos la ruta de menor distancia desde mi casa al Tecnológico de Monterrey utilizando conceptos matemáticos como grafos, matrices y el algoritmo de Dijkstra y con ayuda de tecnología podemos utilizar estos conceptos en muchas aplicaciones. Esto nos da una buena perspectiva de la gran utilidad que tienen estos conceptos en usos de la vida cotidiana. Todo el mundo usa conceptos matemáticos diariamente y conocerlos nos ayuda a entender un poco (o mucho) más nuestro entorno y el mundo en general.

A01182797ALEJANDRO CÁRDENASÁLGEBRA LINEAL