Bài giảng Toán rời rạc & Lý thuyết đồ thị - Chương 6: Cây và cây khung của đồ thị

1. CÂY VÀ CÁC TÍNH CHẤT CƠ BẢN CỦA CÂY

Định nghĩa1.

Ta gọi cây là đồ thị vô hướng liên thông không có chu trình. Đồ thị không có

chu trình được gọi là rừng.

Như vậy, rừng là đồ thị mà mỗi thành phần liên thông của nó là một cây.

Thí dụ 1. Trong hình 1 là một rừng gồm 3 cây T1, T2, T3

pdf 9 trang yennguyen 6960
Bạn đang xem tài liệu "Bài giảng Toán rời rạc & Lý thuyết đồ thị - Chương 6: Cây và cây khung của đồ thị", để 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 & Lý thuyết đồ thị - Chương 6: Cây và cây khung của đồ thị

Bài giảng Toán rời rạc & Lý thuyết đồ thị - Chương 6: Cây và cây khung của đồ thị
Chương 6. Cây và cây khung của đồ thị 
1. CÂY VÀ CÁC TÍNH CHẤT CƠ BẢN CỦA CÂY 
Định nghĩa1. 
Ta gọi cây là đồ thị vô hướng liên thông không có chu trình. Đồ thị không có 
chu trình được gọi là rừng. 
Như vậy, rừng là đồ thị mà mỗi thành phần liên thông của nó là một cây. 
Thí dụ 1. Trong hình 1 là một rừng gồm 3 cây T1, T2, T3. 
Hình 1. Rừng gồm 3 cây T1, T2, T3. 
Có thể nói cây là đồ thị vô hướng đơn giản nhất. Định lý sau đây cho ta một 
số tính chất của cây. 
Định lý 1. 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. 
2. CÂY KHUNG CỦA ĐỒ THỊ 
Định nghĩa 2. Cho đồ thị vô hướng liên thông G=(V,E) cây khung 
T=(VT,ET) của nó được xác định như sau: 
 Tập đỉnh của cây T cũng là tập đỉnh của đồ thị G. tức là: VT = V. 
 Tập cạnh của cây T là tập con của tập cạnh của đồ thị G. tức là: ET V. 
Nói cách khác, từ đồ thị G ta bỏ bớt các cạnh đi cho thành 1 cây, thì đó là một 
cây khung của đồ thị. Như vậy 1 đồ thị có thể có nhiều cây khung. 
Ví dụ: 
 Hình 2. Đồ thị và 2 các cây khung của nó (nó còn có các cây khung khác) 
3. BÀI TOÁN TÌM CÂY KHUNG NHỎ NHẤT. 
Bài toán cây khung nhỏ nhất của đồ thị là một trong số những bài toán tối ưu 
trên đồ thị tìm được ứng dụng trong nhiều lĩnh vực khác nhau của đời sống. 
Trong mục này chúng ta trình bày những thuật toán cơ bản để giải bài toán 
này. Trước hết chúng ta phát biểu nội dung bài toán. 
Cho G=(V,E) là đồ thị vô hướng liên thông. Mỗi cạnh e của đồ thị G được gán 
với một trọng số không âm c(e), gọi là độ dài của nó. Giả sử T=(VT,ET) là cây 
khung của đồ thị G. Ta gọi độ dài c(T) của cây khung T là tổng độ dài các 
cạnh của nó: 
c(T) =  c(e). 
 e ET 
Bài toán đặt ra là trong tất cả cây khung của đồ thị G hãy tìm cây khung với 
độ dài nhỏ nhất. Cây khung như vậy như vậy được gọi là cây khung nhỏ nhất 
của đồ thị và bài toán đặt ra được gọi là bài toán cây khung nhỏ nhất. 
Để minh hoạ cho những ứng dụng bài toán cây khung nhỏ nhất, dưới đây, ta 
phát biểu hai mô hình thực tế tiêu biểu của nó. 
Bài toán xây dựng hệ thống đường sắt. Giả sử ta muốn xây dựng một hệ 
thống đường sắt nối n thành phố sao cho hành khách có thể đi từ bất kỳ một 
thành phố nào đến bất kỳ một trong các thành phố còn lại. Mặt khác trên quan 
điểm kinh tế đòi hỏi là chi phí xây dựng hệ thống đường phải nhỏ nhất. Rõ 
ràng đồ thị mà đỉnh là các thành phố còn các cạnh là các tuyến đường sắt nối 
các thành phố tương ứng với phương án xây dựng tối ưu phải là cây. 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ác cạnh 
chính là chi phí xây dựng đường ray nối hai thành phố tương ứng (chú ý là 
trong bài toán này ta giả thiết là không xây dựng tuyến đường sắt có các nhà 
ga phân tuyến nằm ngoài các thành phố). 
 Bài toán nối mạng máy tính. Cần nối mạng một hệ thống gồm n máy tính 
đánh số từ 1 đến n. Biết chi phí nối máy i với máy j là c[i,j], i,j = 1, 2, . . . ,n ( 
thông thường chi phí này 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í nối mạng là nhỏ nhất. 
3.1. 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=(Vmin,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ức là: Vmin = V. 
 Tập cạnh của cây Tmin là rỗng: Emin = 
ướ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ụ 3.Tìm cây khung nhỏ nhất của đồ thị cho trong hình 3 dưới. 
Hình 3. Đồ thị để tìm cây khung nhỏ nhất 
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. 
3.2. 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 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. 
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=(Vmin,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 = 
ướ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ụ 4.Tìm cây khung nhỏ nhất của đồ thị cho trong hình 3 dưới. 
Hình 3. Đồ thị để tìm cây khung nhỏ nhất 
Bước khởi tạo. Đặt Vmin=  , Emin = 
Bước lặp: 
 Vmin=  , Emin =  
 Vmin=  , Emin =    
 Vmin=  , Emin =      
 Vmin=  , Emin =        
 Vmin=  , Emin =          
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 
140 
40 
100 
40 70 
50 
120 
60 80 
180 
50 
60 
110 
70 
30 
220 
140 
1 
3 
7 
6 
9 
5 
2 
4 
8 
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. 

File đính kèm:

  • pdfbai_giang_toan_roi_rac_ly_thuyet_do_thi_chuong_6_cay_va_cay.pdf