Tải bản đầy đủ (.pdf) (20 trang)

Toán RR(BT+bài giải)exercise10 tree answer

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (258.72 KB, 20 trang )

Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
Bài tập chương 10
Cây
1 Dẫn nhập
Trong bài tập dưới đây, chúng ta sẽ làm quen với các khái niệm và định nghĩa về cây. Các
kiến thức cần thiết cho bài này cũng bao gồm các phương pháp duyệt cây và các giải thuật
tìm cây khung có nhỏ nhất. Sinh viên cần ôn lại lý thuyết về cây và các giải thuật liên
quan được trình bày trong chương 10 trước khi làm bài tập bên dưới.
2 Bài tập mẫu
Câu 1.
Những đồ thị bên dưới đây có được gọi là cây?
a)
A B C
D E F
b)
A B C
D E F
c)
A B C
D E F G
Giáo trình Toán Rời Rạc 1 Trang 1/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
Lời giải. Đồ thị trong trường hợp (a) được gọi là cây nhưng trong trường hợp (b) và (c)
thì không phải. ✷
Câu 2.
Có bao nhiêu đỉnh trong một cây tứ phân đầy đủ với 100 đỉnh lá?
Lời giải. Theo các tính chất về cây được trình bày trong phần lý thuyết chương 6, chúng
ta biết rằng số đỉnh n trong một cây m phân đầy đủ sẽ là n = (m −1)/(m −1) với  là
số đỉnh lá của cây.


Trong trường hợp cây tứ phân với 33 đỉnh lá, n = (4.100 − 1)/(4 − 1) = 133. ✷
Câu 3.
a) Hãy dùng giải thuật Prim để tìm cây khung nhỏ nhất của đồ thị G
1
.
b) Hãy dùng giải thuật Kruskal để tìm cây khung nhỏ nhất của đồ thị G
1
.
S
A
B
C
D
E
F
G
H
(G
1
)
10
10
14
11
6
8
5
2
7
3

2
4
4
8
6
Lời giải.
a) Theo giải thuật Prim, chúng ta bắt đầu từ cạnh (E, F).
Cây khung có nhỏ nhất sẽ lần lượt được hình thành như sau: {E, F} ∪{C} ∪{H} ∪{G}
∪{D} ∪{B} ∪{S} ∪{A}
Đồ thị G
1a
biểu diễn kết quả thu được với tổng trọng số là 41.
b) Theo giải thuật Kruskal, đầu tiên ta sắp xếp các cạnh theo trọng số không giảm, nghĩa
là theo thứ tự như sau: (C, F), (E, F), (D, G), (E, H), (F, G), (C, E), (C, B), (G, H),
(D, F ), (D, B), (S, A), (S, B), (A, C), (S, G).
Sau đó ta sẽ thêm từng mỗi cạnh như trên theo đúng thứ tự vào cây khung nếu cạnh đó
không tạo ra chu trình và sẽ dừng ngay khi cây khung chứa đủ tất cả các đỉnh.
Do vậy, ta thu được: (C, F ), (E, F ), (D, G), (E, H), (F, G), (C, B), (S, A), (S, B).
Giáo trình Toán Rời Rạc 1 Trang 2/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
S
A
B
C
D
E
F
G
H

(G
1a
)
10
10
6
2
3
2
4
4
Trong trường hợp này, chúng ta sẽ thu được cùng kết quả cây khung giống với kết quả
của giải thuật Prim (được biểu diễn bởi đồ thị G
1a
với tổng trọng số là 41).
c)

3 Bài tập cần giải
Câu 4.
Những đồ thị bên dưới đây có được gọi là cây?
a)
A B C
D E F
b)
A B C
D E F G
Giáo trình Toán Rời Rạc 1 Trang 3/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
c)

