Está en la página 1de 42

En este capitulo usaremos las estructuras de arboles y grafos y presentaremos tcnicas que surgen en el rea de las matemticas llamadas

Investigacin Operativa. Estas tcnicas optimizan algunos resultados analizando grafos y multgrafos que tienen un numero real positivo o un entero no negativo llamado PESO, asociado a cada arista del grafo y multgrafo.

Entre los problemas que analizaremos estn los de determinar:

1)- La distancia mas corta entre un vrtice dado v0 y cada uno de los dems vrtices de un grafo dirigido conexo sin lazos. 2)- Un rbol recubridor del grafo o multgrafo dado donde la suma de los pesos de las aristas del rbol sea minimal.

3)- La cantidad mxima de material que puede transportar de un punto inicial a un punto final, donde el peso de una arista indica su capacidad para controlar el material transportado.

Algoritmo descubierto por el matemtico holands Edsger Dijkstra en 1959. Describe como solucionar el problema de camino de longitud mnima desde x hasta y en grafos ponderados no dirigidos, donde todos los pesos son positivos. Es fcil adaptarlo para solucionar el problema de camino de longitud mnima en grafos dirigidos.

Comenzaremos con:

Grafo dirigido conexo sin lazo G =(V,E). A cada arista e=(a,b) asignamos un nmero real positivo llamado PESO de e, que denotamos con p(e) o p(a,b). Si x,y V, pero si (x,y) E, definimos p(x,y) = Para cualquier e =(a,b) A, p(e) podra representar: 1)- La longitud de una carretera de a a b, 2)- El tiempo que tarda recorrer esta carretera de a a b, 3)- El costo del viaje de a a b.
Cuando demos un grafo G = (V,E) con las asignaciones de peso aqu descriptas, diremos que el grafo es un GRAFO PONDERADO.

GRAFOS PONDERADOS

A Los grafos que tienen un nmero asignado a cada arista se les denomina grafos ponderados. La longitud de un camino en un grafo ponderado corresponde a la suma de los pesos de las aristas de ese camino.

Ejemplo: El grafo ponderado G =(V,E) representa las rutas de viaje entre algunos pares de ciudades. El peso de cada arista (x,y) indica el tiempo aproximado de un vuelo directo de la ciudad x a la y.

En este grafo se presentan distintas situaciones:


Para cualesquiera dos vrtices a,b V escribimos d(a,b) como la distancia (mas corta) de a a b. (esto va
ser igual a un num. finito)

Si no existe tal camino (en G) de a a b, entonces definimos d(a,b)=. Para cualquiera a V, d(a,a)= 0. En consecuencia obtenemos la funcin distancia
d: VxV R+ {0,}

Arboles Recubridores Minimales: Los Algoritmos de Joseph Kruskal y Robert Prim

Agoritmos Voraces (Dijkstra-Kruskal-Prim): En cada paso local del proceso hacen selecciones ptimas para llegar a una solucin ptima global. Kuskal y Prim: Partiendo desde un grafo no dirigido conexo sin lazos, utilizando algoritmos buscamos obtener un rbol recubridor ptimo.

Joseph Kruskal
(29 de enero de 1928 - 19 de septiembre de 2010) Fue un investigador del Math Center (Bell-Labs) En 1956 descubri un algoritmo para la resolucin del problema del rbol recubridor mnimo Iniciado originalmente por Otakar Boruvka (1926) mientras estudiaba la necesidad de electrificacin rural.

Algoritmo de Kruskal
Objetivo: Encontrar un rbol recubridor mnimo en un grafo conexo y ponderado. Busca construir un rbol seleccionando sucesivamente aristas de peso mnimo a partir de un grafo con pesos en las aristas.

Algoritmo de Kruskal
Dado un grafo G=(V,E) no dirigido, conexo y sin lazos, con |V|=n y cada arista e tiene asignado un nmero real y positivo p(e).

5 6

b 5 d 2 3 2 4

5 c 3 e 1

f 2
g

5 a 6 7 2 f

b 5 d

5 4 2 3 2 3 e 1 g 3

1 paso

* Hacemos i =1 * Elegimos una e1 con el p(e) mnimo de G

5 a 6 7 2 f

b 5 d

5 4 2 3 2 3 e 1 g 3

Contador i =1 n-1=6

|E| = |V| - 1

e 1 g

2 paso

* Para 1 i n-2 ; n=7 * Elegimos una ei+1

