Nghiên cứu mô hình đồ thị và cài đặt thuật toán trên mô hình đồ thị

81 553 0
Nghiên cứu mô hình đồ thị và cài đặt thuật toán trên mô hình đồ thị

Đ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

MỤC LỤC MỞ ĐẦU CHƯƠNG MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA LÝ THUYẾT ĐỒ THỊ 1.1 Định nghĩa đồ thị 1.2 Các thuật ngữ 1.3 Đường đi, chu trình Đồ thị liên thông 10 1.4 Cây khung đồ thị 12 1.5 Những đơn đồ thị đặc biệt 17 1.5.1 Đồ thị đầy đủ 17 1.5.2 Đồ thị vòng 17 1.5.3 Đồ thị bánh xe 18 1.5.4 Đồ thị lập phương 18 1.5.5 Đồ thị phân đôi 19 1.6 Biểu diễn đồ thị ma trận đẳng cấu đồ thị 19 1.7 Đồ thị phẳng đồ thị không phẳng 22 1.8 Tô màu đồ thị 28 CHƯƠNG MỘT SỐ THUẬT TOÁN CƠ BẢN TRÊN LÝ THUYẾT ĐỒ THỊ 36 2.1 Bài toán tìm khung nhỏ 36 2.1.1 Giới thiệu toán 36 2.1.2 Thuật toán Kruskal 37 2.1.3 Thuật toán Prim 39 2.2 Bài toán tô màu đồ thị 42 2.2.1 Bài toán tô màu đồ 42 2.2.2 Thuật toán Welch-Powell tô màu đồ thị 43 2.2.3 Một số ứng dụng toán tô màu 44 CHƯƠNG CHƯƠNG TRÌNH MÔ PHỎNG 48 3.1 Chương trình mô thuật toán PRIM 48 3.1.1 Giao diện chương trình 48 3.1.2 Dữ liệu đầu vào 48 3.1.3 Sử dụng chương trình 49 3.2 Chương trình mô thuật toán welch-Powell 51 3.2.1 Giao diện chương trình 51 3.2.2 Dữ liệu đầu vào 51 3.2.3 Sử dụng chương trình 52 KẾT LUẬN 54 TÀI LIỆU THAM KHẢO 55 PHỤ LỤC MÃ NGUỒN CHƯƠNG TRÌNH 56 MỞ ĐẦU Lý thuyết đồ thị lĩnh vực nghiên cứu có từ lâu có nhiều ứng dụng đại Những tư tưởng lý thuyết đồ thị đề xuất vào năm đầu kỷ 18 nhà toán học lỗi lạc người thụy sỹ Leonhard Euler Chính ông người sử dụng đồ thị để giải toán tiếng cầu thành phố Konigsberg Đồ thị sử dụng để giải toán nhiều lĩnh vực khác chẳng hạn, đồ thị sử dụng để xác định mạch vòng mạch điện Chúng ta xác định hai máy tính mạng trao đổi thông tin với hay không nhờ mô hình đồ thị mạng máy tính Đồ thị có trọng số cạnh sử dụng để giải toán như: Tìm đường ngắn hai thành phố mạng giao thông, giải toán lập lịch, thời khoá biểu phân bố tần số cho trạm phát truyền hình… Lý thuyết đồ thị nhánh quan trọng lý thuyết tổ hợp Nhiều tính chất quan trọng hữu ích đồ thị chứng minh, nhiều vấn đề khó chưa giải Ở đồ án với mục đích tìm hiểu vấn đề lý thuyết đồ thị trình bày số thuật toán đồ thị, số toán ứng dụng Đồ án bao gồm mở đầu, ba chương, kết luận tài liệu tham khảo Chương Trong chương trình bày số kiến thức lý thuyết đồ thị như: đồ thị, thuật ngữ bản, tô màu đồ thị Chương Một số thuật toán đồ thị để giải hai toán tìm khung nhỏ tô màu đồ thị Chương Cài đặt sử dụng chương trình tìm khung nhỏ theo thuật toán PRIM chương trình tô màu đồ thị theo thuật toán Welch-Powell Em xin chân thành cảm ơn thầy Vũ Vinh Quang – Giảng viên môn Khoa học máy tính tận tình giúp đỡ em hoàn thành đề tài Em xin gửi lời cảm ơn tới thầy giáo, cô giáo khoa hết lòng giảng dạy, truyền đạt cho em nhiều kiến thức bổ ích suốt thời gian học tập Em xin cảm ơn người bạn thân cổ vũ, động viên giúp đỡ em suốt thời gian qua Thái nguyên, tháng 06 năm 2009 CHƯƠNG MỘT SỐ KHÁI NIỆM CƠ BẢN CỦA LÝ THUYẾT ĐỒ THỊ 1.1 Định nghĩa đồ thị Đồ thị cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh này, loại đồ thị khác phân biệt kiểu số lượng cạnh nối hai đỉnh đồ thị Giả sử V tập hữu hạn, không rỗng phần tử Bộ G = (V,E) gọi đồ thị hữu hạn Mỗi phần tử V gọi đỉnh phần tử u = (x,y) E gọi cạnh đồ thị G = (V,E) Xét cạnh u E tồn hai đỉnh x, y V cho u = (x,y), ta nói cạnh u nối đỉnh x đỉnh y đỉnh x y liên thuộc cạnh u  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  Nếu u = (x,y) mà x, y cặp đỉnh có phân biệt thứ tự hay có hướng từ đến y u cung, x gốc y x đỉnh ra, y đỉnh vào  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 y b x a) y b) y x c) Hình 1.1 Thí dụ hình 1.1 (a) đỉnh y có khuyên b (b) cung (x,y) có hướng (c) cặp đỉnh (x,y) tạo thành cạnh bội Trong thực tế ta gặp nhiều vấn đề mà dùng mô hình đồ thị để biểu diễn, sơ đồ mạng máy tính, sơ đồ mạng lưới giao thông, sơ đồ thi công công trình Thí dụ Xét mạng máy tính, biểu diễn mạng mô hình đồ thị, máy tính đỉnh, máy nối với dây truyền, chúng tương ứng cạnh đồ thị Một mô hình mạng máy tính hình 1.2 máy tính a, b , c, d tương ứng đỉnh, hai máy nối trực tiếp với tương ứng với cặp đỉnh kề a b c d Hình 1.2 Định nghĩa Đơn đồ thị vô hướng G = (V,E) bao gồm V tập đỉnh E tập cặp thứ tự gồm hai phần tử khác V gọi cạnh Thí dụ b a e g d h c l k i Hình Sơ đồ đơn đồ thị vô hướng máy tính Trong trường hợp hai máy tính thường xuyên phải tải nhiều thông tin người ta phải nối hai máy nhiều kênh thoại Mạng với đa kênh thoại máy cho hình b a e g d c l h k i Hình Sơ đồ mạng máy tính với đa kênh thoại Định nghĩa Đa đồ thị vô hướng G = (V,E) bao gồm V tập đỉnh, E họ cặp thứ tự gồm hai phần tử khác V gọi cạnh Hai cạnh e1 e2 gọi cạnh lặp chúng tương ứng với cặp đỉnh a e b d c l g k h i Hình Sơ đồ mạng máy tính với đa kênh thông báo Rõ ràng đơn đồ thị đa đồ thị, đa đồ thị đơn đồ thị, đa đồ thị có hai (hoặc có nhiều hơn) cạnh nối cặp đỉnh Trong mạng máy tính có kênh thoại nối máy với (chẳng hạn với mục đích thông báo) Mạng cho hình Khi đa đồ thị mô tả mạng vậy, có khuyên(cạnh nối đỉnh với nó) Trong trường hợp cần sử dụng đến khái niệm giả đồ thị vô hướng, định nghĩa sau Định nghĩa Giả đồ thị vô hướng G = (V,E) bao gồm V tập đỉnh, E họ cặp thứ tự (không thiết phải khác nhau) V gọi cạnh Cạnh e gọi khuyên có dạng e = (u,u) Các kênh thoại mạng máy tính cho phép truyền tin theo chiều Chẳng hạn hình máy chủ a nhận tin từ máy máy khác, có số máy gửi tin đi, kênh thoại cho phép truyền tin theo hai chiều thay hai cạnh có hướng ngược chiều b a e d c l g k h i Hình Mạng máy với kênh thoại chiều Định nghĩa Đơn đồ thị có hướng G = (V,E) bao gồm V tập đỉnh E cặp có thứ tự gồm hai phần tử khác V gọi cung Nếu mạng có đa kênh thoại chiều, ta phải sử dụng đến khái niệm đa đồ thị có hướng: Định nghĩa Đa đồ thị có hướng G = (V,E) bao gồm V tập đỉnh E họ cặp có thứ tự gồm hai phần tử khác V gọi cung Hai cung e1, e2 tương ứng với cặp đỉnh gọi cung lặp Trong phần tử chủ yếu làm việc với đơn đồ thị vô hướng đơn đồ thị có hướng Vì vậy, để ngắn gọn, ta bỏ qua tính từ đơn nhắc đến chúng 1.2 Các thuật ngữ Trong phần trình bày số thuật ngữ lý thuyết đồ thị Trước tiên, ta xét thuật ngữ mô tả đỉnh cạnh đồ thị vô hướng Định nghĩa Hai đỉnh u v đồ thị vô hướng G gọi kề (u,v) cạnh đồ thị G Nếu e = (u,v) cạnh đồ thị ta nói cạnh liên thuộc với hai đỉnh u v, nói cạnh e nối đỉnh u đỉnh v, đồng thời đỉnh u v gọi đỉnh đầu cạnh (u,v) Để biết có cạnh liên thuộc với cạnh, ta đưa vào định nghĩa sau Định nghĩa Ta gọi bậc đỉnh v đồ thị vô hướng số cạnh liên thuộc với ký hiệu deg(v) a b c d f e g Hình Đồ thị vô hướng G Thí dụ Xét đồ thị hình ta có deg(a) = 1, deg(b) = 4, deg(c) = 4, deg(f) = 3, deg(d) = 1, deg(e) = 3, deg(g) = Đỉnh bậc gọi đỉnh cô lập Đỉnh bậc gọi đỉnh treo Trong ví dụ đỉnh g đỉnh cô lập, a d đỉnh treo Bậc đỉnh có tính chất sau: Định lý Giả sử G = (V,E) đồ thị vô hướng với m cạnh Khi 2m   deg(v) vV Chứng minh Rõ ràng cạnh e = (u,v) tính lần deg(u) lần deg(v) Từ suy tổng tất bậc đỉnh hai lần số cạnh Hệ Trong đồ thị vô hướng, số đỉnh bậc lẻ (nghĩa đỉnh có bậc số lẻ) số chẵn Chứng minh Thực gọi V1 V2 tương ứng tập chứa đỉnh bậc lẻ tập chứa đỉnh bậc chẵn đồ thị Ta có 2m   deg(v)  vV  deg(v)   deg(v) vV1 vV2 Do deg(v) chẵn với v đỉnh U nên tổng thứ hai vế phải số chẵn Từ suy tổng thứ (chính tổng bậc đỉnh lẻ) phải số chẵn, tất số hạng số lẻ nên tổng phải gồm số chẵn số hạng Vì số đỉnh bậc lẻ phải số chẵn Ta xét thuật ngữ tương tự cho đồ thị có hướng Định nghĩa Nếu e = (u,v) cung đồ thị có hướng G ta nói hai đỉnh u v kề nhau, nói cung (u,v) nối đỉnh u với đỉnh v nói cung khỏi đỉnh u vào đỉnh v Đỉnh u(v) gọi đỉnh đầu(cuối) cung (u,v) Định nghĩa Ta gọi bán bậc (bán bậc vào) đỉnh v đồ thị có hướng số cung đồ thị khỏi (đi vào nó) ký hiệu deg+(v)(deg (v)) Hệ Trong đồ thị vô hướng, số đỉnh bậc lẻ (nghĩa đỉnh có bậc số lẻ) số chẵn Chứng minh Thực gọi V1 V2 tương ứng tập chứa đỉnh bậc lẻ a b e d c Hình Đồ Thị có hướng G Thí dụ Xét đồ thị cho hình Ta có deg-(a) = 1, deg-(b) = 2, deg-(c) = 2, deg-(d) = 2, deg -(e) = deg+(a) = 3, deg+(b) = 1, deg+(c) = 1, deg +(d) = 2, deg +(e) = Do cung (u,v) tính lần bán bậc vào đỉnh v lần bán bậc đỉnh u nên ta có: Định lý Giả sử G = (V,E) đồ thị có hướng Khi  deg  (v)   deg  (v) | E | vV vV Rất nhiều tính chất đồ thị có hướng không phụ thuộc vào hướng cung Vì vậy, nhiều trường hợp thuận tiện ta bỏ qua hướng cung đồ thị Đồ thị vô hướng thu cách bỏ qua hướng cung gọi đồ thị vô hướng tương ứng với đồ thị có hướng cho 1.3 Đường đi, chu trình Đồ thị liên thông Định nghĩa Đường độ dài n từ đỉnh u đến đỉnh v, n số nguyên dương, đồ thị vô hướng G = (V,E) dãy x0, x1,…, xn-1, xn Trong u = x0, v = xn, v = (xi, xi+1)  E, i = 0,1,2,…, n-1 Đường nói biểu diễn dạng dãy cạnh: (x0,x1), (x1,x2),…, (xn-1,xn) Đỉnh u gọi đỉnh đầu, đỉnh v gọi đỉnh cuối đường Đường có đỉnh đầu trùng với đỉnh cuối (tức u = v) gọi chu trình Đường hay chu trình gọi đơn cạnh bị lặp lại Thí dụ Trên đồ thị vô hướng cho hình 1: a, d, c, f, e đường đơn độ dài Còn d, e, c, a không đường đi, (e,c) cạnh đồ thị Dãy b, c, f, e, b chu trình độ dài Đường a, b, e, d, a, b có độ dài là đường đơn, cạnh (a,b) có mặt hai lần a b c a b c d e f d e f Hình Đường đồ thị Khái niệm đường chu trình đồ thị có hướng định nghĩa hoàn toàn tương tự trường hợp đồ thị vô hướng, khác ta có ý đến hướng cung Định nghĩa Đường độ dài n từ đỉnh u đến đỉnh v, n số nguyên dương, đồ thị có hướng G = (V,A) dãy x0, x1,…, xn-1, xn u = x0, v = xn, (xi, xi+1)  A, i = 0, 1, 2,…, n-1 10 } return so;} private void btnhapActionPerformed(java.awt.event.ActionEvent evt) { taobang(stname.length-1); for(int i=0;i

Ngày đăng: 04/08/2016, 15:50

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

Tài liệu liên quan