Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Modelos de Redes
Pueden resolverse muy rpidamente. Esto permite que modelos de
redes sean usados en muchas aplicaciones para lo cual la programacin lineal no es lo ideal (toma de decisin en tiempo real).
Terminologa
Una red o grafo consiste en un conjunto de puntos y un conjunto de lneas que conectan pares de puntos. Los puntos se llaman nodos o vrtices y las lneas se llaman arcos o aristas, estos pueden tener una direccin asociada, en este caso se denominan arcos dirigidos. Arcos dirigidos
Nodos
Arcos
Terminologa
Se denomina flujo al valor que se le asigna a un arco que conecta dos nodos. Para nombrar el arco se pone primero el nodo de donde viene (origen), y luego el nodo hacia donde va (destino). Por ejemplo, si el flujo slo va desde el nodo C hacia al nodo D, entonces el arco se llama CD y no DC
4
A
B 7
6 D 3 E
Flujo
2 Arco CD C 5
3 F
6
4
Terminologa
Una trayectoria entre 2 nodos es una sucesin de arcos distintos que conectan estos nodos. Por ejemplo, una trayectoria que conecta al nodo A con el nodo G es AC - CE - EG. 6 D 7 2 C 5 Trayectoria 3 F E 6 4 G 3
4 A
Terminologa
Una trayectoria dirigida desde el nodo i al nodo j es una sucesin de arcos cuya direccin (si la tienen) es hacia el nodo j, de manera que el flujo del nodo i al nodo j a travs de esta trayectoria es factible.
Una trayectoria no dirigida del nodo i al nodo j es una sucesin de arcos cuya direccin (si la tienen) puede ser hacia o desde el nodo j. 4
A 7 2 AG Trayectoria dirigida C 5 E B 6 D 3 GA Trayectoria no dirigida
3 F
6
4
Terminologa
Un ciclo es una trayectoria que comienza y termina en un mismo nodo, se denomina ciclo dirigido cuando est formado por una trayectoria dirigida y ciclo no dirigido cuando la trayectoria que lo conforma es no dirigida
4 A 7 2 C 5 3 F E 6 4 G B 6 D 3
AC - CD - DB - BA es un ciclo dirigido
GE - EC - CF - FG es un ciclo no dirigido
Terminologa
Dos nodos se encuentran conectados si la red contiene al menos una trayectoria no dirigida entre ellos. Una red conexa es una red en la que cada par de nodos est conectado.
Red Conexa
A B A
Red No Conexa B
C D
E C D
Terminologa
La cantidad mxima de flujo que puede circular en un arco dirigido es llamada capacidad del arco. El nodo que tiene la propiedad de que su flujo que sale es mayor que el flujo que entra en l se le llama nodo fuente (o nodo origen). Por el contrario, si su flujo que sale es menor que el flujo que entra a l se le llama nodo demanda (o nodo destino). Si el flujo que entra es igual al flujo que sale, entonces se le llama nodo de trasbordo (o nodo intermedio) 4 Nodo Fuente A 3 C Nodo Demanda B Nodo de Transbordo 4
Terminologa
Un rbol es una serie de nodos conectados que no contiene ciclos. Un rbol de expansin es un rbol que conecta todos los nodos de la red (contiene n -1 arcos, donde n es el nmero de nodos)
rbol ABC C D E
Algoritmo de Prim
El algoritmo de Prim permite encontrar una buena solucin al problema del rbol de expansin mnima.
Algoritmo de Prim
4 A 7 2 C 3 E 6 F 4 A 2 C 5 3 F 4 E B 6 D 3 G
B D
3 G
Algoritmo de Prim
Se desea construir una red de caminos que permita conectar a siete ciudades. A continuacin se presentan los costos de conectar a cada par de ciudades. Los costos que aparecen en blanco indican que no es posible tcnicamente construir un camino directo entre ese par de ciudades.
Ciudad A B C D E F G A 3 5 5 B 3 1 7 C 5 1 1 3 3 D 5 1 4 E 7 3 1 4 F G
3 4 1 6
4 6 -
Algoritmo de Prim
Disear la red de caminos de manera de minimizar los costos de conectar a las ciudades. 7 B 3 A 5 1 5 D 4 F 1 C 3 3 1 E 4 G 6
AB BC CD
$3 $1 $1
CF FE
EG Costo
$3 $1
$4 $ 13
Algoritmo de Floyd.
Algoritmo de Dijkstra.
El algoritmo de Floyd entrega las distancias ms cortas entre todos los pares de nodos de la red, generando una matriz de distancias mnimas, mientras que el de Dijkstra entrega el camino ms corto entre un par de nodos determinados.
Algoritmo de Floyd
Sea: n: nmero de nodos (dimensin de la matriz). Cik: distancia del nodo i al nodo k. i,k : 1..n.
1.- K= 0 2.- K= K+1 3.- i K / Cik j K / Ckj Calcular Cij = min {Cij, Cik + Ckj} 4.- Si K < n volver paso 2
Algoritmo de Floyd
Determine las mnimas distancias entre cada par de estos cuatro nodos que se presentan en la siguiente red.
5 1 1 9 3
2 2 2 4 1
Algoritmo de Floyd
A partir del grafo generamos una matriz de distancias. Las distancias que no existen se les asigna infinito ()
Nodo 1 2 3 4
1 0 5 9
2 5 0 1 2
3 9 2 0
2 1 0
Algoritmo de Floyd
Para K = 1 i1yj1
C22 = min {C22, C21 + C12} = min {0, 5 + 5} = 0 C23 = min {C23, C21 + C13} = min {2, 5 + 9} = 2 C24 = min {C24, C21 + C14} = min {2, 5 + } = 2 C32 = min {C32, C31 + C12} = min {1, 9 + 5} = 1 C33 = min {C33, C31 + C13} = min {0, 9 + 9} = 0 C34 = min {C34, C31 + C14} = min {1, 9 + } = 1 C42 = min {C42, C41 + C12} = min {2, + 5} = 2 C43 = min {C43, C41 + C13} = min {, + 9} = C44 = min {C44, C41 + C14} = min {0, + } = 0
Algoritmo de Floyd
Para K = 2 i2yj2
C11 = min {C11 , C12 + C21} = min {0, 5 + 5} = 0 C13 = min {C13 , C12 + C23} = min {9, 5 + 2} = 7 C14 = min {C14 , C12 + C24} = min {, 5 + 2} = 7 C31 = min {C31 , C32 + C21} = min {9, 1 + 5} = 6 C33 = min {C33 , C32 + C23} = min {0, 1 + 2} = 0 C34 = min {C34 , C32 + C24} = min {1, 1 + 2} = 1
C41 = min {C41 , C42 + C21} = min {, 2 + 5} = 7 C43 = min {C43 , C42 + C23} = min {, 2 + 2} = 4 C44 = min {C44 , C42 + C24} = min {0, 2 + 2} = 0
Algoritmo de Floyd
Para K = 3 i3yj3
C11 = min {C11 , C13 + C31} = min {0, 7 + 6} = 0 C12 = min {C12 , C13 + C33} = min {5, 7 + 0} = 5 C14 = min {C14 , C13 + C34} = min {7, 7 + 1} = 7 C21 = min {C21 , C23 + C31} = min {5, 2 + 6} = 5 C22 = min {C22 , C23 + C33} = min {0, 2 + 0} = 0 C24 = min {C24 , C23 + C34} = min {2, 2 + 1} = 2
C41 = min {C41 , C43 + C31} = min {7, 4 + 6} = 7 C42 = min {C42 , C43 + C33} = min {2, 4 + 0} = 2 C44 = min {C44 , C43 + C34} = min {0, 4 + 1} = 0
Algoritmo de Floyd
Para K = 4 i4yj4
C11 = min {C11 , C14 + C41} = min {0, 7 + 6} = 0 C12 = min {C12 , C14 + C42} = min {5, 7 + 2} = 5 C13 = min {C13 , C14 + C43} = min {7, 7 + 4} = 7 C21 = min {C21 , C24 + C41} = min {5, 2 + 6} = 5 C22 = min {C22 , C24 + C42} = min {0, 2 + 2} = 0 C23 = min {C23 , C24 + C43} = min {2, 2 + 4} = 2
C31 = min {C31 , C34 + C41} = min {6, 1 + 6} = 6 C32 = min {C32 , C34 + C42} = min {1, 1 + 2} = 1 C33 = min {C33 , C34 + C43} = min {0, 1 + 4} = 0
Algoritmo de Floyd
La matriz final de mnimas distancias es:
Nodo 1 2 3 4
1 0 5
2 5 0 1 2
7
2 0
7
2 1 0
6 7
Algoritmo de Dijkstra
Sea: a: nodo origen. z: nodo destino. w(v,x): distancia de v a x. T: conjunto de todos los vrtices. Asignar L(a) = 0, y L(x) = x a.
Si zT entonces parar, pues L(z) es la distancia mnima del nodo a hacia el nodo z.
1.
2.
3.
4.
Algoritmo de Dijkstra
Un camin de transporte ubicado en la ciudad I debe trasladar urgentemente una carga a la ciudad F. Para ello existen distintas combinaciones de caminos. Se le pide a usted determinar la ruta ms corta entre ambas ciudades. Para ello se le entrega la siguiente tabla con distancias (km). Los valores en blanco indican que no existe camino.
Ciudad I A B C D E F
I 0 3 5 5
A 3 0 1
B 5 1 0 1 3 3
C D 5 7 1 3 0 0 4 1 4
E F
3 4 1 0 6
4 6 0
Algoritmo de Dijkstra
Representando el problema como una red queda:
A 3 I 5 C 5 1 B 1
7 D 3
4 F 6 E
1
3
Algoritmo de Dijkstra
a = nodo I, z = nodo F, y T = {I,A,B,C,D,E,F} L(I) = 0 y L(A) = L(B) = L(C) = L(D) = L(E) = L(F) = Sea V = I, T = {A,B,C,D,E,F} Adyacentes a V = I L(A) = min {L(A), L(I) + w(I,A)} = min {, 0 + 3} = 3 L(B) = min {L(B), L(I) + w(I,B)} = min {, 0 + 5} = 5 L(C) = min {L(C), L(I) + w(I,C)} = min {, 0 + 5} = 5 Sea V = A, T = {B,C,D,E,F} 3 A
3 0 I 5 5 C 5
Algoritmo de Dijkstra
Adyacentes a V = A L(B) = min {L(B), L(A) + w(A,B)} = min {5, 3 + 1} = 4 L(D) = min {L(D), L(A) + w(A,D)} = min {, 3 + 7} = 10 Sea V = B, T = {C,D,E,F}
Adyacentes a V = B L(C) = min {L(C), L(B) + w(B,C)} = min {5, 4 + 1} = 5 L(D) = min {L(D), L(B) + w(B,D)} = min {10, 4 + 3} = 7 L(E) = min {L(E), L(B) + w(B,E)} min {, 4 + 3} = 7 Sea V = C, T = {D,E,F}
Adyacentes a V = C L(E) = min {L(E), L(C) + w(C,E)} = min {7, 5 + 4} = 7 Sea V = D, T = {E,F}
Algoritmo de Dijkstra
Adyacentes a V = D L(E) = min {L(E), L(D) + w(D,E)} = min {7, 7 + 1} = 7 L(F) = min {L(F), L(D) + w(D,F)} = min { ,7 + 4} = 11 Sea V = E, T = {F} Adyacentes a V = E L(F) = min {L(F), L(E) + w(E,F)} min {11 , 7 + 6} = 11 Sea V = F, T = {} Nodo F al conjunto T, por lo tanto parar.
Ejemplos
Una empresa quiere comunicar mediante una red de computacin la casa matriz con sus 5 sucursales. El objetivo es permitir la comunicacin entre cualquier par de sucursales o casa matriz. Para esto, sin embargo, no es necesario tirar cables entre todos los pares, sino que pueden comunicarse dos sucursales a travs de otra.
Se trata de encontrar el rbol que minimiza la longitud de cable. La cantidad de cable necesario para conectar cada par se muestra en la siguiente tabla:
Matriz Suc 1 Suc 2 Suc 3 Suc 4 Suc 5 Matriz Suc 1 Suc 2 Suc 3 Suc 4 Suc 5 0 10 2 34 18 12 10 0 20 9 11 3 2 20 0 12 4 11 34 9 12 0 21 5 18 11 4 21 0 10 12 3 11 5 10 0
Ejemplos
Resolviendo por medio del Algoritmo de Prim
9 1 3 3 5 M2: 2 34 M 20 12 11 12 21 11 5 24: 4 M1: 10 15: 3 53: 5 10 4 Longitud: 24
10
18
Ejemplos
Una persona debe viajar desde un extremo de la ciudad al otro (desde A hacia I), recorriendo la mnima distancia, segn muestra el grafo a continuacin, determine la ruta y la distancia recorrida. Resolver por Dijkstra C
6 9 15 2
G E
9 3 13
A
4
D
3
H
7
Ejemplos
T = {A B C D E F G H I }
6 20 21
C
6 9
15
13 2 9
22
E
0
A
4
7 13
D
3
H
7
Ruta: A D E I
B
4
F
11
18 17
Ejemplos
Una firma ha ganado un contrato para producir cubiertas. El contrato tiene una duracin de 4 aos. El proceso de produccin requiere de una mquina que carece la firma. sta puede comprarla, mantenerla durante los 4 aos del contrato y luego venderla en el valor de su rescate, o puede reemplazarla por un modelo, al final de cualquier ao dado. Los nuevos modelos requieren menos mantenimiento que los antiguos. En la tabla se indica el costo neto estimado (precio de compra + mantenimiento - precio de venta) para una mquina comprada al inicio del ao i y vendida al inicio del ao j. Determinar en qu momento conviene remplazar la mquina.
Ao Ao Ao Ao Ao 1 2 3 4 5 Ao 1 Ao 2 Ao 3 Ao 4 Ao 5 12 19 33 49 14 23 38 16 26 13 -
Ejemplos
Resolviendo mediante algn algoritmo de camino ms corto
12; 1 1 33;
23
2
12 33
14 49 16 38
13
Respuesta: La mquina se debe reemplazar al inicio del ao 3 y se mantiene hasta el inicio del ao 5, con un costo total de 45
19
3
1 19;
26
5
1 49; 45; 3
Ejemplos
1.- Una central de radio taxi (punto 1) recibe un llamado telefnico para pasar a buscar a un cliente al Hotel (punto 5) y llevarlo al Aeropuerto (punto 7), determine la ruta utilizada por el taxista desde que sale de la central hasta que vuelve a la misma, de manera de realizar el mnimo recorrido.
1 2 3 4 5 1 2 3 4 5 6 7 8 4 5 8 4 7 5 6 9 3 5 4 3 6 7 6 6 9 8 6 7 6 8 9 3 9 -
7 3
5 4
6 7
Ejemplo
En este caso hay que resolver 3 problemas: ir del punto 1 al punto 5, despus del 5 al 7 y finalmente volver del 7 al 1.
Caso 1: 1 a 5
a = nodo 1, z = nodo 5 y T = {1, 2, 3, 4, 5, 6, 7, 8} L(1) = 0, L(x) = x 1 Sea V = 1, T = {2, 3, 4, 5, 6, 7, 8} Adyacentes a 1 L(2) = min { , 0+4} = 4 L(3) = min { , 0+7} = 7 L(4) = min { , 0+5} = 5 L(7) = min { , 0+8} = 8 Sea V = 2, T = {3, 4, 5, 6, 7, 8} Adyacentes a 2 L(3) = min {7 , 4+3} = 7 L(6) = min { , 4+6} = 10 L(8) = min { , 4+9} = 13
Ejemplo
Sea V = 4, T = {3, 5, 6, 7, 8} Adyacentes a 4 L(3) = min {7 , 5+5} = 7 L(7) = min {8 , 5+7} = 8 Sea V = 3, T = {5, 6, 7, 8} Adyacentes a 3 L(5) = min { , 7+4} = 11 L(7) = min {8 , 7+6} = 8 Sea V = 7, T = {5, 6, 8} Adyacentes a 7 L(6) = min {10 , 8+6} = 10 Sea V = 6, T = {5, 8} Adyacentes a 6 L(8) = min {13 , 10+9} = 13
Ejemplo
Sea V = 5, T = {8} Como 5 T Parar Camino ms corto es de largo 11 RUTA: 1 3 5 1 2 3 5
Caso 2: 5 a 7
a = nodo 5, z = nodo 7 y T = {1, 2, 3, 4, 5, 6, 7, 8} L(5) = 0, L(x) = x 5 Sea V = 5, T = {1, 2, 3, 4, 6, 7, 8} Adyacentes a 5 L(3) = min { , 0+4} = 4 L(8) = min { , 0+3} = 3 Sea V = 8, T = {1, 2, 3, 4, 6, 7} Adyacentes a 8 L(2) = min { , 3+9} = 12 L(6) = min { , 3+9} = 12
Ejemplo
Sea V = 3, T = {1, 2, 4, 6, 7} Adyacentes a 3 L(1) = min { , 4+7} = 11 L(2) = min {12 , 4+3} = 7 L(4) = min { , 4+5} = 9 L(7) = min { , 4+6} = 10 Sea V = 2, T = {1, 4, 6, 7} Adyacentes a 2 L(1) = min {11 , 7+4} = 11 L(6) = min {12 , 7+6} = 12 Sea V = 4, T = {1, 6, 7} Adyacentes a 4 L(1) = min {11 , 9+5} = 11 L(7) = min {10 , 9+7} = 10
Ejemplo
Sea V = 7, T = {1, 6} Como 7 T Parar Camino ms corto es de largo 10 RUTA: 5 3 7
Caso 3: 7 a 1 a = nodo 7, z = nodo 1 y T = {1, 2, 3, 4, 5, 6, 7, 8} L(7) = 0, L(x) = x 7 Sea V = 7, T = {1, 2, 3, 4, 5, 6, 8} Adyacentes a 7 L(1) = min { , 0+8} = 8 L(3) = min { , 0+6} = 6 L(4) = min { , 0+7} = 7 L(6) = min { , 0+6} = 6
Ejemplo
Sea V = 7, T = {1, 2, 3, 4, 5, 6, 8} Adyacentes a 7 L(1) = min { , 0+8} = 8 L(3) = min { , 0+6} = 6 L(4) = min { , 0+7} = 7 L(6) = min { , 0+6} = 6 Sea V = 3, T = {1, 2, 4, 5, 6, 8} Adyacentes a 3 L(1) = min {8 , 6+7} = 8 L(2) = min { , 6+3} = 9 L(4) = min {7 , 6+5} = 7 L(5) = min { , 6+4} = 10 Sea V = 6, T = {1, 2, 4, 5, 8} Adyacentes a 6 L(2) = min {9 , 6+6} = 9 L(8) = min { , 6+9} = 15
Ejemplo
Sea V = 4, T = {1, 2, 5, 8} Adyacentes a 4 L(1) = min {8 , 7+5} = 8 Sea V = 1, T = {2, 5, 8} Como 1 T Parar Camino ms corto es de largo 8 RUTA: 7 1 La ruta que debe utilizar el taxista es : 135371 1235371 Ambas rutas son de largo 29