Está en la página 1de 10

CICLO 2014-3

INVESTIGACION DE OPERACIONES II

Luis Medina Aquino

rbol de Expansin Mnima


Luis Medina Aquino
Investigacin de Operaciones II

Introduccin
No se minimiza el nmero de arcos, que se puede demostrar es
igual a |V|-1. (uno hacia el padre por vrtice, menos la raz)
Hay varios problemas en los que se desea minimizar la
interconexin de varios puntos. Por ejemplo en la confeccin de
circuitos impresos.
El problema consiste buscar el rbol cuya suma de pesos de sus
arcos sea mnima en un grafo no dirigido.
Hay dos algoritmos que resuelven este problema: Algoritmo de
Kruskal y algoritmo de Prim (parecido al de Dijkstra - por verse).
Ambos algoritmos corren en tiempo O(E lg V). Si se usa un heap
especial (de Fibonacci) el algoritmo de Prim puede correr en O(E
+ V lg V) lo cual presenta ventajas cuando |V| << |E|
Ambos algoritmos son ejemplos de la heurstica de optimizacin
llamada greedy (avaro, acaparador)
3

Ejemplo de rbol de expansin de mnimo peso

9
2
11

14

10

Una estrategia de avance

11

V-S

e
V-S

14

10

Algoritmo Genrico
La idea es ir haciendo crecer el
nmero de nodos que pertenecen
al rbol de peso mnimo.
Debemos ir buscando nodos y
arcos que puedan ser agregados y
que satisfagan la propiedad de
mantener mnimo peso.

Ejemplo del algoritmo de Prim


8

a 11
(a) 8

a 11
(d) 8

(g)

i 2

(b) 8

2
6 4

1
8

(e)

10

(h)

a 11

i 2

(c)

10

14

i 2

(f)

a 11

e
10

(i)
7

i 2

14

e
10

14

a 11 7 i 2

14

a 11

10

9
14

a 11 7 i 2

10

14

11

9
14

10

i 2

14

a 11
8

i 2

10

d
14

e
10

Algoritmo de Kruskal (1956)


Aspecto previo: Conjuntos
disjuntos
El algoritmo de Kruskal queda mejor definido si utilizamos
conjuntos en su descripcin. Por ello veremos la definicin de
un tipo de datos para conjuntos disjuntos.
Consideremos una coleccin , S, de conjuntos disjuntos S =
{S1,S2,S3, .. Sk}.
Cada conjunto ser representado por un representante, el
cual es un elemento cualquiera del conjunto.
8

Algoritmo de Kruskal :Ejemplo


4

11

a
(a)

11

a
8

11

a
8

(e)
4

c
i

1
8

2
7

2
6

g
c

2
6

2
7

(b) 8

f
d

d
14

e
10

(f)

10

1
8

c
i

96
g

14

e
10

14

a 11
(h)

a 11 7 i

14

a
(d
)

10

11

c
i

14

11

10

14

a 11
(g
)

c
i

(c)

2
7

e
10

14

f
d
14

10

e
10

Algoritmo de Kruskal :Ejemplo


(continuacin)
b

11

a
(i)

a
(k)

a
(m)

11

2
6

c
i
6

2
7

4
2

11

14

14

(l)

10

14

10

8
(n)

g
8

11

i
6
110

14

e
10

14

11

10

(j)

11

10

14

10

También podría gustarte