Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp

CÂY

Toán rời rạc 6

Một đồ thị vô hướng là một cây nếu giữa mọi cặp đỉnh của nó luôn

tồn tại đường đi đơn duy nhất.

Định lí 1:

Cây có gốc là cây có một đỉnh được gọi là gốc và mọi cạnh có

hướng từ gốc đi ra

Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp trang 1

Trang 1

Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp trang 2

Trang 2

Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp trang 3

Trang 3

Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp trang 4

Trang 4

Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp trang 5

Trang 5

Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp trang 6

Trang 6

Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp trang 7

Trang 7

Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp trang 8

Trang 8

Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp trang 9

Trang 9

Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 72 trang xuanhieu 2860
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp

Bài giảng Toán rời rạc - Chương 6: Cây - Nguyễn Quỳnh Diệp
ét, bao gồm a và các con cháu của nó cùng với các cạnh liên 
 thuộc với các con cháu của a.
 Toán rời rạc Nguyễn Quỳnh Diệp 11
CÂY m-phân
 Định nghĩa 3:
 • Cây có gốc được gọi là cây m-phân nếu tất cả các đỉnh trong của 
 nó không có hơn m con. 
 • Cây được gọi là m-phân đầy đủ nếu mọi đỉnh trong có đúng m
 con. 
 • Khi m = 2 ta có cây nhị phân
 Toán rời rạc Nguyễn Quỳnh Diệp 12
CÂY CÓ GỐC
 Cây có gốc được sắp:
 Cây có gốc, được sắp (có thứ tự) là cây có gốc mà trong đó 
 các con của mỗi đỉnh trong được sắp xếp theo một thứ tự nhất 
 định.
 Toán rời rạc Nguyễn Quỳnh Diệp 13
VÍ DỤ VỀ CÂY
 Tổ chức trong công ty
 Toán rời rạc Nguyễn Quỳnh Diệp 14
VÍ DỤ VỀ CÂY
 Cấu trúc thư mục
 Toán rời rạc Nguyễn Quỳnh Diệp 15
CÁC TÍNH CHẤT CỦA CÂY
 Định lí 2:
 Cây với n đỉnh có đúng (n-1) cạnh
 Định lí 3:
 Cây m-phân đầy đủ với i đỉnh trong sẽ có tất cả n = m.i + 1 đỉnh.
 Toán rời rạc Nguyễn Quỳnh Diệp 16
CÁC TÍNH CHẤT CỦA CÂY
 Định lí 4:
 Cây m-phân đầy đủ với
 풏− − 풏+ 
 (i) n đỉnh có 풊 = đỉnh trong và 풍 = lá
 (ii) i đỉnh trong, có n= m.i + 1 đỉnh và l = (m – 1) .i +1 lá
 풍 − 풍 − 
 (iii) l lá, có 풏 = đỉnh và 풊 = đỉnh trong
 − − 
 Toán rời rạc Nguyễn Quỳnh Diệp 17
CÁC TÍNH CHẤT CỦA CÂY
 Ví dụ:
 Trò chơi viết thư dây chuyền. Ban đầu có một người nhận được một
 bức thư và giả sử rằng khi nhận được một bức thư hoặc sẽ viết thư
 cho bốn người khác hoặc không viết cho ai. Hỏi có bao nhiêu
 người nhận được thư kể cả người đầu tiên nếu không có ai nhận
 được nhiều hơn một bức và trò chơi kết thúc khi có 100 người nhận
 thư mà ko viết cho ai?
 Giải:
 • Trò chơi biểu diễn bằng cây tứ phân.
 • Có 100 không viết thư nên số lá của cây là l = 100
 • Số người nhận thư là n = (4.100 -1 )/(4-1) = 133
 • Số các đỉnh trong là i = (100-1)/(4-1) = 33 đỉnh, tức 33 người
 viết thư
 Toán rời rạc Nguyễn Quỳnh Diệp 18
CÁC TÍNH CHẤT CỦA CÂY
 • Mức của đỉnh v trong cây là độ dài của đường đi duy nhất 
 từ gốc tới nó. Gốc có mức 0
 • Độ cao của cây là mức cao nhất của tất cả các đỉnh
 • Cây m-phân có độ cao h được gọi là cân đối nếu tất cả các 
 lá đều ở mức h và (h-1)
 Toán rời rạc Nguyễn Quỳnh Diệp 19
