You are on page 1of 16

1

11.4. MT S NG DNG
CA CY BAO TRM
1. Kim tra tnh lin thng ca mt th: th l
lin thng n c cy bao trm.
2. Xy dng h c s ca cc chu trnh.
Gi s th lin thng G = (V, E) vi n nh
v m cnh.
2
11.4. MT S NG DNG CA
CY BAO TRM (tip)
Thc hin hai bc:
1. Xy dng cy bao trm T ca G. Gi s trong
qu trnh xy dng cy bao trm T ta b i cc
cnh e
1
, e
2
, ... , e
m n + 1
2. Xy dng h chu trnh c s: Ln lt thm vo
cy T cc cnh e
i
, khi s xut hin chu trnh
i
-
y cng l chu trnh ca th G. Sau li xo
cnh e
i
v thm cnh e
i+1
vo. Cui cng ta nhn
c cc chu trnh tng ng l
1
,
2
, ...,
m n + 1
.

3
11.4. MT S NG DNG CA
CY BAO TRM (tip)
H chu trnh ny c lp v:
i = j th o
i
cha e
i
nhng khng cha e
j
, cn o
j

cha e
j
nhng khng cha e
i
.
S cc chu trnh ny l m - n +1 = m - n + p = c(G) = s
cc chu trnh c lp cc i.
Vy h chu trnh tm c l mt c s ca cc chu
trnh trong th G.
4
V D 11.5
Xt th v hng:









n = 5, m = 8, p = 1. Vy c(G) = 4.


a
b c
d e
G =
1 2
3
4
Hnh 11.7. th v cc cnh b i
5
V D 11.5 (tip)
Mt cy bao trm T ca G l:





Ta nhn c mt h chu trnh c s:

1
= [a, b, d]
3
= [a, b, c, d]

2
= [a, b, e, d]
4
= [a, b, c, e, d]



a
b c
d e
6
11.5. CY BAO TRM NH NHT
Bi ton: Cho th v hng G lin thng vi tp
cnh E v hm trng s c : E N. Tm cy bao trm
T ca G sao cho tng trng s ca cc cnh ca T t
gi tr nh nht.

Mt s thut ton tm cy bao trm nh nht:
- Thut ton Kruskal
- Thut ton Prim
7
11.6. THUT TON KRUSKAL
Thut ton:
1. Chn cnh c trng s b nht, k hiu l e
1
v t
W := {e
1
}.
2. Gi s chn c W = {e
1
, e
2
, ... , e
i
}. Chn e
i+1

l cnh c trng s b nht trong s cc cnh cn li
trong E \ W sao cho {e
1
, e
2
, ... , e
i
, e
i+1
} khng cha
chu trnh.
3. B sung: W := W {e
i+1
}.
4. Lp li cc bc 2. 3. chng no cn c th.
8
11.6. THUT TON KRUSKAL (tip)
nh l 11.4 : Tp cc cnh W tm c theo thut
ton Kruskal to nn cy bao trm nh nht ca
th G.

Thut ton Kruskal chi tit
1 procedure Kruskal ;
2 begin
3 W := C ; Z := E ;


9
11.6. THUT TON KRUSKAL (tip)
4 while (|W| < n -1) and (Z = C) do
5 begin
6 chn cnh e c trng s b nht trong Z ;
7 Z := Z \ {e} ;
8 if W {e} khng cha chu trnh then
W := W {e}
9 end ;
10 if |W| < n -1 then writeln( th khng lin
thng)
11 end ;
10
V D 11.6
th c trng s v cy bao trm nh nht:
1
1
1
2
2
4
6
5 6
5
1
1
1
2
5
Hnh 11.10. th trng s v mt cy bao trm nh nht
11
11.7. THUT TON PRIM
Thut ton Prim
Prim ci tin thut ton Kruskal nh sau: mi
vng lp ta chn cnh c trng s b nht trong s
cc cnh k vi cc cnh chn m khng to nn
chu trnh.

12
11.7. THUT TON PRIM (tip)
Thut ton Prim c gi l phng php ln cn gn
nht: bt u t mt nh no a ca th G ta
ni n vi nh gn nht, chng hn b. Ngha l,
cnh (a, b) c chn c trng s b nht. Tip theo,
trong s cc cnh k vi nh a hoc nh b ta chn
cnh c trng s b nht m khng to nn chu trnh
vi cnh (a, b). Cnh ny dn n nh th ba c ...

Tip tc qu trnh ny cho n khi nhn c cy
gm n nh v n-1 cnh. chnh l cy bao trm
nh nht.
13
11.7. THUT TON PRIM (tip)
1 procedure Prim ;
2 begin
3 W := {cnh c trng s b nht };
4 for i := 1 to n - 2 do
5 begin
6 e := cnh c trng s b nht k vi cnh
trong W v nu ghp n vo W th khng
to nn chu trnh ;
7 W := W {e}
8 end
9 end ;
14
CY BAO TRM NH NHT (tip)
nh l 11.5
Trong th v hng c trng s i mt khc
nhau, cy bao trm nh nht tn ti v duy nht.
Chng minh:
V trong vng lp ch c duy nht mt cnh c
chn.

15
11.8. CY BAO TRM LN NHT
Trong cc thut ton Kruskal v Prim ta khng rng
buc v du ca trng s, nn c th p dng cho
th v hng vi trng s trn cc cnh c cng du
tu .
16
11.8. CY BAO TRM LN NHT (tip)
tm cy bao trm ln nht ta c hai cch:
1. i thnh du - cho cc trng s trn cc cnh. p
dng mt trong hai thut ton trnh by trn
tm cy bao trm nh nht. Sau i du + tr li,
ta s c cy bao trm ln nht.
2. Sa i trong cc thut ton: bc chn cnh c
trng s b nht ... c thay bng chn cnh c
trng s ln nht ... cn cc bc khc th gi
nguyn. Khi thut ton kt thc, ta s nhn c
cy bao trm ln nht.

You might also like