SlideShare una empresa de Scribd logo
MLM 2070 - Teor´ıa de Grafos
Luis A. Dissett
Clase 12
1
Dos conjeturas
Conjetura (Ringel, 1964). Si T es un ´arbol dado con m aristas,
entonces K2m+1 se descompone en 2m + 1 copias de T.
Definici´on. Sea G un grafo con m aristas. Una coloraci´on
graciosa (o un etiquetado gracioso) de G es una funci´on inyectiva
f : V (G) → {0, . . . , m}
tal que
{|f(u) − f(v)|} = {1, . . . , m} .
Un grafo se dice gracioso si tiene una coloraci´on graciosa.
Conjetura (del ´arbol gracioso—Kotzil y Ringel, 1964).
Todo ´arbol es gracioso.
2
Relaci´on entre las dos conjeturas
La conjetura del ´arbol gracioso implica la conjetura de Ringel. De
hecho, tenemos:
Teorema (Rosa, 1967). Si T es un ´arbol con m aristas que tiene
una coloraci´on graciosa, entonces K2m+1 se descompone en 2m + 1
copias de T.
Demostraci´on. Numeremos los v´ertices de T de acuerdo a la
coloraci´on graciosa. As´ı, V (T) = {0, . . . , m}, y no hay dos aristas
con la misma diferencia entre extremos.
Consideramos el conjunto de v´ertices V (K2m+1) como Z2m+1, y
definimos ´arboles Tk (0 ≤ k ≤ 2m) de modo que:
• V (Tk) = {k, . . . , k + m} (mod2m + 1), y
• k + i ↔ k + j en Tk si y s´olo si i ↔ j en T.
3
Familias graciosas de ´arboles
Definici´on. Una oruga es un ´arbol en que existe un camino
incidente a todas las aristas (equivalentemente, un camino que est´a
a distancia < 2 de todos los v´ertices).
Teorema. Un ´arbol es una oruga si y s´olo si no contienen al
siguiente ´arbol Y .
Proposici´on. Toda oruga es graciosa.
Corolario. Toda estrella y todo camino son graciosos.
4
Grafos con peso
Definici´on. Un grafo con peso (o grafo con costo) es un grafo G
m´as una funci´on de peso o costo
f : E(G) → R.
En general, salvo menci´on expresa en contrario, consideramos s´olo
grafos con pesos no negativos en las aristas.
Definici´on. Sea G un grafo con peso, y sea H un subgrafo de G.
El costo total o peso total de H es
w(H) =
e∈H
w(e).
5
´Arboles de cobertura m´ınimos
En particular, estamos interesados en el caso en que H = T es un
´arbol de cobertura de G. Ya que G es finito, la funci´on w(T)
alcanza su m´ınimo en alg´un ´arbol T. Nos interesa hallar alg´un
´arbol T que minimice el costo total; dicho grafo no tiene por qu´e
ser ´unico.
6
El algoritmo de Kruskal
Entrada: Un grafo G con costos, conexo.
Idea: Mantener un subgrafo ac´ıclico cobertor H, de modo que en
cada paso exista al menos un ´arbol de cobertura de costo m´ınimo T
tal que H sea subgrafo de T. C´onsiderense las aristas de G
ordenadas por costo en forma no decreciente, los empates se
rompen arbitrariamente.
Inicializaci´on: E(H) = ∅.
Iteraci´on: Si la siguiente arista e de G (en el orden dado) une dos
componentes de H entonces agregamos e a E(H). Si no, la
ignoramos.
Terminaci´on: Term´ınese el algoritmo cuando H sea conexo o
cuando se acaben las aristas de G.
7
Correcci´on del algoritmo de Kruskal
Teorema (Kruskal, 1956). Si G es un grafo conexo con costos,
entonces el algoritmo de Kruskal termina con H un ´arbol de
cobertura de costo m´ınimo.
Demostraci´on. Claramente, el algoritmo termina.
Probemos ahora que el grafo H que resulta del algoritmo es conexo.
Si no lo es, sea e una arista de G que una dos componentes de H.
Dicha arista debe haber sido considerada en alg´un momento; si fue
rechazada es porque no un´ıa dos componentes de H en ese
momento. Pero esto es imposible (el n´umero de componentes no
crece en cada iteraci´on).
An´alogamente, podemos probar que H es ac´ıclico (nunca se elige
una arista que cree un ciclo) y que cubre G (y por lo tanto es un
´arbol de cobertura).
8
Optimalidad del ´arbol generado
Sea ahora T el ´arbol de cobertura de G producido por el algoritmo
de Kruskal. Probaremos que su costo es el m´ınimo posible.
Supongamos que no, y sea T cualquier ´arbol de cobertura de G de
costo m´ınimo. Si T = T , no hay nada que probar. Si no, sea e la
primera arista de T elegida por el algoritmo tal que e /∈ E(T ).
Ya que e /∈ E(T ), T + e contiene un ciclo C, y (por un teorema
anterior), existe e ∈ E(T ) − E(T) tal que T + e − e es un ´arbol
de cobertura.
Si w(e ) < w(e), al momento de escoger e el algoritmo ya habr´ıa
considerado e . Como T contiene e y todas las aristas escogidas
antes de e, e no habr´ıa producido un ciclo, y por lo tanto habr´ıa
sido escogida por el algoritmo. Por lo tanto, w(e ) ≥ w(e).
9
Optimalidad del ´arbol generado (cont.)
As´ı, el costo de T + e − e es a lo m´as igual al de T (y por lo tanto
´optimo), y tiene m´as aristas en com´un con T que T .
Aplicando reiteradamente este procedimiento, podemos terminar
hallando un ´arbol de cobertura ´optimo T∗
que tenga todas las
aristas en co om´un con T, o sea, T∗
= T. O sea, T es ´optimo.
10
Complejidad del algoritmo de Kruskal
El algoritmo requiere que las |E| aristas est´en ordenadas
previamente. Esto toma O(|E| log(|E|) operaciones.
El proceso de examinar las |E| aristas toma a lo m´as O(|E|)
iteraciones; de ellas, n − 1 requieren actualizar la lista de
componentes a las que pertenecen los n v´ertices. Esto puede ser
hecho en un total de O(n log2 n) operaciones, o incluso en forma
m´as astuta en O(nα(n)), donde
α(n) ≤ min



i : log2(log2(. . . (log2(n)) . . . ))
i veces



= 1.
11
Rutas m´as cortas
Definici´on. En un grafo con pesos, la distancia entre dos v´ertices
es
d(u, v) = min {w(P) : P es un camino que une u y v} .
Note que en particular, esto coincide con la definici´on usual de
distancia, si consideramos la funci´on de peso w donde w(e) = 1
para todo e ∈ E(G).
Nos interesa hallar la distancia m´as corta entre dos v´ertices dados
u y v, o bien hallar todas las distancias m´as cortas entre un v´ertice
dado u y todos los otros v´ertices de G.
En general, no es mucho m´as eficiente hallar la ruta m´as corta
entre u y v que hallar todas las rutas m´as cortas entre u y los otros
v´ertices. Para esto usamos el algoritmo de Dijkstra.
12
El algoritmo de Dijkstra
Entrada: Un grafo (o digrafo) G con pesos no negativos, y un
v´ertice de partida u. El peso de una arista xy es w(xy); si xy no es
una arista diremos que w(xy) = ∞.
Idea: Mantener un conjunto S de v´ertices a los que conocemos la
distancia m´as corta desde u, junto con el predecesor de cada v´ertice
de S en dicha ruta. Para lograr esto, mantenemos una distancia
tentativa t(z) desde u a cada z ∈ V (G). Si z /∈ S, t(z) es la
distancia m´as corta encontrada hasta ahora entre u y z. Si z ∈ S,
t(z) es la distancia m´as corta entre u y z. En cualquier caso,
pred[z] es el predecesor de z la ruta u − z en cuesti´on.
Inicializaci´on: S = {u} , t(u) = 0, t(z) = w(uz) y pred[z] = u para
z = u.
13
El algoritmo de Dijkstra (cont.)
Iteraci´on: Sea v ∈ V (G) − S tal que
t(z) = min {t(v) : v ∈ V (G) − S}.
Agr´eguese v a S.
Para z ∈ V (G) − S, actual´ıcese t(z) a min {t(z), t(v) + w(vz)}.
Si cambia t(z), c´ambiese pred[z] a v.
Terminaci´on: Term´ınese el algoritmo cuando S = V (G) o cuando
t(z) = ∞ para todo z ∈ V (G) − S.
Al terminar, la distancia m´as corta entre u y v est´a dada por
d(u, v) = t(v).
14

Más contenido relacionado

PPT
PDF
129psr rwe
PDF
Deber%2 B7
PDF
Calvar7 semana-3
PPT
Limites
DOCX
Límite de una función Vectorial y derivada de una función Vectorial.
PDF
Función vectorial de variable real
129psr rwe
Deber%2 B7
Calvar7 semana-3
Limites
Límite de una función Vectorial y derivada de una función Vectorial.
Función vectorial de variable real

La actualidad más candente (20)

PPT
La Derivada
PDF
Aplicaciones de la derivada a funciones de una variable real
ODT
Integral impropia
PDF
PDF
Bitácora n° 9 (09 abril a 13 de abril)
PDF
Operaciones con funciones vectoriales
PDF
Jorge albah
PPT
Tema 3 (Segunda parte)
DOCX
Propiedades de los límites y factorizacion de productos notables
DOCX
Propiedades de los límites y factorizacion de productos notables
PDF
La Integral Definida. Área Bajo La Curva.
PPTX
Aplicación de las derivadas
PDF
Ejercicios v com
PPT
Series de fourier (n)
ODP
PPSX
Limites y continuidad
DOCX
Tesis
DOC
Anderson pena
La Derivada
Aplicaciones de la derivada a funciones de una variable real
Integral impropia
Bitácora n° 9 (09 abril a 13 de abril)
Operaciones con funciones vectoriales
Jorge albah
Tema 3 (Segunda parte)
Propiedades de los límites y factorizacion de productos notables
Propiedades de los límites y factorizacion de productos notables
La Integral Definida. Área Bajo La Curva.
Aplicación de las derivadas
Ejercicios v com
Series de fourier (n)
Limites y continuidad
Tesis
Anderson pena
Publicidad

Similar a Clase12 (1) (20)

DOCX
Algoritmos
PDF
Algoritmo de kruskal
PPT
GRAFOS_Eulerianos_Hamiltonianos.ppthgfff
PPT
Algoritmos de kruskal y prim
PPT
Algoritmos de kruskal y prim
PPTX
Mapa mental Grafos (Gaby Assouad)
DOCX
INGENIERIA DE SISTEMAS. ALGORITMO KRUSKAL.
PDF
Acerca del algoritmo de dijkstra compressed
PPT
Mpinning Gy Alg10(Busqueda)
PPT
Mpinning Gy Alg10(Busqueda)
PDF
cap4-grafos-2en1.pdf. .
PPTX
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
PDF
Proyecto PIBAP 03-295 Contrato #040 Informe Componente 1
PDF
Grafos-2021.pdf
PPTX
140720444-presentacion-de-Arboles.pptx
PDF
grafosalgoritmosfundamentales-170507070811.pdf
PPTX
Programación 3: algoritmo de Prim y de Kruskal
Algoritmos
Algoritmo de kruskal
GRAFOS_Eulerianos_Hamiltonianos.ppthgfff
Algoritmos de kruskal y prim
Algoritmos de kruskal y prim
Mapa mental Grafos (Gaby Assouad)
INGENIERIA DE SISTEMAS. ALGORITMO KRUSKAL.
Acerca del algoritmo de dijkstra compressed
Mpinning Gy Alg10(Busqueda)
Mpinning Gy Alg10(Busqueda)
cap4-grafos-2en1.pdf. .
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
Proyecto PIBAP 03-295 Contrato #040 Informe Componente 1
Grafos-2021.pdf
140720444-presentacion-de-Arboles.pptx
grafosalgoritmosfundamentales-170507070811.pdf
Programación 3: algoritmo de Prim y de Kruskal
Publicidad

Clase12 (1)

  • 1. MLM 2070 - Teor´ıa de Grafos Luis A. Dissett Clase 12 1
  • 2. Dos conjeturas Conjetura (Ringel, 1964). Si T es un ´arbol dado con m aristas, entonces K2m+1 se descompone en 2m + 1 copias de T. Definici´on. Sea G un grafo con m aristas. Una coloraci´on graciosa (o un etiquetado gracioso) de G es una funci´on inyectiva f : V (G) → {0, . . . , m} tal que {|f(u) − f(v)|} = {1, . . . , m} . Un grafo se dice gracioso si tiene una coloraci´on graciosa. Conjetura (del ´arbol gracioso—Kotzil y Ringel, 1964). Todo ´arbol es gracioso. 2
  • 3. Relaci´on entre las dos conjeturas La conjetura del ´arbol gracioso implica la conjetura de Ringel. De hecho, tenemos: Teorema (Rosa, 1967). Si T es un ´arbol con m aristas que tiene una coloraci´on graciosa, entonces K2m+1 se descompone en 2m + 1 copias de T. Demostraci´on. Numeremos los v´ertices de T de acuerdo a la coloraci´on graciosa. As´ı, V (T) = {0, . . . , m}, y no hay dos aristas con la misma diferencia entre extremos. Consideramos el conjunto de v´ertices V (K2m+1) como Z2m+1, y definimos ´arboles Tk (0 ≤ k ≤ 2m) de modo que: • V (Tk) = {k, . . . , k + m} (mod2m + 1), y • k + i ↔ k + j en Tk si y s´olo si i ↔ j en T. 3
  • 4. Familias graciosas de ´arboles Definici´on. Una oruga es un ´arbol en que existe un camino incidente a todas las aristas (equivalentemente, un camino que est´a a distancia < 2 de todos los v´ertices). Teorema. Un ´arbol es una oruga si y s´olo si no contienen al siguiente ´arbol Y . Proposici´on. Toda oruga es graciosa. Corolario. Toda estrella y todo camino son graciosos. 4
  • 5. Grafos con peso Definici´on. Un grafo con peso (o grafo con costo) es un grafo G m´as una funci´on de peso o costo f : E(G) → R. En general, salvo menci´on expresa en contrario, consideramos s´olo grafos con pesos no negativos en las aristas. Definici´on. Sea G un grafo con peso, y sea H un subgrafo de G. El costo total o peso total de H es w(H) = e∈H w(e). 5
  • 6. ´Arboles de cobertura m´ınimos En particular, estamos interesados en el caso en que H = T es un ´arbol de cobertura de G. Ya que G es finito, la funci´on w(T) alcanza su m´ınimo en alg´un ´arbol T. Nos interesa hallar alg´un ´arbol T que minimice el costo total; dicho grafo no tiene por qu´e ser ´unico. 6
  • 7. El algoritmo de Kruskal Entrada: Un grafo G con costos, conexo. Idea: Mantener un subgrafo ac´ıclico cobertor H, de modo que en cada paso exista al menos un ´arbol de cobertura de costo m´ınimo T tal que H sea subgrafo de T. C´onsiderense las aristas de G ordenadas por costo en forma no decreciente, los empates se rompen arbitrariamente. Inicializaci´on: E(H) = ∅. Iteraci´on: Si la siguiente arista e de G (en el orden dado) une dos componentes de H entonces agregamos e a E(H). Si no, la ignoramos. Terminaci´on: Term´ınese el algoritmo cuando H sea conexo o cuando se acaben las aristas de G. 7
  • 8. Correcci´on del algoritmo de Kruskal Teorema (Kruskal, 1956). Si G es un grafo conexo con costos, entonces el algoritmo de Kruskal termina con H un ´arbol de cobertura de costo m´ınimo. Demostraci´on. Claramente, el algoritmo termina. Probemos ahora que el grafo H que resulta del algoritmo es conexo. Si no lo es, sea e una arista de G que una dos componentes de H. Dicha arista debe haber sido considerada en alg´un momento; si fue rechazada es porque no un´ıa dos componentes de H en ese momento. Pero esto es imposible (el n´umero de componentes no crece en cada iteraci´on). An´alogamente, podemos probar que H es ac´ıclico (nunca se elige una arista que cree un ciclo) y que cubre G (y por lo tanto es un ´arbol de cobertura). 8
  • 9. Optimalidad del ´arbol generado Sea ahora T el ´arbol de cobertura de G producido por el algoritmo de Kruskal. Probaremos que su costo es el m´ınimo posible. Supongamos que no, y sea T cualquier ´arbol de cobertura de G de costo m´ınimo. Si T = T , no hay nada que probar. Si no, sea e la primera arista de T elegida por el algoritmo tal que e /∈ E(T ). Ya que e /∈ E(T ), T + e contiene un ciclo C, y (por un teorema anterior), existe e ∈ E(T ) − E(T) tal que T + e − e es un ´arbol de cobertura. Si w(e ) < w(e), al momento de escoger e el algoritmo ya habr´ıa considerado e . Como T contiene e y todas las aristas escogidas antes de e, e no habr´ıa producido un ciclo, y por lo tanto habr´ıa sido escogida por el algoritmo. Por lo tanto, w(e ) ≥ w(e). 9
  • 10. Optimalidad del ´arbol generado (cont.) As´ı, el costo de T + e − e es a lo m´as igual al de T (y por lo tanto ´optimo), y tiene m´as aristas en com´un con T que T . Aplicando reiteradamente este procedimiento, podemos terminar hallando un ´arbol de cobertura ´optimo T∗ que tenga todas las aristas en co om´un con T, o sea, T∗ = T. O sea, T es ´optimo. 10
  • 11. Complejidad del algoritmo de Kruskal El algoritmo requiere que las |E| aristas est´en ordenadas previamente. Esto toma O(|E| log(|E|) operaciones. El proceso de examinar las |E| aristas toma a lo m´as O(|E|) iteraciones; de ellas, n − 1 requieren actualizar la lista de componentes a las que pertenecen los n v´ertices. Esto puede ser hecho en un total de O(n log2 n) operaciones, o incluso en forma m´as astuta en O(nα(n)), donde α(n) ≤ min    i : log2(log2(. . . (log2(n)) . . . )) i veces    = 1. 11
  • 12. Rutas m´as cortas Definici´on. En un grafo con pesos, la distancia entre dos v´ertices es d(u, v) = min {w(P) : P es un camino que une u y v} . Note que en particular, esto coincide con la definici´on usual de distancia, si consideramos la funci´on de peso w donde w(e) = 1 para todo e ∈ E(G). Nos interesa hallar la distancia m´as corta entre dos v´ertices dados u y v, o bien hallar todas las distancias m´as cortas entre un v´ertice dado u y todos los otros v´ertices de G. En general, no es mucho m´as eficiente hallar la ruta m´as corta entre u y v que hallar todas las rutas m´as cortas entre u y los otros v´ertices. Para esto usamos el algoritmo de Dijkstra. 12
  • 13. El algoritmo de Dijkstra Entrada: Un grafo (o digrafo) G con pesos no negativos, y un v´ertice de partida u. El peso de una arista xy es w(xy); si xy no es una arista diremos que w(xy) = ∞. Idea: Mantener un conjunto S de v´ertices a los que conocemos la distancia m´as corta desde u, junto con el predecesor de cada v´ertice de S en dicha ruta. Para lograr esto, mantenemos una distancia tentativa t(z) desde u a cada z ∈ V (G). Si z /∈ S, t(z) es la distancia m´as corta encontrada hasta ahora entre u y z. Si z ∈ S, t(z) es la distancia m´as corta entre u y z. En cualquier caso, pred[z] es el predecesor de z la ruta u − z en cuesti´on. Inicializaci´on: S = {u} , t(u) = 0, t(z) = w(uz) y pred[z] = u para z = u. 13
  • 14. El algoritmo de Dijkstra (cont.) Iteraci´on: Sea v ∈ V (G) − S tal que t(z) = min {t(v) : v ∈ V (G) − S}. Agr´eguese v a S. Para z ∈ V (G) − S, actual´ıcese t(z) a min {t(z), t(v) + w(vz)}. Si cambia t(z), c´ambiese pred[z] a v. Terminaci´on: Term´ınese el algoritmo cuando S = V (G) o cuando t(z) = ∞ para todo z ∈ V (G) − S. Al terminar, la distancia m´as corta entre u y v est´a dada por d(u, v) = t(v). 14