Está en la página 1de 7

Ruta ms corta

Proyecto tercer parcial: lgebra Lineal



Alejandro Crdenas Islas Bustamante
A01182797
A01182797 ALEJANDRO CRDENAS LGEBRA LINEAL
El algoritmo de Dijkstra
Encontrar el camino ms corto

Qu es?
El algoritmo de Dijkstra, nombrado en honor a su inventor Edgser Dijkstra,
fue publicado en 1959. El propsito del algoritmo es encontrar la ruta ms corta
desde una fuente nica a un destino nico. Es comnmente aplicado
y representado en grafos, as como en
matrices de adyacencia.
A pesar de que su concepcin
tiene ya ms de 50 aos, el algoritmo
es ampliamente utilizado hoy en da.
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 ms rpido que
conocemos para calcular este tipo de
rutas, adems, el algoritmo es
fcilmente implementable en un
lenguaje de programacin
computacional posibilitando as el
clculo de rutas muy complejas.
Estos programas son utilizados
muy frecuentemente en industrias de
logstica y aviacin y en protocolo de
rateo de internet que nuestros
dispositivos electrnicos utilizan todos
los das como por ejemplo OSPF (Open Shortest Path First) y IS-IS (Intermediate
System to Intermediate System).

A01182797 ALEJANDRO CRDENAS LGEBRA LINEAL
Expresin Matemtica

El motivo de este reporte es encontrar diferentes rutas existentes entre mi
casa, el punto A, y el Tecnolgico 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
imgenes 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
vrtices, en este caso representando
vueltas signicantes en las calles que
puedo recorrer desde mi casa al
Tecnolgico, y 13 conexiones, que
representan las calles. Podemos, a
travs de este grafo, calcular la matriz
de adyacencia entre vrtices:
A01182797 ALEJANDRO CRDENAS LGEBRA LINEAL
La matriz de adyacencia que resulta del grafo es una matriz simtrica ya que
las rutas que puedo tomar desde mi casa hacia el Tecnolgico de Monterrey son las
mismas que puedo tomar desde el Tecnolgico de Monterrey hacia mi casa; todas
las calles son de doble sentido.
El siguiente paso es calcular el peso de cada conexin. Esto se realiz con
ayuda de software satelital:

A01182797 ALEJANDRO CRDENAS LGEBRA LINEAL
El peso de cada conexin est expresado en trminos de distancia, con
metros como unidad. Ahora que hemos calculado la distancia entre cada vrtice,
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 implementacin del algoritmo escrita
en el lenguaje de programacin Ruby, el cdigo se encuentra en la pgina web
pblica en
<http://rosettacode.org/wiki/Dijkstra's_algorithm#Ruby>





A01182797 ALEJANDRO CRDENAS LGEBRA LINEAL
Cdigo del algoritmo Dijkstra implementado en el lenguaje Ruby


Proporcionando nuestro grafo como entrada al programa, obtenemos la
siguiente salida:


A01182797 ALEJANDRO CRDENAS LGEBRA LINEAL
El algoritmo de Dijkstra nos dice que la distancia ms corta es de 8973
metros y la ruta ptima es la denotada en rojo:
Este algoritmo calcula nicamente un peso entre vrtices, 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, trco, semforos, etctera, pero resulta ser la que tomo diario para
llegar a la escuela.




Conclusin

Encontramos la ruta de menor distancia desde mi casa al Tecnolgico de
Monterrey utilizando conceptos matemticos como grafos, matrices y el algoritmo
de Dijkstra y con ayuda de tecnologa 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 matemticos
diariamente y conocerlos nos ayuda a entender un poco (o mucho) ms nuestro
entorno y el mundo en general.
A01182797 ALEJANDRO CRDENAS LGEBRA LINEAL

También podría gustarte