CÁC TÍNH CHẤT CỦA CÂY
 Định lí 5:
 Có nhiều nhất mh lá trong cây m-phân với độ cao h
 Toán rời rạc Nguyễn Quỳnh Diệp 20
6.2. CÁC ỨNG DỤNG CỦA CÂY
 Toán rời rạc Nguyễn Quỳnh Diệp 21
CÁC ỨNG DỤNG CỦA CÂY
 • Cây tìm kiếm nhị phân
 • Cây quyết định
 • Các mã tiền tố
 Toán rời rạc Nguyễn Quỳnh Diệp 22
TÌM KIẾM NHỊ PHÂN
 Cây nhị phân:
 • Là cây có một cây con trái và một cây con phải
 • Mỗi đỉnh được gán một nhãn sao cho:
 • Lớn hơn nhãn của tất cả các đỉnh thuộc cây con trái của nó
 • Nhỏ hơn nhãn của tất cả các đỉnh thuộc cây con bên phải của 
 nó
 Toán rời rạc Nguyễn Quỳnh Diệp 23
TÌM KIẾM NHỊ PHÂN
 Xây dựng cây tìm kiếm nhị phân:
 • Bắt đầu cây có đúng 1 đỉnh (gốc)
 • Thêm một phần tử mới:
  So sánh với nhãn của đỉnh, bắt đầu từ gốc
  Đi sang trái nếu nó nhỏ hơn
  Đi sang phải nếu nó lớn hơn
  Tạo đỉnh mới là con bên trái nếu phần tử nhỏ hơn nhãn của 
 đỉnh và đỉnh không có con trái
  Tạo đỉnh mới là con bên phải nếu phần tử lớn hơn nhãn của 
 đỉnh và đỉnh không có con phải
 Toán rời rạc Nguyễn Quỳnh Diệp 24
TÌM KIẾM NHỊ PHÂN
Ví dụ: Tạo cây tìm kiếm nhị phân cho các từ sau: mathematics, 
physics,geography, zoology, meteology, geology, psychology, chemistry
 Zoology > Mathemetics
 Physics > Mathemetics Geography Physics
 Meteorology > Mathemetics Geology Mathemetics
 Chemistry < Mathemetics
 Meteorology Geography Psychology > Physics
 Chemistry < Geography
 Psychology < Zoology
 Toán rời rạc Nguyễn Quỳnh Diệp 25
TÌM KIẾM NHỊ PHÂN
 Thuật toán tìm kiếm nhị phân:
 • Định vị phần tử x trong cây tìm kiếm nhị phân nếu nó là 
 nhãn của một đỉnh
 • Nếu x không là nhãn của đỉnh nào, thêm mới x vào cây
 Toán rời rạc Nguyễn Quỳnh Diệp 26
TÌM KIẾM NHỊ PHÂN
 THUẬT TOÁN : Thuật toán tìm kiếm nhị phân
 Procedure insertion(T: cây tìm kiếm nhị phân, x: phần tử)
 v := gốc của T { đỉnh không có trong T sẽ có giá trị bằng null }
 while v null và label(v) x
 begin
 if x < label(v) then 
 if con bên trái của v null then v := con bên trái của v
 else thêm đỉnh mới là con trái của v và đặt v := null
 else
 if con bên phải của v null then v := con bên phải của v
 else thêm đỉnh mới là con phải của v và đặt v := null
 end
 if gốc của T = null then thêm đỉnh v vào cây và gán cho nó nhãn là x
 else if v = null hoặc label(v) x then gán nhãn cho đỉnh mới là x và đặt v là 
 đỉnh mới này
 { v = vị trí của x }
 Toán rời rạc Nguyễn Quỳnh Diệp 27
6.3. CÁC PHƯƠNG PHÁP DUYỆT CÂY
 Toán rời rạc Nguyễn Quỳnh Diệp 28
CÁC PHƯƠNG PHÁP DUYỆT CÂY
 • Duyệt tiền thứ tự (thứ tự trước)
 • Duyệt trung thứ tự (thứ tự giữa)
 • Duyệt hậu thứ tự (thứ tự sau)
 Toán rời rạc Nguyễn Quỳnh Diệp 29
