Está en la página 1de 24

1.

1 GRAFICAS:
Definicin: Se define una grfica como la pareja G = (X,A), en donde X = {X i}; i=1,2,...,n, es un conjunto de elementos que se pueden hacer corresponder a cada Xi un punto del plano llamado vrtice de la grfica y A es el conjunto {(Xi,Xj)} y, tal que, Xi y Xj pertenecen a X, hacindole corresponder una flecha que une a Xi y Xj, que se llama arco de la grfica. Por lo tanto A es el conjunto de relaciones que establecen para cada para de elemento de X. Es posible que entre dos vrtices no sea nico el arco que los une. X3 X2 X =5 X5 X1 A =6 X4 X3 X5

Ejemplo: Se ilustran las redes arriba

X =5 A =8

X2

X4

1.2 CONCEPTOS Y TERMINOS RELACIONADOS CON GRAFICAS


1.- Sea |X| el nmero de vrtices de la grfica. 2.- Sea |A| el nmero de arcos de la grfica. 3.- Extremo: Sea u=(Xi,Xj), Xi se le denomina extremo inicial y a Xj extremo final del arco u. 4.- Vrtices adyacentes: Dos vrtices Xi y Xj se dicen adyacentes si son distintos y si existe cuando menos un arco que los una. 5.- Arcos adyacentes: Dos o ms arcos son adyacentes si tienen un vrtice comn. 6.- Arcos incidentes a un vrtice: Se dice que un arco es incidente a un vrtice Xi, hacia el exterior, si Si es un extremo inicial y su extremo final es distinto de Xi. 7.- Arco incidente a un conjunto de vrtices: Si Y C X es un conjunto de vrtices de la grfica G=(X,A), se dice que el arco u=(Xi,Xj) es incidente a Y hacia el exterior si se tiene X i pertenece a Y, Xj no pertenece a Y. El conjunto de arcos incidentes a Y hacia el exterior, se representa por W+(Y). De forma semejante se dice que el arco u = (X k,Xe) es incidente a Y hacia el interior si se tiene X k no pertenece a Y, Xe pertenece a Y. El conjunto de arcos incidentes a Y hacia el interior se le representa con W-(Y). Al conjunto de arcos incidentes a Y se el representa con W(Y)=W+(Y) W-(Y). 8.- Camino: Un camino es una secuencia c {u1, u2,..., uk} de arcos tal que el extremo final de cada arco coincide con el extremo inicial del arco que ele sigue. Un camino tambin queda definido por los vrtices de los arcos que lo forman. 9.- Camino simple: Es un camino que no utiliza ms de una vez el mismo arco. De forma contraria se dice que es compuesto. 10.- Camino elemental: Es un camino que no utiliza ms de una vez el mismo vrtice. En caso contrario se dice que es no-elemental. 11.- Circuito: Un circuito es un camino finito c = (u1, u2,..., uk), en el cual el extremo inicial del primer arco coincide con el extremo final del ltimo arco de el camino. 12.- Circuito elemental: Cuando todos los vrtices que contiene son distintos a excepcin del primero y el ltimo vrtice que coinciden. 13.- Anillo: Es un circuito que est constituido por slo un vrtice y un solo arco. 14.- Grfica completa: Se dice que una grfica es completa si toda pareja de vrtices estn ligados al menos en una de las dos direcciones. Esto es, G=(X,A) es completa si (Xi,Xj) no pertenece a A (Xi,Xj) pertenece a A.
1

15.- Grfica fuertemente conexa: Se dice que una grfica G=(X,A) es fuertemente conexa si Xi Xj con Xi Xj siempre existe un camino de Xi a Xj. 16.- Arista: Se llama arista de una grfica G=(X,A) a un conjunto de dos vrtices Xi, Xj, Xi Xj (Xi,Xj) pertenecen a A y/o (Xi,Xj) pertenecen a A.

1.3 DEFINICIN DE RED


Una red es una grfica, que representa a los elementos y sus interrelaciones de un sistema, por el cul pasa un flujo de algn tipo. Algunos ejemplos de sistemas que pueden ser representados mediante una red, son los siguientes:
NOMBRE DEL SISTEMA 1.- Vas de comunicacin terrestre 2.- Vas de comunicacin area 3.- Sistema telefnico 4.- Sistema de agua potable NODOS Cruces intersecciones Aeropuertos Aparatos telefnicos Llaves de agua tomas de agua a consumidores ARCOS Carreteras Rutas areas Alambre Tubera FLUJO Vehculos Aviones Mensaje o comunicacin Agua potable

Si un arco est orientado, se denominar flecha o arco orientado, si no est orientado se le denominar rama o simplemente arco. Capacidad de flujo: La capacidad de flujo de una flecha o de una rama es el lmite superior para la magnitud factible del rgimen de paso (o cantidad total de flujo) en la flecha o rama (dependiendo de que sea un arco orientado o no orientado) en una direccin especfica. Si denotamos con CIJ = Capacidad de flujo CfJ 0 si el flujo va en la direccin de la flecha. En todo sistema que se puede representar mediante una red, resulta importante resolver tres problemas asociados que definiremos a partir del siguiente ejemplo.

Ejemplo:
Los dueos de un parque de diversiones se han planteado problemas que les es urgente resolver. Descripcin del parque de diversiones: El parque es una regin boscosa, bardeada, formada por siete centros de diversin familiar. Cada centro est separado una distancia de los dems segn se muestra en la figura. Existen caminos de centro a centro de tal manera que un visitante pueda conocer todos los centros del parque (las ramas de la red con lo caminos que comunican a los centros). Existe tambin transporte para uso de los visitantes.

Estos problemas son:


1) Determinar cul ruta de la entrada del parque al centro de diversin T, tiene la menor distancia total, para la operacin de transporte que se ha de utilizar. (Esto es, determinar el camino mnimo de la entrada a la salida). 2) Es necesario establecer comunicacin telefnica entre todos los centros que forman el parque, de tal manera que cualquier par de centros queden comunicados telefnicamente. La cuestin es que debe hacerse la instalacin con un nmero total mnimo de kilometraje de lnea instalada. A este problema se le llama problema del rbol de extensin minimal. 3) El ltimo problema consiste en determinar el flujo mximo de visitantes que se pueden transportar desde la entrada al centro T en la temporada pico.

