Bài giảng Toán rời rạc - Chương 6: Cây và cây khung đồ thị - Võ Tấn Dũng

Cây và các tính chất cơ bản

Định nghĩa Cây

Cho G=(V,E) là đồ thị vô hướng. G được gọi là một Cây

(tree) nếu và nếu G liên thông và không có chu trình

đơn.

Định nghĩa Rừng

- Rừng (forest) là đồ thị mà mỗi thành phần liên thông

của nó là một cây.

Định lý

Định lý: Giả sử G=(V,E) là đồ thị vô hướng n đỉnh.

Khi đó các mệnh đề sau đây là tương đương:

• (1) T là cây;

• (2) T không chứa chu trình và có n-1 cạnh;

• (3) T liên thông và có n-1 cạnh;

• (4) T liên thông và mỗi cạnh của nó đều là cầu;

• (5) Hai đỉnh bất kỳ của T được nối với nhau bởi

đúng một đường đi đơn;

• (6) T không chứa chu trình nhưng hễ cứ thêm vào

một cạnh ta thu được đúng một chu trình.

Cây khung đồ thị

Giới thiệu

Cách tạo cây khung của đồ thị

Trong đồ thị liên thông G, chúng ta thực hiện loại bỏ

một cạnh nằm trên một chu trình nào đó sẽ tạo ra đồ thị G'

vẫn có tính liên thông.

Thực hiện tiếp việc loại bỏ các cạnh ở các chu trình

khác cho đến khi đồ thị T không còn chu trình nhưng vẫn

liên thông thì chúng ta thu được một cây nối tất cả các

đỉnh của G - gọi là cây khung của đồ thị.

pdf 17 trang kimcuc 4300
Bạn đang xem tài liệu "Bài giảng Toán rời rạc - Chương 6: Cây và cây khung đồ thị - Võ Tấn Dũng", để 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 và cây khung đồ thị - Võ Tấn Dũng