DUYỆT TIỀN THỨ TỰ
 Định nghĩa 1:
 Giả sử T là một cây được sắp thứ tự với gốc r. 
 Nếu T chỉ có nút gốc thì r là duyệt tiền thứ tự của cây T. 
 Ngược lại, thì gọi T1 , T2 , Tn là các cây con của T từ trái qua 
 phải. Duyệt tiền thứ tự là:
 • Thăm r
 • Duyệt T1 theo kiểu tiền thứ tự
 • Duyệt T2 theo kiểu tiền thứ tự
 • ..
 • Duyệt Tn theo kiểu tiền thứ tự
 Toán rời rạc Nguyễn Quỳnh Diệp 30
DUYỆT TIỀN THỨ TỰ
 Ví dụ: Cách duyệt tiền thứ tự sẽ thăm các đỉnh của cây 
 theo thứ tự nào?
 Toán rời rạc Nguyễn Quỳnh Diệp 31
DUYỆT TIỀN THỨ TỰ
 THUẬT TOÁN : Duyệt kiểu tiền thứ tự
 Procedure Preorder (T: cây có gốc được sắp)
 r := gốc của T
 Liệt kê r
 for mỗi cây con c của r từ trái sang phải
 begin
 T(c) := cây con với gốc c
 Preorder(T(c))
 end
 Toán rời rạc Nguyễn Quỳnh Diệp 32
DUYỆT TRUNG THỨ TỰ
 Định nghĩa 2:
 Giả sử T là một cây được sắp thứ tự với gốc r. 
 Nếu T chỉ có nút gốc thì r là duyệt trung thứ tự của cây T. 
 Ngược lại, thì gọi T1 , T2 , Tn là các cây con của T từ trái qua 
 phải. Duyệt trung thứ tự là:
 • Duyệt T1 theo kiểu trung thứ tự
 • Thăm r
 • Duyệt T2 theo kiểu trung thứ tự
 • ..
 • Duyệt Tn theo kiểu trung thứ tự
 Toán rời rạc Nguyễn Quỳnh Diệp 33
DUYỆT TRUNG THỨ TỰ
 Ví dụ: Cách duyệt trung thứ tự sẽ thăm các đỉnh của 
 cây theo thứ tự nào?
 Toán rời rạc Nguyễn Quỳnh Diệp 34
DUYỆT TRUNG THỨ TỰ
 THUẬT TOÁN : Duyệt kiểu trung thứ tự
 Procedure Inorder (T: cây có gốc được sắp)
 r := gốc của T
 if r là lá then liệt kê r
 else
 begin
 l := con đầu tiên từ trái sang phải của r
 T(l) := cây con với gốc l
 Inorder(T(l))
 Liệt kê r
 for mỗi cây con c của r từ trái sang phải trừ l
 T(c) := cây con với gốc c
 Inorder(T(c))
 end
 Toán rời rạc Nguyễn Quỳnh Diệp 35
DUYỆT HẬU THỨ TỰ
 Định nghĩa 3:
 Giả sử T là một cây được sắp thứ tự với gốc r. 
 Nếu T chỉ có nút gốc thì r là duyệt trung thứ tự của cây T. 
 Ngược lại, thì gọi T1 , T2 , Tn là các cây con của T từ trái qua 
 phải. Duyệt hậu thứ tự là:
 • Duyệt T1 theo kiểu hậu thứ tự
 • Duyệt T2 theo kiểu hậu thứ tự
 • ..
 • Duyệt Tn theo kiểu hậu thứ tự
 • Thăm r
 Toán rời rạc Nguyễn Quỳnh Diệp 36
DUYỆT TRUNG THỨ TỰ
Ví dụ: Cách duyệt hậu thứ tự sẽ thăm các đỉnh của cây theo 
 thứ tự nào?
 Toán rời rạc Nguyễn Quỳnh Diệp 37
DUYỆT HẬU THỨ TỰ
 THUẬT TOÁN : Duyệt kiểu hậu thứ tự
 Procedure Postorder (T: cây có gốc được sắp)
 r := gốc của T
 for mỗi cây con c của r từ trái sang phải
 begin
 T(c) := cây con với gốc c
 Postorder(T(c))
 end
 Liệt kê r
 Toán rời rạc Nguyễn Quỳnh Diệp 38
CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ
 • Có thể dùng để biểu diễn biểu thức phức tạp:
 • Mệnh đề phức hợp
 • Tập hợp
 • Biểu thức số học
 • Biểu diễn bằng cây có gốc và được sắp, trong đó: 
 • đỉnh trong biểu thị các phép toán
 • lá biểu thị các số hay các biến 
 Toán rời rạc Nguyễn Quỳnh Diệp 39
CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ
 Ví dụ: Tìm cây có gốc biểu diễn biểu thức
 풙 − ퟒ
 풙 + 풚 ↑ + ( )
 Biểu thức có đầy đủ dấu ngoặc đơn gọi là dạng trung tố
 Toán rời rạc Nguyễn Quỳnh Diệp 40
CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ
 • Biểu thức được viết dưới dạng tiền tố gọi là kí pháp Ba 
 Lan
 • Khi duyệt biểu thức dạng tiền tố, ta làm như sau:
 • Đi từ phải sang trái
 • Gặp một toán tử thực hiện phép toán tương ứng với hai toán 
 hạng đi liền bên phải của toán tử
 Ví dụ 1: Tính giá trị biểu thức tiền tố
 + - * 2 3 5 / ↑ 2 3 4 
 Toán rời rạc Nguyễn Quỳnh Diệp 41
CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ
• Biểu thức được viết dưới dạng hậu tố gọi là kí pháp Ba 
 Lan ngược
• Khi duyệt biểu thức dạng hậu tố, ta làm như sau:
 • Đi từ trái sang phải
 • Thực hiện phép toán khi có một toán tử đi sau hai toán hạng
 Ví dụ 2: Tính giá trị biểu thức hậu tố
 7 8 + 2 ↑ 7 4 – 3 / + 
 Toán rời rạc Nguyễn Quỳnh Diệp 42
CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ
 Ví dụ 3:
 a). Hãy biểu diễn biểu thức ((x+2)^3)*((y-(3+x))-5) bằng cây nhị 
 phân. 
 b). Hãy viết thứ tự duyệt cây dưới dạng: tiền tố, hậu tố, trung tố
 Toán rời rạc Nguyễn Quỳnh Diệp 43
CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ
 Ví dụ 4:
 Hãy vẽ cây ứng với
 a. + * + - 5 3 2 1 4
 b. ^ + 2 3 – 5 1
 c. * / 9 3 + * 2 4 – 7 6
 Toán rời rạc Nguyễn Quỳnh Diệp 44
CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ
 Ví dụ 5: Hãy tính giá trị các biểu thức sau
 a. 5 2 1 - - 3 1 4 + + *
 b. + - ^ 3 2 ^ 2 3 / 6 – 4 2
 c. 9 3 / 5 + 7 2 - *
 d. * + 3 + 3 ^ 3 + 3 3 3
 e. 3 2 * 2 ^ 5 3 – 8 4 / * -
 Toán rời rạc Nguyễn Quỳnh Diệp 45
 6.4. CÂY KHUNG
Toán rời rạc Nguyễn Quỳnh Diệp 46
CÂY KHUNG
 Bài toán giao thông ở Maine:
 • Chính quyền địa phương muốn cào tuyết một số ít nhất các con 
 đường sao cho luôn luôn có đường thông suốt nối hai thành phố 
 bất kì
 Toán rời rạc Nguyễn Quỳnh Diệp 47
CÂY KHUNG
 Định nghĩa 1:
 Cho G là một đơn đồ thị. 
 Một cây được gọi là cây khung của G nếu nó là một đồ thị 
 con của G và chứa tất cả các đỉnh của G.
 Các cách tìm cây khung của đồ thị:
  Xóa đi các cạnh tạo ra chu trình
  Bằng phương pháp tìm kiếm theo chiều sâu
  Bằng phương pháp tìm kiếm theo chiều rộng
 Toán rời rạc Nguyễn Quỳnh Diệp 48
XÓA CÁC CẠNH TẠO CHU TRÌNH
 Toán rời rạc Nguyễn Quỳnh Diệp 49
