Introduction To Algorithms

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

9

/ &

Em il: zaro@ceid.upatras.gr
Email:
@ id p t s


. G = (V, E)
ce, T E



.
24

23

6
16

4
18

11

14

10

11
7

21

G = (V, E)

T, eT ce = 50

Cayley. nn-2 Kn.



3

.
, , , , ,



N
NP-
.
.
, Steiner

.

(max bottleneck paths)
LDPC
Renyi
y

Ethernet

(clusters)
4


Kruskal. T = .
. e T .
. T = E.



.


e T

T .
Prim.
Prim s,
s
T. , T e
T.

.
.


. ce .

S. e.
. C , f
C. f.

f

6


. a-b, b-c, c-d, , y-z, z-a.
2

3
6

4
C = 1-2, 2-3, 3-4, 4-5, 5-6, 6-1

5
8

. S.
D S.
1

3
6

S = { 4, 5, 8 }
D = 5-6, 5-7, 3-4,
3-5, 7-8

4
5

8
7

-
. ,
.
2

3
6

C = 1-2, 2-3, 3-4, 4-5, 5-6, 6-1


D = 3-4, 3-5, 5-6, 5-7, 7-8
= 3-4, 5-6

4
5
8

. ( )

S
V-S


. ce .

S. T* e.
. ( )
e T*.
e T* C T*.
T*
e C D
S , f, C D.
T' = T* { e } - { f } .
ce < cf, cost(T') < cost(T*).

.

S
e
T*


. ce .

C. T* f.
. ( )
f T*.
f T* S T*.
T*
f C D
S , e, C D.
T' = T* { e } - { f } .
ce < cf, cost(T') < cost(T*).

.

S
e
T*

10

Prim:


Prim.
P i
[J
[Jarnk
k 1930,
1930 Dijk
Dijkstra
t 1957,
1957 P
Prim
i 1959]
S = .
S.
T
S,
S.
S

11

: Prim
. .
S .
v
a[v] = v S.

Prim(G,
( , c)
) {
foreach (v V) a[v]
Q
foreach (v V) v Q
S
while (Q ) {
u Q
S S {u }
foreach ( e = (u, v) )
if ((v S) (ce < a[v]))
a[v]
[ ] ce
//

O(n2) ; O(m log n) .


12

Kruskal:
Kruskal. [Kruskal, 1956]

1: e T ,

e .
2: , e = (u, v) T
S = u.

e
u

2
13

: Kruskal
. union-find ( ).
T .
.
O(m log n) (n log n) .

Kruskal(G, c) {

c1 c2 ... cm.
T
foreach (u V) u
u v ;
for i = 1 to m
(u,v) = ei
if (u v

) {
T T {ei}
u v
}

return T

}
14


:
.

.


Kruskal
K k l Prim
P i

.
, ,
ei i / n2

.
, .
boolean less(i, j) {
if
(cost(ei) < cost(ej)) return true
else
l
if (cost(e
(
t( i) > cost(e
t( j)) return
t
false
f
l
else if (i < j)
return true
else
return false
}

15

You might also like