Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algo3 Arboles 2012 PDF
Algo3 Arboles 2012 PDF
Introducción
Algoritmos
Algoritmo de Kruskal
Facultad de Ingenierı́a
Universidad de la República
14 de mayo de 2012
Propiedades
Introducción
Algoritmos
Árboles
Un árbol es un grafo conexo y acı́clico (sin ciclos).
Propiedades
Introducción
Algoritmos
Árboles
Un árbol es un grafo conexo y acı́clico (sin ciclos).
Un bosque es un grafo acı́clico, o sea, una unión disjunta de
árboles.
Propiedades
Introducción
Algoritmos
Árboles
Un árbol es un grafo conexo y acı́clico (sin ciclos).
Un bosque es un grafo acı́clico, o sea, una unión disjunta de
árboles.
Una hoja en un grafo es un vértice de grado 1.
Propiedades
Introducción
Algoritmos
Árboles
Un árbol es un grafo conexo y acı́clico (sin ciclos).
Un bosque es un grafo acı́clico, o sea, una unión disjunta de
árboles.
Una hoja en un grafo es un vértice de grado 1.
Un árbol generador de un grafo G es un subgrafo generador
de G que es un árbol.
Propiedades
Introducción
Algoritmos
Lema 1
Si mG > nG − 1 entonces G tiene un ciclo.
Propiedades
Introducción
Algoritmos
Lema 1
Si mG > nG − 1 entonces G tiene un ciclo.
Lema 1
Si mG > nG − 1 entonces G tiene un ciclo.
Lema 1
Si mG > nG − 1 entonces G tiene un ciclo.
mG 0 ≥ mG − 1 > nG − 2 = nG 0 − 1
Propiedades
Introducción
Algoritmos
Lema 1
Si mG > nG − 1 entonces G tiene un ciclo.
mG 0 ≥ mG − 1 > nG − 2 = nG 0 − 1
Lema 2
Si G es conexo, entonces mG ≥ nG − 1.
Propiedades
Introducción
Algoritmos
Lema 2
Si G es conexo, entonces mG ≥ nG − 1.
Lema 2
Si G es conexo, entonces mG ≥ nG − 1.
Lema 2
Si G es conexo, entonces mG ≥ nG − 1.
Lema 2
Si G es conexo, entonces mG ≥ nG − 1.
m G = m G 0 + 1 ≥ nG 0 = nG − 1
2
Propiedades
Introducción
Algoritmos
Teorema
Son equivalentes:
1. G es un árbol.
2. Todo par de vértices de G está unido por un único camino.
3. G es conexo y mG = nG − 1.
4. G es acı́clico y mG = nG − 1.
Propiedades
Introducción
Algoritmos
Demo: (⇐) Si todo par de vértices de G está unido por un único camino,
claramente G es conexo. Además, si hubiera un ciclo, cualquier par de
vértices del ciclo estarı́a unido por al menos dos caminos distintos. Luego
G es un árbol.
Propiedades
Introducción
Algoritmos
Demo: (⇐) Si todo par de vértices de G está unido por un único camino,
claramente G es conexo. Además, si hubiera un ciclo, cualquier par de
vértices del ciclo estarı́a unido por al menos dos caminos distintos. Luego
G es un árbol.
(⇒) Si G es un árbol, es conexo, luego todo par de vértices está unido
por al menos un camino. Supongamos que u y v están unidos por al
menos dos caminos distintos, P1 : u = w0 , w1 , . . . , wk = v y
P2 : u = z0 , z1 , . . . , zr = v . Sea i el primer ı́ndice tal que wi 6= zi .
Entonces i > 0, y wi−1 = zi−1 .
wi
Demo: (⇐) Si todo par de vértices de G está unido por un único camino,
claramente G es conexo. Además, si hubiera un ciclo, cualquier par de
vértices del ciclo estarı́a unido por al menos dos caminos distintos. Luego
G es un árbol.
(⇒) Si G es un árbol, es conexo, luego todo par de vértices está unido
por al menos un camino. Supongamos que u y v están unidos por al
menos dos caminos distintos, P1 : u = w0 , w1 , . . . , wk = v y
P2 : u = z0 , z1 , . . . , zr = v . Sea i el primer ı́ndice tal que wi 6= zi .
Entonces i > 0, y wi−1 = zi−1 .
wi
P
u=w0=z0 wi-1=z i-1 zi
G es un árbol ⇔ G es conexo y mG = nG − 1
Propiedades
Introducción
Algoritmos
G es un árbol ⇔ G es conexo y mG = nG − 1
G es un árbol ⇔ G es conexo y mG = nG − 1
G es un árbol ⇔ G es conexo y mG = nG − 1
nG 0 − 1 = nG − 2 = mG − 1 = mG 0 .
Por hipótesis inductiva G 0 es un árbol, y entonces G era un árbol
también (v tiene grado 1, no puede pertenecer a un ciclo). 2
Propiedades
Introducción
Algoritmos
G es un árbol ⇔ G es acı́clico y mG = nG − 1
Propiedades
Introducción
Algoritmos
G es un árbol ⇔ G es acı́clico y mG = nG − 1
G es un árbol ⇔ G es acı́clico y mG = nG − 1
G es un árbol ⇔ G es acı́clico y mG = nG − 1
Teorema
Todo árbol no trivial tiene al menos dos hojas.
Propiedades
Introducción
Algoritmos
Teorema
Todo árbol no trivial tiene al menos dos hojas.
Teorema
1. Toda arista de un árbol es un puente.
2. Un vértice de un árbol no trivial es un punto de corte si y sólo
si no es una hoja.
Propiedades
Introducción
Algoritmos
Teorema
1. Toda arista de un árbol es un puente.
2. Un vértice de un árbol no trivial es un punto de corte si y sólo
si no es una hoja.
Teorema
1. Toda arista de un árbol es un puente.
2. Un vértice de un árbol no trivial es un punto de corte si y sólo
si no es una hoja.
Teorema
Un grafo es conexo si y sólo si admite un árbol generador.
Propiedades
Introducción
Algoritmos
Teorema
Un grafo es conexo si y sólo si admite un árbol generador.
Teorema
Un grafo es conexo si y sólo si admite un árbol generador.
Corolario
Todo grafo conexo no trivial tiene al menos dos vértices tales que
al sacar alguno de ellos, sigue siendo conexo.
Propiedades
Introducción
Algoritmos
Corolario
Todo grafo conexo no trivial tiene al menos dos vértices tales que
al sacar alguno de ellos, sigue siendo conexo.
3
1 6 5
1
4 4
2
1 2
Propiedades
Introducción
Algoritmos
3
1 6 5
1
4 4
2
1 2
peso=16
Propiedades
Introducción
Algoritmos
3
1 6 5
1
4 4
2
1 2
peso=16
Propiedades
Introducción
Algoritmos
Hipótesis
Los algoritmos de Kuskal y Prim son algoritmos para grafos
ponderados (con peso), no dirigidos, conexos y sin lazos.
Propiedades
Introducción
Algoritmos
Hipótesis
Los algoritmos de Kuskal y Prim son algoritmos para grafos
ponderados (con peso), no dirigidos, conexos y sin lazos.
Hipótesis
Los algoritmos de Kuskal y Prim son algoritmos para grafos
ponderados (con peso), no dirigidos, conexos y sin lazos.
3 6 2
4
1 5
1 7
7
1
Propiedades
Introducción
Algoritmos
3 6 2
4
1 5
1 7
7
1
Propiedades
Introducción
Algoritmos
3 6 2
4
1 5
1 7
7
1
Propiedades
Introducción
Algoritmos
3 6 2
4
1 5
1 7
7
1
Propiedades
Introducción
Algoritmos
3 6 2
4
1 5
1 7
7
1
Propiedades
Introducción
Algoritmos
3 6 2
4
1 5
1 7
7
1
Propiedades
Introducción
Algoritmos
3 6 2
4
1 5
1 7
7
1
Propiedades
Introducción
Algoritmos
3 6 2
4
1 5
1 7
7
1
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
5
5 9 7
15 E
D 8
6 9
F
11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
9 5
5 7
15 E
D 8
6 9
F 11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
e1 9 5
7
15 E
D 8
6 9
F 11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
e2
e1 9 7
15 E
D 8
6 9
F 11 G
Propiedades
Introducción
Algoritmos
A C
7 8
B
e2
e1 9 7
15 E
D 8
e3 9
F 11 G
Propiedades
Introducción
Algoritmos
A C
e4 8
B
e2
e1 9 7
15 E
D 8
e3 9
F 11 G
Propiedades
Introducción
Algoritmos
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 9
F 11 G
Propiedades
Introducción
Algoritmos
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
Propiedades
Introducción
Algoritmos
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
Propiedades
Introducción
Algoritmos
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e2
e1 9 e5
15 E
D 8
e3 e6
F 11 G
Propiedades
Introducción
Algoritmos
A C
e4 8
B
e e2
e1 e5
15 E
D 8
e3 e6
F 11 G
Propiedades
Introducción
Algoritmos
A C
e4 8
B
e e2
e1 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e e2
e1 e5
15 E
D 8
e3 e6
F 11 G
A C
e4 8
B
e e2
e1 e5
15 E
D 8
e3 e6
F 11 G
3
1 6 2
1
5 4
7
1 7
Propiedades
Introducción
Algoritmos
3
1 6 2
1
5 4
7
1 7
Propiedades
Introducción
Algoritmos
3
1 6 2
1
5 4
7
1 7
Propiedades
Introducción
Algoritmos
3
1 6 2
1
5 4
7
1 7
Propiedades
Introducción
Algoritmos
3
1 6 2
1
5 4
7
1 7
Propiedades
Introducción
Algoritmos
3
1 6 2
1
5 4
7
1 7
Propiedades
Introducción
Algoritmos
Para ver que construye un árbol generador, se puede ver que en cada
paso del algoritmo, el subgrafo elegido hasta el momento es conexo y con
m = n − 1. Finalmente, como el grafo es conexo, mientras W 6= V (G ) va
a existir alguna arista de W a V (G ) − W con lo cual el algoritmo
termina construyendo un árbol generador del grafo.
Propiedades
Introducción
Algoritmos
Para ver que construye un árbol generador, se puede ver que en cada
paso del algoritmo, el subgrafo elegido hasta el momento es conexo y con
m = n − 1. Finalmente, como el grafo es conexo, mientras W 6= V (G ) va
a existir alguna arista de W a V (G ) − W con lo cual el algoritmo
termina construyendo un árbol generador del grafo.
Sea G un grafo, P el árbol generado por el algoritmo de Prim y
{e1 , e2 , . . . , en−1 } la secuencia de aristas de P en el orden en que fueron
elegidas por el algoritmo de Prim. Para cada árbol generador minimal T
de G definimos `(T ) como el máximo k ≤ n tal que ∀j < k, ej ∈ T .
Propiedades
Introducción
Algoritmos
Para ver que construye un árbol generador, se puede ver que en cada
paso del algoritmo, el subgrafo elegido hasta el momento es conexo y con
m = n − 1. Finalmente, como el grafo es conexo, mientras W 6= V (G ) va
a existir alguna arista de W a V (G ) − W con lo cual el algoritmo
termina construyendo un árbol generador del grafo.
Sea G un grafo, P el árbol generado por el algoritmo de Prim y
{e1 , e2 , . . . , en−1 } la secuencia de aristas de P en el orden en que fueron
elegidas por el algoritmo de Prim. Para cada árbol generador minimal T
de G definimos `(T ) como el máximo k ≤ n tal que ∀j < k, ej ∈ T .
Ahora, sea T0 un AGM que maximiza `. Si `(T0 )= r = n, entonces T0
coincide con P, con lo cual P resulta ser la solución óptima (minimal). Si
r ≤ n − 1 , entonces er 6∈ T . Como T0 es conexo, en T0 hay un camino
C que une los extremos de er .
Propiedades
Introducción
Algoritmos