Вы находитесь на странице: 1из 10

Modelo de la ruta mas corta

El problema de la ruta más corta incluye un juego de nodos conectados donde sólo un nodo es considera
sólo un nodo es considerado como el nodo destino. El objetivo es determinar un camino de conexiones q
distancia total del origen al destino.
Los algoritmos calculan el camino mínimo de un nodo a a otro nodo z en particular, a la vez que calcula
desde el nodo inicial a dado hasta cada uno de los otros nodos del grafo.
Consiste en encontrar la ruta más corta entre dos nodos dados de un grafo dirigido y valuado (con capac

Algoritmo de DIJKSTRA
Tendremos a lo largo de todo el proceso dos conjuntos y dos vectores:
Conjunto C : Conjunto de vértices candidatos. Inicialmente contiene todos los nodos menos el nodo orig
Conjunto S : Conjunto de vértices seleccionados, es decir, aquellos para los que ya conocemos su cami
nodo origen. Inicialmente contiene el nodo origen.
Vector D : Almacenará la longitud del camino más corto desde el origen a cada nodo. Tendrá tantas posi
tenga el grafo. El coste de ir del nodo origen a sí mismo lo estimaremos como cero.
Vector P : Almacenará el nodo predecesor a cada nodo en el camino más corto desde el origen hasta él
posiciones como nodos tenga el grafo. La posición del nodo predecesor al origen estableceremos que se
es el nodo origen.
Llamaremos al nodo origen o, y el coste de ir del nodo i al nodo j lo denotaremos como COSTEij .
Hay que seguir los siguientes pasos:
Seleccionamos el nodo que sea destino de la arista con menor valor que salga del nodo o, llamémoslo u
nodo u en S y lo sacamos de C. Almacenamos en la posición u del vector D el valor COSTEou y en la po
valor del nodo predecesor, es decir, o.
Seleccionamos el siguiente nodo al que podamos llegar con menor coste, bien directamente desde o, bie
seleccionado u. Llamamos al nuevo nodo seleccionado v. Introducimos el nodo v en S y lo sacamos de C
posición v del vector D el coste de llegar al nodo v, si es directamente desde o será COSTEov, si es a tra
+COSTEuv. Por último, en la posición v del vector P introducimos el valor del nodo predecesor, ya sea o
Repetiremos este proceso hasta que todos los nodos hayan sido seleccionados, es decir, hasta que el co
lo que es lo mismo, hasta que en el conjunto S se encuentren todos los nodos del grafo. En ese moment
vector D tendremos almacenado el coste mínimo para llegar desde el nodo origen a cualquier nodo del g
obtener el camino más corto mediante el vector P.

Algoritmo DE FLOYD
El algoritmo de Floyd es más general que el de Dijkstra, ya que determina la ruta más corta entre dos no
El algoritmo representa una red de n nodos como una matriz cuadrada de orden n, la llamaremos matriz
valor Cijrepresenta el coste de ir desde el nodo i al nodo j, inicialmente en caso de no existir un arco entr
valor Cij será infinito.
Definiremos otra matriz D, también cuadrada de orden n, cuyos elementos van a ser los nodos predeces
el nodo origen, es decir, el valor Dij representará el nodo predecesor a j en el camino mínimo desde i has
comienza con caminos de longitud 1, por lo que Dij = i.
Las diagonales de ambas matrices representan el coste y el nodo predecesor para ir de un nodo a si mis
para nada, estarán bloqueadas.
Los pasos a dar en la aplicación del algoritmo de Floyd son los siguientes:
Formar las matrices iniciales C y D.
Se toma k=1.
Se selecciona la fila y la columna k de la matriz C y entonces, para i y j, con i≠k, j≠k e i≠j, hacemos:
Si (Cik + Ckj) < Cij → Dij = Dkj y Cij = Cik + Ckj
En caso contrario, dejamos las matrices como están.
Si k ≤ n, aumentamos k en una unidad y repetimos el paso anterior, en caso contrario paramos las iteraci
La matriz final C contiene los costes óptimos para ir de un vértice a otro, mientras que la matriz D contien
vértices de los caminos óptimos que unen dos vértices, lo cual permite reconstruir cualquier camino óptim
otro.
Se selecciona la fila y la columna k de la matriz C y entonces, para i y j, con i≠k, j≠k e i≠j, hacemos:
Si (Cik + Ckj) < Cij → Dij = Dkj y Cij = Cik + Ckj
En caso contrario, dejamos las matrices como están.
Si k ≤ n, aumentamos k en una unidad y repetimos el paso anterior, en caso contrario paramos las iteraci
La matriz final C contiene los costes óptimos para ir de un vértice a otro, mientras que la matriz D contien
vértices de los caminos óptimos que unen dos vértices, lo cual permite reconstruir cualquier camino óptim
otro.
e sólo un nodo es considerado como el origen y
un camino de conexiones que minimizan la

icular, a la vez que calcula los caminos mínimos

irigido y valuado (con capacidades).

s nodos menos el nodo origen.


que ya conocemos su camino mínimo desde el

da nodo. Tendrá tantas posiciones como nodos


o cero.
orto desde el origen hasta él. Tendrá tantas
igen estableceremos que sea cero para indicar que

mos como COSTEij .

ga del nodo o, llamémoslo u. Introducimos el


el valor COSTEou y en la posición u del vector P el

en directamente desde o, bien a través del otro nodo


do v en S y lo sacamos de C. Introducimos en la
o será COSTEov, si es a través de u será D[u]
nodo predecesor, ya sea o o u.
dos, es decir, hasta que el conjunto C esté vacío, o
s del grafo. En ese momento en el
rigen a cualquier nodo del grafo, y podremos

ruta más corta entre dos nodos cualquiera de la red.


den n, la llamaremos matriz C. De esta forma, el
so de no existir un arco entre ambos, el

an a ser los nodos predecesores en el camino hacia


camino mínimo desde i hasta j. Inicialmente se

r para ir de un nodo a si mismo, por lo que no sirven

≠k, j≠k e i≠j, hacemos:

contrario paramos las iteraciones.


ntras que la matriz D contiene los penúltimos
struir cualquier camino óptimo para ir de un vértice a
≠k, j≠k e i≠j, hacemos:

contrario paramos las iteraciones.


ntras que la matriz D contiene los penúltimos
struir cualquier camino óptimo para ir de un vértice a
Problema de los automoviles

Matriz de precios
1 2 3 4 5 6
1 / 7 12 21 31 44
2 ∞ / 7 12 21 31
3 ∞ ∞ / 7 12 21
4 ∞ ∞ ∞ / 7 12
5 ∞ ∞ ∞ ∞ / 7
6 ∞ ∞ ∞ ∞ ∞ /

Fila1 columna 1
Matriz de precios
1 2 3 4 5 6
1 / 7 12 21 31 44
2 ∞ / 7 12 21 31
3 ∞ ∞ / 7 12 21
4 ∞ ∞ ∞ / 7 12
5 ∞ ∞ ∞ ∞ / 7
6 ∞ ∞ ∞ ∞ ∞ /

Fila 2 columna 2
Matriz de precios
1 2 3 4 5 6
1 / 7 12 19 28 38
2 ∞ / 7 12 21 31
3 ∞ ∞ / 7 12 21
4 ∞ ∞ ∞ / 7 12
5 ∞ ∞ ∞ ∞ / 7
6 ∞ ∞ ∞ ∞ ∞ /

Fila 3 columna 3
Matriz de precios
1 2 3 4 5 6
1 / 7 12 19 24 33
2 ∞ / 7 12 19 28
3 ∞ ∞ / 7 12 21
4 ∞ ∞ ∞ / 7 12
5 ∞ ∞ ∞ ∞ / 7
6 ∞ ∞ ∞ ∞ ∞ /

Fila 4 columna 4
Matriz de precios
1 2 3 4 5 6
1 / 7 12 19 24 31
2 ∞ / 7 12 19 24
3 ∞ ∞ / 7 12 19
4 ∞ ∞ ∞ / 7 12
5 ∞ ∞ ∞ ∞ / 7
6 ∞ ∞ ∞ ∞ ∞ /

Fila 5 columna 5
Matriz de precios
1 2 3 4 5 6
1 / 7 12 19 24 31
2 ∞ / 7 12 19 24
3 ∞ ∞ / 7 12 19
4 ∞ ∞ ∞ / 7 12
5 ∞ ∞ ∞ ∞ / 7
6 ∞ ∞ ∞ ∞ ∞ /

Fila 6 columna 6
Matriz de precios
1 2 3 4 5 6
1 / 7 12 19 24 31
2 ∞ / 7 12 19 24
3 ∞ ∞ / 7 12 19
4 ∞ ∞ ∞ / 7 12
5 ∞ ∞ ∞ ∞ / 7
6 ∞ ∞ ∞ ∞ ∞ /

Como se muestra en el diagrama las flechas van en una sola direeción lo que nos genera varios infinitos en la matriz de los cua
no es posible eliminarlos y esto nos indica que existen varias soluciones. La matriz final nos ayudara a indicar cual es el costo
neto total y cual es el recorrido que debemos realizar de la forma más corta.
Para ejemplificar el mantener del año 1 al año 6 hay que hacer un cambio de auto en el año dos y despues en el año cuatro
y mantenerlo hasta el año 6 con eso el costo total se reduciria.
Matriz de Recorrido
1 2 3 4 5 6
1 1 2 3 4 5 6
2 1 2 3 4 5 6
3 1 2 3 4 5 6
4 1 2 3 4 5 6
5 1 2 3 4 5 6
6 1 2 3 4 5 6

Matriz de Recorrido
1 2 3 4 5 6
1 1 2 3 4 5 6
2 1 2 3 4 5 6
3 1 2 3 4 5 6
4 1 2 3 4 5 6
5 1 2 3 4 5 6
6 1 2 3 4 5 6

Matriz de Recorrido
1 2 3 4 5 6
1 1 2 3 2 2 2
2 1 2 3 4 5 6
3 1 2 3 4 5 6
4 1 2 3 4 5 6
5 1 2 3 4 5 6
6 1 2 3 4 5 6

Matriz de Recorrido
1 2 3 4 5 6
1 1 2 3 2 3 3
2 1 2 3 4 3 3
3 1 2 3 4 5 6
4 1 2 3 4 5 6
5 1 2 3 4 5 6
6 1 2 3 4 5 6

Matriz de Recorrido
1 2 3 4 5 6
1 1 2 3 2 3 4
2 1 2 3 4 3 4
3 1 2 3 4 5 4
4 1 2 3 4 5 6
5 1 2 3 4 5 6
6 1 2 3 4 5 6

Matriz de Recorrido
1 2 3 4 5 6
1 1 2 3 2 3 4
2 1 2 3 4 3 4
3 1 2 3 4 5 4
4 1 2 3 4 5 6
5 1 2 3 4 5 6
6 1 2 3 4 5 6

Matriz de Recorrido
1 2 3 4 5 6
1 1 2 3 2 3 4
2 1 2 3 4 3 4
3 1 2 3 4 5 4
4 1 2 3 4 5 6
5 1 2 3 4 5 6
6 1 2 3 4 5 6

os infinitos en la matriz de los cuales


udara a indicar cual es el costo

os y despues en el año cuatro


Un empresario buscando en fomentar el ejercicio en las personas a realizado una competencia de ciclismo en la
cual se otorgara un premio de $5000 pesos y no tendra ningun costo de inscripción, la compentencia consta de
llegar desde el punto A al punto H el diagrama que se muestra a continuacion es la ruta que se va a seguir en otras
palabras es el mapa, los recuadros azules hacen referencia a los kilometros que se van a recorrer en el transcurso pero
hay que ser observadores en este mapa pues elegir la ruta mas corta definira al ganador.

Etiqueta 10C
Etiqueta 5A
5 F
C
5
3
2 Etiqueta
7C
Etiqueta 0A A
D
1

3 8

B
2
6 E
Etiqueta 3A
Etiqueta 9B

A H 11

Despues de observar el mapa y aplicar el algoritmo de dijkstra para tener una solución más eficiente se
hace notar que el recorrido mas corto solo constaria de 11 km. Y la ruta que se debía de seguir para obtener
esta menor distancia posible es de A a C, C a D, D a G, G a H.
a de ciclismo en la
entencia consta de
e va a seguir en otras
rer en el transcurso pero

Etiqueta 10C

F 5

H 11G

3
G

Etiqueta 8D
2

ir para obtener

Вам также может понравиться