đồ án công nghệ thông tin Trình bày thuật toán di truyền giải bài toán Cây Steiner trên đồ thị.

77 746 0
đồ án công nghệ thông tin Trình bày thuật toán di truyền giải bài toán Cây Steiner trên đồ 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

Giải thuật di truyền giải bài toán cây Steiner MỤC LỤC DANH MỤC HÌNH 4 DANH MỤC BẢNG 6 LỜI MỞ ĐẦU 7 CHƯƠNG 1 8 GIỚI THIỆU BÀI TOÁN 8 1. MỘT SỐ CÁC KHÁI NIỆM CƠ SỞ 8 1.1. Đồ thị 8 1.2. Cấu trúc dữ liệu biểu diễn đồ thị 11 2.3 Danh sách kề 12 1.3. Các thuật toán trên đồ thị 13 1.4. Bài toán tối ưu 19 2. BÀI TOÁN CÂY STEINER 23 2.1. Lịch sử bài toán cây Steiner 23 2.2. Lời giải cho bài toán 3 điểm của Fermat 24 2.3. Hệ số Steiner cho trường hợp ba điểm 27 2.4. Mô tả bài toán cây Steiner trên đồ thị 28 2.5. Một số ứng dụng của bài toán 28 2.6. Các thuật toán giải đúng 31 CHƯƠNG 2 35 GIẢI THUẬT DI TRUYỀN 35 1. GIỚI THIỆU VÀ LỊCH SỬ PHÁT TRIỂN 35 2. CÁC KHÁI NIỆM CƠ BẢN 35 2.1. Nhiễm sắc thể (Chromosome) 35 2.2. Quần thể (Population) 35 2.3. Chọn lọc (Selection) 36 2.4. Lai ghép (CrossOver) 36 2.5. Đột biến (Mutation) 36 2.6. Hàm thích nghi (Fitness Function) 36 3. KHÔNG GIAN TÌM KIẾM (SEARCH SPACE) 36 4. MÔ TẢ GA 36 5. CÁC THAM SỐ CỦA GA 38 5.1. Kích thước quần thể 38 5.2. Xác suất lai ghép 38 5.3. Xác suất đột biến 38 6. KHỞI TẠO QUẦN THỂ BAN ĐẦU VÀ CHỌN LỌC CÁ THỂ 39 6.1. Khởi tạo quần thể 39 6.2. Hàm tính độ thích nghi 39 6.3. Chọn lọc 39 Nguyễn Thanhh Tăng-KHMT-K48 1 Giải thuật di truyền giải bài toán cây Steiner 7. CÁC TOÁN TỬ DI TRUYỀN 41 7.1. Mã hóa nhiễm sắc thể 41 7.2. Lai ghép (CrossOver) 43 7.3. Đột biến (Mutation) 46 8. CHIẾN LƯỢC NẠP LẠI QUẦN THỂ 47 8.1. Nạp lại hoàn toàn 47 8.2. Nạp lại ngẫu nhiên 47 8.3. Nạp lại theo mô hình cá thể ưu tú 47 9. ĐIỀU KIỆN DỪNG CỦA GA 48 10. ĐẶC ĐIỂM VÀ ỨNG DỤNG CỦA GA 48 10.1. Đặc điểm 48 10.2. Ứng dụng 49 CHƯƠNG 3 50 GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN CÂY STEINER 50 1. MÃ HÓA LỜI GIẢI 50 2. PHƯƠNG PHÁP KHỞI TẠO QUẦN THỂ BAN ĐẦU 51 3. CHỌN LỌC 52 3.1. Chọn lọc xếp hạng tuyến tính 52 3.2. Chọn lọc xếp hạng phi tuyến 52 3.3. Chọn lọc cạnh tranh 52 4. LAI GHÉP 52 4.1. Lai ghép hai cha mẹ 52 4.2. Lai ghép nhiều cha mẹ 53 5. ĐỘT BIẾN 53 5.1. Đột biến chuẩn 53 5.2. Đột biến đổi chỗ 54 5.4. Phép đột biến thêm đỉnh 55 5.5. Phép đột biến xóa đỉnh 55 6. TỐI ƯU CÂY 55 CHƯƠNG 4 57 KẾT QUẢ THỰC NGHIỆM 57 1. DỮ LIỆU THỬ NGHIỆM 57 1.2. Đặc điểm dữ liệu 57 1.3. Định dạng file dữ liệu vào 58 2. MÔI TRƯỜNG THỬ NGHIỆM 59 3. CÀI ĐẶT THỬ NGHIỆM 60 3.1. Các tham số 60 3.2.Các hàm chính trong chương trình 63 4. KẾT QUẢ THỬ NGHIỆM 64 4.1.Các bảng kết quả 64 Nguyễn Thanhh Tăng-KHMT-K48 2 Giải thuật di truyền giải bài toán cây Steiner 4.2.So sánh các kết quả 71 CHƯƠNG 5 74 HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH 74 1.CHƯƠNG TRÌNH 74 2. CHẠY CHƯƠNG TRÌNH GIẢI BÀI TOÁN CHO MỘT FILE DỮ LIỆU VÀO 74 3. CHẠY CHƯƠNG TRÌNH GIẢI BÀI TOÁN CHO NHIỀU FILE DỮ LIỆU VÀO 74 KẾT LUẬN 75 TÀI LIỆU THAM KHẢO 76 Nguyễn Thanhh Tăng-KHMT-K48 3 Giải thuật di truyền giải bài toán cây Steiner DANH MỤC HÌNH HÌNH 1.1. ĐỒ THỊ VÔ HƯỚNG (TRÁI) VÀ ĐỒ THỊ CÓ HƯỚNG (PHẢI) .8 HÌNH 1.2. ĐỒ THỊ VÔ HƯỚNG LIÊN THÔNG 9 HÌNH 1.3. CÂY 10 HÌNH 1.4. ĐỒ THỊ VÀ CÂY KHUNG 10 HÌNH 1.5. ĐỒ THỊ VÀ CÂY KHUNG NHỎ NHẤT 10 HÌNH 1.6. BIỂU DIỄN ĐỒ THỊ BẰNG MA TRẬN KỀ 11 HÌNH 1.7. BIỂU DIỄN ĐỒ THỊ BẰNG DANH SÁCH CẠNH CUNG 12 HÌNH 1.8. DANH SÁCH KỀ VÀ MA TRẬN KỀ TƯƠNG ỨNG 13 HÌNH 1.9. ĐƯỜNG ĐI NGẮN NHẤT ĐẾN CÁC ĐỈNH CÒN LẠI 17 HÌNH 1.10. ĐỒ THỊ CÓ HƯỚNG KHÔNG CÓ CHU TRÌNH ÂM 18 HÌNH 1.11. MẠCH LOGIC, ĐẦU VÀO ĐƯỢC NHẬP TỪ BÊN TRÁI VÀ ĐẦU RA Ở BÊN PHẢI 21 HÌNH 1.12. CÁC LỚP BÀI TOÁN P, NP VÀ CO-NP 22 HÌNH 1.13. PHÂN LỚP TẠM THỜI CÁC BÀI TOÁN 23 HÌNH 1.14. BÀI TOÁN CỦA FERMAT VỚI N=3 24 HÌNH 1.15. GIẢI PHÁP CỦA TORRICELLI 24 HÌNH 1.16. GIẢI PHÁP CỦA SIMPSON 25 HÌNH 1.17. ĐIỀU KIỆN VỀ GÓC 25 HÌNH 1.18. CÂY STEINER CHO BA ĐIỂM 27 HÌNH 1.19. MINH HỌA CHO LỜI GIẢI BÀI TOÁN TÌM HỆ SỐ STEINER. 27 HÌNH 1.20. CÂY STEINER TRÊN ĐỒ THỊ LƯỚI 31 HÌNH 2.1. XÁC SUẤT CỦA MỖI NST THEO KIỂU LỰA CHỌN ROULET. 40 HÌNH 2.2. TRẠNG THÁI QUẦN THỂ TRƯỚC KHI SẮP XẾP (ĐỒ THỊ THEO HÀM THÍCH NGHI) 40 HÌNH 2.3. TRẠNG THÁI QUẦN THỂ SAU KHI SẮP XẾP (ĐỒ THỊ THEO THỨ TỰ) 41 HÌNH 2.4. LAI GHÉP MỘT ĐIỂM CẮT MÃ HÓA NHỊ PHÂN 44 HÌNH 2.5. LAI GHÉP HAI ĐIỂM CẮT MÃ HÓA NHỊ PHÂN 44 HÌNH 2.6. LAI GHÉP ĐỒNG NHẤT MÃ HÓA NHỊ PHÂN 44 Nguyễn Thanhh Tăng-KHMT-K48 4 Giải thuật di truyền giải bài toán cây Steiner HÌNH 2.7. LAI GHÉP SỐ HỌC MÃ HÓA NHỊ PHÂN 45 HÌNH 2.8. LAI GHÉP VỚI LƯU TRỮ CẤU TRÚC CÂY 45 HÌNH 2.9. PHÉP ĐỘT BIẾN VỚI MÃ HÓA CẤU TRÚC CÂY 46 HÌNH 2.10. CHIẾN LƯỢC NẠP LẠI HOÀN TOÀN 47 HÌNH 2.11. CHIẾN LƯỢC NẠP LẠI NGẪU NHIÊN 47 HÌNH 2.12. NẠP THEO MÔ HÌNH CÁ THỂ ƯU TÚ 47 HÌNH 3.1. ĐỒ THỊ CON VÀ MÃ TƯƠNG ỨNG 50 HÌNH 3.2. HAI TRONG SỐ NHIỀU ĐỒ THỊ CON TƯƠNG ỨNG VỚI CHUỖI MÃ 1110110 51 HÌNH 3.3. MINH HỌA NHIỄM SẮC THỂ HỢP LỆ 51 HÌNH 3.4. LAI GHÉP HAI CHA MẸ 53 HÌNH 3.5. LAI GHÉP NHIỀU CHA MẸ 53 HÌNH 4.1. ĐỒ THỊ MINH HỌA CHO FILE DỮ LIỆU 58 HÌNH 4.2. ĐỒ THỊ SO SÁNH HIỆU QUẢ LÀM VIỆC CỦA CÁC PHÉP LAI GHÉP 71 HÌNH 4.3. ĐỒ THỊ SO SÁNH HIỆU QỦA LÀM VIỆC CỦA CÁC PHÉP ĐỘT BIẾN 72 HÌNH 4.4. ĐỒ THỊ SO SÁNH HIỆU QUẢ CỦA CÁC PHÉP CHỌN LỌC 73 HÌNH 5.1. GIAO DIỆN CHƯƠNG TRÌNH 74 Nguyễn Thanhh Tăng-KHMT-K48 5 Giải thuật di truyền giải bài toán cây Steiner DANH MỤC BẢNG BẢNG 1.1. MỘT SỐ GIẢI THUẬT GẦN ĐÚNG CHO BÀI TOÁN TRÊN ĐỒ THỊ 30 BẢNG 2.2: MÃ HÓA HOÁN VỊ 2 NST A&B 42 BẢNG 2.3: MÃ HÓA GIÁ TRỊ CÁC NST A,B,C 43 BẢNG 2.4: MÃ HÓA NST A THEO CẤU TRÚC CÂY 43 BẢNG 2.5: MẶT NẠ LAI GHÉP ĐỒNG NHẤT 44 BẢNG 2.6: LAI GHÉP MỘT ĐIỂM CẮT MÃ HÓA HOÁN VỊ 45 BẢNG 2.7: PHÉP ĐẢO BIT MÃ HÓA NHỊ PHÂN 46 BẢNG 2.8. HOÁN VỊ THỨ TỰ MÃ HÓA HOÁN VỊ 46 BẢNG 2.9. THAY ĐỔI GIÁ TRỊ TRONG MÃ HÓA GIÁ TRỊ 46 BẢNG 4.1. KẾT QUẢ SO SÁNH CÁC PHÉP LAI GHÉP TRÊN BỘ DỮ LIỆU I160 64 BẢNG 4.2. KẾT QUẢ SO SÁNH GLMIN VỚI MỘT SỐ GIẢI THUẬT GẦN ĐÚNG KHÁC TRÊN BỘ DỮ LIỆU I160 65 BẢNG 4.3. KẾT QUẢ SO SÁNH CÁC PHÉP LAI GHÉP TRÊN BỘ DỮ LIỆU I320 66 BẢNG 4.4. KẾT QUẢ SO SÁNH GLMIN VỚI MỘT SỐ GIẢI THUẬT GẦN ĐÚNG KHÁC TRÊN BỘ DỮ LIỆU I320 67 BẢNG 4.5. KẾT QUẢ SO SÁNH CÁC PHÉP LAI GHÉP TRÊN BỘ DỮ LIỆU I640 68 BẢNG 4.6. KẾT QUẢ SO SÁNH CÁC PHÉP LAI GHÉP TRÊN BỘ DỮ LIỆU I640(TIẾP) 69 BẢNG 4.7. KẾT QUẢ SO SÁNH CÁC PHÉP LAI GHÉP TRÊN BỘ DỮ LIỆU THỰC TẾ 70 BẢNG 4.8. KẾT QUẢ SO SÁNH GLMIN VỚI MỘT SỐ GIẢI THUẬT GẦN ĐÚNG KHÁC TRÊN BỘ DỮ LIỆU THỰC TẾ 70 Nguyễn Thanhh Tăng-KHMT-K48 6 Giải thuật di truyền giải bài toán cây Steiner LỜI MỞ ĐẦU Bài toán cây Steiner trong đồ thị là một bài toán NP-khó trong nhóm các bài toán thiết kế mạng (network designed problem). Bài toán tìm cây Steiner nhỏ nhất trên đồ thị được ứng dụng trong nhiều lĩnh vực thực tế như thiết kế mạng viễn thông, thiết kế vi mạch hay nghiên cứu sự tiến hóa trong sinh học…. Do tầm quan trọng của bài toán, rất nhiều hướng tiếp cận để giải xấp xỉ bài toán đã được đề xuất với mục đích đưa ra lời giải xấp xỉ tốt nhất với thời gian chấp nhận được. Trong đồ án này trình bày cách giải quyết bài toán theo thuật toán di truyền, đây là một hướng giải quyết khá thành công. Cấu trúc đồ án gồm có năm chương như sau: • Chương 1. Trình bày lý thuyết cơ sở về đồ thị và bài toán Cây Steiner. • Chương 2. Trình bày lý thuyết cơ bản về giải thuật di truyền. • Chương 3. Trình bày thuật toán di truyền giải bài toán Cây Steiner trên đồ thị. • Chương 4. Các kết quả thực nghiệm. • Chương 5. Hướng dẫn sử dụng chương trình. Để có được kết quả này, em xin gửi lời cảm ơn chân thành nhất đến cô giáo Ths.Huỳnh Thị Thanh Bình bộ môn khoa học máy tính, cơ đã tận tình hướng dẫn, chỉ bảo em trong quá trình thực tập và làm đồ án. Em xin gửi lời cảm ơn đến thầy Nguyễn Việt Huy bộ môn khoa học máy tính, thầy đã nhiệt tình giúp đỡ em trong việc tìm hiểu bài toán. Em xin gửi lời cảm ơn đến tất cả các thầy cô trong bộ môn khoa học máy tính, các thầy cô đã giúp chúng em có rất nhiều kiến thức rất bổ ích. Cuối cùng, em xin gửi lời cảm ơn đến gia đình và bạn bè, mọi người là nguồn động viên tinh thần rất lớn cho em! Hà nội, tháng 5 năm 2008 Sinh viên Nguyễn Thanh Tăng Nguyễn Thanhh Tăng-KHMT-K48 7 Giải thuật di truyền giải bài toán cây Steiner CHƯƠNG 1 GIỚI THIỆU BÀI TOÁN 1. Một số các khái niệm cơ sở 1.1. Đồ thị 1.1.1. Định nghĩa đồ thị Đồ thị là một cấu trúc rời rạc bao gồm các đỉnh và các cạnh nối các đỉnh này, các loại đồ thị được phân biệt bởi sự khác biệt giữa kiểu cũng như số lượng cạnh nối các đỉnh của đồ thị. Trong các tài liệu, khái niệm về đồ thị đôi khi được đề cập không đồng nhất, dưới đây đưa ra một số định nghĩa về đồ thị [32]. Hình 1.1. Đồ thị vô hướng (trái) và đồ thị có hướng (phải). Định nghĩa 1: Đơn đồ thị vô hướng G=(V, E) bao gồm V là tập các đỉnh, và E là tập các cặp không có thứ tự gồm hai phần tử khác nhau của V gọi là cạnh. Định nghĩa 2: Đa đồ thị vô hướng G=(E, V) bao gồm V là tập các đỉnh và E là họ các cặp không có thứ tự gồm hai phần tử khác nhau của V gọi là các cạnh. Hai cạnh e 1 và e 2 được gọi là cạnh lặp nếu chúng cùng tương ứng với một cặp đỉnh. Đồ thị có trọng số là một khái niệm hết sức quan trọng trong các nghiên cứu lý thuyết về đồ thị bởi tính ứng dụng rộng dãi của nó. Ví dụ, một mạng máy tính mô phỏng bằng đồ thị thì trọng số có thể là khoảng cách vật lý hoặc thông lượng truyền dữ liệu giữa hai máy tính được nối trực tiếp trong mạng, một mạng lưới giao thông có thể được mô phỏng bằng một đồ thị có trọng số trong đó trọng số của mỗi cạnh nối hai đỉnh có thể được dựng để biểu diễn khoảng cách vật lý của đoạn đường nối hai điểm này… Trên thực tế, có rất nhiều bài toán được mô phỏng rất mềm dẻo trên đồ thị và đã cho những kết quả lời giải rất tốt. 1.1.2. Đường đi và chu trình Định nghĩa 1 : Cho đồ thị G = (V, E). Đường đi từ đỉnh s đến đỉnh t trên G là dãy các đỉnh : P st : s = v 0 , v 1 , v 1 , …, v k-1 ,v k = t Trong đó : (v i-1 , v i ) ∈ E ∀ i = 1, k k : độ dài đường đi P st ( bằng số lượng cạnh trên đường đi) Nguyễn Thanhh Tăng-KHMT-K48 8 Giải thuật di truyền giải bài toán cây Steiner Đường đi P st được biểu diễn theo dãy cạnh (v 0 ,v 1 ), (v 1 ,v 2 ), …, (v k-1 ,v k Đinh nghĩa 2 : Chu trình là một đường đi không có cạnh nào bị lặp lại và cóđỉnhđầutrùng đỉnh cuối. 1.1.3. Đồ thị vô hướng và liên thông Định nghĩa : Đồ thị vô hướng G = (V, E) gọi là liên thông nếu luôn tồn tại đường đi giữa mọi cặp đỉnh phân biệt trên đồ thị. Hình 1.2. Đồ thị vô hướng liên thông. 1.1.4. Cây Định nghĩa : Cây là một đơn đồ thị vô hướng, liên thông không chứa chu trình. Bậc của đỉnh: là số cạnh xuất phát hoặc kết thúc tại đỉnh đó. Nguyễn Thanhh Tăng-KHMT-K48 9 Giải thuật di truyền giải bài toán cây Steiner Hình 1.3. Cây. 1.1.5. Cây khung của đồ thị Hình 1.4. Đồ thị và cây khung. Định nghĩa : Cho G = (V, E) là một đơn đồ thị vô hướng liên thông với |V| = n đỉnh và |E| = m cạnh. Cây T = (V, F) với F ⊂ E được gọi là cây khung của đồ thị G. ( Khi đó |F| = m-1 ). Cây khung có bậc bị chặn (Degree-constrained Spanning Tree): Cho số nguyên d ≥ 2, cây khung có bậc bị chặn là cây khung T trên đồ thị G mà bậc của mỗi đỉnh của nó không vượt quá d. Trọng số của cạnh : Mỗi cạnh e trên G được gán một giá trị được gọi là trọng số của cạnh. Trọng số của cây khung: Trọng số của cây khung sẽ là tổng trọng số của các cạnh trên cây khung đó. Trọng số cây khung T của G được tính bởi : Cây khung nhỏ nhất (MST- Minimum Spanning Tree): Cây khung nhỏ nhất của G là cây khung T có trọng số nhỏ nhất. Hình 1.5. Đồ thị và cây khung nhỏ nhất. Nguyễn Thanhh Tăng-KHMT-K48 10 [...]... đều đã được áp dụng để giải bài toán cây Steiner Đây là các kỹ thuật tìm kiếm tối ưu cục bộ nhưng thực hiện lặp nhiều lần trong toàn bộ không gian Trong phần tiếp theo của đồ án sẽ trình bày thuật toán di truyền áp dụng vào giải bài toán cây Steiner trên đồ thị Nguyễn Thanhh Tăng-KHMT-K48 34 Giải thuật di truyền giải bài toán cây Steiner CHƯƠNG 2 GIẢI THUẬT DI TRUYỀN Giải thuật di truyền (Genentic Algorithm-GA)... Tăng-KHMT-K48 NP đầy đủ 22 Giải thuật di truyền giải bài toán cây Steiner Hình 1.13 Phân lớp tạm thời các bài toán Một trong những phương pháp hay được sử dụng để tìm lời giải xấp xỉ cho bài toán NP-khó là sử dụng giải thuật di truyền Phần tiếp theo của đồ án sẽ giới thiệu chi tiết về giải thuật di truyền 2 Bài toán cây Steiner 2.1 Lịch sử bài toán cây Steiner Lịch sử bài toán Steiner tree(ST) đã có từ rất... nằm trên cạnh nối từ gốc (tổ tiên) đến lá (các loài) Trọng số của các cạnh đo bằng khoảng cách Hamming 2.6 Các thuật toán giải đúng Như trình bày trong các mục ở trên, bài toán cây Steiner trên đồ thị thuộc lớp NP-khó Các thuật toán giải chính xác hiện biết đều chưa thể đạt tới thời gian đa Nguyễn Thanhh Tăng-KHMT-K48 31 Giải thuật di truyền giải bài toán cây Steiner thức Mục này trình bày hai thuật toán. .. chúng được gọi là các nút Steiner Bài toán cây Steiner trên đồ thị, sẽ ký hiệu là SPG, được phát biểu như sau: Tìm cây Steiner T có trọng số nhỏ nhất trong tất cả các cây Steiner của đồ thị Cây T như vậy được gọi là cây Steiner nhỏ nhất (Steiner minimal tree – viết tắt là SMT) Bài toán cây Steiner trên đồ thị thuộc lớp NP-khó [13], do vậy một thuật toán đa thức giải bài toán là không tồn tại, ngoại... đỉnh của đồ thị sau thời gian cỡ O(n3) 1.4 Bài toán tối ưu 1.4.1 Một số khái niệm a Độ phức tạp của thuật toán Là đánh giá lượng tài nguyên các loại mà các thuật toán đòi hỏi sử dụng Có hai loại tài nguyên quan trọng là thời gian và bộ nhớ Đánh giá độ phức tạp tính toán của bài toán là đưa ra thời gian tính của thuật toán tốt nhất tổng số các thuật toán giải bài toán đã và chưa biết b Thuật toán có thời... khác của bài toán cây Steiner Độ phức tạp của bài toán SPG được thể hiện trong định lý dưới đây (Karp 1972) Bài toán cây Steiner trên đồ thị là NP-khó ngay cả khi các cạnh có trọng số đơn vị Hai trường hợp riêng cho bài toán cây Steiner giải được với thuật toán hiệu quả là: (1) tất cả các đỉnh của đồ thị đều là đỉnh kết thúc, (2) chỉ có 2 đỉnh kết thúc Với bài toán (1), lời giải chính là cây khung... 14 Giải thuật di truyền giải bài toán cây Steiner 5 If not Daxet[u] then BFS(u); 6 End; Tương tự như thuật toán tìm kiếm theo chiều sâu, ở thuật toán này mỗi lần gọi thủ tục BFS(u) thì mọi đỉnh cùng thành phần liên thông với u sẽ được thăm Thủ tục Visit(u) như đã nói ở trên 1.3.2 Bài toán cây khung cực tiểu Bài toán: Giả sử G=(V, E) là đồ thị vô hướng liên thông với trọng số trên cạnh w(e), e E Cây. .. quá giá trị ce) Trên đây là một số dạng bài toán cây Steiner trên đồ thị, mỗi bài toán có ứng dụng riêng của nó Trong thực tế, bài toán dạng tổng quát được sử dụng nhiều hơn cả và các nghiên cứu về nó có số lượng vượt trội so với các dạng bài toán khác Các giải thuật giải bài toán dạng tổng quát hầu hết là các giải thuật xấp xỉ, một số khác là các giải thuật heuristic Đối với các giải thuật xấp xỉ, một... trình) T = T U {e}; endif endwhile if (|T| < n-1) Nguyễn Thanhh Tăng-KHMT-K48 15 Giải thuật di truyền giải bài toán cây Steiner 12 13 14 Ghi nhận đồ thị không liên thông; endif END Thuật toán Kruskal tìm cây khung nhỏ nhất của đồ thị với thời gian O(elogn) với e và n tương ứng là số cạnh và đỉnh của đồ thị b Thuật toán Prim Thuật toán Kruskal làm việc kém hiệu quả với những đồ thị dày (đồ thị với số cạnh... mạng Hình 1.20 Cây Steiner trên đồ thị lưới Việc thiết kế VLSI, các đường nối chỉ là các đường ngang dọc trên bảng mạch Bài toán tối ưu chiều dài dây nối được đưa về một biến thể của bài toán cây Steiner, đó là bài toán cây Steiner thẳng góc trên đồ thị lưới 2.5.8 Thiết kế mạng viễn thông Quy trình thiết kế mạng viễn thông đặc biệt phức tạp bởi cùng lúc phải xét các bài toán về thông lượng, truyền tải, . cơ sở về đồ thị và bài toán Cây Steiner. • Chương 2. Trình bày lý thuyết cơ bản về giải thuật di truyền. • Chương 3. Trình bày thuật toán di truyền giải bài toán Cây Steiner trên đồ thị. • Chương. biểu di n đồ thị 11 2.3 Danh sách kề 12 1.3. Các thuật toán trên đồ thị 13 1.4. Bài toán tối ưu 19 2. BÀI TOÁN CÂY STEINER 23 2.1. Lịch sử bài toán cây Steiner 23 2.2. Lời giải cho bài toán 3. cây Steiner LỜI MỞ ĐẦU Bài toán cây Steiner trong đồ thị là một bài toán NP-khó trong nhóm các bài toán thiết kế mạng (network designed problem). Bài toán tìm cây Steiner nhỏ nhất trên đồ thị

Ngày đăng: 30/04/2015, 09:52

Từ khóa liên quan

Mục lục

  • DANH MỤC HÌNH

  • DANH MỤC BẢNG

  • LỜI MỞ ĐẦU

  • CHƯƠNG 1

  • GIỚI THIỆU BÀI TOÁN

    • 1. Một số các khái niệm cơ sở

      • 1.1. Đồ thị

        • 1.1.1. Định nghĩa đồ thị

          • Hình 1.1. Đồ thị vô hướng (trái) và đồ thị có hướng (phải).

          • 1.1.2. Đường đi và chu trình

          • 1.1.3. Đồ thị vô hướng và liên thông

            • Hình 1.2. Đồ thị vô hướng liên thông.

            • 1.1.4. Cây

              • Hình 1.3. Cây.

              • 1.1.5. Cây khung của đồ thị

                • Hình 1.4. Đồ thị và cây khung.

                • Hình 1.5. Đồ thị và cây khung nhỏ nhất.

                • 1.2. Cấu trúc dữ liệu biểu diễn đồ thị

                  • 1.2.1 Ma trận kề, ma trận trọng số

                    • Hình 1.6. Biểu diễn đồ thị bằng ma trận kề.

                    • 1.2.2. Danh sách cạnh, cung

                      • Hình 1.7. Biểu diễn đồ thị bằng danh sách cạnh cung.

                      • 2.3 Danh sách kề

                        • Hình 1.8. Danh sách kề và ma trận kề tương ứng.

                        • 1.3. Các thuật toán trên đồ thị

                          • 1.3.1. Thuật toán duyệt đồ thị

                            • a. Thuật toán tìm kiếm theo chiều sâu

                            • b. Thuật toán tìm kiếm theo chiều rộng

                            • 1.3.2. Bài toán cây khung cực tiểu

                              • a.Thuật toán Kruskal

                              • b. Thuật toán Prim

                              • 1.3.3. Tìm đường đi ngắn nhất

                                • a. Đường đi ngắn nhất từ một đỉnh

                                  • Hình 1.9. Đường đi ngắn nhất đến các đỉnh còn lại.

                                  • Thuật toán Dijkstra tìm được đường đi ngắn nhất trên đồ thị sau thời gian O(n2).

                                  • b. Đường đi ngắn nhất giữa tất cả các cặp đỉnh

                                    • Hình 1.10. Đồ thị có hướng không có chu trình âm.

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

Tài liệu liên quan