A B C D
E F G H
d)
A B C
D E
F G H
Lời giải. Đồ thị (a) là cây, các đồ thị còn lại không phải là cây (đồ thị (b),(d) có chu
trình; đồ thị (c) là rừng). ✷
Câu 5.
Có bao nhiêu đỉnh trong một cây ngũ phân đầy đủ với 100 đỉnh trung gian?
Lời giải. Ta biết cây m−phân có u đỉnh trung gian thì sẽ có n = u × m + 1 đỉnh tất cả.
Áp dụng công thức trên ta sẽ có n = 100 × 5 + 1 = 501 đỉnh tất cả. ✷
Câu 6.
Có bao nhiêu cạnh trong một cây nhị phân đầy đủ với 1000 đỉnh trung gian?
Lời giải. Tương tự câu (5), số đỉnh của cây sẽ là n = 1000 ∗ 2 + 1 = 2001.
Từ đó suy ra số cạnh của đồ thị là n − 1 = 2000 ✷
Câu 7.
Có bao nhiêu lá trong một cây tam phân đầy đủ với 100 đỉnh?
Lời giải. n = 100, m = 3 số lá l = [(m − 1)n + 1]/m = (2 × 100 + 1)/3 = 67 ✷
Câu 8.
Một cây m phân đầy đủ T có 81 lá và có chiều cao là 4. Hãy cho biết giá trị cận trên và
cận dưới của m (nghĩa là xác định giá trị lớn nhất có thể và nhỏ nhất có thể). Nếu T là
cây cân bằng thì m phải là bao nhiêu? Hãy giải thích rõ.
Giáo trình Toán Rời Rạc 1 Trang 4/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
Lời giải.
Cây m-phân chiều cao h thì có số lá tối đa là m
h
Nói cách khác l = 81 ≤ m

4
, hay m ≥
4

81 = 3
Cây m-phân đầy đủ có chiều cao là 4 thì số đỉnh trung gian tối thiểu i = 4.
Từ đó có số nút lá tối thiểu là (m − 1)i + 1 = 4 × m − 3 lá.
Ta có 81 ≥ 4 ×m − 3 hay m ≤ (81 + 3)/4 = 21
Kết luận 3 ≤ m ≤ 21
Nếu là cây cân bằng thì h = log
m
l, suy ra m = 3 hoặc m = 4. Tuy nhiên, nghiệm m = 4
bị loại vì không thể tính được số đỉnh trung gian i. ✷
Câu 9.
Hãy cho biết tiền thứ tự, trung thứ tự và hậu thứ tự của những cây sau đây.
a)
A
B C D
Cau 9 - a
E F
b)
Cau 9 - b
A
B C
D E
F G H
Giáo trình Toán Rời Rạc 1 Trang 5/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
c)

ACau 9 - c
B C D
E F G H I
J K L M
N O P
Q
Lời giải.
a) Tiền thứ tự A, B, E, F, C, D
Trung thứ tự E, B, F, A, C, D
Hậu thứ tự E, F, B, C, D, A
b) Tiền thứ tự A, B, D, E, F, G, H, C
Trung thứ tự D, B, F, E, G, H, A, C
Hậu thứ tự D, F, G, H, E, B, C, A
c) Tiền thứ tự A, B, E, J, N, O, K, P, Q, F, C, D, G, L, M, H, I
Trung thứ tự N, J, O, E, P, K, Q, B, F, A, C, L, G, M, D, H, I
Hậu thứ tự N, O, J, P, Q, K, E, F, B, C, L, M, G, H, I, D, A

Câu 10.
Vẽ cây có gốc tương ứng với các biểu thức số học được viết dưới dạng ký pháp tiền tố sau:
a) + ∗+ − 5 3 2 1 4
b) ∧ + 2 3 − 5 1
c) ∗/ 9 3 + ∗ 2 4 − 7 6
Lời giải.
Giáo trình Toán Rời Rạc 1 Trang 6/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
a)
+
4
*

+
1
-
2
5 3
b)

+
-
2 3 5 1
c)
*
/ +
9 3
*
-
2 4 7 6

Câu 11.
Xây dựng cây nhị phân tìm kiếm cho các từ oenology, phrenology, campanology, ornithology,
ichthyology, limnology, alchemy, astrology theo thứ tự ABC.
Lời giải.Lần lượt thêm vào các nodes ta được cây tìm kiếm nhị phân
Giáo trình Toán Rời Rạc 1 Trang 7/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
oenology
phrenologycampanology
ornithologyichthyology
limnology
alchemy

astrology

Câu 12.
Cần bao nhiêu lần so sánh để tìm thấy hoặc thêm các từ sau vào cây nhị phân tìm kiếm ở
Câu trên.
a) palmistry
b) etymology
c) paleontology
d) glaciology
Lời giải.
a) 3 lần
b) 4 lần
c) 3 lần
d) 4 lần