Siendo los tres problemas definidos como: Camino Mnimo rbol Mnimo Flujo Mximo Podemos clasificar tres tipos de mtodos para resolver estos problemas, como:
2

Grficos Etiquetamiento (Por etiquetas) Matriciales Empezaremos por los mtodos grficos

1.4 MTODOS GRFICOS


1.4.1 ALGORITMO PARA EL METODO GRAFICO DE CAMINO MINIMO ( TABULAR) Primer paso: Se construye una tabla escribiendo el valor de los arcos que inciden al exterior de cada nodo de la red de manera ascendente, y consideramos los vrtices adyacentes al origen eligiendo el menor de ellos encerrndolo en un crculo, determinando as el nodo ms cercano al origen. Segundo paso: Cancelar (eliminar de la tabla) todos los posibles caminos que lleguen al nodo seleccionado. Tercer paso: Enseguida buscamos las distancias menores, a partir del origen o bien del nodo adyacente seleccionado. A partir de la suma del menor valor del arco con el camino mnimo del nodo. Cuarto paso: Buscamos las trayectorias posibles de los nodos analizados escogiendo el menor. En caso de que tengamos un empate a un mismo nodo, seleccionamos ambas trayectorias, si es a nodos diferentes el empate se rompe arbitrariamente. Quinto paso: Regresamos al paso nmero 2 a cancelar y volvemos a efectuar los pasos siguientes: En la tabla irn cada una de las trayectorias que salen de cada nodo, evitando todos aquellos que regrese, y con esto se efecta el algoritmo. Se puede dar el caso de que se representen dos caminos mnimos dentro de nuestra grfica; esto quiere decir que tendremos dos soluciones; teniendo stas el mismo valor numrico, aunque distintos caminos. Ejemplo del problema de Camino Mnimo del Parque de diversiones, utilizando mtodo grfico o tabular determinemos tanto el valor del camino mnimo desde el nodo origen O, as como el rbol mnimo.

7 A 2 O 4 C 4 E 5 1 2 B 3 4 1 D

5 T

La figura del parque muestra tambin el kilometraje entre los diferentes centros. Resolveremos los problemas planteados. Solucin:
3

1) Para determinar el camino mnimo entre O y T, hacemos uso de una tabla, en donde se muestran las distancias entre cada par de nodos.

0 O OA=2 OC=4 OB=5 X

2 A AB=2 AD=7

4 B BC=1 BA=2 BE=3 BD=4 X

4 C CB=1 CE=4

8 D DE=1 DB=4 DT=5 DA=7 X

7 E ED=1 EB=3 EC=4 ET=7 X

13 T TD=5 TE=7

Los arcos iluminados son los arcos seleccionados que determinan el camino mnimo a cada nodo. En este ejemplo se muestra que hay dos caminos mnimos del O al destino T Los caminos mnimos desde el origen O al destino T son: OABEDT Cm1 = {O,A,B,E,D,T} |Cm1| = 13 OABDT Cm2 = {O,A,B,D,T} |Cm2| = 13

Observe que los caminos mnimos no pasan por el nodo C En la red se remarca los arcos que forman el camino mnimo de O a T Ejemplo:

3 A 4 O 6 3 4 B 6 5 E 5 C 2 1 2 D 2 F

4 G 2 5 2 5 3 I 2 H 8 4 7 T

Arbol de extensin minimal Camino mnimo


O OB=3 OA=4 OC=6 A 4 AD=3 AC=5 B 3 BC=4 BE=6 C 6 CD=2 DF=2 DA=3 DG=4 D 7 DC=2 DF=2 DA=3 DG=4 E 9 EF=1 EH=2 EC=5 EI=5 EB=6
4

F 8 FE=1 FC=2 FD=2 FG=2 FH=5

G 10 GF=2 GH=2 GD=4 GT=7

H 11 HG=2 HE=2 HI=3 HF=5 HT=8

I 14 IH=3 IT=4 IE=5

J 17 TI=4 TG=7 TH=8

EH=2 X

Cm = {O, C, F, G, T}

|Cm| = 17

1.4.2 ALGORITMO GRFICO PARA EL RBOL MNIMO El rbol Mnimo es una subred en una red No-Orientada, que no contiene ciclos, formada por N 1 arcos, en donde N es el nmero de nodos de la red. Primer paso: Se inicia seleccionando los dos arcos de menor valor de la grfica de la red. Segundo paso: Enseguida seleccionamos el siguiente arco menor, despus de los ya seleccionados, en caso de que tengamos un empate, seleccionamos primero un arco y despus el otro; los arcos seleccionados se marcan, para de esta forma ir construyendo el rbol de extensin minimal. Tercer paso: Se repite el paso anterior, tomando en cuenta la no formacin de ciclos, adems de que se cumpla la condicin de slo poder seleccionar N-1 arcos, siendo N el nmero de nodos. El rbol mnimo no es nico, es decir, podemos seleccionar en forma distinta los arcos para poder formar distintos rboles. La suma de de los valores de los arcos seleccionados es el valor del rbol mnimo esto es:
Am = dij , donde dij es el valor del ar co s eleccionado

Ejemplo.- Considere la red del primer ejemplo, determine el rbol Mnimo.

7 A 2 O 4 C 4 E 5 1 2 B 3 4 1 D

5 T

En la red se remarcan los arcos que forman el rbol mnimo, cuyo valor es:
Am = dij = 1 + 1 + 2 + 2 + 3 + 5 = 14 1.5. MTODOS DE ETIQUETAS

1.5.1 ALGORITMO DE ETIQUETAS DEL CAMINO MINIMO (Llamado algoritmo de etiquetado o de Dijkstra)) El objetivo de este algoritmo es determinar la sucesin de arcos que conecte a un nodo de la red con cualquier otro nodo, de tal manera que la suma de los valores de los arcos sea mnima, esto es, que de todas las sucesiones (trayectorias) de arcos desde el nodo inicial o nodo origen a otro nodo en
5

