Vì vậy, bài toán đặt ra dẫn về bài toán tìm cây khung nhỏ nhất trên đồ thị đầy đủ n đỉnh, mỗi đỉnh tương ứng với một thành phố với độ dài trên các cạnh chính là chi phí xây dựng hệ thống[r]
Trang 1CHƯƠNG VI CÂY
liên thông và không có chu trình là cây Cây dùng
trong
trong
cho các
có
hành nó
các @ toán ;N3 /J3
6.1 ĐỊNH NGHĨA VÀ CÁC TÍNH CHẤT CƠ BẢN.
6.1.1 Định nghĩa: Cây là
ít
Trong
Thí
6.1.2 Mệnh đề:
khác, u và v
thì u
Do
tính
6.1.3 Định lý: Cho T là
1) T là $ cây
2) T liên thông và có n1
3) T không
4) T liên thông và
5)
a
b
d
e
i
k
l m
n
Trang 26) T không
k1
2)3)
Làm
ta
n1+n2+ +nk=n) thì $P Ti là i1 K@ ta có
n1=(n11)+(n21)+ +(nk1)=(n1+n2+ +nk)k=nk
Do
còn liên thông thì T là
4)5) Vì T liên thông nên
ra
J
5)6)
hai
6)1)
thông khác nhau ta không
$ cây
6.2 CÂY KHUNG VÀ BÀI TOÁN TÌM CÂY KHUNG NHỎ NHẤT.
6.2.1 Định nghĩa: Trong
nào
khác cho
là
là (G) và là chu ;H 2, G
6.2.2 Bài toán tìm cây khung nhỏ nhất: Bài toán tìm cây khung
Trang 3toán này
Cho G=(V,E) là
;H m(e)0 ]6 ;< T=(VT,ET) là cây khung 2, G (VT=V) Ta dài m(T) 2, cây khung T là
m(T)=
ET
) (
e
e m
Bài toán L ra là trong ;H 4 6 các cây khung 2, G, hãy tìm cây khung có dài
hai mô hình : J tiêu 8 cho nó
Bài toán xây
xây
các
Bài toán
Bài toán này
Bài toán tìm cây khung
chúng Ta
Prim
T, ET) theo
sách
mà A 8j sung nó vào @3 ET không 1* thành chu trình trong @3 này 5@ toán ;i
J thúc khi ta thu @3 ET
1
2
3
vào T theo nguyên
Trang 44
Thí
{(v3, v5), (v4, v6), (v4, v5), (v5, v6), (v3, v4), (v1, v3), (v2, v3), (v2, v4), (v1, v2)}
Thêm vào 3, v5)
vào T Sau khi thêm 4, v5) vào T, 5, v6) thì nó ;i 1* thành F 2
4, v5), (v4, v6)
vào T và thu @3 ET
{(v3, v5), (v4, v6), (v4, v5), (v1, v3), (v2, v3)}
Tính
không có chu trình Vì
m(S)<m(T) Ký A ek là
toán ", mô 6 không S Khi con 2, G sinh 8h cây S 8j sung
m(S’)m(S),
chung
trong
cây khung
i+1 không 1* nên
Kruskal có 3M 13 là O(p2)
v2
v3
v1
v4
v5
v6 v1
v2
v3
v4
v5
v6 33
17
4
9
8
14 20
Trang 56.2.4 Thuật toán Prim:
1 VT:={v*}, trong v* là
ET:=
2 jVT, tìm jVT sao cho
m(wj,vj) = min m(xi, vj)=:j
xiVT
và gán cho j nhãn [wj, j] TJ không tìm wj j không 7
T) thì gán cho vj nhãn [0, ]
3 j* sao cho
j* = min j
vjVT
VT := VT {vj*},
ET := ET {(wj*, vj*)}
TJ |VT| = n thì T, ET) là cây khung
TJ |VT| < n thì
4 jVT mà 7 F vj*, ta thay
TJ j > m(vj*, vj) thì L j:=m(vj*, vj) và nhãn 2, vj là [vj*, j]
0 nguyên nhãn 2, vj Sau
Thí
C, D, E, F, H, I
14 18 21 11 19 12 18
14 17
23 21 20 20 32
18 17 34
30 21 19 20
21 23 34 22
29 34 23
11 21 30 22 13
13 19
19 20 21 29 13 33
16
12 20 19 34 13 33 15
18 32 20 23 19 16 15
Yêu
A
I
B C D E F H I
Trang 6A B C D E F H I V T E T
q1* [A,15] [A,16] [A,19] [A,23] [A,20] [A,32] [A,18] A
(D,C)
H
(A,B), (B,I), (I,D), (D,C), (I,H)
H, F
(A,B), (B,I), (I,D), (D,C), (I,H), (H,F)
H, F, E
(A,B), (B,I), (I,D), (D,C), (I,H), (H,F), (I,E)
15 + 12 + 11 + 13 + 14 + 17 + 21 = 103
Tính
G
T(1) * 2, G, do T(1) là con 2, $ cây khung 2, G
minh
5@ @) theo @ toán Prim ET(i+1)=ET(i) {ei+1}, F ei+1 là
trong T(i), C mút kia không VT(i)
TJ ei+1 là i+1 là con 2, T
TJ ei+1 không i+1 là con T’=(VT, ET{ei+1})
Ta 8d ej trong C Khi
T’’=(VT, ET’ \ {ej})
là
Theo cách i+12, @ toán Prim, ta có
m(ei+1) m(ej) do m(T’’) m(T)
m(T’’)=m(T),
a 3M 13 2, @ toán Prim là O(n3)
2, nên k+1 là O(n2) Vì
Trang 76.3 CÂY CÓ GỐC.
6.3.1 Định nghĩa: Cây có h
$ cây
Cây có
có
Thí dụ 4:
Trong cây có
vào
Cây có
r
a
b
c e
g
h
l
m j
f
k
n
o
p
q
r
p
Trang 8Trong cây có
h
2, nó
6.3.2 Định nghĩa: Cho cây T có H r=v0 ]6 ;< v0, v1, , vn-1, vn là
trong T Ta S
vi+1 là con 2, vi và vi là cha 2, vi+1
v0, v1, , vn-1 là các j tiên 2, vn và vn là dòng dõi 2, v0, v1, , vn-1
không
6.3.3 Định nghĩa:
Trong
con bên trái V 36W i phía F và bên trái V 36W 2, cha
Cây có
có m con
6.3.4 Mệnh đề:
(m1)i+1 lá
ra là 0,
ta có l+i=mi+1, nên l=(m1)i+1.
2) cây m-phân có l lá thì có 7 cao h [logml].
k-1 lá VF h2) Xét cây T có
h-1 lá Do lá
m.mh-1=mh lá
2) l mh h [logml]
6.4 DUYỆT CÂY NHỊ PHÂN.
6.4.1 Định nghĩa: Trong
cách có
Có
Cây
bên
Trang 9con bên trái
T(r) có không có cây con bên trái hay bên 36
Sau
Thí dụ 5:
6.4.2 Các thuật toán duyệt cây nhị phân:
1) Thuật toán tiền thứ tự:
1 5#$ H r
2
3
1 5#$ a
2 IA T(b)
2.1 5#$ b
2.2 IA T(d)
2.2.1 5#$ d 2.2.2 IA T(g)
2.2.2.1 5#$ g 2.2.2.3 IA T(l): 5#$ l 2.2.3 IA T(h): 5#$ h
2.3 IA T(e)
2.3.1 5#$ e 2.3.2 IA T(i)
2.3.2.1 5#$ i 2.3.2.2 IA T(m): 5#$ m 2.3.2.3 IA T(n): 5#$ n
3 IA T(c)
a
Trang 103.1 5#$ c
3.3 IA T(f)
RR%5#$ f 3.3.2 IA T(j)
3.3.2.1 5#$ j 3.3.2.2 IA T(o): 5#$ o 3.3.2.3 IA T(p): 5#$ p 3.3.3 IA T(k)
3.3.3.1 5#$ k 3.3.3.2 IA T(q): 5#$ q 3.3.3.3 IA T(s): 5#$ s
a, b, d, g, l, h, e, i, m, n, c, f, j, o, p, k, q, s.
2) Thuật toán trung thứ tự:
1 IA cây con bên trái 2, T(r) theo trung M :
2 5#$ H r
3 IA cây con bên 36 2, T(r) theo trung M :
1 IA T(b)
1.1 IA T(d)
1.1.1 IA T(g)
1.1.1.2 5#$ g 1.1.1.3 IA T(l): #$ l 1.1.2 5#$ d
1.1.3 IA T(h): 5#$ h 1.2 5#$ b
1.3 IA T(e)
1.3.1 IA T(i)
1.3.1.1 IA T(m): 5#$ m 1.3.1.2 5#$ i
1.3.1.3 IA T(n): 5#$ n 1.3.2 5#$ e
2 5#$ a
3 IA T(c)
3.2 5#$ c
3.3 IA T(f)
3.3.1 IA T(j)
Trang 113.3.1.1 IA T(o): 5#$ o 3.3.1.2 5#$ j
3.3.1.3 IA T(p): 5#$ p 3.3.2 5#$ f
3.3.3 IA T(k)
3.3.3.1 IA T(q): 5#$ q 3.3.3.2 5#$ k
3.3.3.3 IA T(s): 5#$ s qJ B6 A cây T(a) theo trung M : là:
g, l, d, h, b, m, i, n, e, a, c, o, j, p, f, q, k, s.
3) Thuật toán hậu thứ tự:
1 IA cây con bên trái 2, T(r) theo @ M :
2 IA cây con bên 36 2, T(r) theo @ M :
3 5#$ H r
1 IA T(b)
1.1 IA T(d)
1.1.1 IA T(g)
1.1.1.2 IA T(l): #$ l 1.1.1.3 5#$ g
1.1.2 IA T(h): #$ h 1.1.3 5#$ d
1.2 IA T(e)
1.2.1 IA T(i)
1.2.1.1 IA T(m): 5#$ m 1.2.1.2 IA T(n): 5#$ n 1.2.1.3 5#$ i
1.2.3 5#$ e 1.3 5#$ b
2 IA T(c)
2.2 IA T(f)
2.2.1 IA T(j)
2.2.1.1 IA T(o): 5#$ o 2.2.1.2 IA T(p): 5#$ p 2.2.1.3 5#$ j
2.2.2 IA T(k)
2.2.2.1 IA T(q): 5#$ q
Trang 122.2.2.2 IA T(s): 5#$ s 2.2.2.3 5#$ k
2.2.3 5#$ f 2.3 5#$ c
3 5#$ a
qJ B6 A cây T(a) theo trung M : là:
l, g, h, d, m, n, i, e, b, o, p, j, q, s, k, f, c, a.
6.4.3 Ký pháp Ba Lan:
Xét 8 M 1 ;H sau S
(a+b)(c ) (1)
2
d
Ta
2, $ phép tính trong (1), H 2, cây mang phép tính sau cùng trong (1), h là
a + b c d / 2 (2)
và
quen
các
Ta
cách khác (1),
(a + b c) d / 2 (3)
*L là a + (b c d) / 2 (4) Các
Hai cây
(2)
2 d
Trang 13+ a b c / d 2 (5)
và
a b + c d 2 / (6)
Có
hình
+ a b c / d 2 khác F (5).
và A theo @ M : là
a b c + d 2 / khác F (6).
Vì
không
theo
c b
d
c b
+
Trang 14cách
cho
/ a b 5 c 2 3 c d 2 a c d / b 3 d 3 5
và có hai con Các 0 và ;H 7 L h lá Theo ký pháp Ba Lan V Ba Lan 6*W thì
T a b
* /
*
3
b a
d b d
c a d
c c
b
5 3 ) 3 ( /
) (
* 2 ) ( 3 2 5 ) ( /
*
3 )
(
d b d
c a d
c c
b a
d b d
c a d
c c
b a
5 3 ) 3 ( / ) (
* ) ( 3 2 ) 5 (
/
*
3
) 3 ( 2
2
d b c
b a
d b d
c a d
c c
b a
5
) 3 (
3 2
2 5
3 3
5 ) 3 ( / ) (
* ) ( 3 2
5
*
d b c
b a
d b d c a d
c c b a
5
) 3 ( (
3
) ( 2 5
2 3
3 2
3
5
) 3 ( ) (
* ) ( 2
5
*
d b d c a d
c c b a
d b d c a d
c c b a
5
) 3 ( ) (
) ( 2
d c a d
c c b
Trang 15BÀI TẬP CHƯƠNG VI:
1.
a) 4
1?
3. Tìm
4. Có
cây
a)
b)
c) Có 6
d) Có
5.
a) Trong
b)
6. Có
Có
a) a B vô ) D nhì
b) a B nhì, C ba
c) a A nhì, C t
các
7. Cây Fibonacci có H Tn 1 và T2 7 là cây
nh là cây con bên trái và Tn-2 nh là cây con bên 36
a) Hãy i 7 cây Fibonacci có H C tiên.
b) Cây Fibonacci Tn có bao nhiêu
8. Hãy tìm cây khung
Trang 169. Hãy tìm cây khung cho $P sau
10. a Kn
11. Tìm cây khung
12. Tìm cây khung
E, F, H, I
18 14 21 12 19 11 20
18 17
23 21 20 19 32
14 17 34
30 21 20 18
21 23 34 22
29 24 19
12 21 30 22 13
33 23
19 20 21 29 13 13
15
11 19 20 24 33 13 16
20 32 18 19 23 15 16
Yêu
h
f
i
k
g
j
l
42 14 10
4
3
15
5 7
A
H
B C D E F G H
Trang 17M :
a) b)
14. KJ các 8 M sau ây theo ký pháp Ba Lan và ký pháp Ba Lan 6*
BD C
BD A D C B A
D C B A
2 2
) (
) )(
(
5
) 2 4 3 ( 3
5 3 ) (
3 4
2
d
c b
15. KJ các 8 M sau ây theo ký pháp quen
a) x y + 2 x y 2 x y * /
b) / a b 3 c 2 4 c d 5 a c d / b 2 d 4 3.
a
c b
g
f
h
e
a
l
o