Greedy: Árbol Recubridor Mínimo Flashcards

1
Q

Explique qué se busca encontrar en el problema del Árbol Recubridor Mínimo

A

Dado un grafo, se busca encontrar un árbol que conecte todos los nodos del grafo original, con la menor suma posible de costos de los ejes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Explique la definición formal del problema del Árbol Recubridor Mínimo

A

Sea G=(V,E) un grafo conexo y ponderado (con costos w positivos), queremos seleccionar un subconjunto de ejes T (incluídos en E) de tal forma que:

  1. El nuevo grafo G = (V,T) sea conexo (todos sus vértices están conectados).
  2. El costo total W = ∑(Wt) sea mínimo entre todos los posibles grafos conexos.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué es un árbol en términos de grafos?

A

Un árbol es un grafo simple no dirigido, conexo y sin ciclos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

El nuevo grafo G' es conexo. ¿Podría tener ciclos?

A

El nuevo grafo G' no tendrá ciclos.

Si tuviese ciclos, podríamos extraer un eje del ciclo y el grafo resultante sería conexo con un costo menor.

Pero G' es el grafo con el costo total mínimo entre todos los posibles, por lo que nunca tiene ciclos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Cuántos árboles recubridores existen para un grafo G? ¿Son todos mínimos?

A

Para un grafo G, existen varios posibles árboles recubridores, pero sólo un conjunto de ellos (o 1) es mínimo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Explique el concepto de Propiedad de Corte.

A

Supongamos que todos los costos de los ejes son diferentes. Se tiene un subset de nodos S no vacío y un subconjunto de ejes F.

  • Todos los ejes de F van a tener un extremo en S y otro en V-S.
  • De todos los ejes de F, hay al menos uno que tiene el menor costo en comparación con los demás. Esto significa que hay al menos un eje en F que tiene el costo más bajo y que conecta a S con V-S.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explique el algoritmo de Kruskal

A
  1. Inicialmente todos los nodos de G=(V,E) son árboles de un bosque.
  2. Iterativamente, se recorren los ejes E, del de menor costo al de mayor costo.
    2.a. En cada iteración, se analiza el eje: si agregarlo une a dos árboles diferentes, se agrega.
    2.b. Si agregar el eje une a dos nodos del mismo árbol, se desecha.
  3. El resultado es un árbol recubridor mínimo.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Kruskal: Optimalidad. ¿Kruskal es óptimo?

A

Kruskal es óptimo.

Por como se seleccionan los ejes, se elije el menos costoso que une a dos subespacios y que no crea un ciclo.

Entonces el eje elegido pertenece a cualquier árbol recubridor mínimo de G, por propiedad de corte.

=> Siempre devuelve un árbol recubridor mínimo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Explique el Algoritmo de Prim.

A
  1. Inicialmente, se selecciona un nodo u del grafo, y se dice que S = {u}.
  2. Se repite mientras que el subconjunto V-S no esté vacío.
    2.a. Se selecciona el eje con menor costo que une ambos subconjuntos.
    2.b. Se agrega el nodo de V-S al subconjunto S.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Prim es óptimo?

A

Prim es óptimo.

Por como se selecciona cada eje, se elije el menos costoso que una a S con V-S.

Entonces el eje elegido pertenece a cualquier árbol recubridor mínimo de G, por propiedad de corte.

=> Siempre devuelve un árbol recubridor mínimo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Cuál es la diferencia principal entre Kruskal y Prim?

A

Para un grafo con N nodos:

  • Kruskal comienza con N árboles aislados.
  • Prim comienza con 2 árboles aislados: S (con 1 nodo) y V-S (con N-1 nodos).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Explique el Algoritmo de Eliminación Inversa

A
  1. Inicialmente, se tiene el grafo completo
  2. Iterativamente, se recorren los ejes de E, del más costoso al menos costoso
    2.a. En cada iteración, se analiza el eje. Si al eliminarlo, el grafo es conexo, se elimina.
    2.b. Si al eleiminarlo, el grafo deja de ser conexo, se mantiene.
  3. El resultsdo es un árbol recubridor mínimo.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

El algoritmo de Eliminación Inversa, al contrario de Kruskal y Prim, puede generar ciclos. ¿Cómo los eliminamos?

A

Si existe un ciclo en el grafo, el eje de mayor costo en el ciclo no pertenece al árbol recubridor mínimo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Algoritmo de Eliminación Inversa: ¿Qué pasa si tengo ejes con costos iguales? ¿Existe un único árbol recubridor mínimo?

A

Es indiferente cuál se selecciona, la eliminación de cualquiera de los dos lleva a un árbol recubridor mínimo.

Pueden existir varios Árboles Recubridores Mínimos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Resolver con Kruskal, Prim y Eliminación Inversa.

Encontrar el árbol recubridor mínimo para el siguiente grafo:

EJES
- A : B = 7
- A : C = 1
- C : D = 6
- C : E = 6
- B : E = 1
- D : E = 3
- E : F = 5
- B : F = 4
- D : G = 8
- E : H = 8
- H - I = 2

A

Se mantienen los ejes:

  • A : C
  • C : D (o C : E, es lo mismo)
  • D : G
  • D : E
  • E : B
  • E : H
  • H : I
  • B : F
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cuál es la complejidad de Kruskal, Prim y Eliminación Inversa?

A

Kruskal: O(E logE), donde E es el número de ejes en el grafo. Se usa una cola de prioridad donde se insertan todos los ejes.

Prim: O(E logE). Se usa un heap para guardar todos los ejes del grafo, ordenados por su peso.

Eliminación Inversa: O(E log E), por poner todos los ejes en un heap e ir sacando del más grande al más chico.