cuestin, se selecciona aquella trayectoria cuya suma de los valores de los arcos sea mnima. A dicha trayectoria se le llama ruta mnima o camino mnimo. PROCEDIMIENTO: 1.- Se define el nodo origen y se le asigna una etiqueta, que en una pareja de nmeros ordenados, en donde la primera componente es la suma de valores de los arcos desde el nodo origen hasta el nodo en cuestin. La segunda componente seala el nodo inmediato del que se proviene. La etiqueta del nodo origen tiene siempre como cero la primera componente y el nombre del mismo nodo origen como la segunda componente. 2.- Se consideran los nodos vecinos al nodo origen (nodos adyacentes) y se les etiqueta provisionalmente con el valor del arco y el nodo inicial. 3.- Se selecciona el nodo vecino etiquetado provisionalmente con la menor componente. La etiqueta provisional del nodo seleccionado pasa a ser etiqueta permanente. Se etiquetan provisionalmente los nodos adyacentes o vecinos a este nodo, siendo la primera componente la suma de los valores de los arcos entre el nodo origen y el nodo que se est etiquetando, mientras que la segunda componente muestra el nodo del que se proviene. 4.- De los nodos que tienen etiqueta provisional se vuelve a seleccionar aqul nodo cuya primera componente sea la menor y se repite el paso 3 hasta alcanzar el ltimo nodo de la red y sea seleccionado cambiando su etiqueta provisional a etiqueta permanente, esto es, el proceso termina cuando todos los nodos de la red tienen etiqueta permanente. As es como se determina el camino mnimo desde el nodo origen a cada nodo de la red. De tal manera que la primera componente de la etiqueta permanente da el valor del camino mnimo desde el nodo origen hasta ese nodo. La segunda componente describe la trayectoria de este camino mnimo.

8 (O,H) H 4

(8,H) 7 2 7 1 1 6

1 3 4 1 3 1 2 6 2 3

6 3 5

Paso 1: (O,H) se etiqueta el nodo origen. Paso 2: (8,H); (7,4); (4,1) se etiquetan provisionalmente los nodos vecinos. Paso 3: Se selecciona el nodo (1) y se etiqueta permanentemente, luego se etiquetan provisionalmente los nodos vecinos a el: (5,3); (10,2). Paso 4: Se selecciona el nodo (3), por tener la menor primera componente su etiqueta se hace permanente y se etiquetan provisionalmente a los nodos vecinos: (6,3); (11,3); (6,3). Paso 5: Se selecciona el nodo (4) y se etiquetan los nodos (6), (5), con las etiquetas provisionales (9,4); (9,4).
6

Paso 6: Se selecciona el nodo (2) y se etiqueta el nodo (5): (8,2). Paso 7: Se selecciona el nodo (5) como no se mejoran las etiquetas provisionales se dejan igual. Paso 8: Se selecciona el nodo (7) y luego el nodo (6). 1.5.2 METODO DE ETIQUETAS PARA FLUJO MXIMO DE FORD-FULKERSON Todo nodo en una red se considera en uno de los siguientes tres estados: 1.- SIN ETIQUETAR 2.- ETIQUETADO Y NO BARRIDO (No explorado) 3.- ETIQUETADO Y BARRIDO (Explorado) La etiqueta de un nodo es una pareja ordenada de smbolos, en donde el primero denota el nodo precedente y el segundo la cantidad de flujo mximo permisible que se hace llegar al nodo en cuestin (etiquetado). El nodo precedente (primer elemento de la etiqueta) puede corresponder a un arco: 1.- Directo: Es con el nodo precedente , es el nodo inicial del arco, esto es, cuando el arco incide al interior del nodo etiquetado. 2.- Inverso: Es el mismo arco pero en direccin opuesta, esto es, el nodo etiquetado es el nodo inicial. El primer elemento de la etiqueta (nodo precedente) se marca con un suprandice (+) si el arco es directo o con (-) si el arco es negativo o inverso. La etiqueta se denota como (i+,j) si el arco es directo, en donde i es el nodo del cual se precede y j es la cantidad de flujo que se hace llegar al nodo etiquetado (j) y se determina como: j = Min {j , Cij -f ij} En donde: j es la cantidad del flujo que se hizo llegar al nodo precedente (i). Cij es la capacidad del arco directo. fij es la cantidad de flujo que ha pasado por el arco directo. Es claro que: Cij f ij > 0 o bien la etiqueta se denota (i-, j) si el arco es inverso, en donde; i es el nodo precedente y j es al igual que en el arco directo la cantidad de flujo que se hace llegar al nodo etiquetado (j) y se determina como: j = Min {j , f ij} En donde j es la cantidad de flujo que se hizo llegar al nodo precedente (i) y fij es la cantidad de flujo que ha pasado del nodo j al nodo i. 1.5.2.1 PROCEDIMIENTO
7

I.-

Se definen los nodos fuente y destino. Al nodo fuente se etiqueta con (-, ), se dice que el nodo fuente est en estado de etiquetado y no barrido, el resto de los nodos estn en estado de no etiquetados. II.El cambiar de estado al nodo fuente (s), esto es, al estado de etiquetado y barrido, para que esto ocurra, es necesario etiquetar a todos los nodos adyacentes al nodo fuente. III:El nodo fuente (s) queda etiquetado y barrido, se selecciona uno de los nodos adyacentes (vecino) al nodo fuente etiquetado pero no barrido y se etiqueta a todos sus nodos adyacentes que estn en estado no etiquetado, en ese momento el nodo seleccionado cambia de estado etiquetado no barrido, al estado etiquetado y barrido, esto se repite con todos los nodos de la red hasta alcanzar el nodo terminal (T) de la red. IV.Al quedar etiquetado el nodo terminal con (K+,j) se considera el nodo precedente (K) y se modifica el flujo del arco (K,T) directo de fkT f kT + T . De igual forma se considera nodo precedente al nodo (K) que queda establecido por su etiqueta (j+,k), esto es, el nodo (j), el flujo del arco (j,K) se modifica de f jk f jk + T por ser un arco directo, en caso de ser un arco inverso, o sea, la etiqueta sera (j-,k) entonces, el flujo del arco inverso cambia de fkj f kj - T, ya que el flujo del arco inverso va de K j. Se contina el proceso de modificacin de flujo hasta alcanzar el primer nodo (nodo fuente). Ejemplo: Use el mtodo de FORD-FULKERSON para determinar el flujo mximo en las redes siguientes:

