Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
1,3 MB
Nội dung
CHƯƠNG 6: CÂY Một số khái niệm - Cây m – phân tính chất - Phép duyệt nhị phân - Ký pháp nghịch đảo Ba Lan - Thuật tốn Prim Kruskal tìm khung nhỏ đồ thị liên thơng có trọng số - Một số khái niệm Cây Định nghĩa: Cây đồ thị vô hướng, liên thơng khơng có chu trình sơ cấp Cây khơng có cạnh bội khun Cây đơn đồ thị Ví dụ G1 Chương Cây G2 G G3 G4 Một số khái niệm Rừng Định nghĩa: Rừng đồ thị vơ hướng khơng có chu trình Rừng có nhiều thành phần liên thông Mỗi thành phần liên thông Ví dụ G Chương Cây Một số khái niệm Định lý (Điều kiện đủ cây) Nếu cặp đỉnh đồ thị vô hướng G tồn đường sơ cấp G (Chứng minh SV tham khảo tài liệu) Chương Cây Một số khái niệm Cây Định nghĩa có gốc Một với đỉnh chọn làm gốc Định hướng cạnh từ gốc Ví dụ a d a f e b c Chương Cây b g h e e d b c f g c a h g d f h Cùng cây, chọn gốc khác có gốc thu khác Một số khái niệm Cây có gốc Một số khái niệm Cha Anh em Tổ tiên Con cháu Chương Cây Lá Đỉnh Cây Mức Chiều cao Một số khái niệm Định lý Daisy Chain T đồ thị có n đỉnh Các mệnh đề tương đương: Chương Cây T T khơng có chu trình có n-1 cạnh T liên thông, cạnh cầu Giữa hai đỉnh T tồn đường sơ cấp T khơng có chu trình thêm cạnh nối đỉnh T tao chu trình T liên thơng có n-1 cạnh Một số khái niệm Cây m-phân Định nghĩa Cây m-phân Cây có gốc Tất đỉnh có khơng q m Cây m-phân đầy đủ Chương Cây Cây có gốc Tất đỉnh có m m=2: Cây nhị phân Một số khái niệm Cây m-phân Ví dụ T1 T2 T1: Cây nhị phân đầy đủ T2: Cây tam phân đầy đủ T3: Cây tứ phân (không đầy đủ) Chương Cây T3 Một số tính chất Tính chất 1: Cây n đỉnh (n 2) có đỉnh treo Tính chất 2: Cây m-phân đầy đủ với i đỉnh có n = m.i + đỉnh Tính chất 3: Cho m-phân đầy đủ có n đỉnh, có i đỉnh l Khi đó: i = (n -1)/m l = [(m - 1)n + 1] / m l = (m - 1)i + n=l+i Chương Cây 10 Cây khung (Spanning Tree) Cây khung nhỏ Định nghĩa Cây khung nhỏ đồ thị liên thơng, có trọng số khung có tổng trọng số cạnh nhỏ Chương Cây 25 Cây khung (Spanning Tree) Cây khung nhỏ Thuật toán Prim Bắt đầu việc chọn đỉnh bất kỳ, đặt vào khung T Trong khung T có n đỉnh Ghép vào T cạnh có trọng số nhỏ liên thuộc với đỉnh T khơng tạo chu trình T Chú ý: - Thuật toán dừng lại Tcó đủ n đỉnh hay (n-1) cạnh - Có nhiều khung nhỏ ứng với đồ thị liên thơng có trọng số Chương Cây 26 Chương Cây 27 Cây khung (Spanning Tree) Cây khung nhỏ Thuật toán Prim Chương Cây Bước 1: Khởi tạo VT = {s}; ET = ; (VT – tập đỉnh; ET – tập cạnh) ds = 0; v VT dv = w(s, v), s v liền kề dv = , s v không liền kề Bước 2: Tìm cạnh Tìm u mà du = {dv | v VT} VT = VT {u}; ET = ET {e} , e – cạnh nối u với đỉnh có trọng số du Nếu VT V dừng Bước 3: Cập nhật nhãn dv = {dv, w(u, v)} với v VT 28 Chương Cây 29 Cây khung (Spanning Tree) Cây khung nhỏ Thuật toán Kruskal Bắt đầu việc chọn cạnh có trọng số nhỏ nhất, đặt vào khung T Trong khung T có (n-1) cạnh Chương Cây Ghép vào T cạnh có trọng số nhỏ khơng tạo chu trình T 30 Chương Cây 31 Cây khung (Spanning Tree) Cây khung nhỏ Thuật toán Kruskal Chương Cây Bước 1: Sắp xếp cạnh đồ thị G theo thứ tự có trọng số khơng giảm: w(e1) w(e2) … w(em) ET = {e1} , i =1 Bước 2: Tìm k = { j | ET {ej} khơng có chu trình} ET = ET {ek} Bước 3: i = i +1 Nếu i = n-1 dừng Nếu i < n-1 quay lại bước 32 Cây khung (Spanning Tree) Cây khung nhỏ Ví dụ: Tìm khung nhỏ đồ thị sau: a f b c e Dùng thuật toán Prim: d Vậy khung nhỏ với tập cạnh có độ dài (trọng số): 2+5+3+4+1=15 Chương Cây f a e b d c 33 ây khung (Spanning Tree) Cây khung nhỏ Ví dụ: Tìm khung nhỏ đồ thị sau: a f b c e d Dùng thuật toán Kruskal: Sắp xếp cạnh đồ thị theo thứ tự có trọng số khơng giảm: Vậy khung nhỏ với tập cạnh có độ dài (trọng số): 1+2+3+4+5 =15 Chương Cây 34 ây khung (Spanning Tree) Cây khung nhỏ Ví dụ: Tìm khung nhỏ đồ thị sau: a f b c e d Dùng thuật toán Kruskal: Sắp xếp cạnh đồ thị theo thứ tự có trọng số khơng giảm: Vậy khung nhỏ với tập cạnh có độ dài (trọng số): 1+2+3+4+5 =15 Chương Cây 35 Cây khung (Spanning Tree) Cây khung nhỏ So sánh Prim Kruskal Prim chọn cạnh có trọng số nhỏ liên thuộc với đỉnh thuộc khơng tạo chu trình Kruskal chọn cạnh có trọng số nhỏ miễn khơng tạo chu trình Thuật tốn Prim hiệu đồ thị dày (số cạnh nhiều) Chương Cây 36 Cây khung (Spanning Tree) Một số toán ứng dụng Nối dây điện Trong mặt phẳng toạ độ cho N + điểm, điểm gốc tọa độ coi nguồn điện mà từ ta nối dây cấp điện cho nơi khác Điểm thứ i N điểm lại có toạ độ (Xi, Yi), điểm đặt máy thứ i Mỗi điểm đặt máy lấy trực tiếp từ nơi cấp điện ban đầu hay gián tiếp qua điểm đặt máy khác Yêu cầu đưa phương án nối điện điểm để nơi đặt máy có điện tổng chiều dài dây cần thiết ngắn Chương Cây 37 Cây khung (Spanning Tree) Một số toán ứng dụng Theo thiết kế, mạng giao thông gồm N nút Biết trước chi phí để xây dựng đường hai chiều trực tiếp từ nút i đến nút j Hai tuyến đường khác không cắt điểm không đầu mút Hiện xây dựng K tuyến đường Bài toán : Hệ thống đường xây dựng bảo đảm lại hai nút chưa? Nếu chưa, chọn số tuyến đường cần xây dựng thêm cho: Các tuyến đường xây dựng thêm với đường xây dựng bảo đảm lại hai nút Tổng kinh phí xây dựng tuyến đường thêm vào Chương Cây 38 Cây khung (Spanning Tree) Cây khung lớn Định nghĩa Cây khung lớn đồ thị liên thông, có trọng số khung có tổng trọng số cạnh lớn Tương tự trình bày thuật tốn Prim Kruskal để tìm khung lớn đồ thị liên thơng có trọng số !!! Chương Cây 39 ... biểu thức E1 Con phải biểu diễn cho biểu thức E2 nút biểu diễn cho biểu thức E1 E2 Chương Cây 16 Ký pháp nghịch đảo Ba Lan Cây biểu thức số học Ví dụ: E = (2 + 3)^2 – (4 – 1)*(15/5) Chương... đủ n đỉnh hay (n-1) cạnh - Có nhiều khung nhỏ ứng với đồ thị liên thơng có trọng số Chương Cây 26 Chương Cây 27 Cây khung (Spanning Tree) Cây khung nhỏ Thuật toán Prim Chương Cây Bước