Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. ·...

36
´ Arboles ´ Arboles de Expansi´on ´ Arboles de Expansi´on M´ ınima Matem´ atica Discreta Agust´ ın G. Bonifacio UNSL ´ Arboles Agust´ ın G. Bonifacio Matem´ atica Discreta

Transcript of Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. ·...

Page 1: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

Matematica Discreta

Agustın G. Bonifacio

UNSL

Arboles

Agustın G. Bonifacio Matematica Discreta

Page 2: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

Definiciones y EjemplosCaracterizacion

Definicion

Un arbol T es un grafo simple que satisface lo siguiente: si v y w

son vertices en T, entonces existe una trayectoria simple unica de v

a w. Un arbol con raız es un arbol en el que un vertice especıficose designa como raız.

Si designamos como raız el vertice e del arbol T, obtenemos elarbol con raız T ′.

Agustın G. Bonifacio Matematica Discreta

Page 3: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

Definiciones y EjemplosCaracterizacion

Definicion

En un arbol con raız, el nivel de un vertice v es la longitud de latrayectoria de la raız a v. La altura de un arbol con raız es elnumero maximo de nivel que ocurre en el.

Ejemplo

Por ser raız, e es el unicovertice en el nivel cero.

Los vertices b, d, f y g

estan en el nivel 1.

Los vertices a, c, i y h

estan en el nivel 2.

El vertice j es el unico enel nivel 3.

El arbol T ′ tiene altura 3.

Agustın G. Bonifacio Matematica Discreta

Page 4: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

Definiciones y EjemplosCaracterizacion

Ejemplo

Por ser raız, v1 es el unicovertice en el nivel cero.

Los vertices v2 y v3 estan enel nivel 1.

Los vertices v4, v5, v6 y v7estan en el nivel 2.

Este arbol tiene altura 2.

Usos

(a) Especificar relaciones jerarquicas (organigramas).

(b) Sistemas de archivos en computadoras, organizando carpetas yarchivos. Por ejemplo, en Windows, la raız del arbol es el Escritorio.

(c) Etc.Agustın G. Bonifacio Matematica Discreta

Page 5: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

Definiciones y EjemplosCaracterizacion

Definicion

Sea T un arbol con raız v0. Supongamos que x, y y z son verticesen T y que (v0, v1, . . . , vn) es una trayectoria simple en T.

Entonces:

(a) vn−1 es el padre de vn, vn es hijo de vn−1;

(b) v0, . . . , vn−1 son ancestros de vn; si x es ancestro de y, y esdescendiente de x;

(c) Si x e y son hijos de z, x e y son hermanos;

(d) Si x no tiene hijos, es un vertice terminal (o una hoja);

(e) Si x no es terminal, es un vertice interno (o una rama);

(f) El subarbol de T con raız en x es el grafo cuyo conjunto devertices V esta formado por x y sus descendientes, y cuyoconjunto de aristas es el conjunto de aristas que pertenecen auna trayectoria simple de x a algun vertice en V.

Agustın G. Bonifacio Matematica Discreta

Page 6: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

Definiciones y EjemplosCaracterizacion

Ejemplo

g es padre de i y de h.

Los vertices terminalesson a, c, d, f, j y h.

i es descendiente de g yde e, ademas i esancestro de j.

¿Cual es el subarbol de T ′

con raız en g?

Definicion

Un grafo sin ciclos se denomina acıclico.

Agustın G. Bonifacio Matematica Discreta

Page 7: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

Definiciones y EjemplosCaracterizacion

Teorema 9.2.3

Sea T un grafo con n vertices. Son equivalentes:

(a) T es un arbol.

(b) T es conexo y acıclico.

(c) T es conexo y tiene n− 1 aristas.

(d) T es acıclico y tiene n− 1 aristas.

Prueba. (a) =⇒ (b). Sea T un arbol. Como existe una trayectoria decualquier vertice a cualquier otro, T es conexo. Supongamos que T tieneun ciclo (simple) C. Entonces C = (v0, . . . , vn) con v0 = vn. Como C essimple, no es lazo y tiene al menos 2 vertices distintos vi y vj , con i < j.

Entonces

(vi, vi+1, . . . , vj) y (vi, vi−1, . . . , v0, vn−1, . . . , vj)

son dos trayectorias simples distintas de vi a vj , lo que contradice la def.de arbol. Por lo tanto, T es acıclico.

Agustın G. Bonifacio Matematica Discreta

Page 8: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

Definiciones y EjemplosCaracterizacion

