Académique Documents
Professionnel Documents
Culture Documents
Cadena: Una cadena corresponde a una serie de elementos ramales que van
de un nodo a otro. En el siguiente caso se resalta una cadena que va desde el
nodo 1 hasta el nodo 7 y que se compone por los elementos [1-4, 4-7].
Ruta: Una ruta corresponde a los nodos que constituyen una cadena, en el
siguiente caso [1, 4, 7].
El acueducto municipal le
contacta a usted para que
mediante sus conocimientos
en teora de redes construya
una red de expansin que
minimice la longitud total de
ductos y que enlace todos
los nodos del plan parcial de
vivienda.
PASO 0:
Se definen los conjuntos iniciales C0 = {} que corresponde al conjunto de
nodos enlazados de forma permanente en la iteracin indicada en el subndice y
0 = {N = 1,2,3,4,5,6,7,8} que corresponde al conjunto de nodos pendientes por
enlazar de manera permanente en la iteracin indicada en el subndice.
PASO 1:
Se debe definir de manera arbitraria el primer nodo permanente del conjunto 0,
en este caso escogeremos el nodo 1 (puede ser cualquier otro), que
algebraicamente se representa con la letra i, se procede a actualizar los
conjuntos iniciales, por ende C1 = {i} = {1} y 0 = {N - i} = {2,3,4,5,6,7,8},
actualizamos k por ende ahora ser igual a 2.
PASO 2:
Ahora se debe seleccionar el nodo j del conjunto K-1 (es decir del conjunto del
paso 1) el cual presente el arco con la menor longitud y que se encuentre
enlazado con uno de los nodos de enlace permanente del conjunto Ck-1 en el
cual ahora solo se encuentra el nodo 1 (es decir que se debe de encontrar un
nodo que tenga el arco de menor longitud enlazado al nodo 1).
Al
actualizar
los
conjuntos quedan as:
C3 = {1,2,4} y 3 =
{3,5,6,7,8}
Ahora se procede a
actualizar k ya que se
procede a efectuar la
siguiente iteracin.
Ahora se enlazar de
manera permanente el
nodo 7.
Al
actualizar
los
conjuntos quedan as:
C5 = {1,2,4,5,7} y 5 =
{3,6,8}
Ahora se procede a
actualizar k ya que se
procede a efectuar la
siguiente iteracin.
Ahora se enlazar de
manera permanente el
nodo 6.
Al actualizar los conjuntos
quedan as:
C6 = {1,2,4,5,7,6} y 6 =
{3,8}
Ahora se procede a
actualizar k ya que se
procede a efectuar la
siguiente iteracin.
Ahora se procede a
actualizar k ya que se
procede a efectuar la
ltima iteracin.
Ahora se enlazar
de
manera
permanente el nodo
8.
Al actualizar los
conjuntos quedan
as:
C8
=
{1,2,4,5,7,6,3,8} =
{N} y 8 = {}
Por ende se ha
llegado al rbol de
expansin mnima
ALGORITMO DE DIJKSTRA.
Distancia hasta el
nodo j, desde el
nodo origen.
Nodo
inmediatamente
anterior a j.
EJEMPLO
Dada la siguiente red, calcule la ruta mas corta de la ciudad 1 al resto de las ciudades
0+100,1
40+15,4
30+10,3
40+50,4
0,0+30,1
30+60,3
Sea ui la distancia ms corta del nodo origen 1 al nodo i.
Defina dij (>= 0) como la longitud del arco (i,j).
El algoritmo define la etiqueta para un nodo j que sigue inmediatamente como:
Distancia hasta el
nodo j, desde el
nodo origen.
Nodo
inmediatamente
anterior a j.
ALGORITMO DE FLOYD
ALGORITMO DE FLOYD
El algoritmo de Floyd es ms general que el de Dijkstra, ya que determina la ruta ms corta entre dos nodos
cualquiera de la red.
El algoritmo representa una red de n nodos como una matriz cuadrada de orden n, la llamaremos matriz C.
De esta forma, el valor Cij representa el coste de ir desde el nodo i al nodo j, inicialmente en caso de no
existir un arco entre ambos, el valor Cij ser infinito.
Definiremos otra matriz D, tambin cuadrada de orden n, cuyos elementos van a ser los nodos predecesores
en el camino hacia el nodo origen, es decir, el valor Dij representar el nodo predecesor a j en el camino
mnimo desde i hasta j. Inicialmente se 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 mismo,
por lo que no sirven para nada, estarn bloqueadas.
Los pasos a dar en la aplicacin del algoritmo de Floyd son los siguientes:
EJEMPLO
Aplicar el algoritmo de Floyd sobre el siguiente grafo para obtener las rutas ms cortas entre cada dos nodos.
El arco (3, 5) es direccional, de manera que no est permitido ningn trfico del nodo 5 al nodo 3 . Todos los
dems arcos permiten el trfico en ambas direcciones.
ALGORITMO DE FLOYD
MATRICES INICIALES
TOMAMOS K=1
1
2
3
4
5
MATRIZ C
1 2 3 4
3 10
3
- 5
10 6
5 6
4
15
4
-
1
2
3
4
5
1
2
3
4
5
MATRIZ D
2 3
1 1
2
3
4 4
5 5
4
1
2
3
5
5
1
2
3
4
-
TOMAMOS K=1
1
2
3
4
5
MATRIZ C
1 2 3 4 5
- 3 10
3 - 13 5
10 13 - 6 15
5 6 - 4
4 -
1
2
3
4
5
MATRIZ D
1 2 3 4
- 1 1 1
2 - 1 2
3 1 - 3
4 4 4 5 5 5 5
5
1
2
3
4
-
TOMAMOS K=2
Tomamos i=1:
j=3: C[1,2]+C[2,3] = 3+13 = 16 > C[1,3] = 10 , por tanto no hay que cambiar nada, el camino es
mayor que el existente.
J=4: C[1,2]+C[2,4] = 3+5 = 8 < C[1,4] = , por tanto hacemos:
C[1,4] = 8 y D[1,4] = 2 .
j=5: C[1,2]+C[2,5] = 3+ = , no hay que cambiar nada.
Tomamos i=3:
J=1: C[3,2]+C[2,1] = 13+3 = 16 > C[3,1] = 10, no hay que cambiar nada.
J=4: C[3,2]+C[2,4] = 13+5 = 18 > C[3,4] = 6, no hay que cambiar nada.
j=5: C[3,2]+C[2,5] = 13+ = , no hay que cambiar nada.
Tomamos i=4:
j=1: C[4,2]+C[2,1] = 5+3 = 8 < C[4,1] = , por tanto hacemos:
C[4,1] = 8 y D[4,1] = 2.
j=3: C[4,2]+C[2,3] = 5+13 = 18 > C[4,3] = 6, no hay que cambiar nada.
j=5: C[4,2]+C[2,5] = 5+ = , no hay que cambiar nada.
Tomamos i=5, como C[5,2]=, entonces no habr ningn cambio.
TOMAMOS K=2
1
2
3
4
5
MATRIZ C
1 2 3 4 5
- 3 10 8
3 - 13 5
10 13 - 6 15
8 5 6 - 4
4 -
1
2
3
4
5
MATRIZ D
1 2 3 4
- 1 1 2
2 - 1 2
3 1 - 3
2 4 4 5 5 5 5
5
1
2
3
4
-
TOMAMOS K=3
Tomamos i=1:
j=2: C[1,3]+C[3,2] = 10+13 = 23 > C[1,2] = 3, no hay que cambiar nada.
j=4: C[1,3]+C[3,4] = 10+6 = 16 > C[1,4] = 8, no hay que cambiar nada.
j=5: C[1,3]+C[3,5] = 10+15 = 25 < C[1,5] = , por tanto hacemos:
C[1,5] = 25 y D[1,5] = 3 .
Tomamos i=2:
j=1: C[2,3]+C[3,1] = 13+10 = 23 > C[2,1] = 3, no hay que cambiar nada.
j=4: C[2,3]+C[3,4] = 13+6 = 19 > C[2,4] = 5, no hay que cambiar nada.
j=5: C[2,3]+C[3,5] = 13+15 = 28 < C[2,5] = , por tanto hacemos:
C[2,5] = 28 y D[2,5] = 3.
Tomamos i=4:
j=1: C[4,3]+C[3,1] = 6+10 = 16 > C[4,1] = 8, no hay que cambiar nada.
j=2: C[4,3]+C[3,2] = 6+13 = 19 > C[4,2] = 5, no hay que cambiar nada.
j=5: C[4,3]+C[3,5] = 6+15 = 21 > C[4,5] = 4, no hay que cambiar nada.
Tomamos i=5, como C[5,3]=, entonces no habr ningn cambio.
TOMAMOS K=3
1
2
3
4
5
MATRIZ C
1 2 3 4 5
- 3 10 8 25
3 - 13 5 28
10 13 - 6 15
8 5 6 - 4
4 -
1
2
3
4
5
MATRIZ D
1 2 3 4
- 2 1 2
2 - 1 2
3 1 - 3
2 4 4 5 5 5 5
5
3
3
3
4
-
TOMAMOS K=4
Tomamos i=1:
j=2: C[1,4]+C[4,2] = 8+5 = 13 > C[1,2] = 3, no hay que cambiar nada.
j=3: C[1,4]+C[4,3] = 8+6 = 14 > C[1,3] = 10, no hay que cambiar nada.
j=5: C[1,4]+C[4,5] = 8+4 = 12 < C[1,5] = 25, por tanto hacemos:
C[1,5] = 12 y D[1,5] = 4.
Tomamos i=2:
j=1: C[2,4]+C[4,1] = 5+8 = 13 > C[2,1] = 3, no hay que cambiar nada.
j=3: C[2,4]+C[4,3] = 5+6 = 11 < C[2,3] = 13, por tanto hacemos:
C[2,3] = 11 y D[2,3] = 4.
j=5: C[2,4]+C[4,5] = 5+4 = 9 < C[2,5] = 28, por tanto hacemos:
C[2,5] = 9 y D[2,5] = 4.
Tomamos i=3:
j=1: C[3,4]+C[4,1] = 6+8 = 14 > C[3,1] = 10, no hay que cambiar nada.
j=2: C[3,4]+C[4,2] = 6+5 = 11 < C[3,2] = 13, por tanto hacemos:
C[3,2] = 11 y D[3,2] = 4.
j=5: C[3,4]+C[4,5] = 6+4 = 10 < C[3,5] = 15, por tanto hacemos:
C[3,5] = 10 y D[3,5] = 4.
Tomamos i=5:
j=1: C[5,4]+C[4,1] = 4+8 = 12 < C[5,1] = , por tanto hacemos:
C[5,1] = 12 y D[5,1] = 2 .
j=2: C[5,4]+C[4,2] = 4+5 = 9 < C[5,2] = , por tanto hacemos:
C[5,2] = 9 y D[5,2] = 4.
j=3: C[5,4]+C[4,3] = 4+6 = 10 < C[5,3] = , por tanto hacemos:
C[5,3] = 10 y D[5,3] = 4.
MATRIZ D
MATRIZ C
1 2 3 4 5
1 2 3 4
1 - 3 10 8 12
1 - 1 1 2
TOMAMOS K=4
2 3 - 11 5 9
2 2 - 4 2
3 10 11 - 6 15
3 3 4 - 3
4 8 5 6 - 4
4 2 4 4 5 12 9 10 4 5 2 4 4 5
5
4
4
3
4
-
TOMAMOS K=5
Tomamos i=1:
j=2: C[1,5]+C[5,2]
j=3: C[1,5]+C[5,3]
j=4: C[1,5]+C[5,4]
Tomamos i=2:
j=1: C[2,5]+C[5,1]
j=3: C[2,5]+C[5,3]
j=4: C[2,5]+C[5,4]
Tomamos i=3:
j=1: C[3,5]+C[5,1]
j=2: C[3,5]+C[5,2]
j=4: C[3,5]+C[5,4]
Tomamos i=4:
j=1: C[4,5]+C[5,1]
j=2: C[4,5]+C[5,2]
j=3: C[4,5]+C[5,3]
TOMAMOS K=5
1
2
3
4
5
MATRIZ C
1 2 3 4 5
- 3 10 8 12
3 - 11 5 9
10 11 - 6 15
8 5 6 - 4
12 9 10 4 -
1
2
3
4
5
MATRIZ D
1 2 3 4
- 1 1 2
2 - 4 4
3 4 - 4
2 4 4 2 4 4 5
5
4
4
3
4
-
Las matrices finales C y D contienen toda la informacin necesaria para determinar la ruta ms corta entre
dos nodos cualquiera de la red. Por ejemplo, la distancia ms corta del nodo 1 al nodo 5 es C[1,5] = 12.
Para determinar la ruta asociada del camino mnimo entre el nodo 1 y el nodo 5haremos lo siguiente:
Consultamos D[1,5]=4, por tanto el nodo predecesor al 5 es el 4, es decir,4 5.
Consultamos D[1,4]=2, por tanto el nodo predecesor al 4 es el 2, es decir,2 4 5.
Consultamos D[1,2]=1, por tanto el nodo predecesor al 2 es el 1, es decir, 1 2 4 5, y as ya tenemos
la ruta completa.
FLUJO MAXIMO
Problema del Flujo Mximo: En una red con flujo de capacidades en los arcos, el
problema es determinar el flujo mximo posible proveniente de los orgenes de forma tal de
ahogar las capacidades de flujos de los arcos. Considere una red con m nodos y n arcos
con un flujo simple de bienes. Denote el arco de flujo (i a j) como Xij. Asociamos cada arco
a una capacidad de flujo, kij. En esta red, deseamos encontrar el flujo total mximo en la
red, F, del nodo 1 al nodo m.En la formulacin de la programacin lineal, el objetivo es
maximizar F. El monto que parte del origen por varias rutas. Para cada nodo intermedio, lo
que entra debe ser igual a lo sale. En algunas rutas los flujos pueden tomar ambas
direcciones. La capacidad que puede ser enviada a una direccin en particular tambin es
mostrada en cada ruta.
FLUJO MAXIMO
Existe un flujo que viaja desde un nico lugar de origen hacia un nico lugar de destino a travs de arcos
que conectan nodos intermediarios. Los arcos tienen una capacidad mxima de flujo y se trata de enviar
desde la fuente al destino la mayor cantidad posible de flujo
Hay problemas donde lo importante es la cantidad de flujo que pasa a travs de la red como por ejemplo:
en las lneas de oleoductos, redes elctricas o de transmisin de datos. Por esta razn en dichos
problemas se determina el flujo mximo que pasa a travs de una red.
Definiciones bsicas
Flujo: Circulacin de unidades homogneas de un lugar a otro.
Capacidad de flujo: es la capacidad de unidades que pueden entrar por el nodo fuente y salir por el
nodo destino.
Origen o fuente de flujo: nodo por el cual el flujo ingresa.
Destino o Sumidero de flujo: nodo por el cual el flujo sale.
Capacidades residuales: capacidades restantes unas vez que el flujo pasa el arco
Resolucin de problema
Para resolver un problema de flujo mximo se debe seguir los siguientes pasos:
Se identifica el nodo origen y destino.
Se parte desde el nodo de origen y se escoge el arco que posea mayor flujo
Se identifica los nodos de transbordo.
Repetir como si el nodo intermediario fuera el nodo origen.
Se calcula "k" y las capacidades nuevas.
Dado el resultado se cambian las capacidades y se repite el mismo procedimiento desde el
inicio.
Formulario
Cij,ji =(Ci-K, Cj+K), donde:
C: capacidad
Ij: ndices de los nodos
K: es el minimo flujo que pasa por el nodo, se calcula como k= min(capacidades de la ruta).
Se identifica el nodo de
transbordo como [30,1], 30 es la
capacidad, y 1 es el nodo del
cual proviene la capacidad y
luego repetimos todo el proceso,
como si el nodo intermediario
fuese el nodo de origen. Se tiene
como flujo mayor 20 del nodo
numero 3 al nodo numero 5, con
el nodo de transbordo como
[20,5].
K=min(,30,20)
K=20
C13,31 =(30-20, 0+20)
C13,31 =(10, 20)
C35,53 =(20-20, 0+20)
C35,53 =(0, 20)
Luego de haber calculado
las nuevas capacidades, es
necesario reemplazarlas.
Flujo Mximo = K
Flujo Mximo = 20+10+10+10+10
Flujo Mximo = 60
El flujo mximo que puede pasar del nodo origen 1 hasta el nodo destino es de 60.
A las ciudades o a los puntos de partida y llegadas se les llama nodos y los
caminos entre ellos se llama arcos. Existen arcos dirigido y no dirigidos los
arcos dirigidos solo pueden ir desde el arco inicial al arco terminal, es como
una calle con un solo sentido, si el arco es no dirigido significa que se puede
recorrer en doble sentido.
En estos problemas se construye una ruta de costo mnimo en los cuales
cada cliente, ciudades o nodos pasen por lo dems nodos exactamente una
vez, es decir:
Sea Ci j el costo del viaje desde la ciudad i hasta la ciudad j.
Construir una ruta de costo mnimo que visite a cada
ciudad
exactamente una vez.
Si Ci j = Cj i para todas la ciudades, entonces el problema
es
simtrico.
Si Ci j Cj i para algn par de ciudades, entonces el problema es
asimtrico.