X (1,1) FUENTE S (1,0) (1,1) T (1,1) (3,0)


Etiqueta del arco (Cij,f ij) Cij: capacidad de (i,j) fij: flujo de (i,j) 1. La red presenta un flujo inicial a travs de la trayectoria SXYT y la cantidad de flujo es 0 =

(3,0) DESTINO

Primera Iteracin: Se etiqueta al nodo fuente como (-, ) y el nico nodo de la red que queda etiquetado y no explorado, para que pase al estado etiqueta y explorado (barrido) es necesario etiquetar a todos sus nodos adyacentes. El nodo X no puede ser etiquetado de inmediato porque el arco directo que lo une
8

con (S) est saturado, por lo tanto se etiqueta (Y) con (S+,3), en donde S+ es el nodo del que se precede y el arco utilizado (S,Y) es un arco directo. El valor de 3 (segundo elemento de la etiqueta) es: Y = Min {S;Csy-f sy} = Min { ;3-0} = Min { ;3} = 3 Ya se est en posibilidades de etiquetar el nodo (X) a partir del nodo (Y), para ello se cuenta con dos arcos, uno directo, (Y,X) y un inverso (en tales situaciones siempre se debe usar el arco directo, hasta saturarlo y luego el inverso). En este caso descartamos el inverso ya que es indispensable que el flujo del arco sea fxy > 0 ; por lo tanto la etiqueta de X es (Y+,1), esto es: X = 1 = Min {3;1-0} = Min {Y;Cyx - fyx} = 1 En este momento el nodo (S) queda en estado de etiquetado y explorado. Se selecciona arbitrariamente un nodo etiquetado para pasarlo al siguiente estado (etiquetado y explorado), se descarta el nodo (Y), ya que no es posible etiquetar (T) por ser el arco (Y,T) un arco saturado (o sea: CYT = f YT), entonces se selecciona el nodo (X) para etiquetar (T). La etiqueta de T queda como (X+,1) en donde: X+ es por ser (X,Y) un arco directo y 1 = T1 = Min {X;CXT - f XT} = Min {1;3-0} = Min {1,3} = 1 La red etiquetada queda:

(Y+,1) X (1,1) (-, ) S (1,1) (1,0) (3,0) T (X+,1)

(1,1) (3,0)
T = 1 = 1 ; Cantidad de flujo en la primera iteracin. En este momento el nodo (X) queda en estado de etiquetado y explorado, como el ltimo nodo queda etiquetado, termina el proceso de etiquetado. Se pasa a la etapa de modificacin de flujo en los arcos, para ello se inicia en el ltimo nodo (T) y se considera el primer elemento de su etiqueta X +, que establece el nodo del cual se precede, por lo tanto al flujo f XT = 0 se le agrega T1 = 1 por ser (X,T) un arco directo quedan la etiqueta del arco (X,T) como (CXT,fXT) = (3,1), de igual forma, se ubica en el nodo (X) y su etiqueta establece que se procede del nodo (Y) con arco directo, entonces f YX = 0 cambia a f YX + T1, quedando la etiqueta del arco (Y,X) como (CYX,f YX) = (1,1) y la etiqueta del arco (S,Y); procediendo de la misma forma queda (C SY,f SY) = (3,1). Termina la primera iteracin eliminando todas las etiquetas de los nodos de la red.

Y (S+,3)

X (1,1) S (1,1) (1,1)


9

(3,1) T

(1,1) (3,1)
Segunda iteracin: Se etiqueta (S) con (-, ), se vuelve a etiquetar primero (Y) con (S+,2), ahora se etiqueta (X), utilizando el arco inverso, ya que el directo (Y,X) est saturado el inverso (X,Y) tiene f XY = 1 > 0, por lo tanto la etiqueta de (X) es (y-,1), en donde y- es por utilizar el arco inverso (X,Y) y 1 = X = Min {Y,f XY} = Min {2,1} = 1 Etiquetamos T como (X+,1) T2. Se modifica luego, el flujo en la red de igual manera que en la primera iteracin, salvo que al llegar al nodo (X), la etiqueta del arco inverso (X,Y) se modifica el flujo como f XY - T2, esto es (1,0), en donde: 0 = fXY - T2 = 1-1 = 0 La red queda como:

X (1,1) S (1,1) (1,0) (3,2) T (1,1) (3,2) Y

Se busca realizar una tercera iteracin, sin embargo se observa que no es posible ya que no es posible cambiar del estado de etiquetado al estado de etiquetado y explorado a los nodos (X) y (Y) por lo que no se puede alcanzar al nodo (T), lo que implica que no es posible hacer llegar ms flujo al nodo (T). El intento se muestra en la siguiente red:

X (1,1) S (1,1) (1,0) (3,2) T (1,1) (3,2) Y (S+,1)


Ntese que el nodo (X) ya no es posible etiquetarlo: El arco (S,X) est saturado y es directo. El arco (Y,X) est saturado y es directo.
10

(-, )

El arco (X,Y) tiene fXY = 0 lo cual lo invalida. El flujo mximo est dado por:

FM = i = 0 + T 1 + T 2 = 1 + 1 + 1 = 3
i =0

FM = 3

1.6 MTODOS MATRICIALES


1.6.1 METODO MATRICIAL DE ARBOL MINIMO Dada una red no orientada con n nodos y longitudes dij, de los arcos que unen cada par de nodos (i,j). El objetivo es conectar todos los nodos de la red mediante arcos, de tal manera que

d
A

ij

