Sunteți pe pagina 1din 38

ALGORITMO DE

DIJKSTRA
ALGORITMO DE DIJKSTRA

• Llamado algoritmo de caminos mínimos.


• Es un algoritmo para la determinación del
camino más corto dado un vértice origen OBJETIVO
al resto de vértices en un grafo dirigido y
con pesos en cada arco.
• Su nombre se refiere a Edsger Dijkstra,
quien lo describió por primera vez en
1959.
ALGORITMO DE DIJKSTRA

• Explorar todos los caminos más cortos que parten del


vértice origen y que llevan a todos los demás vértices.
• Cuando se obtiene el camino más corto desde el
vértice origen, al resto de vértices que componen el
grafo, el algoritmo se detiene.
• El algoritmo es una especialización de la búsqueda de
costo uniforme, y como tal, no funciona en grafos con
aristas de costo negativo.
ALGORITMO DE DIJKSTRA
ALGORITMO DE DIJKSTRA

1. Seleccionar un vértice de origen


2. Fijar un vértice destino
3. Determinar los caminos cercanos
4. Tomar el camino con valor mínimo
5. Seleccionar nuevo vértice como referencia
6. Determinar nuevamente caminos cercanos
7. Repetir hasta llegar al destino
Problemas resueltos:
Algoritmo de Dijkstra: Distancia
mínima
Paso 1 [7,O] [15,E]
Paso 2 C F
Paso 3 3 [10,C] 5
Paso 4
E 2 6
7 1
Paso 5 [21,F]
Paso 6 [0,O] 4 [11,B] 9 [19,E]
[7,O]
Paso 7 3 [22,G]
O B G 7 T
Paso 8 7

Paso 9 6
[20,H]
3 [10,B] [16,D]
[20,H]
2 [15,H]
6 D 6

4 [10,A] 4
A [10,A] Ruta mas corta:
[14,D] H O-A-D-H-T
[6,O] [6,O] [14,D]
Vértice Paso 1 Paso 2 Paso 3 Paso 4 Paso 5 Paso 6 Paso 7 Paso 8 Paso 9
O [0,O] * * * * * * * *
A [6,O] [6,O] * * * * * * *
B [7,O] [7,O] [7,O] * * * * * *
C [7,O] [7,O] [7,O] [7,O] * * * * *
[10,A] [10,A]
D -- [10,A] [10,A] * * * *
[10,B] [10,B]
[10,C]
E -- -- [11,B] [10,C] [10,C] * * *
[13,D]
F -- -- -- -- -- [15,E] [15,E] [15,E] *
[16,D]
G -- -- -- -- [16,D] [15,H] [15,H] *
[19,E]
H -- -- -- -- [14,D] [14,D] [14,D] * *
[20,H]
T Ruta
-- mas--corta: O-A-D-H-T
-- -- -- -- [20,H] [21,F] [22,H]
[22,G]
VÉRTICE FINAL TEMPORAL

A 0 0

B 3 el menor 3

C 7 8,8,7

D 5 5

E 15 15

F 10 3+7=10

G 9 9

H 16 16

I 13 9+4=13

J 18 19, 16+2=18
¿CÓMO SABEMOS QUE RUTA QUEDÓ COMO LA MÁS
CORTA?

• El punto J el mínimo es de 18 entonces retrocedemos cada uno cumpliendo que la diferencia


debe ser igual al número correspondiente que tiene cada vértice.
Ruta más corta: A-B-F-H-J
Ejercicios Aplicativos
en Software: LINGO
• PROBLEMA: Desarrollar el algoritmo de Dijkstra para hallar el camino más corto
desde Li hasta Lo, usando LINGO.

A 3.5 D
3.4

4.6 3.4
3.6

Li 4.7 B 3.2
E 3.6 Lf
3.3

4.2
3.8
3.5

C 3.4
F
ALGORITMO DE SOLUCIÓN EN LINGO