Bài giảng Toán rời rạc - Chương 6: Cây và cây khung đồ thị - Võ Tấn Dũng
CÂY VÀ CÂY KHUNG ĐỒ THỊ
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
MÔN TOÁN RỜI RẠC VÀ LÝ THUYẾT ĐỒ THỊ
CHƯƠNG 6
GV: Võ Tấn Dũng
votandung@yahoo.com
Cây và các tính chất cơ bản
Định nghĩa Cây
Cho G=(V,E) là đồ thị vô hướng. G được gọi là một Cây
(tree) nếu và nếu G liên thông và không có chu trình
đơn.
Định nghĩa Rừng
- Rừng (forest) là đồ thị mà mỗi thành phần liên thông
của nó là một cây.
Rừng
cây
Ví dụ:
c
e f
d
a b
c
e f
d
a b
c
e f
d
a b
c
e f
d
a b
G1 G2 G3 G4
G1, G2 là cây; G3, G4 không phải là cây
Định lý
Định lý: Giả sử G=(V,E) là đồ thị vô hướng n đỉnh. 
Khi đó các mệnh đề sau đây là tương đương:
• (1) T là cây;
• (2) T không chứa chu trình và có n-1 cạnh;
• (3) T liên thông và có n-1 cạnh;
• (4) T liên thông và mỗi cạnh của nó đều là cầu;
• (5) Hai đỉnh bất kỳ của T được nối với nhau bởi 
đúng một đường đi đơn;
• (6) T không chứa chu trình nhưng hễ cứ thêm vào 
một cạnh ta thu được đúng một chu trình.
Cây khung đồ thị
Giới thiệu
Cách tạo cây khung của đồ thị
Trong đồ thị liên thông G, chúng ta thực hiện loại bỏ
một cạnh nằm trên một chu trình nào đó sẽ tạo ra đồ thị G'
vẫn có tính liên thông.
Thực hiện tiếp việc loại bỏ các cạnh ở các chu trình
khác cho đến khi đồ thị T không còn chu trình nhưng vẫn
liên thông thì chúng ta thu được một cây nối tất cả các
đỉnh của G - gọi là cây khung của đồ thị.
• Ví dụ:
Đồ thị sau đây và các cây khung của nó (nó còn 
có các cây khung khác nữa)
Định nghĩa cây khung đồ thị
Định nghĩa
Cho G=(V,E) là đồ thị vô hướng, liên thông. Cây T=(V,F)
với F  E được gọi là cây khung của đồ thị G.
B
G
D
E
FA
C
H
Bài toán tìm cây khung nhỏ nhất
Cho G=(V,E) là đồ thị vô hướng, liên thông có trọng số.
Độ dài c(T) của cây khung T là tổng trọng số các cạnh của
cây:
Bài toán:
Trong số tất cả các cây khung của đồ thị G, hãy tìm ra cây
khung có độ dài nhỏ nhất - gọi là cây khung nhỏ nhất
của đồ thị.
Các bài toán thực tế ứng dụng cây khung nhỏ nhất
1- Bài toán nối mạng máy tính:
Với mạng máy tính gồm n máy đánh số từ 1 đến n. Biết
chi phí nối máy i với máy j là m(i,j) (chi phí phụ thuộc vào
độ dài cáp nối cần sử dụng). Hãy tìm cách nối mạng sao
cho tổng chi phí là nhỏ nhất.
2- Bài toán xây dựng hệ thống đường sắt:
Chúng ta muốn xây dựng một hệ thống đường sắt nối n
thành phố để hành khách từ một thành phố có thể đi đến
bất kỳ các thành phố còn lại. Yêu cầu thiết kế để chi phí
xây dựng hệ thống đường đi là nhỏ nhất.
Bài toán tìm cây khung nhỏ nhất
Thuật toán Kruskal
• Cho đồ thị vô hướng liên thông có trọng số G=(V,E). Thuật 
tóan tìm ra cây khung nhỏ nhất Tmin=(V,Emin). Các bước làm 
như sau:
Bước khởi đầu:
• Tập đỉnh của cây Tmin là tập đỉnh của đồ thị G
• Tập cạnh của cây Tmin là rỗng: Emin = 
Bước lặp: Mỗi lần lặp chọn 1 cạnh cho cây (lặp lại cho đến khi 
chọn đủ số cạnh bằng số đỉnh trừ 1)
• Xét cạnh có trọng số nhỏ nhất trong các cạnh chưa xét.
• Nếu cạnh này không tạo thành chu trình với các cạnh đã chọn 
trước đó, thì chọn nó vào cây. Ngược lại thì bỏ qua không 
chọn.
Thí dụ: Tìm cây khung nhỏ nhất của đồ thị cho trong hình dưới đây:
Bước khởi tạo. Đặt Tmin= 
Bước lặp:
• Xét cạnh (3,5) chọn vào cây.
• Xét cạnh (4,6) chọn vào cây.
• Xét cạnh (4,5) chọn vào cây.
• Xét cạnh (5,6) không chọn vào cây.
• Xét cạnh (3,4) không chọn vào cây.
• Xét cạnh (1,3) chọn vào cây.
• Xét cạnh (2,3) chọn vào cây.
Đã chọn đủ 5 cạnh, được Tmin = { (3,5) , (4,6) , (4,5) , (1,3) , (2,3) } Chính là tập cạnh của cây khung nhỏ 
nhất cần tìm.
Thuật toán Prim
• Thuật toán Prim còn được gọi là phương pháp lân cận 
gần nhất.
• Trong phương pháp này bắt đầu từ một đỉnh s tuỳ ý của 
đồ thị, đầu tiên ta nối s với đỉnh lân cận gần nó nhất, 
chẳng hạn là đỉnh y. Nghĩa là trong số các cạnh kề của 
đỉnh s, cạnh (s,y) có độ dài nhỏ nhất. 
• Tiếp theo trong số các cạnh kề với hai đỉnh s hoặc y ta 
tìm cạnh có độ dài nhỏ nhất, cạnh này dẫn đến đỉnh thứ 
ba z, và ta thu được cây bộ phận gồm 3 đỉnh và 2 cạnh.
• Quá trình này sẽ tiếp tục cho đến khi ta thu được cây 
gồm tất cả các đỉnh của đồ thị, đó chính là cây khung 
nhỏ nhất cần tìm.
Thuật toán Prim
Cho đồ thị vô hướng liên thông có trọng số G=(V,E). 
Thuật tóan tìm ra cây khung nhỏ nhất Tmin=(V,Emin). 
Các bước làm như sau:
Bước khởi đầu:
• Tập đỉnh của cây Tmin là 1 đỉnh tùy ý s: Vmin = {s}.
• Tập cạnh của cây Tmin là rỗng: Emin = 
Bước lặp: Mỗi lần lặp chọn 1 đỉnh và 1 cạnh cho 
cây (Lặp lại cho đến khi chọn hết đỉnh của đồ thị)
• Tìm ra đỉnh gần cây Tmin hiện tại nhất.
• Thêm vào cây Tmin đỉnh này, và cạnh ngắn nhất nối 
đỉnh này với cây.
Thí dụ:Tìm cây khung nhỏ nhất của đồ thị cho trong hình dưới
Bước khởi tạo. Đặt Vmin={1} , Emin = 
Bước lặp:
• Vmin={1,3} , Emin = {(1,3)}
• Vmin={1,3,5} , Emin = {(1,3),(3,5)}
• Vmin={1,3,5,4} , Emin = {(1,3),(3,5),(5,4)}
• Vmin={1,3,5,4,6} , Emin = {(1,3),(3,5),(5,4),(4,6)}
• Vmin={1,3,5,4,6,2} , Emin = {(1,3),(3,5),(5,4),(4,6),(3,2)}
Kết thúc.
Bài tập 
• Một địa đạo gồm 9 căn hầm và các đường hầm với độ dài như hình 
vẽ dưới.
a) Cần đi tham quan tất cả các đường hầm, sao cho mỗi 
đường hầm chỉ đi qua đúng một lần, thì phải trổ cửa lên 
mặt đất ở những hầm nào, để số lần phải xuống-lên mặt 
đất là ít nhất. Chỉ ra các con đường đi tham quan. Nếu 
muốn chỉ trổ duy nhất một cửa hầm mà có thể đi như 
yêu cầu, thì phải đào thêm ít nhất những đường hầm 
nào nữa?
b) Nếu chỉ yêu cầu giữa các hầm có thể đi tới nhau được. 
Hãy đưa ra phương án phải đào những đường hầm nào 
trong các đường hầm đã cho, để tổng chiều dài các 
đường hầm phải đào là nhỏ nhất. Nói rõ đã áp dụng thuật 
tóan nào.
Bài tập (tiếp theo)
Hết chương 6
Tuần sau:
ôn tập chuẩn bị thi cuối kỳ

File đính kèm:

  • pdfbai_giang_toan_roi_rac_chuong_6_cay_va_cay_khung_do_thi_vo_t.pdf