(A:rbol) sea mnima. Esto es, se busca construir una subred que conecte a todos los nodos de la red, mediante n-1 arcos, de tal forma que la suma de los n-1 longitudes de los arcos utilizados sea mnima. A dicha subred se le denomina ARBOL DE EXTENSION MINIMAL. 1.- Se construye la matriz de longitudes d = {dij}, dicha matriz es cuadrada y simtrica. 2.- Se elige un nodo arbitrario como el conjunto inicial de nodos conectados y se considera su rengln de valores de la matriz d = {dij} eliminndose la columna de dicho nodo evitando con esto ciclos en los siguientes pasos. 3.- Se determina el nodo ms cercano, seleccionando el menor arco en el rengln. El nodo asociado a la columna del arco seleccionado es entonces el ms cercano. 4.- Se vuelve a eliminar la columna del nodo ms cercano en los renglones de los nodos conectados. Se comparan los arcos en cada columna de los renglones de los nodos conectados y se selecciona el menor arco en cada columna. Finalmente se escoge el mnimo de todos los arcos menores, dando as el nodo ms cercano. 5.- Se repite el paso (4) hasta que todas las columnas queden eliminadas en la matriz de nodos conectados. 6.- Se suman los arcos seleccionados en cada iteracin, dando as el valor del rbol mnimo. NOTA: Los empates se rompen arbitrariamente. Ejemplo: Dada la siguiente red no orientada, determine el rbol mnimo, por el mtodo matricial 8 H 4 7 5 1 1

7
2 4

1 3

6
3 3

3
1 6

6 2

2
11

La construccin del rbol se inicia en el nodo H, la tabla o matrz muestra los arcos que se fueron dij seleccionando (sombreados), de tal manera que el valor del rbol mnimo es: Am = = 4 +1 + 2 + 1
+ 1 + 2 + 1 = 12

H 1 2 3 4 5 6 7

H ///// 4 5 7 8

1 4 ///// 6 1

2 6 ///// 1 2

3 5 1 1 ///// 1 6

4 7 1 ///// 3 3 2

5 2 6 3 ///// 3

7 8

3 3 ///// 1

2 1 /////

Las celdas iluminadas son los N 1 arcos seleccionados que forman el rbol Mnimo La siguiente figura muestra El rbol Mnimo. 8 H 4 7 5 1 1

7
2 4

1 3

6
3 3

3
1 6

6 2

1.6.2 MTODO MATRICIAL DE CAMINO MINIMO


Dada un red conectada, no orientada de n nodos unidos por arcos, determinar las cadenas con distancia mnima entre un nodo fijo y cualesquier otro de la red. Sea dij la longitud del arco que une los nodos i,j. Para obtener la cadena mnima entre el nodo 1 y cualesquier nodo j, j = 2, 3, ...,n, se construye la tabla de distancias siguientes:
j 1 2 . . . n vj 1 d11 d21 2 d12 d22 ... n-1 d1,n-1 d2,n-1 n d1n d2n ui u1 u2 . . . un

... dn1 V1 dn2 V2 ... dn,n-1 Vn-1 dnn vn

Si cualquier arco no esta definido, su correspondiente lugar en la matriz queda vaco. Si dij = entonces (i,j) es un arco dirigido sin flujo en la direccin i-j. ALGORITMO DE SOLUCION Calculo de los valores preliminares
12

Primer paso

Elaborar tabla de dij y valores preliminares vj (ui) vj = suma mnima de las longitudes de los arcos contenidos en la cadera del nodo 1 al j v1 = 0 por definicin ui = distancia hasta el nodo i que se utiliza pera encontrar el nodo j mas cercano ui = vj, si i=j u1 =v1 = 0 Si el arco entre los nodos i, j esta definido, las diferentes vj se determinan a partir de la formula vj= min (ui + dij ) la cual inicia el calculo a partir de i = 1

Segundo paso

Verificar optimalidad Considere el primer rengln i = 1 de la tabla dij a) Calcular vj ui para toda j b) Si vj ui dij, para toda j, esto implica que no se podr encontrar una cadena mas corta entre los nodos i, j. Considere el siguiente rengln i+1 y regresan a (a) Si considero el ultimo rengln y se cumple que vj ui dij , para toda i, entonces ir a (d). c) Si vj ui dij, para cualquier j, entonces calcular un nuevo valor de vj, distinguido como vj el cual esta dado por : vj= ui + dij La nueva vj toma el lugar de vjy ui para i = j. Si se hizo el ultimo rengln o un intermedio, es necesario regresar a (a) y revisar todos los renglones con los nuevos valores de vj (ui) c) Si cualquiera de los valores u i y vj fueron recalculados, repetir el paso 2 con dichos valores revisados; de lo contrario ir al paso (3). Bsqueda de cadenas mnimas Las vj resultantes de la etapa 2, define ancha las distancias mas cortas entre los nodos 1 y j, j = 2, 3, ..., n. Para determinar las cadenas correspondientes, obsrvese que el ultimo arco(i1, j) de la cadena (i, j) debe satisfacer la condicin. ui1 = vj - di2i1 ui1 = vj1 di2i1 El proceso se repite hasta encontrar el nodo 1.

Tercer paso

Ejemplo: los nmeros define la distancia de dos vas entre nodos. El numero indica una sola va en 9 la direccin opuesta 5 a . 7 Un Mtodo complementario al 7 Mtodo de FORD FULKERSON, es el Mtodo del Corte Mnimo dado por el siguiente teorema
6 2 9 2 2 4 1 1 1 2 4 3 5 11 3 3 2 3 3 5 2 9 13 4 10 23 5 1 4 10

Paso 1 del ejemplo: Se elabora la tabla di j correspondiente a esta red y se calculan los valores de u i y vj.
i j 1 2 3 4 5 6 7 vj 1 2 2 4 1 5 2 4 9 8 0 2 3 5 5 10 11 (8) 1 4 7 (4) 3 8 3 4 11 5 9 5 6 7 0 2 5 11 7 3 13

1 2 2 7 2 3

23 9 10 13

(8) (4)

Revisin y verificacin con los nuevos valores vj