Câu 13.
a) Hãy dùng giải thuật tìm kiếm ưu tiên chiều sâu để tìm cây khung của các đồ thị G
12a
,
G
12b
và G
12c
. Chọn đỉnh a là gốc của cây khung.
b) Hãy dùng giải thuật tìm kiếm ưu tiên chiều rộng để tìm cây khung của các đồ thị G
12a
,
G
12b
và G

12c
. Chọn đỉnh a là gốc của cây khung.
Giáo trình Toán Rời Rạc 1 Trang 8/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
b
a
c d
e
f
h
g
i
j
(G
12a
)
b
a
c d e
f
h
g
i
j
k
l
m n
(G
12b

)
b
a
c
d
e
f
h
g
i
j
k
l
mn
o
p
q
r
s
t
(G
12c
)
Lời giải.
a)
b
a
c d
e
f

h
g
i
j
(G
12a
)
Trình tự duyệt qua các đỉnh (kể cả backtrack) là abcdehgfgjghi
b
a
c d e
f
h
g
i
j
k
l
m n
(G
12b
)
Trình tự duyệt qua các đỉnh (kể cả backtrack) là abchglghidefkjnjkfeim
Giáo trình Toán Rời Rạc 1 Trang 9/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
b
a
c
d

e
f
h
g
i
j
k
l
mn
o
p
q
r
s
t
(G
12c
)
Trình tự duyệt qua các đỉnh (kể cả backtrack) là abcdfejghihgjklmnonmlk jpqrst
b)
b
a
c d
e
f
h
g
i
j
(G

12a
)
vertex L

a b, c
b c
c d
d e, f
e f, h
f h, g
h g, i
g i, j
i j
g ∅
b
a
c d e
f
h
g
i
j
k
l
m n
(G
12b
)
vertex L


a b, g
b g, c
g c, h, l
c h, l
h l, i, m
l i, m
i m, d, e, j, n
m d, e, j, n
d e, j, n
e j, n, f
j n, f, k
n f, k
f k
k ∅
Giáo trình Toán Rời Rạc 1 Trang 10/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
b
a
c
d
e
f
h
g
i
j
k
l
mn

o
p
q
r
s
t
(G
12c
)
vertex L

a b, e
b e, c, f
e c, f, j
c f, j, d
f j, d
j d, g, h, i, k, p
d g, h, i, k, p
g h, i, k, p
h i, k, p
i k, p
k p, l, m, n, o
p l, m, n, o, q, r, t
l m, n, o, q, r, t
m n, o, q, r, t
n o, q, r, t
o q, r, t
q r, t, s
r t, s
t s

s ∅

Câu 14.
a) Hãy dùng giải thuật Prim để tìm cây khung nhỏ nhất của đồ thị G
2
.
b) Hãy dùng giải thuật Kruskal để tìm cây khung nhỏ nhất của đồ thị G
2
.
A
B
C
D
E
F
G H
(G
2
)
7
6
2
5
4
2
4
2
6
1
3

3
4
Lời giải.
Giáo trình Toán Rời Rạc 1 Trang 11/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
a) Bắt đầu từ một đỉnh bất kì, giả sử là đỉnh A. Ta lần lượt thêm các đỉnh theo thứ tự
sau: {A} ∪ {D}∪ {G} ∪ {F } ∪ {E} ∪ {C} ∪ {B} ∪ {H}
Tổng trọng số: 19
A
B
C
D
E
F
G H
(G
2
)
6
2
2
2
1
3
3
b) Sắp xếp các cạnh theo thứ tự không giảm của trọng số ta được thứ tự sau: (F, G)(B, C)(C, E)(D, G)(E, G)(F, H)(C, G)(D, F )(G, H)(B, E)(A, D)(E, H)(A, B)
Lần lượt thêm các cạnh theo tứ tự trên sao cho không tạo thành chu trình (nếu tạo thành
chu trình thì ta xét cạnh tiếp theo). Ta thêm được các cạnh (F , G)(B, C)(C, E)(D, G)(E, G)(F, H)(A, D)
Tổng trọng số vẫn là 19.