TÌM KIẾM THEO CHIỀU SÂU
 • Chọn tùy ý 1 đỉnh của đồ thị làm gốc
 • Xây dựng đường đi từ đỉnh này bằng cách ghép nối tiếp các 
 cạnh vào đường đi, cho đến khi không thể ghép được nữa.
 • Nếu đường đi chưa đi qua tất cả các đỉnh thì lùi lại một 
 bước và xây dựng đường đi mới qua các đỉnh chưa thuộc 
 đường đi.
 • Tiếp tục lùi lại cho đến khi không thực hiện được nữa
 Tìm kiếm ưu tiên chiều sâu cũng được gọi là thủ tục quay lui
 Toán rời rạc Nguyễn Quỳnh Diệp 50
TÌM KIẾM THEO CHIỀU SÂU
 THUẬT TOÁN : Tìm kiếm theo chiều sâu
 Procedure DFS(G: đồ thị liên thông với các đỉnh v1 , v2 vn)
 T := cây chỉ chứa một đỉnh v1
 Visit(v1)
 Procedure Visit(v: đỉnh của G)
 for mỗi đỉnh w liền kề với v và chưa có trong T
 begin
 thêm đỉnh w và cạnh (v, w) vào T
 Visit(w)
 end
 Toán rời rạc Nguyễn Quỳnh Diệp 51
TÌM KIẾM THEO CHIỀU SÂU
 Ví dụ: Bắt đầu từ đỉnh f
 Toán rời rạc Nguyễn Quỳnh Diệp 52
TÌM KIẾM THEO CHIỀU RỘNG
 • Chọn tùy ý một đỉnh của đồ thị làm gốc
 • Ghép vào tất cả các cạnh liên thuộc với đỉnh này. Đỉnh 
 ghép vào là đỉnh mức 1 của cây khung
 • Với mỗi đỉnh mức 1, ghép tất cả các cạnh liên thuộc với 
 nó vào cây mà không tạo ra chu trình, ta được các đỉnh 
 mức 2.
 • Tiếp tục cho đến khi tất cả các đỉnh được ghép vào cây
 Toán rời rạc Nguyễn Quỳnh Diệp 53
TÌM KIẾM THEO CHIỀU RỘNG
 Ví dụ: Dùng thuật toán tìm kiếm theo chiều rộng, tìm cây 
 khung của đồ thị với đỉnh xuất phát là e 
 Toán rời rạc Nguyễn Quỳnh Diệp 54
TÌM KIẾM THEO CHIỀU RỘNG
 THUẬT TOÁN : Tìm kiếm theo chiều rộng
 Procedure BFS(G: đồ thị liên thông với các đỉnh v1 , v2 vn)
 T := cây chỉ chứa một đỉnh v1
 L := danh sách rỗng
 Đặt v1 vào danh sách L gồm các đỉnh không xử lí
 while L khác rỗng
 begin
 Xóa đỉnh đầu tiên, v, khỏi L
 for mỗi đỉnh liền kề w của v
 if w chưa nằm trong L và không thuộc T then
 begin
 thêm đỉnh w vào cuối danh sách L
 thêm w và cạnh {v, w} vào T
 end
 end
 Toán rời rạc Nguyễn Quỳnh Diệp 55
 BÀI TẬP
. Bài 1: Tìm cây khung của đồ thị bằng cách xóa đi các cạnh
 56
 Toán rời rạc Nguyễn Quỳnh Diệp 56
 BÀI TẬP
. Bài 2: Tìm cây khung của đồ thị bằng kĩ thuật tìm kiếm theo 
 chiều sâu. Chọn a làm gốc của cây.
 57
 Toán rời rạc Nguyễn Quỳnh Diệp 57
6.5. CÂY KHUNG NHỎ NHẤT
 Toán rời rạc Nguyễn Quỳnh Diệp 58
CÂY KHUNG NHỎ NHẤT
 Định nghĩa 1:
 Cây khung nhỏ nhất trong một đồ thị liên thông có trọng số là một 
 cây khung có tổng trọng số trên các cạnh của nó là nhỏ nhất
 Toán rời rạc Nguyễn Quỳnh Diệp 59
CÂY KHUNG NHỎ NHẤT
 Thuật toán tìm cây khung nhỏ nhất:
  Thuật toán Prim
  Thuật toán Kruskal
 Toán rời rạc Nguyễn Quỳnh Diệp 60
THUẬT TOÁN PRIM
 • Do Robert Prim đưa ra năm 1957
 • Thuật toán:
  Chọn một cạnh bất kì có trọng số nhỏ nhất, đặt vào 
 khung
  Ghép vào cây các cạnh có trọng số nhỏ nhất, liên thuộc 
 với 1 đỉnh của cây và không tạo ra chu trình
  Dừng khi có (n-1) cạnh được ghép vào cây
 Toán rời rạc Nguyễn Quỳnh Diệp 61
THUẬT TOÁN PRIM
 Ví dụ: Tìm cây khung nhỏ nhất
 Lần chọn Cạnh Trọng số
 Tổng cộng : 24
 Toán rời rạc Nguyễn Quỳnh Diệp 62
THUẬT TOÁN PRIM
 THUẬT TOÁN : Thuật toán Prim
 Procedure Prim(G: đồ thị liên thông có trọng số với n đỉnh)
 T := cạnh có trọng số nhỏ nhất
 for i:= 1 to n-2
 begin
 e := cạnh có trọng số tối thiểu, liên thuộc với một đỉnh trong 
 T và không tạo ra chu trình trong T nếu ghép nó vào T
 T := T với e được ghép vào
 end
 { T là cây khung nhỏ nhất của G }
 Toán rời rạc Nguyễn Quỳnh Diệp 63
THUẬT TOÁN PRIM
 Ví dụ: Tìm cây khung nhỏ nhất
 4
 a b
 2
 3
 3 e
 1
 1
 d c
 2
 Toán rời rạc Nguyễn Quỳnh Diệp 64
THUẬT TOÁN PRIM
• Cây khung nhỏ nhất gồm các cạnh: {E, C} ; {E, D}; {E, B} ; 
 {D, A}
• Tổng trọng số nhỏ nhất của cây khung là: 7
 4
 a b
 2
 3
 3 e
 1
 1
 d c
 2
 Toán rời rạc Nguyễn Quỳnh Diệp 65
THUẬT TOÁN KRUSKAL
 • Do Joseph Kruskal đưa ra năm 1956
 • Thuật toán:
  Chọn một cạnh bất kỳ có trọng số nhỏ nhất, đặt vào 
 khung
  Ghép vào cây các cạnh có trọng số nhỏ nhất và không 
 tạo ra chu trình
  Dừng khi có (n-1) cạnh được ghép vào cây
 Toán rời rạc Nguyễn Quỳnh Diệp 66
THUẬT TOÁN KRUSKAL
 THUẬT TOÁN : Thuật toán Kruskal
 Procedure Kruskal(G: đồ thị n đỉnh, liên thông, có trọng số)
 T := đồ thị rỗng
 for i:= 1 to n-1
 begin
 e := cạnh bất kì của G với trọng số nhỏ nhất và không tạo ra 
 chu trình trong T khi ghép vào T
 T := T với e được ghép vào
 end
 { T là cây khung nhỏ nhất của G }
 Toán rời rạc Nguyễn Quỳnh Diệp 67
THUẬT TOÁN KRUSKAL
 Ví dụ: Tìm cây khung nhỏ nhất
 Lần chọn Cạnh Trọng số
 Tổng cộng : 24
 Toán rời rạc Nguyễn Quỳnh Diệp 68
THUẬT TOÁN PRIM
 Ví dụ: Tìm cây khung nhỏ nhất
 4
 a b
 2
 3
 3 e
 1
 1
 d c
 2
 Toán rời rạc Nguyễn Quỳnh Diệp 69
 BÀI TẬP
. Bài 2: Tìm cây khung nhỏ nhất dùng thuật toán Prim và Kruskal
 70
 Toán rời rạc Nguyễn Quỳnh Diệp 70
 BÀI TẬP
. Bài 2: Tìm cây khung nhỏ nhất dùng thuật toán Prim và Kruskal
 71
 Toán rời rạc Nguyễn Quỳnh Diệp 71
 72
Nguyễn Quỳnh Diệp

File đính kèm:

  • pdfbai_giang_toan_roi_rac_chuong_6_cay_nguyen_quynh_diep.pdf