i = 1 2 3 4 5 6 7 j v j u1 d1j v j u2 d2j v j u3 d3j v j u4 d4j v j u5 d5j v j u6 d6j v j u7 d7j -2 4 -5 1 -8 5 -4 2 1 2 2 2 3 5 8 3 3 -3 4 -3 9 -2 -1 8 2 3 5 5 -2 10 1 1 -6 4 3 4 8 11 5 4 9 2 5 1 1 -2 2 -5 2 -1 7 -10 2 6 7 Satisface que: v j ui dij? SI SI SI 5 23 9 9 10 10 SI SI SI SI

Paso 3 del ejemplo: Bsqueda de las cadenas mnimas entre los nodos 1 y 7. vj = u7 + di7 ui = v7 - dij En la primera tabla (dij) en la columna j = 7, esta ecuacin 1 se satisface para i = 5 e i = 6; lo cual, da una solucin alternativa. Considerando primero i =5. 5 9 7 ui = v7 - di7 = 13 - d57 = 13 - 9 = 4 = u5
14 3 1 5 2 7

Ahora se busca la columna j = 5 V5 = ui + di5 ui = v5 -di5 = 4-d65 = 4-1 = 3 = u6

u1 = v 1 =0 (i = 1) v 2 = mini = 1 (0 + 2) = 2 v 2 = u2 = 2 v 3 = min. (ui + di3) v 3 = mini =1, 2 (0+8, 2+3) = 5 v 3 = u3 = 5 v 4 = mini = 1, 3 (0+11, 5+) = 11 = u4 v 5 = mini = 1, 2 (0+9, 2+5) = 7 = u5 v 6 = mini = 2, 3, 4, 5 (2+1, 5+2, 11+2, 7+7) = 3 = u6 v 7 = mini = 4, 5, 6 (11+23, 7+9, 3+10) = 13 = u7

i = 1 2 3 4 5 6

j v j u1 d1j v j u2 d2j v j u3 d3j v j u4 d4j v j u5 d5j v j u6 d6j v j u7 d7j

2 2 2

3 5 8 3 3 -6 9

4 11 11 6

5 7 9 5 5

Satisface que: v j ui dij? SI SI SI

-2 4 1 -11 5 -7 2 -3 4 -5 -1 8

1 1 -2 2 -8 2 -4 7

2 3

8 5 -1 10

4 1 -6 4 -10 2

5 23 6 9 10 10

SI SI NO

v4 = u6+d64 = 3+5 = 8 v5 = u6+d65 = 3+1 = 4


SI

Ahora se busca en la columna j = 6 V6 = ui + di6


2 1 6

ui = v6 -di6 = 3-d26 = 3-1 = 2 = u2


1 5 9 7

Ahora se busca en la columna j = 2 V2 = ui + di2


2 1 1

ui = v2 -di2 = 2-d42 = 2-2 = 0 = u1


9

V7 = MIN similar y es la cadena. 1 2 indicada 6 antes puede 5 7 La solucin alternativa determinarse en13 forma

El mismo procedimiento se obtener las otras cadenas. 2 sigue para 1


1 2 6 7 15 V7 = 13 MIN

1 0

Nodos (i, j) (1, 2 ) (1,3) (1,4) (1,5) (1,6) (1,7)

Cadena 12 1233 1264 1265 126 12657 1267

Distancia min. v j 2 5 8 4 3 3

Ejemplo: Obtener la cadena minima entre el nodo y cualesquier nodo de la red. Paso 1 para i = 5 u5 = v5 0 v1 = mini =5{u5 + d51} v1 = 0 + 2 = 2 = u1

1.6.3 MTODO MATRICIAL PARA FLUJO MXIMO


Sea Ci,j la capacidad del arco ( i, j), en la direccin de "i" a "j" y sea C = {ci,j} la matrz de capacidades originales de los arcos de una red fuertemente conexa con "n" nodos. La matrz, C es una matrz cuadrada de orden "n". El flujo Mximo que pasa por la red cumple: F.M. Min {cs,j ; ci,t } El mtodo matricial para determinar el flujo mximo est dividido en tres etapas que son: Determinacin de flujo en una trayectoria Conservacin de flujo Distribucin del flujo mximo PROCEDIMIENTO: Etapa I: Determinacin de flujo en una trayectoria Paso 1.- Construya la matrz de capacidades de la red ( los nodos como renglones son los nodos iniciales de los arcos y los nodos como columnas son los nodos terminales de los arcos). Paso 2.- Determine una trayectoria desde el nodo fuente de la red "S", hasta el nodo destino "T", con capacidades ( > 0) en los arcos que la forman, en la direccin de S a T y se marcan en la matrz C las capacidades ci,j con un suprandice negativo cij y con suprandice positivo a las capacidades de los mismos arcos pero en direccin opuesta c+ji. Paso 3.- Se calcula la cantidad mxima de flujo que puede viajar a travs de la trayectoria seleccionada como: = Min {cij }, donde cij son la capacidades de los arcos que forman la trayectoria seleccionada en la direccin de S a T. Etapa II: Conservacin de flujo Paso 4 (Conservacin de flujo).- Se resta el valor de a las capacidades marcadas como cij y se suma a las capacidades de los arcos marcadas como c+ji, en la matrz de capacidades C. A la matrz que se obtiene se le denomina como la matrz C* = {c*ij} modificada.
16

Paso 5.- Regrsese al paso ( 2 ) hasta que ya no sea posible encontrar una trayectoria con capacidades estrictamente positivas en los arcos que la forman. Etapa III: Distribucin del Flujo Mximo Paso 6.- Se determina la matrz X = {xij} de distribucin del flujo mximo, como: cij - c*ij ; si cij > c*ij xij = 0 ; si cij c*ij ; donde C = {cij} es la matrz de capacidades originales (iniciales) y C* = {c*ij} es la ltima matrz modificada

El Flujo Mximo es igual a : F.M. = i = xSj = xiT Ejemplo: En la siguiente red que se muestra y su tabla de capacidades, determine matricialmente el flujo mximo desde el Nodo "S" al nodo "T".

B S

T S T T

C
1 ARCO SA VALOR 15

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 SB SC SD AS AB AC AD AE BS BA BC BE BF CS CA CB CE CF CG 15 10 5 0 4 4 8 10 0 5 4 8 7 0 3 6 9 10 3 38 GD 4 39 40 41 42 GE GF GT TD 3 9 10 0

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 DS DA DE DG DT EA EB EC ED EF EG FB FC FE FG FT GC 0 2 7 6 15 4 3 5 7 8 5 4 3 6 7 20 5 43 44 TF TG 0 0

SOLUCION: Paso # 1.- Determinacin de la matrz inicial de capacidades cij


17

I/j S A B C D E F G T

S 0 0 0 0

A 15 5 3 2 4

B 15 4 6 3 4

C 10 4 4

D 5 8

E 10 8 9 7 6 3

7 10 8 9 0

5 3 5

7 4 0

3 6 5 7 0

15 20 10

Paso # 2.- A partir de la matrz de capacidades puede determinarse la trayectoria desde el nodo S al nodo T, sin necesidad de ver o depender de la red. Basta con escoger el valor de los arcos adecuados (con capacidad distinta de cero) en la matrz de tal manera que se forme la trayectoria. Se recomienda seleccionar aquellos arcos con mayor valor en la capacidad para hacer pasar mayor cantidad de flujo en la trayectoria seleccionada. Por ejemplo la trayectoria formada por los arcos: (S, C); (C, F); (F, T), cuyas capacidades son ( > 0) 10, 10 y 20 respectivamente. En la matrz se marcan dichas capacidades con un suprandice negativo y a las capacidades de los mismos arcos pero en sentido opuesto, esto es, de los arcos (T, F); (F, C); (C, S) se marcan con un suprandice positivo, como se muestra en la matrz de abajo.
I/j S A B C D E F G T S 0 0 0+ 0 A 15 5 3 2 4 B 15 4 6 3 4 5 3+ 5 7 4 0 6 3 C 10 4 4 D 5 8 E 10 8 9 7 F G T

7 10 8 9 0+

3 6 5 7 0

15

20 10

Paso # 3.- Se determina el valor de i = Min {cij } = Min { 10, 10, 20} = 10 = 1 Paso # 4.- Se resta 1 = 10 a las capacidades con suprandice negativo y se suma a las capacidades con suprandice positivo, obtenindose la siguiente matrz de capacidades:

I/j S A B C D E F G T

S 0 0 10 0

A 15 5 3 2 4

B 15 4 6 3 4

C 0 4 4

D 5 8

E 10 8 9 7 6 3

7 0 8 9 10

5 13 5

7 4 0

3 6 5 7 0

15

10 10

18

Obtenindose una nueva matrz de capacidades, llamada matrz de capacidades modificada. Regresando al paso, tantas veces sea necesario, hasta que no sea posible encontrar una trayectoria con capacidad positiva en sus arcos. Segunda Trayectoria: (S, A); (A, E); (E, F); (F, T), en donde 2 = Min {15, 10, 8, 10} = 8 Marcando las capacidades:
I/j S A B C D E F G T S A 15 5 3 2 4+ B 15 4 6 3 4 5 13 5 7 4 0 C 0 4 4 D 5 8 E F G T

0+ 0 10 0

10 8 9 7 6+ 3

7 0

89 10 +

3 6 5 7 0

15

10 10

La nueva matrz modificada es:


I/j S A B C D E F G T S A 7 5 3 2 12 B 15 4 6 3 4 5 13 5 7 4 0 C 0 4 4 D 5 8 E F G T

8 0 10 0

2 8 9 7 14 3

7 0

0
9 18

3 6 5 7 0

15

2 10

Tercera trayectoria: (S, B); (B, E); (E, A); (A, D); (D, T), con 3 = Min {15, 8, 12, 8, 15} = 8
I/j S A B C D E F G T S A 7 5 3 2+ 12 B 15 4 6 C 0 4 4 D 5 E F G T

8 0+ 10 0

8-

2+ 89 7 14 3

7 0

3 4

5 13 5

7 4 0+

0
9 18

3 6 5 7 0

15 2 10

Modificando la matrz de capacidades:

19

I/j S A B C D E F G T

A 7 5 3 10 4

8 8 10 0

B 7 4 6

C 0 4 4

D 5 0

10 0 9 7 14 3

7 0

11 4

5 13 5

7 4 8

0
9 18

3 6 5 7 0

7 2 10

Cuarta trayectoria: (S, A); (A, E); (E, D); (D, T), con 4 = Min {7, 10, 7, 7} = 7
I/j S A B C D E F G T S A 75 3 10 B 7 4 6 C 0 4 4 D 5 0 E F G T

8+ 8 10 0

10 0 9 7+ 14 3

7 0

4+

11 4

5 13 5

74 8+

0
9 18

3 6 5 7 0

72 10

Modificando la matriz de capacidades:


I/j S A B C D E F G T S A 0 5 3 10 11 B 7 4 6 C 0 4 4 D 5 0 E F G T

15 8 10 0

3 0 9 14 14 3

7 0

11 4

5 13 5

0
4 15

0
9 18

3 6 5 7 0

0 2 10

Quinta trayectoria: (S, B); (B, F); (F, G); (G, T), con 5 = Min {7, 7, 7, 10} = 7
I/j S A B C D E F G T S A 0 5 3 10 11 B 74 6 C 0 4 4 D 5 0 E F G T

15 8+ 10 0

3 0 9 14 14 3

70 0 9 18
-+

11 4+

5 13 5

0
4 15

3 6 5 7-

0 2 10 -

0+

Modificando la matriz de capacidades:


20

I/j S A B C D E F G T

A 0 5 3 10 11

15 15 10 0

B 0 4 6

C 0 4 4

D 5 0

3 0 9 14 14 3

0 0 0 16 18

11 11

5 13 5

0
4 15

3 6 5 0

0 2 3

Sexta trayectoria: (S, D); (D, G); (G, T), con 6 = Min {5, 6, 3} = 3
I/j S A B C D E F G T S A 0 5 3 10 11 B 0 4 6 C 0 4 4 D 50 E F G T

15 15 10 0+

3 0 9 14 14 3

0 0 0 16 18

11 11

5 13 5

0 4 15
+

3 65 0

0 2 3-

7+

Modificando la matriz de capacidades:


I/j S A B C D E F G T S A 0 5 3 10 11 B 0 4 6 C 0 4 4 D 2 0 E F G T

15 15 10 3

3 0 9 14 14 3

0 0 0 16 18

11 11

5 13 5

0 7 15

3 3 5 0

0 2 0

10

Sptima y ltima trayectoria: (S, D); (D, G); (G, F); (F, T), con 7 = Min {2, 3, 16, 2} = 2
I/j S A B C D E F G T S A 0 5 3 10 11 B 0 4 6 C 0 4 4 D 20 E F G T

15 15 10 3+

3 0 9 14 14 3

0 0 0 16 18 +
-

11 11

5 13 5

0 7 15
21
+

3 35 0+

0 20

10

Modificando la matriz de capacidades:

I/j S A B C D E F G T

A 0 5 3 10 11

15 15 10 5

B 0 4 6

C 0 4 4

D 0 0

3 0 9 14 14 3

0 0 0 14 20

11 11

5 13 5

0 9 15

3 1 5 2

0 0 0

10

Paso 6.- Se determina la matrz X = {xij} de distribucin del flujo mximo, como: cij - c*ij ; si cij > c*ij xij = 0 ; si cij c*ij ; donde C = {cij} es la matrz de capacidades originales (iniciales) y C* = {c*ij} es la ltima matrz modificada

Donde C* = {c*ij}, es la ltima matrz obtenida, sustituyendo se obtiene lla matrz de distribucin de flujo:
I/j S A B C D E F G T S A 15 B 15 0 C 10 0 0 D 5 8 E F G T

0 0 0 0

0 0 0 0

0 0 0 0 0 0 7 0 0

7 8 0 0 0 0

7 10 8 0 0

0 5 0 5 0

15 20 10

La red de distribucin queda como se muestra abajo.

A 1 5 S 1 0 1 5 C 1 0

8 D 7 B 8 7 7 E 8 F 5 5 G 2 0 1 5 1 0 T S T T

1.7 FLUJOS MAXIMOS EN REDES


22

En una red por la que fluye un fluido, en la cual cada rama tiene una cierta capacidad mxima de flujo, a menudo interesa saber cul es el mximo flujo que se puede establecer entre un nodo fuente y un nodo pozo. A continuacin se enuncia un importante teorema relativo a este problema. Teorema del mnimo corte. El valor mximo del flujo que se puede establecer entre un nodo fuente y un nodo pozo en una red en la cual cada rama tiene un lmite de capacidad de flujo es igual al valor del corte con respecto a la fuente y el pozo que tenga valor mnimo. Para ilustrar el teorema considrese la red de la siguiente figura:

80 1 210 F 20 3 50
En la red se muestran las capacidades de las ramas marcadas junto a sus flechas. Utilizaremos los valores de las capacidades para identificar las ramas. En la red podemos hacer los siguientes cortes con respecto a F y P (fuente y pozo), (los cuales especificaremos con los dos conjuntos complementarios X yX de nodos que quedan en las partes separadas de la red por el corte):

2 90 70 30 40 60 100 4 P

A = ({F}, {1,2,3,4,P}), B = ({F,1}, {2,3,4,P}), C = ({F,2}, {1,3,4,P}), D = ({F,3}, {1,2,4,P}), E = ({F,4}, {1,2,3,P}), F = ({F,1,2}, {3,4,P}), G = ({F,1,3}, {2,4,P}), H = ({F,1,4}, {2,3,P}),

I = ({F,2,3}, {1,4,P}), J = ({F,2,4}, {1,3,P}), K = ({F,3,4}, {1,2,P}), L = ({F,1,2,3}, {4,P}), M = ({F,1,2,4}, {3,P}), N = ({F,1,3,4}, {2,P}), O = ({F,2,3,4}, {1,P}), P = ({F,1,2,3,4}, {P}).

Los valores de los cortes son los siguientes: (Por los valores nos damos cuenta de qu ramas incluye cada corte). A = 210 + 20 = 230 I = 210 + 50 + 90 = 350 B = 80 + 70 + 30 + 20 = 200 J = 210 + 20 + 60 + 100 + 90 = 480 C = 210 + 20 + 90 = 320 K = 210 + 40 + 60 + 100 = 410 D = 210 + 40 + 50 = 300 L = 50 + 70 + 90 = 210 E = 210 + 20 + 60 + 100 = 390 M = 90 + 70 + 30 + 20 + 100 = 310 F = 90 + 70 + 30 + 20 = 210 N = 80 + 40 + 70 + 100 = 290 G = 80 + 70 + 40 + 50 = 240 O = 210 + 60 + 90 + 100 = 460 H = 80 + 70 + 30 + 20 + 100 = 300 P = 90 + 70 + 100 = 260 Para encontrar los valores de los cortes se dibujan lneas cerradas que encierren a los nodos del conjunto X y se suman los valores de las flechas que salen de la lnea cerrada. En la siguiente
23

figura mostramos la lnea que corresponde al corte O. Ntese que la lnea 70 es cortada dos veces por la lnea, por lo que no pertenece al corte pues se podra dibujar rodendola. O = ({F,2,3,4}, {1,P}) cuyo valor es 210 + 60 + 90 + 100 = 460. Comparando los valores de los cortes dados arriba, vemos que el que tiene valor mnimo es el corte B, con un valor de 200 por lo que, de acuerdo con el teorema, el valor mximo del flujo que se puede establecer entre los puntos F y P de la figura 5 es de 200. Para una red ms grande que la de la primera figura sera sumamente engorroso determinar el corte mnimo a base de calcular el valor de todos los corte, pues para una red de N nodos, el nmero de cortes con respecto a una fuente y un pozo es 2 N-2. As, por ejemplo, para una red con 26 puntos el nmero de cortes sera 224 = 16,777,216. Afortunadamente existe un algoritmo descubierto por Ford y Fulkerson mucho ms eficiente, el cual, adems de determinar el flujo mximo entre dos puntos, tambin nos da los flujos que debemos enviar por cada rama para lograr el flujo mximo.

80 1 210 F 20 3 50 4 30 40 60 100 2 90 70 P

24

También podría gustarte