A
B
C
D
E
F
G H
(G
2
)
6
2
2
2
1
3
3

Câu 15.
a) Hãy dùng giải thuật Prim để tìm cây khung nhỏ nhất của đồ thị G
3
.
b) Hãy dùng giải thuật Kruskal để tìm cây khung nhỏ nhất của đồ thị G
3
.
Lời giải.
a) Bắt đầu, chọn một đỉnh bất kì, chẳng hạn C, ta lần lượt thêm vào các đỉnh có đường
nối tới những đỉnh đã chọn là ngắn nhất:
Giáo trình Toán Rời Rạc 1 Trang 12/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh

Khoa Khoa Học và Kỹ Thuật Máy Tính
A B
C
D
E F
G H
(G
3
)
5
11
12
10
2
1
13
3
4
6
4
7
5
1
Ta thêm vào E vì E có khoảng cách tới {C} là ngắn nhất (1), ta được tập {C, E}
Ta thêm vào D vì D có khoảng cách tới {C, E} ngắn nhất (3), ta được tập {C, E, D}
Ta thêm vào G vì G có khoảng cách tới {C, E, D} ngắn nhất (4), ta được tập {C, E, D, G }

Lặp lại quá trình trên ta được thứ tự thêm các đỉnh như sau {C}∪{E}∪{D}∪{G}∪
{H} ∪ {F }∪ {B} ∪ {A}
A B

C
D
E F
G H
(G
3
)
5
2
1
3
4
5
1
b) Thực hiện tương tự câu (13b).
Thứ tự thêm các cạnh vào là (C, E)(G, H)(B, F )(D, E)(D, G)(A, B)(F, H)

Câu 16.
a) Hãy dùng giải thuật Prim để tìm cây khung nhỏ nhất của đồ thị G
4
.
b) Hãy dùng giải thuật Kruskal để tìm cây khung nhỏ nhất của đồ thị G
4
.
Giáo trình Toán Rời Rạc 1 Trang 13/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
A B
C
D

E F
G H
(G
3
)
1
1
2
5
3
4
5
B
C
D
E
A F
(G
4
)
33
20
8
17
4
14
18
9
16
Giáo trình Toán Rời Rạc 1 Trang 14/20

Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
Lời giải.Thực hiện tương tự câu 14, ta được tổng trọng số trên cây khung nhỏ nhất là:
56
a) Chọn đỉnh bất kỳ, C chẳng hạn lần lượt thêm các đỉnh theo thứ tự sau:
{C} ∪ {E} ∪ {D } ∪ {F } ∪ {A} ∪ {B}
B
C
D
E
A F
(G
4
)
8
17
4
18
9
b) Lần lượt thêm vào các cạnh sau:
(C, E)(D, F )(D, E)(A, C)(B, C)
B
C
D
E
A F
(G
4
)
8

17
4
18
9

4 Bài tập làm thêm
Câu 17.
Xây dựng cây nhị phân tìm kiếm cho các từ banana, peach, apple, pear, coconut, mango
và papaya theo thứ tự ABC.
Giáo trình Toán Rời Rạc 1 Trang 15/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
Lời giải.Lần lượt thêm vào các nodes ta được cây tìm kiếm nhị phân
banana
peachapple
pear
coconut
mango
papaya

Câu 18.
Cần bao nhiêu lần so sánh để tìm thấy hoặc thêm các từ sau vào cây tìm kiếm ở Câu trên.
a) pear
b) banana
c) kumquat
d) orange
Lời giải.
a) 3 lần
b) 1 lần
c) 5 lần

d) 6 lần

Câu 19.
a) Hãy dùng giải thuật Prim để tìm cây khung nhỏ nhất của đồ thị G
4
.
b) Hãy dùng giải thuật Kruskal để tìm cây khung nhỏ nhất của đồ thị G
4
.
Lời giải.Thực hiện tương tự câu 14, ta được tổng trọng số trên cây khung nhỏ nhất là
a) Chọn đỉnh bất kỳ, D chẳng hạn lần lượt thêm các đỉnh theo thứ tự sau:
{D}∪ {G} ∪ {F } ∪ {C} ∪ {E} ∪ {H} ∪ {B} ∪ {S} ∪ {A}
Giáo trình Toán Rời Rạc 1 Trang 16/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
S
A
B
C
D
E
F
G
H
(G
4
)
10
10
14

11
6
8
5
2
7
3
2
4
4
8
6
S
A
B
C
D
E
F
G
H
(G
4
)
10
10
6
2
3
2

4
4
S
A
B
C
D
E
F
G
H
(G
4
)
10
10
6
2
3
2
4
4
Giáo trình Toán Rời Rạc 1 Trang 17/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
b) Lần lượt thêm vào các cạnh sau:
(C, F)(E, F)(D, G)(E, H)(F , G)(C, B)(A, S)(S, B)

Câu 20.
a) Hãy dùng giải thuật Prim để tìm cây khung nhỏ nhất của đồ thị G

5
.
b) Hãy dùng giải thuật Kruskal để tìm cây khung nhỏ nhất của đồ thị G
5
.
A
B
C
D
E
F
G
H
I
J
(G
5
)
3
5
8
6
3
2
12
4
7
3
10
7

15
2
4
4
2
Câu 21.
Một nguồn nước s được cung cấp cho 8 thành phố A, B, C, D, E, E, G và H. Sự liên
thông giữa các thành phố và nguồn nước được thể hiện qua đồ thị G
9
bên dưới trong đó
trọng số của một cạnh (u, v) thể hiện khả năng truyền tải nước nguồn (m
3
/h) từ thành
phố u đến thành phố v . Hãy cho biết khả năng tiêu thụ nước tối đa (trong mỗi giờ) tại
thành phố H.
Câu 22.
Hãy tìm cây khung nhỏ nhất của một đồ thị có trọng số biểu diễn chi phí di chuyển giữa
các thành phố.
Câu 23.
Đồ thị phân đôi đầy đủ K
m,n
nào có thể được xem là cây với m và n là những số nguyên
dương?
Câu 24.
Cho G là một đơn đồ thị với n đỉnh. Chứng minh rằng G là một cây nếu và chỉ nếu G liên
thông và có n − 1 cạnh.
Giáo trình Toán Rời Rạc 1 Trang 18/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
s

A
B
C
D
E
F
G
H
(G
9
)
10
10
11
6
8
5
2
7
3
2
4
4
8
6
Hà Nội
Hải Phòng
Hồ Chí Minh
Cà Mau
Đà Nẵng

Nha Trang
Vũng Tàu
200
1200
1900
1000
600
400
800
200
100
500
500
Giáo trình Toán Rời Rạc 1 Trang 19/20
Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính
Câu 25.
Chứng minh rằng nếu trong đồ thị liên thông G, các cạnh có trọng số hoàn toàn khác nhau
từng đôi một, thì chỉ tồn tại duy nhất một cây khung có trọng số nhỏ nhất.
Câu 26.
Làm thế nào để đếm được số cây khung có thể có trong một đồ thị G cho trước. Hãy viếi
giải thuật đếm này.
Câu 27.
Làm thế nào để đếm được số cây khung khác nhau có trọng số nhỏ nhất có trong một đồ
thị G cho trước. Hãy viết giải thuật đếm này.
Câu 28.
Làm thế nào để đếm được số cây khung khác nhau có trọng số nhỏ nhất có trong một đồ
thị G cho trước. Hãy viết giải thuật đếm này.
Câu 29.
Hãy viết giải thuật để xác định cây khung có trọng số nhỏ nhất mà có chứa đường đi ngắn

nhất từ một đỉnh u đến đỉnh v cho trước.
Câu 30.
Cho một đồ thị G, cây khung có trọng số nhỏ nhất T trong G. Hãy viết giải thuật nhanh
để xác định (hoặc là cập nhật) cây khung có trọng số nhỏ nhất khi ta thêm một cạnh mới
vào trong G.
Câu 31.
Hãy thiết kế giải thuật tìm cây khung có trọng số nhỏ nhất và có chứa một tập các cạnh
cho trước.
5 Tổng kết
Thông qua các bài tập trong phần này, chúng ta đã làm quen với các định nghĩa và các
tính chất về cây, bao gồm các phương pháp duyệt cây và các giải thuật tìm cây khung có
trọng số nhỏ nhất. (tham khảo chi tiết lý thuyết trong chương 10).
Giáo trình Toán Rời Rạc 1 Trang 20/20

×