(b) =⇒ (c). Sea T conexo y acıclico. Veamos que tiene n− 1 aristas.Razonemos por induccion sobre n (el numero de vertices). Si n = 1,como T es conexo y acıclico, debe tener 0 aristas. Supongamos que elresultado es cierto para un grafo conexo y acıclico de n vertices. Sea T

un grafo conexo y acıclico de n+ 1 vertices y consideremos unatrayectoria P sin aristas repetidas de longitud maxima. Como T esacıclico, P no tiene ciclos y, por lo tanto, tiene un vertice v de grado 1.Sea T ⋆ el arbol que se obtiene eliminando v y la arista incidente en v.

Por H.I., T ⋆ tiene n− 1 aristas, por lo que T tiene n aristas. El resultadovale entonces para cualquier n ≥ 1.

(c) =⇒ (d). Sea T conexo con n− 1 aristas. Veamos que es acıclico.Supongamos que T tiene un ciclo. Podemos eliminar aristas del grafohasta obtener un nuevo grafo T ⋆ conexo y acıclico. Entonces T ⋆ esconexo, acıclico y tiene n vertices. Por la parte (b) =⇒ (c), se sigue queT ⋆ tiene n− 1 aristas. Pero entonces T tiene mas de n− 1 aristas, unabsurdo. Por lo tanto, T es acıclico.

Agustın G. Bonifacio Matematica Discreta

Page 9: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

Definiciones y EjemplosCaracterizacion

(d) =⇒ (a). Supongamos que T es acıclico y tiene n− 1 aristas. Veamos que es unarbol. Primero, notemos que es un grafo simple ya que es acıclico. Segundo, veamosque es conexo. Supongamos que no. Sean T1, . . . , Tk las componentes (conexas) deT. Entonces k > 1. Supongamos que cada Ti tiene ni vertices. Cada Ti es conexo yacıclico, por lo que usando la parte (b) =⇒ (c) llegamos a que Ti tiene ni − 1 aristas.Por lo tanto,

n− 1 = (n1 − 1) + (n2 − 1) + . . .+ (nk − 1)

< (n1 + n−2 + . . .+ nk)− 1

= n− 1,

lo que es absurdo. Por lo tanto, T es conexo.

Supongamos que existen trayectoriassimples distintas P1 y P2 de a a b enT. Sea (v0, . . . , vr) la porcion de P1 ded = v0 a e = vr . Sea (w0, . . . , wm) laporcion de P2 de d = w0 a e = wm.Entonces (v0, . . . , vr = wm, . . . , w0) esun ciclo en T, lo que contradice la aci-clicidad de T. Entonces hay una unicatrayectoria entre a y b. Se concluye queT es un arbol. �

Agustın G. Bonifacio Matematica Discreta

Page 10: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmos

Problema: encontrar un subgrafo T de un grafo G tal que T es unarbol que contiene todos los vertices de G.

Definicion

Un arbol T es un arbol de expansion de un grafo G si T es ungrafo de G que contiene todos los vertices de G.

Observacion

En general, un grafo tiene varios arboles de expansion

Agustın G. Bonifacio Matematica Discreta

Page 11: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmos

Teorema 9.3.4

Un grafo tiene un arbol de expansion si y solo si es conexo.

Prueba. (=⇒) Supongamos que G tiene un arbol de expansion T,

y sean a y b dos vertices de G. Como a y b son tambien vertices deT y T es arbol, existe una trayectoria P en T de a a b. Entonces Ptambien esta en G. Por lo tanto, G es conexo.(⇐=) Supongamos G conexo. Si G es acıclico, por Teorema 9.2.3es un arbol. Supongamos entonces que tiene un ciclo. Podemos ireliminando aristas de G hasta producir un grafo conexo y acıclicoT que mantiene todos los vertices de G. Por Teorema 9.2.3, T esun arbol. Como T contiene todos los vertices de G, es deexpansion. �

Agustın G. Bonifacio Matematica Discreta

Page 12: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmos

¿Como encontrar un arbol de expansion para un grafo? Busqueda alo ancho

1 Se selecciona un orden delos vertices de G.

2 Se elige el primer verticecomo raız: a

3 Se agregan, en orden, todaslas aristas {a, x} y verticesen los cuales inciden que noproduzcan ciclos:{a, b}, {a, c}, {a, g} (si hayparalelas, una cualquiera)

4 Se repite el proceso con los vertices del nivel 1 b, c, g en orden:{b, d}, {c, e}

5 Se repite el proceso con los vertices del nivel 2 d, e en orden: {d, f}

6 Se repite el proceso con el vertice del nivel 3 f : {f, h}

7 Como no se pueden agregar mas aristas, el proceso termina.Agustın G. Bonifacio Matematica Discreta

