Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 72 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
72
Dung lượng
0,9 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TRẦN THỊ PHƢƠNG THẢO NGHIÊN CỨU CÁC THUẬT TOÁN VỀ CÂY KHUNG VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên, 2015 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ LỜI CAM ĐOAN Tên em Trần Thị Phƣơng Thảo, học viên lớp Cao học K12E, chuyên ngành Khoa học máy tính, khóa học 2013 – 2015 Em xin cam đoan luận văn: “NGHIÊN CỨU CÁC THUẬT TOÁN VỀ CÂY KHUNG VÀ ỨNG DỤNG ” Dƣới hƣớng dẫn PGS TSKH Nguyễn Xuân Huy - Trƣờng Đại học Công nghệ thông tin Truyền thông, Đại học Thái Nguyên , với nội dung trình bày đƣợc trích dẫn đầy đủ từ nguồn tài liệu tham khảo thống (báo khoa học, sách có quyền), nội dung trình bày luận văn hoàn toàn trung thực Và công trình nghiên cứu thân kết hợp với hƣớng dẫn PGS TSKH.Nguyễn Xuân Huy tạo lập Nếu có nội dung chụp lại thân tạo ra, em xin hoàn toàn chịu tránh nhiệm chịu hình thức kỷ luật Phú Thọ, ngày tháng 10 năm 2015 HỌC VIÊN Trần Thị Phƣơng Thảo Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ LỜI CẢM ƠN Điều em xin gửi lời cảm ơn tới Thầy, Cô Trƣờng Đại học Công nghệ thông tin Truyền thông Thái Nguyên thời gian vừa qua cung cấp truyền đạt chƣơng trình học với môn học có nội dung bổ ích Thông qua chƣơng trình học, em đƣợc lĩnh hội nhiều kiến thức chuyên môn, phƣơng pháp tiếp cận toán tin học Em xin gửi lời cảm ơn sâu sắc tới PGS TSKH Nguyễn Xuân Huy, ngƣời Thầy hƣớng dẫn, bảo, giám sát, theo dõi, cung cấp phƣơng pháp, nguồn liệu tiếp cận toán để em hoàn thành đƣợc luận văn Em xin cảm ơn Ban Giám hiệu trƣờng THPT Trần Phú đồng nghiệp Trƣờng, xin cảm ơn Trƣờng Đại học Công nghệ thông tin Truyền thông, Đại học Thái Nguyên tạo điều kiện giúp đỡ để em hoàn thành chƣơng trình học tập luận văn tốt nghiệp Điều cuối em xin cảm ơn gia đình, bạn bè nhiệt tình ủng hộ, động viên, giúp đỡ vật chất lẫn tinh thần thời gian học tập nghiên cứu Trong trình thực luận văn, có nhiều cố gắng nhƣng không tránh khỏi thiếu sót Kính mong nhận đƣợc cảm thông tận tình bảo Thầy, Cô bạn Em xin trân trọng cảm ơn! Phú Thọ, ngày tháng 10 năm 2015 HỌC VIÊN Trần Thị Phƣơng Thảo Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ MỤC LỤC MỞ ĐẦU 1 Tính cấp thiết đề tài Đối tƣợng phạm vi nghiên cứu Phƣơng pháp nghiên cứu Hƣớng nghiên cứu đề tài Những nội dung nghiên cứu CHƢƠNG 1: TỔNG QUAN VỀ CÂY KHUNG 1.1 MỘT SỐ KHÁI NIỆM LIÊN QUAN TỚI ĐỒ THỊ .4 1.1.1 Định nghĩa đồ thị 1.1.2 Các loại đồ thị 1.1.3 Bậc đồ thị 1.2 ĐỒ THỊ CON, ĐỒ THỊ BỘ PHẬN .8 1.2.1 Đồ thị con, đồ thị phận 1.2.2 Đƣờng đi, chu trình đồ thị 1.3 TỔNG QUAN VỀ CÂY KHUNG 10 1.3.1 Định nghĩa .10 1.3.2 Cây khung 11 1.3.3 Cây khung cực tiểu 12 1.3.4 Rừng khung, rừng khung cực tiểu 13 1.3.4.1 Rừng khung 13 1.3.4.2 Rừng khung cực tiểu .14 1.3.5 Cầu, cạnh trọng yếu 15 1.3.6 Khớp 16 1.3.7 Liên thông hóa 16 1.4 BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH 20 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 1.4.1 Ma trận kề ma trận trọng số 21 1.4.2 Ma trận liên thuộc 22 1.4.3 Danh sách kề 23 CHƢƠNG 2: TÌM HIỂU MỘT SỐ THUẬT TOÁN VỀ CÂY KHUNG 25 2.1 GIỚI THIỆU KỸ THUẬT FIND UNION 25 2.2 THUẬT TOÁN TÌM CÂY KHUNG, CÂY KHUNG CỰC TIỂU .31 2.2.1 Thuật toán tìm khung 31 2.2.2 Thuật toán tìm khung cực tiểu 33 2.3 THUẬT TOÁN LIỆT KÊ CÁC CÂY KHUNG THÀNH PHẦN CỦA RỪNG KHUNG 40 2.4 THUẬT TOÁN LIỆT KÊ CÁC CÂY KHUNG THÀNH PHẦN CỦA RỪNG KHUNG CỰC TIỂU .44 2.5 THUẬT TOÁN LIỆT KÊ CÁC CẦU 48 2.6 THUẬT TOÁN LIỆT KÊ CÁC KHỚP 50 CHƢƠNG 3: MỘT SỐ ỨNG DỤNG CỦA BÀI TOÁN CÂY KHUNG GIẢI QUYẾT VẤN ĐỀ THỰC TẾ 54 3.1 BÀI TOÁN CÁP MẠNG .54 3.2 BÀI TOÁN TUYẾN ĐƢỜNG QUAN TRỌNG TRONG QUÂN SỰ 59 3.3 CÀI ĐẶT CHƢƠNG TRÌNH 64 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 64 Tài liệu tham khảo: 66 Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ MỞ ĐẦU Tính cấp thiết đề tài Khái niệm khung đƣợc CayLey đƣa năm 1857 [4] Cây đồ thị vô hƣớng, liên thông, chu trình Trong tin học, đƣợc dùng để xây dựng thuật toán, tổ chức thƣ mục, thuật toán tìm kiếm, lƣu trữ nén liệu,…[3,5] Có nhiều toán vận dụng khái niệm nhƣ: Sửa chữa đƣờng, định chiều đƣờng thành phố, tìm khung có nhiều nhất… Cây khung đồ thị hữu hạn, vô hƣớng liên thông đồ thị liên thông chứa đỉnh cạnh [1,2,3,4,5,6,7] Nếu đồ thị ban đầu có n đỉnh khung đồ thị có n đỉnh n - cạnh Nhiều toán thực tiễn đòi hỏi phải xây dựng khung với biến thể khác nhau, thí dụ: Bài toán du lịch, toán kết nối mạng máy tính, toán quản lý vốn vay địa phƣơng Một số biến thể khung đƣợc vận dụng nhiều thực tiễn [3] Thí dụ: Một mạng giao thông có nhiều cầu Khi cầu bị phá mạng liên thông Một cầu đƣợc gọi trọng yếu nhƣ bỏ cầu mạng liên thông [3] Trong chiến tranh đối phƣơng thƣờng quan tâm phá cầu trọng yếu Trong mạng máy tính đƣờng nối hai máy đƣợc xem trọng yếu đƣờng nối bị đứt mạng tính liên thông Một đỉnh đồ thị liên thông đƣợc gọi trọng yếu hay đỉnh khớp bỏ đỉnh cạnh liên thuộc đồ thị tính liên thông [3] Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ Để xác định đƣợc cầu trọng yếu đỉnh khớp ta cần dựa vào khái niệm khung Thí dụ, cầu trọng yếu phải thuộc khung Với lí học viên chọn đề tài nghiên cứu thuật toán khung ứng dụng nhằm mục đích sau: - Tìm hiểu khái niệm đồ thị nói chung đồ thị liên thông nói riêng - Tìm hiểu sâu khung thuật toán liên quan đến khung biến thể khung - Xây dựng số ứng dụng khung giải số vấn đề thực tiễn: Bài toán kết nối mạng, toán quản lý giao thông, toán quản lý cụm hải đảo quần thể động thực vật Đối tƣợng phạm vi nghiên cứu a Đối tượng nghiên cứu: Tổng quan lý thuyết khung Tìm hiểu số thuật toán khung điển hình nhƣ: Tìm khung, tìm khung cực tiểu, toán rừng khung, liệt kê khung, cầu trọng yếu, đỉnh khớp… Các ứng dụng việc giải toán khung vào thực tế b Phạm vi nghiên cứu: Khảo sát, đánh giá tổng quan lý thuyết nhƣ toán biến thể khung lớp đồ thị hữu hạn Phƣơng pháp nghiên cứu Sử dụng phƣơng pháp nghiên cứu sau: Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ - Phƣơng pháp nghiên cứu lý thuyết: Tổng hợp tài liệu, hệ thống lại kiến thức, tìm hiểu khái niệm, thuật toán sử dụng đề tài - : - Phƣơng pháp thực nghiệm: Điều tra chọn mẫu, xử lý thông tin, - Phƣơng pháp trao đổi khoa học, lấy ý kiến chuyên gia Hƣớng nghiên cứu đề tài - Tổng quan lý thuyết đồ thị khung - Nghiên cứu thuật toán khung - Ứng dụng toán khung thực tế - Cài đặt thử nghiệm chƣơng trình Những nội dung nghiên cứu Nội dung luận văn đƣợc chia thành ba chƣơng, cụ thể nhƣ sau: Số hóa Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ CHƢƠNG TỔNG QUAN VỀ CÂY KHUNG 1.1 MỘT SỐ KHÁI NIỆM LIÊN QUAN TỚI ĐỒ THỊ ( Các khái niệm liên quan đến đồ thị trình bày chi tiết tài liệu [1,2,6]) 1.1.1 Định nghĩa đồ thị Đồ thị cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh đồ thị Các loại đồ thị khác đƣợc phân biệt dựa kiểu số lƣợng cạnh nối hai đỉnh đồ thị u y x - Nếu cạnh u = (x,y) mà x y hai đỉnh phân biệt ta nói x, y hai đỉnh kề - Nếu u = (x,x) u cạnh có hai đỉnh trùng ta gọi khuyên u x - Nếu u = (x,y) mà x,y cặp đỉnh có phân biệt thứ tự hay có hƣớng từ x đến y u cung, x gốc y x đỉnh ra, y đỉnh vào xX Số hóa Trung tâm Học liệu - ĐHTN y http://www.lrc-tnu.edu.vn/ - Khi cặp đỉnh (x, y) có nhiều cạnh ta nói cạnh cặp đỉnh cạnh song song cạnh bội x y 1.1.2 Các loại đồ thị a Đồ thị vô hướng - Đồ thị G= đƣợc gọi đồ thị vô hƣớng tất cạnh u mà cặp đỉnh thuộc u = (x,y) (trong x,y V) không phân biệt thứ tự 11 E Hình 1.1: Đơn đồ thị vô hƣớng gồm đỉnh cạnh b Đồ thị có hướng Đồ thị G = đƣợc gọi đồ thị có hƣớng tất cạnh u cặp đỉnh thuộc u = (x, y) (trong x,y hƣớng đồ thị mà u=(x, y) Số hóa Trung tâm Học liệu - ĐHTN E mà V) có phân biệt thứ tự Đồ thị có V cung http://www.lrc-tnu.edu.vn/ 53 Bước Duyệt lần lƣợt n đỉnh, với đỉnh v = n, gọi hàm FUV(v) tính lại số mảnh liên thông đồ thị n đỉnh sau bỏ đỉnh v cạnh liên thuộc với đỉnh Nếu FUV(v) > FU v đỉnh khớp Ghi nhận đỉnh Cạnh liên thuộc đỉnh i cạnh có đỉnh đầu x = i đỉnh cuối y = i Từ suy cạnh không liên thuộc đỉnh i cạnh thỏa đồng thời x ≠ i y ≠ i // FUV: loai bo dinh v int FUV(int v){ int i, soManh; Initd(); soManh = n-1; for (i = 1; i c[i].x >> c[i].y >> c[i].p; f.close(); Sort(1,m);// sap tang cac canh theo so p Initd(); n1 = n-1; j = 0;// dem so canh cua cay khung for (i = 1; i [...]... luận : Lý thuyết đồ thị là mảng rất lớn nằm trong toán rời rạc, đồ thị đóng vai trò quan trọng làm cơ sở toán cho tin học và lý thuyết về cây khung đƣợc ứng dụng nhiều trong thực tiễn Vì vậy việc nghiên cứu cơ sở lý thuyết đồ thị và tổng quan về cây khung là rất cần thiết giúp cho việc ứng dụng xây dựng các thuật toán của cây khung Trong phạm vi nghiên cứu đề tài, những vấn đề mà tôi nêu trên là một... d[i] = i với i = 1 n; 2 Cài đặt hàm Find; 3 Cài đặt hàm Union Trong các mục tiếp theo ta sẽ trình bày các ứng dụng kỹ thuật FindUnion vào các bài toán trên đồ thị Trong tài liệu này, nếu không ghi chú gì thêm, ta ngầm hiểu các đồ thị đƣợc cho là đơn đồ thị hữu hạn 2.2 THUẬT TOÁN TÌM CÂY KHUNG, CÂY KHUNG CỰC TIỂU 2.2.1 Thuật toán tìm cây khung Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/... trình nghiên cứu các chƣơng sau Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 25 CHƢƠNG 2 TÌM HIỂU MỘT SỐ THUẬT TOÁN VỀ CÂY KHUNG 2.1 GIỚI THIỆU KỸ THUẬT FIND-UNION Kỹ thuật Find-Union (Tìm-Gộp) dùng để quản lí hợp của các tập rời nhau Ta minh hoạ kỹ thuật này qua bài toán sau: Bài toán công viên: Cô giáo dẫn các em thiếu nhi đi chơi công viên Lớp có n em mã số lần lƣợt từ 1 đến n Vào... tính chất về cây G' là cây bao trùm phải có n - 1 cạnh và là một đồ thị liên thông không có chu trình Giả sử G = (V, E) là đồ thị vô hƣớng Cây T = (V, F) với F E gọi là cây khung của đồ thị G Tức là nếu nhƣ loại bỏ một số cạnh của G để đƣợc một cây thì cây đó gọi là cây khung (hay cây bao trùm của đồ thị) Dễ thấy rằng với một đồ thị vô hƣớng liên thông có thể có nhiều cây khung Điều kiện cần và đủ để... của G là cây khung với tổng trọng số của các cạnh trong khung là nhỏ Số hóa bởi Trung tâm Học liệu - ĐHTN nhất http://www.lrc-tnu.edu.vn/ 13 Hình 1.22: Đồ thị G 5 8 1 3 7 6 8 5 2 2 2 4 4 6 3 Hình 1.23 Cây khung cực tiểu của đồ thị G có trọng số = 30 1.3.4 Rừng khung, rừng khung cực tiểu 1.3.4.1 Rừng khung Định nghĩa : Cho G là một đồ thị vô hƣớng gồm n đỉnh và m cạnh Hãy xác định các cây khung trong... của G Tập hợp các cây khung đó đƣợc gọi là rừng khung của đồ thị G Rừng là đồ thị mà mỗi thành phần liên thông của nó là một cây 4 3 Số hóa bởi Trung tâm Học liệu - ĐHTN 7 5 http://www.lrc-tnu.edu.vn/ 14 2 8 6 1 Hình 1.24 Đồ thị vô hƣớng có 8 đỉnh và 8 cạnh 3 4 6 7 5 8 1 2 Hình 1.25 Rừng gồm 2 cây khung 1.3.4.2 Rừng khung cực tiểu Định nghĩa: Cho đồ thị G vô hƣớng và liên thông với n đỉnh và m cạnh, cạnh... hƣớng có cây khung là đồ thị đó phải liên thông Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 12 Hình 1.18 Hình 1.20 Hình 1.19 Hình 1.21 Hình 1.18 đồ thị G Hình 1.19, 1.20, 1.21 cây khung của đồ thì G 1.3.3 Cây khung cực tiểu Định nghĩa : Cho đồ thị G vô hƣớng và liên thông với n đỉnh và m cạnh, cạnh (u,v) có trọng số p(u,v) là một số dƣơng Cây khung cực tiểu (còn gọi là cây bao trùm... http://www.lrc-tnu.edu.vn/ 11 Hình 1.17: Cây 1.3.2 Cây khung Định nghĩa : Cây khung (còn gọi là cây bao trùm) của một đồ thị n đỉnh, m cạnh là cây gồm n đỉnh với số cạnh tối thiểu bảo toàn tính liên thông của đồ thị Cho đồ thị G = với số đỉnh n lớn hơn 1 Giả sử G' là đồ thị bộ phận của G (G' nhận đƣợc từ G bằng cách bỏ đi một số cạnh nhƣng vẫn giữ nguyên đỉnh) Nếu G' = ... MỘT SỐ THUẬT TOÁN VỀ CÂY KHUNG 25 2.1 GIỚI THIỆU KỸ THUẬT FIND UNION 25 2.2 THUẬT TOÁN TÌM CÂY KHUNG, CÂY KHUNG CỰC TIỂU .31 2.2.1 Thuật toán tìm khung 31 2.2.2 Thuật toán tìm khung. .. 33 2.3 THUẬT TOÁN LIỆT KÊ CÁC CÂY KHUNG THÀNH PHẦN CỦA RỪNG KHUNG 40 2.4 THUẬT TOÁN LIỆT KÊ CÁC CÂY KHUNG THÀNH PHẦN CỦA RỪNG KHUNG CỰC TIỂU .44 2.5 THUẬT TOÁN LIỆT KÊ CÁC CẦU... chuyên gia Hƣớng nghiên cứu đề tài - Tổng quan lý thuyết đồ thị khung - Nghiên cứu thuật toán khung - Ứng dụng toán khung thực tế - Cài đặt thử nghiệm chƣơng trình Những nội dung nghiên cứu Nội dung