a) p(e) lo mas pequea Posible. b) no genere un ciclo

5 a 6 7 2 f

b 5 d

5 4 2 3 2 3 e 1 g 3

Contador i =2 n-1=6
f

d 2

e 1 g

3 paso Remplazamos i con i+1. a) Si i = n-1 llegamos al objetivo. b) Si i < n-1 volvemos al paso 2.

5 a 6 7 2 f

b 5 d

5 4 2 3 2 3 e 1 g 3

Contador i =3 n-1=6
f

1
g

5 a 6 7 2 f

b 5 d

5 4 2 3 2 3 e 1 g 3

Contador i =4 n-1=6
f

3 d 2 2 1 g e

5 a 6 7 2 f

b 5 d 4 2 3 2 e 1 g

5 3 3

c 4 3 e 1 g

Contador i =5 n-1=6
f

d 2

5 a 6 7 2 f

b 5 d 4 2 3 2 e 1 g

5 3 3

b 4 d 2 1 g e 3

Contador i =6 n-1=6
f

Encontramos un rbol Recubridor Mnimo!


Peso del rbol = 5+4+3+2+2+1=17

3 Pasos Simples para llegar al Objetivo


1 paso * Hacemos i=1 * Elegimos una e1 con el p(e) mnimo de G 2 paso * Para 1 i n-2 * Elegimos una ei+1

a) p(e) lo mas pequea Posible. b) no genere un ciclo

3 paso Remplazamos i con i+1. a) Si i = n-1 llegamos al objetivo. b) Si i < n-1 volvemos al paso 2.

Robert Prim
Naci en 1921, Sweetwater, Estados Unidos es un matemtico e ingeniero informtico. 1957 descubri un algoritmo para la resolucin del problema del rbol de coste total mnimo

Algoritmo de Prim
Objetivo: Encontrar un rbol recubridor mnimo en un grafo conexo y ponderado. Busca construir un rbol seleccionando sucesivamente vrtices y aristas de peso mnimo relacionadas al vrtice a seleccionar.

Algoritmo de Prim
Dado un grafo G=(V,E) no dirigido, conexo y sin lazos, con |V|=n y cada arista e tiene asignado un nmero real y positivo p(e).
5 6 7 2

b
5 d 3 2

c 4
e 1 3

Conjunto de vrtices P= procesa

Conjunto de vrtices N= no procesa 3

f
2 g

5 a 6 7 2 f

b 5 d

5 4 2 3 2 3 e 1 g 3

1 paso

* Hacemos i =1 * Elegimos una v1 arbitrario en P * Definimos: N = V {v1 } T = nulo

5 a 6 7 2 f

b 5 d

5 4 2 3 2 3 e 1 g 3

Inicializacin i =1 P = {a} N ={b,c,d,e,f,g} T = nulo 2 paso

* Para 1 i n-1 * Agregamos a P un vrtice que este unido a un vrtice x


mediante una arista y est debe ser de peso mnimo con respecto a otras. * Quitamos de N el vrtice elegido anteriormente. * Agregamos a T la arista agregada anteriormente.

5 a 6 7 2 f

b 5 d

5 4 2 3 2 3 e 1 g 3

Primera iteracin i =2 n=7 P = {a,b} N ={c,d,e,f,g} T = {{a,b}} 3 paso Incrementamos el contador en 1 a) Si i=n llegamos al objetivo b) Si i < n ; regresamos al paso 2

5 a 6 7 2 f

b 5 d

5 4 2 3 2 3 e 1 g 3

b 4 e

Segunda iteracin i =3 n=7 P = {a,b,e} N ={c,d,f,g} T = {{a,b},{b,e}}

5 a 6 7 2 f

b 5 d

5 4 2 3 2 3 e 1 g 3

b 4 e 1 g

Tercera iteracin i=4 n=7 P = {a,b,e,g} N ={c,d,f} T = {{a,b},{b,e},{e,g}}

5 a 6 7 2 f

b 5 d 4 2 3 2 e 1 g

5 3 3

b 4 d 2 1 g e

Cuarta iteracin i=5 n=7 P = {a,b,e,g,d} N ={c,f} T= {{a,b},{b,e},{e,g},{d,e}}

5 a 6 7 2 f

b 5 d 4 2 3 2 e 1

5 3 3

g
a 5 b 4

Quinta iteracin i=6 n=7 P = {a,b,e,g,d,f} N ={c} T= {{a,b},{b,e},{e,g},{d,e},{f,g}}

2 1

5 a 6 7 2 f

b 5 d 4 2 3 2 e 1 g

5 3 3

5 a

Sexta iteracin i=7=|V| n=7 P = {a,b,c,d,e,f,g} f N ={nulo} T = {{a,b},{b,e},{e,g},{d,e},{f,g},{c,g}}

4
d 2 2 1 g

Encontramos un rbol Recubridor ptimo !


Con un peso de 17

3 Pasos Simples para llegar al Objetivo


1 paso * Hacemos i =1 * Elegimos una v1 arbitrario en P * Definimos: N = V {v1 } T = nulo

2 paso
* Para 1 i n-1 * Agregamos a P un vrtice que este unido a un vrtice x mediante una arista y est debe ser de peso mnimo con respecto a otras. * Quitamos de N el vrtice elegido anteriormente. * Agregamos a T la arista agregada anteriormente.
3 paso Incrementamos el contador en 1 a) Si i=n llegamos al objetivo b) Si i < n ; regresamos al paso 2

El teorema de flujo mximo y corte mnimo

Veremos una aplicacin de los grafos ponderados dirigidos al flujo de un bien de una fuente a un destino dado. Tales bienes podran ser litros de petrleo que fluyen a travs de tuberas o nmeros de llamadas telefnicas transmitidas en un sistema de comunicacin.

Al modelar estas situaciones, interpretamos el peso de una arista en el grafo dirigido como una capacidad que impone un limite superior, por ejemplo sobre la cantidad de petrleo que puede fluir por cierta parte de un sistema de tuberas.
Estas ideas se expresan formalmente en la siguiente definicin:

Definicin:
Sea

N=(V,E) un grafo dirigido conexo sin lazos. Entonces N es una red, o red de transporte, si se cumplen las siguientes condiciones:

a)- Existe un nico vrtice a V tal que ge(a), el grado de entrada de a, es igual a 0. Este vrtice es la fuente. b)- Existe un nico vrtice z V, llamado sumidero, tal que gs(z), el grado de salida de z, es igual a 0. c)- El grafo N es ponderado, por lo que existe una funcin de E en el conjunto de enteros no negativos que asigna a cada arista e=(v, w) E una capacidad, que se denota con c(e) = c(v,w)

Sea G una red y sea Cij la capacidad de la arista dirigida (ij) se dice que un flujo F en G asigna a cada arista dirigida (ij) un numero no negativo Fij tal que debe cumplir:
Fij

Cij

Para

todos los vrtices que no sea fuente ni sumidero se cumple:wV f(w,v) =wV f(v,w). (Si no existe una arista (v,w), f(v,w)= 0).

Teorema de flujo mximo-corte mnimo: (Ford Fulkerson).


Para cualquier red el flujo mximo desde el nodo fuente al nodo destino es igual a la capacidad del corte mnimo.

A partir de este teorema el problema de encontrar el flujo mximo en una red se traduce en encontrar las capacidades de todos los cortes y elegir la mnima capacidad.

Teora de Emparejamiento

Definicin:
Sea G= (V,E) un grafo bipartito con V dividido como X

U Y. (Cada arista de E tiene la forma {x,y}, con x X y y Y).


a)- Un emparejamiento de G es un subconjunto de E

tal que ningn par de aristas comparte un vrtice en X o en Y. b)- Un emparejamiento completo de X en Y es un emparejamiento de G tal que cada x X es el extremo de una arista.

En trminos de funcin, un emparejamiento es una

funcin que establece una correspondencia uno a uno entre un subconjunto de X y un subconjunto de Y. cuando el emparejamiento es completo, se define un funcin uno a uno de X en Y.
Ejemplo de un emparejamiento completo:

Para un grafo bipartito G= (V,E) con V dividido como X

U Y, un emparejamiento completo de X en Y requiere que |X| |Y|. Si |X| es grande, entonces la construccin de tal emparejamiento no puede hacerse por prueba y error.

El siguiente teorema, del matemtico ingles Philip Hall, proporciona una condicin necesaria y suficiente para la existencia de tal emparejamiento.

Teorema
Sea G=(V,E) un grafo bipartito con V dividido como X U Y. Existe un emparejamiento completo de X en Y si y solo si para cada subconjunto A de X, |A| |R (A)|, donde R(A) es el subconjunto de Y que consta de los vrtices adyacentes al menos a un vrtice de A.