Page 13: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmos

Algoritmo de busqueda a lo ancho de un arbol de expansion

Input: Grafo G = (V,E) conexo con vertices ordenadosV = {v1, v2, . . . , vn}.Output: Arbol T = (V ′, E′) de expansion de G.

Algoritmo:S = (v1)V ′ = {v1}E′ = ∅while (verdadero)

for x ∈ S, en ordenfor y ∈ V \ V ′, en ordenif {x, y} es aristaagregar {x, y} a E′ y agregar y a V ′

if no se agregaron aristasreturn T

S = hijos de S, en orden

Agustın G. Bonifacio Matematica Discreta

Page 14: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmos

¿Como encontrar un arbol de expansion para un grafo? Busquedaen profundidad

1 Se selecciona un orden delos vertices de G.

2 Se elige el primer verticecomo raız: a

3 Se agrega la arista {a, x}con x mınima: {a, b}

4 Se avanza de nivel y se repite el proceso: Se agregan las aristas:{b, d}, {d, c}, {c, e}, {e, f} y {f, h}.

5 Cuando se llega al vertice terminal h, regresamos al padre de esevertice, f, y tratamos de agregar una arista. Como esto no esposible, seguimos subiendo hasta e. Agregamos {e, g}

6 Como ya no quedan aristas que agregar en e, seguimos subiendo yllegamos a a y el proceso termina.

Agustın G. Bonifacio Matematica Discreta

Page 15: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmos

Algoritmo de busqueda en profundidad de un arbol de expansion

Input: Grafo G = (V,E) conexo con vertices ordenadosV = {v1, v2, . . . , vn}.Output: Arbol T = (V ′, E′) de expansion de G.

Algoritmo:V ′ = {v1}E′ = ∅w = v1while (verdadero)while hay arista {w, v} que al agregarla a T no crea un ciclo en T

elegir {w, vk} con k mınima, que al agregarla a T

no crea un ciclo en T

agregar {w, vk} a E′ y agregar vk a V ′

w = vkif w == v1return T

w = padre de w en T

Agustın G. Bonifacio Matematica Discreta

Page 16: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

Problema: Dadas 6 ciudades y los costos de construir rutas entrepares de ciudades, se desea construir el sistema de rutas de menorcosto que conecte las 6 ciudades.

La solucion va a ser un arbol de expansion en el que la suma de lospesos sea mınima.

Agustın G. Bonifacio Matematica Discreta

Page 17: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

Definicion

Sea G un grafo ponderado. Un arbol de expansion mınima (aem)para G es un arbol de expansion de G con peso mınimo.El peso delarbol se define como la suma de los pesos de sus aristas.

aem con peso 20. aem con peso 12.

Agustın G. Bonifacio Matematica Discreta

Page 18: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso1 {1, 2} 4

{1, 3} 2{1, 5} 3

Agustın G. Bonifacio Matematica Discreta

Page 19: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso1 {1, 2} 4

{1, 3} 2{1, 5} 3

Agustın G. Bonifacio Matematica Discreta

Page 20: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso13 {1, 3}

Agustın G. Bonifacio Matematica Discreta

Page 21: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso1 {1, 2} 43 {1, 3} {1, 5} 3

{3, 4} 1{3, 5} 6{3, 6} 3

Agustın G. Bonifacio Matematica Discreta

Page 22: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso1 {1, 2} 43 {1, 3} {1, 5} 3

{3, 4} 1{3, 5} 6{3, 6} 3

Agustın G. Bonifacio Matematica Discreta

Page 23: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso13 {1, 3}4 {3, 4}

Agustın G. Bonifacio Matematica Discreta

Page 24: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso1 {1, 2} 43 {1, 3} {1, 5} 34 {3, 4} {2, 4} 5

{3, 5} 6{3, 6} 3{4, 6} 6

Agustın G. Bonifacio Matematica Discreta

Page 25: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso1 {1, 2} 43 {1, 3} {1, 5} 34 {3, 4} {2, 4} 5

{3, 5} 6{3, 6} 3{4, 6} 6

Agustın G. Bonifacio Matematica Discreta

Page 26: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso13 {1, 3}4 {3, 4}5 {1, 5}

Agustın G. Bonifacio Matematica Discreta

Page 27: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso1 {1, 2} 43 {1, 3} {2, 4} 54 {3, 4} {3, 6} 35 {1, 5} {4, 6} 6

{5, 6} 2

Agustın G. Bonifacio Matematica Discreta

Page 28: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso1 {1, 2} 43 {1, 3} {2, 4} 54 {3, 4} {3, 6} 35 {1, 5} {4, 6} 6