• model:
• sets:
• nodos/1...8/;
• arcos(nodos, nodos)/1,2 1,3 1,4 2,5 2,6 3,5 3,6 3,7 4,6 4,7 5,8 6,8 7,8 8,1/: costo, flujo;
• endsets
• data:
• costo=4.6 4.7 4.2 3.5 3.4 3.6 3.2 3.3 3.5 3.4 3.4 3.6 3.8 1;
• enddata
• min=@sum(arcos(I,J):costo(I,J)*flujo(I,J));
• flujo(8,1)=1; @for(nodos(i):@sum(arcos(j,i):flujo(j,i))=@sum(arcos(i,j):lujo(i,j)));
• end
Los flujos de los arcos
resaltados forman
parte de la ruta más
corta!
• RESPUESTA: La ruta más corta de Li (1) a
Lf(8) es la que pasa por los
nodos Li-A-C-Lf (1,4,6, 8), con una
longitud total de 12.3
APLICACIÓN CON
WINQSB
PROBLEMA 1: PLANEACIÓN DE LA
PRODUCCIÓN
DirectCo vende un artículo cuya demanda en los 4 meses venideros será 100, 140, 210 y 180
unidades, respectivamente. La empresa puede almacenar sólo la cantidad justa para abastecer la
demanda de cada mes, o puede almacenar más y cumplir con la demanda de dos o más meses
consecutivos. En el segundo caso se carga un costo de retención de $1.20 mensual por unidad
en exceso de existencia. DirectCo estima que los precios unitarios de compra durante los 4
meses siguientes serán de 15, 12,10 y 14 dólares respectivamente. Se incurre en un costo de
preparación de $200 cada vez que se coloca un pedido. La empresa desea desarrollar un plan de
compras que minimice los costos totales de los pedidos, las compras y la retención del artículo
en el almacén. Formule el problema como un modelo de ruta más corta y encuentre la solución
óptima.
RESUMEN DE DATOS
PROCESAMIENTO DE DATOS
DIAGRAMA DE RED DEL PROBLEMA
1. CONFIGURACIÓN INICIAL
2. TABULACIÓN DE DATOS Y SELECCIÓN DE
NODOS DE PARTIDA Y FIN.
3. TABLA DE RESULTADOS

Rpta. El plan de compras que minimice los costos totales está representada por la
compra de 100 , 140 y 390 de unidades para el mes 1,2 y 3 respectivamente.
4. SOLUCIÓN GRÁFICA
PROBLEMA 2:ESCAPE DE LA CIUDAD

Una pequeña ciudad va a ser bombardeada en aproximadamente 20 minutos y un mercenario


tiene que escapar desde algún lugar en las alcantarillas (nodo 1). Se conoce de antemano que el
punto de extracción por helicóptero (nodo 9) es la puerta principal de la estación de policía de
la ciudad y para llegar a dicho nodo hay que atravesar una red de túneles y pasadizos que van
conectados entre sí. El tiempo de vida que le queda al mercenario se ve amenazada por los
estragos de gases tóxicos esparcidos por la zona y se hace indispensable hallar la ruta de acceso
al nodo 9 más corta. Las distancias entre nodos (puntos clave de la ciudad) se encuentran en la
siguiente gráfica, dadas en cientos de metros. Resuelva mediante cualquier paquete de
herramientas de investigación operativa que permita establecer la ruta más corta para poder
lograr su extracción a tiempo.
PROBLEMA 2:ESCAPE DE LA CIUDAD
2. TABULACIÓN DE DATOS Y SELECCIÓN DE
NODOS DE PARTIDA Y FIN.
3. TABLA DE RESULTADOS

Rpta. La mejor ruta que debe


tomar el mercenario para su
escape exitoso es el de
1-3-5-4-6-9 , con un
recorrido de 1600 metros.
4. SOLUCIÓN GRÁFICA
BIBLIOGRAFÍA

• TAHA,Hamdy. Investigación de operaciones. Editorial Progreso S.A de C.V 9ma edición 2012. México.
• Ingeniería Industrial online. Teoría de redes. Recuperado de
https://www.ingenieriaindustrialonline.com/herramientas-para-el-ingeniero-
industrial/investigaci%C3%B3n-de-operaciones/teor%C3%ADa-de-redes/
• Calameo. Investigación Operativa 2: Teoría de Redes. Recuperado de
https://es.calameo.com/read/002563269a051e4f3efe1

S-ar putea să vă placă și