You are on page 1of 29

TOÁN RỜI RẠC

Chương 7:
Cây
Giảng viên: ThS. Trần Quang Khải
Nội dung
1. Giới thiệu:
 Định nghĩa.
 Thuật ngữ.
2. Cây khung:
 Cây khung nhỏ nhất.

Toán rời rạc: 2011-2012 Chương 7: Cây 2


Chương 7

Giới thiệu

Giảng viên: ThS. Trần Quang Khải

Toán rời rạc: 2011-2012 Chương 7: Cây 3


CÂY?

Toán rời rạc: 2011-2012 Chương 7: Cây 4


Giới thiệu

TREE
Cây là một đồ thị vô hướng, liên thông và
không chứa chu trình đơn.

Ứng dụng trong KHMT:


 Các thuật toán tìm kiếm.
 Thiết kế mạng máy tính.
 Sắp xếp.
…
Toán rời rạc: 2011-2012 Chương 7: Cây 5
Example

Toán rời rạc: 2011-2012 Chương 7: Cây 6


Đâu là CÂY?

Toán rời rạc: 2011-2012 Chương 7: Cây 7


Giới thiệu
 Rừng (forest):
Là đồ thị vô hướng, không liên thông và không
chứa chu trình đơn.
 Rừng gồm nhiều cây.

G
Toán rời rạc: 2011-2012 Chương 7: Cây 8
Cây
 Tính chất:
 Giữa 2 đỉnh bất kz có duy nhất 1 đường đi đơn.
 Cây n đỉnh sẽ có n – 1 cạnh.
Nếu thêm 1 cạnh tùy {  Tạo ra 1 chu trình.

Toán rời rạc: 2011-2012 Chương 7: Cây 9


Cây có gốc
Rooted tree
Một đỉnh được chỉ định là gốc (root), các cạnh
đều có hướng và hướng này đi ra xa gốc.

Toán rời rạc: 2011-2012 Chương 7: Cây 10


Thuật ngữ

(Anh em)

Toán rời rạc: 2011-2012 Chương 7: Cây 11


Thuật ngữ

(Tổ tiên)

(Con cháu)
Toán rời rạc: 2011-2012 Chương 7: Cây 12
Thuật ngữ

(Đỉnh nội,
Đỉnh trong)

Toán rời rạc: 2011-2012 Chương 7: Cây 13


Thuật ngữ

(Cây con)

Toán rời rạc: 2011-2012 Chương 7: Cây 14


Example

Toán rời rạc: 2011-2012 Chương 7: Cây 15


Cây có gốc m-phân

 Một cây có gốc gọi là m-phân (m-ary) nếu mọi


đỉnh trong của nó có không ít hơn m con.
 Cây gọi là m-ary đầy đủ nếu mọi đỉnh trong
của nó có chính xác m con.
 Với m = 2: cây nhị phân (binary).

 Một cây m-ary đầy đủ với i đỉnh trong có


n = mi + 1 đỉnh.

Toán rời rạc: 2011-2012 Chương 7: Cây 16


Example

Toán rời rạc: 2011-2012 Chương 7: Cây 17


Ứng dụng của CÂY
 Khoa học máy tính:
 Thiết kế mạng.
 Cây quyết định.
 Giải thuật nén.
 Lưu trữ dữ liệu trên ổ cứng.
…
 Khác:
 Sơ đồ tổ chức hoạt động.
 Công thức hóa học.
Toán rời rạc: 2011-2012 Chương 7: Cây 18
Chương 7

Cây khung

Giảng viên: ThS. Trần Quang Khải

Toán rời rạc: 2011-2012 Chương 7: Cây 19


Giới thiệu
 Sau trận sóng thần tại Miyagi, Nhật Bản (2011),
cần dọn sạch một số con đường để xe cứu hộ
có thể đi tới mọi điểm trong thành phố?

 Một công ty viễn thông cần xây dựng đường


trục cáp chính (back-bone), làm thế nào để nối
n thành phố sao cho tổng chiều dài đường dây
cáp là ngắn nhất?

Toán rời rạc: 2011-2012 Chương 7: Cây 20


Cây khung – Giới thiệu

Spanning tree: Cho G là một đồ thị


Một đồ thị con của G và chứa tất cả các
đỉnh của G gọi là cây khung của G.
 Định lý: Đồ thị G có cây khung nếu và
chỉ nếu nó liên thông.

Toán rời rạc: 2011-2012 Chương 7: Cây 21


Tìm cây khung
 Giải thuật Prim:
Input: Đồ thị G.
Output: Cây khung H (khởi tạo H = ∅).
 Bước 1: Chọn tùy { 1 đỉnh của G đặt vào H.
 Bước 2: Nếu mọi đỉnh của G đều nằm trong H thì
dừng.
 Bước 3: Tìm 1 đỉnh của G mà không nằm trong H và
có nối với 1 đỉnh trong H bằng một cạnh. Thêm đỉnh
này và cạnh tương ứng vào H. Quay lại bước 2.

Toán rời rạc: 2011-2012 Chương 7: Cây 22


Cây khung nhỏ nhất

Minimum spanning tree


Cho G là một đồ thị liên thông có trọng số cạnh.
Cây khung nhỏ nhất là cây khung có tổng trọng
số các cạnh là nhỏ nhất trong tất cả các cây
khung có thể có của G.

Toán rời rạc: 2011-2012 Chương 7: Cây 23


Tìm cây khung nhỏ nhất
 Giải thuật Prim:
Input: Đồ thị G.
Output: Cây khung H (khởi tạo H = ∅).
 Bước 1: Chọn tùy { 1 đỉnh của G đặt vào H.
 Bước 2: Nếu mọi đỉnh của G đều nằm trong H thì
dừng.
 Bước 3: Tìm 1 đỉnh của G mà không nằm trong H và
có nối với 1 đỉnh trong H bằng một cạnh có trọng số
nhỏ nhất. Thêm đỉnh này và cạnh tương ứng vào H.
Quay lại bước 2.

Toán rời rạc: 2011-2012 Chương 7: Cây 24


Tìm cây khung nhỏ nhất
 Giải thuật Prim - Ví dụ:

Toán rời rạc: 2011-2012 Chương 7: Cây 25


Tìm cây khung nhỏ nhất
 Giải thuật Kruskal:
Input: Đồ thị G = (V, E).
Output: Cây khung nhỏ nhất H.
 Bước 1: Sắp xếp các cạnh theo thứ tự tăng dần và
khởi tạo H = ∅.
 Bước 2: Lần lượt lấy từng cạnh e thuộc danh sách
đã sắp xếp. Nếu H+{e} không tạo chu trình thì gán
H=H+{e}.
 Bước 3: Nếu H đủ n – 1 phần tử thì dừng. Ngược lại
quay lại bước 2.

Toán rời rạc: 2011-2012 Chương 7: Cây 26


Tìm cây khung nhỏ nhất
 Giải thuật Kruskal - Ví dụ

Toán rời rạc: 2011-2012 Chương 7: Cây 27


Bài tập – Giải thuật Kruskal
1

Toán rời rạc: 2011-2012 Chương 6: Đồ thị 28


Bài tập – Giải thuật Kruskal
4
3

Toán rời rạc: 2011-2012 Chương 6: Đồ thị 29

You might also like