{5, 6} 2

Agustın G. Bonifacio Matematica Discreta

Page 29: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso13 {1, 3}4 {3, 4}5 {1, 5}6 {5, 6}

Agustın G. Bonifacio Matematica Discreta

Page 30: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso1 {1, 2} 43 {1, 3} {2, 4} 54 {3, 4}5 {1, 5}6 {5, 6}

Agustın G. Bonifacio Matematica Discreta

Page 31: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso1 {1, 2} 43 {1, 3} {2, 4} 54 {3, 4}5 {1, 5}6 {5, 6}

Agustın G. Bonifacio Matematica Discreta

Page 32: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso13 {1, 3}4 {3, 4}5 {1, 5}6 {5, 6}2 {1, 2}

Agustın G. Bonifacio Matematica Discreta

Page 33: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

¿Como encontrar un arbol de expansion mınima? Algoritmo de Prim

Se comienza con un vertice fijo. Se agrega al arbol actual, en cadaiteracion, una arista de peso mınimo que no completa un ciclo.

Vertice Arista Arista Peso13 {1, 3}4 {3, 4}5 {1, 5}6 {5, 6}2 {1, 2}

Agustın G. Bonifacio Matematica Discreta

Page 34: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

Algoritmo de Prim

Input: Grafo ponderado G = (V, E) conexo con V = {1, . . . , n} y vertice inicial s. Si{i, j} ∈ E, w({i, j}) es el peso de {i, j}; si {i, j} ∈ E, w({i, j}) = ∞.Output: Conjunto de aristas en un aem de G.Algoritmo:for i = 1 to n

v(i) = 0v(s) = 1E = ∅for i = 1 to n− 1

mın = ∞for j = 1 to n

if v(j) == 1for k = 1 to n

if v(k) == 0 y w({j, k}) < mınagregar-vertice= ke = {j, k}mın = w({j, k})

v(agregar-vertice) = 1E = E ∪ {e}

return E

Agustın G. Bonifacio Matematica Discreta

Page 35: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

El algoritmo de Prim es un algoritmo ambicioso, es decir, un algoritmoque optimiza la eleccion en cada iteracion (hace lo mejor “localmente”).Pero optimizar en cada paso no lleva necesariamente a una solucionoptima del problema original.

Por ejemplo, un “algoritmo de laruta mas corta” en el que en cadapaso se agrega una arista dispo-nible con peso mınimo no generasiempre la ruta mas corta. Comen-zando en a, un tal algoritmo ge-nera la trayectoria (a, c, z), pero laruta mas corta de a a z es (a, b, z).

Sin embargo, el algoritmo de Prim es correcto.

Agustın G. Bonifacio Matematica Discreta

Page 36: Matem´atica Discretamatematicadiscretaunsl.weebly.com/uploads/2/6/3/4/... · 2018. 9. 10. · eliminando aristas de Ghasta producir un grafo conexo y ac´ıclico T que mantiene todos

ArbolesArboles de Expansion

Arboles de Expansion Mınima

DefinicionAlgoritmo de Prim

Teorema 9.4.5

El algoritmo de Prim es correcto. El arbol que genera es un arbol de expansion mınima.

Prueba. Sea Ti el grafo construido por el algoritmo de Prim despues de la i-esimaiteracion del ciclo for. T0 consiste en el unico vertice s y ninguna arista, mientras queTn−1 es por construccion un arbol de expansion de G. Veamos por induccion quecada Ti esta contenido en un aem, lo que implica que Tn−1 es un aem.Paso base: i = 0. Al ser T0 solo un vertice (s), esta contenido en todo aem.Paso Inductivo:

H.I: Ti esta contenido en un aem T ′.

Sea V el conjunto de vertices de T ′. Ti+1 se genera al agregar a Ti una arista de pesomınimo {j, k} con j ∈ V y k /∈ V.

(1) Si {j, k} esta en T ′, entonces Ti+1 esta en el aem T ′.

(2) Si {j, k} no esta en T ′, T ′ ∪ {j, k} contiene un ciclo. Sea {x, y} 6= {j, k} conx ∈ V y y /∈ V. Entonces w({x, y}) ≥ w({j, k}). Por lo tanto, el grafoT ′′ = [T ′ ∪ {j, k}] \ {x, y} tiene peso menor o igual que T ′. Ademas, como T ′′

es arbol de expansion, T ′′ es aem y se sigue que Ti+1 esta contenido en unaem. Como se verifica el paso inductivo, la prueba esta completa. �

Agustın G. Bonifacio Matematica Discreta