BÁO cáo môn học TOÁN ỨNG DỤNG đề tài cây PHỦ NHỎ NHẤT & RỪNG PHỦ NHỎ NHẤT

29 1.1K 10
BÁO cáo môn học TOÁN ỨNG DỤNG đề tài cây PHỦ NHỎ NHẤT & RỪNG PHỦ NHỎ NHẤT

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tiểu luận Môn học Cây phủ nhỏ nhấtRừng phủ nhỏ nhất MỤC LỤC MỤC LỤC .1 LỜI GIỚI THIỆU 2 YÊU CẦU CỦA ĐỀ TÀI 4 PHÂN CÔNG CÔNG VIỆC .6 KẾT LUẬN .28 TÀI LIỆU THAM KHẢO .29 GV hướng dẫn: PGS. TSKH. Trần Quốc Chiến Trang 1/29 Tiểu luận Môn học Cây phủ nhỏ nhấtRừng phủ nhỏ nhất LỜI GIỚI THIỆU Lý thuyết đồ thị nghiên cứu các tính chất của đồ thị. Một cách không chính thức, đồ thị là một tập các đối tượng được gọi là các đỉnh (hoặc nút) nối với nhau bởi các cạnh (hoặc cung). Cạnh có thể có hướng hoặc vô hướng. Đồ thị thường được vẽ dưới dạng một tập các điểm (các đỉnh nối với nhau bằng các đoạn thẳng (các cạnh). Đồ thị biểu diễn được rất nhiều cấu trúc, nhiều bài toán thực tế có thể được biểu diễn bằng đồ thị. Ví dụ, cấu trúc liên kết của một Website có thể được biểu diễn bằng một đồ thị có hướng như sau: các đỉnh là các trang web hiện có tại website, tồn tại một cạnh có hướng nối từ trang A tới trang B khi và chỉ khi A có chứa 1 liên kết tới B. Do vậy, sự phát triển của các thuật toán xử lý đồ thị là một trong các mối quan tâm chính của khoa học máy tính. Cấu trúc đồ thị có thể được mở rộng bằng cách gán trọng số cho mỗi cạnh. Có thể sử dụng đồ thị có trọng số để biểu diễn nhiều khái niệm khác nhau. Ví dụ, nếu đồ thị biểu diễn một mạng đường giao thông, các trọng số có thể là độ dài của mỗi con đường. Một cách khác để mở rộng đồ thị cơ bản là qui định hướng cho các cạnh của đồ thị (như đối với các trang web, A liên kết tới B, nhưng B không nhất thiết cũng liên kết tới A). Loại đồ thị này được gọi là đồ thị có hướng. Một đồ thị có hướng với các cạnh có trọng số được gọi là một lưới. Với một đồ thị liên thông, vô hướng cho trước, cây bao trùm của nó là một đồ thị con có dạng cây và có tất cả các đỉnh liên thông với nhau. Một đồ thị có thể có nhiều cây bao phủ khác nhau. Chúng ta cũng có thể gán một trọng số cho mỗi cạnh và dùngđể tính toán trọng số của một cây bao trùm bằng cách cộng tất cả trọng số của cạnh trong cây bao trùm đó. Khi đó, một cây bao trùm nhỏ nhất là một cây bao trùm có trọng số bé hơn bằng trọng số của tất cả các cây bao trùm khác. Tổng quát hơn, bất kỳ một đồ thị vô hướng (không nhất thiết liên thông) đều có một rừng bao phủ nhỏ nhất, là hội của các cây bao trùm nhỏ nhất của các thành phần liên thông của nó. GV hướng dẫn: PGS. TSKH. Trần Quốc Chiến Trang 2/29 Tiểu luận Môn học Cây phủ nhỏ nhấtRừng phủ nhỏ nhất Chúng tôi xin chân thành cảm ơn PGS TSKH Trần Quốc Chiến đã giảng dạy, hướng dẫn tận tình và cung cấp tài liệu tham khảo quý báu để chúng tôi hoàn thành đề tài này. Nhóm học viên thực hiện Lê Thị Anh Đào Lê Văn Linh Nguyễn Thị Mai Phương Mai Văn Tùng Huỳnh Anh Tuấn GV hướng dẫn: PGS. TSKH. Trần Quốc Chiến Trang 3/29 Tiểu luận Môn học Cây phủ nhỏ nhấtRừng phủ nhỏ nhất YÊU CẦU CỦA ĐỀ TÀI CÂY PHỦ NHỎ NHẤTRỪNG PHỦ NHỎ NHẤT 1. Trình bày khái niệm cây, cây phủ, cây phủ nhỏ nhất, định lý về điều kiện cần và đủ để cây phủ nhỏ nhất. 2. Trình bày thuật toán Prim và thuật toán Kruskal tìm cây phủ nhỏ nhất. 3. Thiết kế cấu trúc dữ liệu và giải thuật Prim và giải thuật Kruskal tìm cây phủ nhỏ nhất. 4. Sử dụng các thuật toán trên tìm rừng phủ nhỏ nhất cho đồ thị không liên thông. 5. Viết chương trình cài đặt thuật toán tìm rừng phủ nhỏ nhất bằng ngôn ngữ C. File dữ liệu đầu vào: GRAPH.INP có cấu trúc n m (số đỉnh, số cạnh) a 1 b 1 c 1 (đỉnh đầu, đỉnh cuối, trọng số) a 2 b 2 c 2 . a m b m c m File kết quả: MIN TREE .OUT k {số thành phần liên thông} W 1 {trọng số cây phủ nhỏ nhất của thành phần liên thông thứ 1} x 1 , ., x i {các đỉnh của thành phần liên thông thứ 1} (u 1 , v 1 ),(u 2 , v 2 ) {các cạnh cây phủ nhỏ nhất của thành phần liên thông thứ 1} W 2 {trọng số cây phủ nhỏ nhất của thành phần liên thông thứ 2} y 1 , ., y j {các đỉnh của thành phần liên thông thứ 2} (r 1 , t 1 ), (r 2 , t 2 ), {các cạnh cây phủ nhỏ nhất của thành phần liên thông thứ 2} . 1) Ví dụ 1: GRAPH.INP MINCOVER.OUT 4 5 1 GV hướng dẫn: PGS. TSKH. Trần Quốc Chiến Trang 4/29 Tiểu luận Môn học Cây phủ nhỏ nhấtRừng phủ nhỏ nhất 1 2 1 3 2 3 2 1, 2, 3, 4 3 4 3 (1,2), (1,3), (1,4) 4 1 1 1 3 1 2) Ví dụ 2: GRAPH.INP MINCOVER.OUT 5 4 2 1 2 1 2 2 3 2 1, 2, 3 1 3 1 (1,2), (1,3) 4 5 3 3 4, 5 (4,5) GV hướng dẫn: PGS. TSKH. Trần Quốc Chiến Trang 5/29 Tiểu luận Môn học Cây phủ nhỏ nhấtRừng phủ nhỏ nhất PHÂN CÔNG CÔNG VIỆC STT Họ tên Công việc (theo mục lục) Chữ ký Nhận xét của giáo viên 1 Lê Thị Mai Phương Tìm hiểu các khái niệm về cây, cây phủcây phủ nhỏ nhất 2 Huỳnh Anh Tuấn Tìm hiểu thuật toán Prim và Kruskal để tìm cây phủ nhỏ nhất 3 Mai Văn Tùng Thiết kế cấu trúc dữ liệu cho các thuật toán tìm cây phủ nhỏ nhất 4 Lê Thị Anh Đào Rừng phủ nhỏ nhất và thuật toán tìm rừng phủ nhỏ nhất 5 Lê Văn Linh Xây dựng chương trình tìm rừng phủ nhỏ nhất GV hướng dẫn: PGS. TSKH. Trần Quốc Chiến Trang 6/29 Tiểu luận Môn học Cây phủ nhỏ nhấtRừng phủ nhỏ nhất CHƯƠNG I: MỘT SỐ KHÁI NIỆM I.1. Cây Cây là đồ thị liên thông không có chu trình. Ví dụ: Đồ thị sau đây là cây. Gốc của cây là một đỉnh đặc biệt, thông thường là đỉnh trên cùng. Mức của đỉnh là độ dài đường đi từ gốc đến đỉnh đó. Độ cao của cây là mức lớn nhất của cây (tức mức của đỉnh cách xa gốc nhất). Trong ví dụ trên nếu ta chọn v 1 là gốc thì v 2 , v 3 , v 8 là những đỉnh mức 1, các đỉnh v 4 , v 5 , v 6 , v 7 , v 9 có mức 2, và độ cao của cây là 2. Cây m-phân: Cây m-phân là cây mà mọi đỉnh có tối đa m con và có ít nhất một đỉnh có m con. Cây m-phân đầy đủ là cây mà mọi đỉnh trong có đúng m con. Cây cân bằng là cây mà mọi đỉnh lá có mức là h hay h-1, trong đó h là chiều cao của cây. Định lý (định lý tương đương): Cho đồ thị G = (V,E) có n đỉnh. Các mệnh đề tương đương là: GV hướng dẫn: PGS. TSKH. Trần Quốc Chiến Trang 7/29 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v 9 Tiểu luận Môn học Cây phủ nhỏ nhấtRừng phủ nhỏ nhất 1. G là một cây. 2. G liên thông và có n−1 cạnh. 3. G không có chu trình và có n−1 cạnh. 4. G không có chu trình và nếu bổ sung vào một cạnh nối hai đỉnh không kề nhau thì xuất hiện một chu trình; 5. G liên thông và nếu bỏ đi một cạnh thì G mất tính liên thông; 6. Mỗi cặp đỉnh trong G được nối với nhau bằng đường đi duy nhất. I.2. Cây phủ Cây phủ hay cây bao trùm của một đồ thị liên thông và có hướng G=(V,E) là tập hợp các đỉnh và một số (có thể là tất cả) các cạnh của đồ thị sao cho không tồn tại các chu trình. Vậy: - Cây phủ đồ thị N đỉnh sẽ có N-1 cạnh - Giữa 2 đỉnh bất kỳ sẽ chỉ có một đường đi Ví dụ: Cây T gọi là cây phủ hay cây bao trùm của G, nếu T là đồ thị con phủ của G. Định lý: Đồ thị G = (V,E) có cây phủ khi và chỉ khi G liên thông I.3. Cây phủ nhỏ nhất GV hướng dẫn: PGS. TSKH. Trần Quốc Chiến Trang 8/29 G T Tiểu luận Môn học Cây phủ nhỏ nhấtRừng phủ nhỏ nhất Cho G=(V,E, (c ij )) là trọng đồ liên thông có trọng số (c ij ). Cây phủ T nhỏ nhất của G là cây phủ T có tổng trọng số ∑ ∈ = Tji ij cTd , )( là nhỏ nhất. Vậy : - Một đồ thị có thể có nhiều cây phủ - Giá trị của một cây phủ là tổng trọng số của các cạnh của cây phủ đó. - Cây phủ nhỏ nhấtcây phủ có giá trị nhỏ nhất. Định lý: Cho đồ thị G = (V,E,(c ij )) là đồ thị liên thông có trọng số (c ij ). Khi đó T là cây phủ nhỏ nhất của G khi và chỉ khi mỗi cạnh e ∉ T có trọng số lớn nhất trên chu trình tạo bởi cạnh e và các cạnh của T. Chứng minh: Điều kiện cần là hiển nhiên. Ta chứng minh điều kiện đủ. Giả sử S là cây bất kỳ có k cạnh không thuộc T. Ta chứng minh d(S) ≥ d(T) quy nạp theo k. Gọi e1, e2, …, e n-1 là các cạnh của T sắp theo thứ tự trọng số tăng dần: C(e 1 ) ≤ c(e 2 ) ≤ … ≤ c(e n-1 ) Bước cơ sở: k=0. Hiển nhiên là d(S) = d(T) vì S=T Bước quy nạp: Giả sử mọi cây với số cạnh không thuộc T ít hơn k đều có trọng số không nhỏ hơn d(T). Gọi e i là cạnh đầu tiên trong dãy các cạnh của T không thuộc S. Cạnh e i và các cạnh của S tạo thành chu trình duy nhất C S . Chu trình C S bắt buộc phải chứa cạnh e ∈ S \ T (vì T không chứa chu trình). Cạnh e cùng với các cạnh của T tạo thành chu trình duy nhất C T . Vì S chứa các cạnh e 1 ,…, e i-1 và e, nên C T phải có cạnh e j với j ≥ i và e j ∉ S (nếu không, C T ⊂ GV hướng dẫn: PGS. TSKH. Trần Quốc Chiến Trang 9/29 Tiểu luận Môn học Cây phủ nhỏ nhấtRừng phủ nhỏ nhất S vô lý). Thay cạnh e bằng cạnh e i ta thu được cây phủ S’ có d(S’) ≤ d(S), vì c(e) ≥ c(e j ) ≥ c(e i ). Do S’ chỉ có k-1 cạnh không thuộc T nên theo giả thiết quy nạp: d(S) ≥ d(S’) ≥ d(T) Vậy, định lý đã được chứng minh. Phát biểu bài toán: Cho G=(V,E) là đồ thị vô hướng liên thông có trọng số, mỗi cạnh e∈E có trọng số m(e)≥0. Giả sử T=(V T ,E T ) là cây phủ của đồ thị G (V T =V). Ta gọi độ dài m(T) của cây phủ T là tổng trọng số của các cạnh của nó: ∑ ∈ = T E )()( e emTm . Bài toán đặt ra là trong số tất cả các cây phủ của đồ thị G, hãy tìm cây phủ có độ dài nhỏ nhất. Cây phủ như vậy được gọi là cây phủ nhỏ nhất của đồ thị và bài toán đặt ra được gọi là bài toán tìm cây phủ nhỏ nhất. CHƯƠNG II: THUẬT TOÁN TÌM CÂY PHỦ NHỎ NHẤT II.1.Thuật toán Prim (Robert Clay Prim – 1957)  Đầu vào : Đồ thị G=(V,E) với trọng số. Các đỉnh ký hiệu là: 1, 2, . , n Trọng số của cạnh (i,j), (i,j)∈E, ký hiệu là c ij  Đầu ra : Cây phủ nhỏ nhất T, hoặc kết luận đồ thị không liên thông.  Các bước : (1) Khởi tạo: T là đồ thị gồm một đỉnh 1 và không có cạnh. (2) Kiểm tra điều kiện kết thúc: Nếu T có n-1 cạnh, Kết thúc. Kết luận: T là cây phủ nhỏ nhất. Ngược lại sang bước (3) (3) Thêm cạnh: Ký hiệu M là tập GV hướng dẫn: PGS. TSKH. Trần Quốc Chiến Trang 10/29 . luận Môn học Cây phủ nhỏ nhất và Rừng phủ nhỏ nhất YÊU CẦU CỦA ĐỀ TÀI CÂY PHỦ NHỎ NHẤT VÀ RỪNG PHỦ NHỎ NHẤT 1. Trình bày khái niệm cây, cây phủ, cây phủ nhỏ. toán tìm cây phủ nhỏ nhất 4 Lê Thị Anh Đào Rừng phủ nhỏ nhất và thuật toán tìm rừng phủ nhỏ nhất 5 Lê Văn Linh Xây dựng chương trình tìm rừng phủ nhỏ nhất

Ngày đăng: 26/12/2013, 11:10

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan