Giải bài toán tìm đường đi ngắn nhất với các cung có giá trị khoảng

77 552 0
Giải bài toán tìm đường đi ngắn nhất với các cung có giá trị khoảng

Đ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

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG Đặng Thị Mỹ Bình GIẢI BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT VỚI CÁC CUNG CÓ GIÁ TRỊ KHOẢNG Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS Nguyễn Tân Ân Thái nguyên, 2015 i LỜI CAM ĐOAN Luận văn kết nghiên cứu tổng hợp kiến thức mà học viên thu thập trình học tập trường Đại học Công nghệ thông tin Truyền thông - Đại học Thái Nguyên, hướng dẫn, giúp đỡ thầy cô bạn bè đồng nghiệp, đặc biệt hướng dẫn, giúp đỡ PGS TS Nguyễn Tân Ân Tôi xin cam đoan luận văn sản phẩm chép tài liệu khoa học Học viên Đặng Thị Mỹ Bình ii LỜI CẢM ƠN Đầu tiên xin gửi lời cảm ơn sâu sắc tới PGS TS Nguyễn Tân Ân, người hướng dẫn khoa học, tận tình bảo, giúp đỡ thực luận văn Tôi xin cảm ơn thầy cô trường Đại học Công nghệ thông tin Truyền thông - Đại học Thái Nguyên giảng dạy truyền đạt kiến thức cho Tôi xin chân thành cảm ơn Ban giám hiệu trường Cao đẳng Công nghiệp Thực Phẩm đồng nghiệp khoa Công nghệ thông tin tạo điều kiện giúp đỡ hoàn thành nhiệm vụ học tập Cuối cùng, xin cảm ơn người thân bạn bè chia sẻ, gúp đỡ hoàn thành luận văn Mặc dù cố gắng hoàn thành luận văn với tất nỗ lực thân, luận văn thiếu sót Kính mong nhận ý kiến đóng góp quý Thầy, Cô bạn bè đồng nghiệp Tôi xin chân thành cảm ơn! Việt trì ngày 10 tháng 06 năm 2015 Đặng Thị Mỹ Bình iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT v DANH LỤC HÌNH VẼ vi DANH LỤC BẢNG viii MỞ ĐẦU CHƯƠNG 1: BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT 1.1 Đồ thị 1.1.1 Các định nghĩa đồ thị 1.1.2 Đường đi, chu trình, đồ thị liên thông 1.1.3 Biểu diễn đồ thị ma trận 1.1.4 Ma trận trọng số 10 1.1.5 Danh sách cạnh 10 1.2 Bài toán tìm đường ngắn đồ thị có trọng số xác định 11 1.2.1 Định nghĩa 11 1.2.2 Các thuật toán 12 1.2.3 Thuật toán Dijkstra 12 1.3 Bài toán tìm đường ngắn đồ thị có trọng số mờ 18 1.3.1 Đặt toán 18 1.3.2 Một số cách biểu diễn giá trị mờ cung 20 iv 1.3.3 Biểu diễn giá trị mờ cung khoảng 22 1.4 Kết luận chương 26 CHƯƠNG II: SỐ HỌC KHOẢNG 27 2.1 Số học khoảng 27 2.1.1 Một số khái niệm 27 2.1.2 Tóm tắt số phương pháp xếp hạng khoảng 28 2.1.3 Biểu diễn thứ tự khoảng 30 2.1.4 Chọn giá trị lớn giá trị nhỏ để xác định khoảng 35 2.2 Áp dụng thuật toán Dijkstra toán tìm đường ngắn với độ dài cung khoảng 41 2.3 Kết luận chương 51 CHƯƠNG 3: CHƯƠNG TRÌNH ỨNG DỤNG 52 3.1 Bài toán 52 3.2 Xây dựng chương trình ứng dụng 52 3.2.1 Lựa chọn giải pháp 52 3.2.2 Thiết kế hệ thống 53 3.2.3 Một số giao diện chương trình 54 3.3 Kết luận chương 60 KẾT LUẬN VÀ KIẾN NGHỊ 61 TÀI LIỆU THAM KHẢO 63 PHỤ LỤC v DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT - DM: người định - Tên huyện, thành phố, thị xã tỉnh Phú Thọ: Tên huyện, thành, thị Kí hiệu Việt Trì TP1 Thị xã Phú Thọ TP2 Lâm Thao TP3 Phù Ninh TP4 Tam Nông TP5 Yên Lập TP6 Hạ Hòa TP7 Thanh Ba TP8 Thanh Thủy TP9 Thanh Sơn TP10 Tân Sơn TP11 Cẩm Khê TP12 Đoan Hùng TP13 vi DANH LỤC HÌNH VẼ Hình 1.1 Đơn đồ thị, giả đồ thị Hình 1.2 Bậc đồ thị Hình 1.3 Biểu diễn Đường Euler đồ thị Euler Hình 1.4 Đường đồ thị vô hướng Hình 1.5 Đường đồ thị Hình 1.6 Ma trận liền kề đỉnh Hình 1.7 Ma trận liền kề đỉnh Hình 1.8 Ma trận liên thuộc 10 Hình 1.9 Sơ đồ thuật toán Dijkstra 15 Hình 1.10 Đồ thị G toán áp dụng thuật toán Dijkstra 17 Hình 1.11 Tập mờ 22 Hình 1.12 Đồ thị hàm thuộc tập mờ 23 Hình 1.13 Đồ thị hàm thuộc tập A 24 Hình 1.14: Tập mờ lồi 24 Hình 1.15: Tập mờ chuẩn 24 Hình 1.16: Tập mờ vừa lồi vừa chuẩn 25 Hình 1.17: Tập α-cut tập mờ A 25 Hình 2.1: Hàm mức độ loại bỏ A cặp khoảng (A,X) thuộc S2 31 Hình 2.2 Bài toán mạng 42 Hình 2.3 Giải pháp cải tiến toán 45 Hình 2.4 Bản đồ US thời gian lái xe thành phố 47 vii Hình 3.1 Giao diện 55 Hình 3.2 Giao diện nhập liệu 56 Hình 3.3 Bài toán mạng thử nghiệm 56 Hình 3.4 Kết toán thử nghiệm 57 Hình 3.5 Kết toán ứng dụng 60 viii DANH LỤC BẢNG Bảng 1.1 Kết toán áp dụng thuật toán Dijkstra 18 Bảng 1.2 Phân bố khả học sinh theo điểm 21 Bảng 2.1 Phân tích nội dung ô bảng Fuzzy Rejection với toán tìm khoảng nhỏ (Interval Minimization) 34 Bảng 2.2 Bảng Fuzzy Rejection 38 Bảng 2.3 Bảng Fuzzy Rejection hoàn thiện, với ô (i,j) chứa giá trị thành viên mờ để xác định khả loại bỏ khoảng thứ i so với khoảng thứ j.39 Bảng 2.4 Bảng lựa chọn cuối 40 Bảng 2.5 Các đường từ Bostom tới Los Angeles độ dài chúng 49 Bảng 3.1 Bảng kí hiệu tên huyện thành thị tỉnh Phú Thọ 59 Bảng 3.2 Khảo sát thời gian lái xe huyện thành thị tỉnh Phú Thọ 59 MỞ ĐẦU I LÝ DO CHỌN ĐỀ TÀI Tìm đường ngắn đồ thị tức tìm đường ngắn từ nút cho trước đến nút khác cho trước Mỗi cung mạng thường biểu diễn cho thời gian vận chuyển chi phí việc lại… Bài toán nhiều tác giả quan tâm có ý nghĩa lớn thực tế Một thuật toán tiếng giải toán thuật toán Dijkstra Tuy nhiên, dễ nhận thấy rằng, giá trị mà cung biểu diễn (thời gian vận chuyển chi phí việc lại) dao động đáng kể tùy thuộc vào điều kiện giao thông, tải trọng cụ thể, vv Khi giá trị mờ toán trở thành toán tìm đường ngắn trường hợp “độ dài” cung mờ Rõ ràng, trường hợp thuật toán Dijkstra thông thường áp dụng Để giải toán trường hợp “độ dài” cung mờ, chọn đề tài: “GIẢI BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT VỚI CÁC CUNG CÓ GIÁ TRỊ KHOẢNG” Trong đó, thuật toán Dijkstra thiết kế lại để xử lý trường hợp mà hầu hết thông số không xác đưa khoảng Mặc dù số học khoảng thu hút nhiều nhà nghiên cứu, thực tế việc xếp thứ tự khoảng ứng dụng số học khoảng việc định người nghiên cứu Công trình ấn tượng vấn đề công trình Okada Gen (1994) [6] Tuy nhiên, thuật toán mà tác giả đề xuất sinh tập hợp khoảng so sánh được, kết giải nhiều toán với khoảng cách hiệu Cụ thể, Okada Gen (1994) cố gắng giải vấn đề với khoảng so sánh cách sử dụng chiến lược xếp hạng 54 chuyên gia phát triển truy vấn liệu việc mở rộng C#.NET Basic.NET để hỗ trợ cú pháp truy vấn giống SQL vốn có Ngôn ngữ lập trình C# ngôn ngữ lập trình hướng đối tượng phát triển Microsoft, phần khởi đầu cho kế hoạch NET họ Tên ngôn ngữ bao gồm ký tự thăng theo Microsoft theo ECMA C#, bao gồm dấu số thường Microsoft phát triển C# dựa C++ Java 3.2.2.2 Mô hình chương trình Input: - Mảng chiều M kích thước N*N biểu diễn khoảng cách (đơn vị thời gian) từ đỉnh đến đỉnh đồ N thành phố Trong phần tử mảng M[i, j] khoảng thể dạng kiểu liệu mảng chiều hai phần tử Left Right - Đỉnh xuất phát (đỉnh đầu), đỉnh đích (đỉnh cuối) Output: Đường ngắn từ đỉnh đầu đến đỉnh cuối độ dài đường thể khoảng 3.2.3 Một số giao diện chương trình 3.2.3.1 Giao diện 55 Hình 3.1 Giao diện Giao diện chương trình gồm có chức nhập liệu đưa kết 3.2.3.2 Các chức Giả sử nhập số thành phố toán Bảng nhập liệu tự động sinh 6*6 ô tương ứng để nhập thời gian lái xe huyện, thành phố Nhập thời gian lái xe huyện, thành phố vào ô bảng Mặc định khoảng cách TPi TPi (các phần tử đường chéo chính) Sau nhập thành phố đầu, thành phố cuối đường Hoàn thành việc nhập liệu nhấn nút "Hoàn thành nhập liệu" 56 Hình 3.2 Giao diện nhập liệu Nhấn nút "Kết quả" để đưa đường ngắn từ thành phố đầu đến thành phố cuối 3.2.3.3 Kết chạy thử nghiệm Bài toán thử nghiệm Chương trình áp dụng thuật toán Dijkstra tìm đường ngắn đồ thị toán mạng thử nghiệm đưa chương [30, 80] O [40, 40] [10, 20] [55, 87] [8, 10] [60, 100] [10, 30] [20, 60] Hình 3.3 Bài toán mạng thử nghiệm 57 Yêu cầu toán tìm đường ngắn từ đỉnh đến đỉnh (tương ứng với thành phố đến thành phố 6) thuật toán Dijkstra, độ dài cung khoảng Hình 3.4 Kết toán thử nghiệm Vậy đường ngắn với mức độ hợp lý DM từ thành phố đến thành phố với mức độ hợp lý DM     6.; tương ứng với đỉnh đồ thị mạng     Bài toán ứng dụng Xét toán tìm đường ngắn điểm tỉnh Phú Thọ Kí hiệu huyện, thành , thị tương ứng là: 58 Bảng 3.1 Bảng kí hiệu tên huyện thành thị tỉnh Phú Thọ Tên huyện, thành, thị Kí hiệu Việt Trì TP1 Thị xã Phú Thọ TP2 Lâm Thao TP3 Phù Ninh TP4 Tam Nông TP5 Yên Lập TP6 Hạ Hòa TP7 Thanh Ba TP8 Thanh Thủy TP9 Thanh Sơn TP10 Tân Sơn TP11 Cẩm Khê TP12 Đoan Hùng TP13 Số liệu thời gian lái xe huyện thành thị đưa bảng đây: 59 Bảng 3.2 Khảo sát thời gian lái xe huyện thành thị tỉnh Phú Thọ TP1 TP2 TP3 TP4 TP5 TP6 TP7 TP8 TP TP 10 TP 11 TP 12 TP 13 TP1 TP2 TP3 TP4 TP5 TP6 TP7 TP8 TP9 TP 10 0 10, 5, 25, 0 0 20 15 35 0 10, 10, 0 8, 0 14 12 12 10, 10, 0 17, 0 0 20 14 23 5, 10, 0 0 0 0 15 12 25, 17, 0 0 70, 35 23 80 0 0 0 0 28, 32 0 0 0 10, 0 12 8, 0 0 10, 0 12 12 0 0 70, 0 0 80 0 0 28, 0 0 32 0 0 0 0 4,6 TP TP TP 11 12 13 0 0 0 0 0 60, 70 15, 17 15, 17 0 0 0 0 0 60, 70 15, 17 15, 17 0 4,6 0 0 4,6 0 0 0 0 4,6 0 0 0 0 0 0 Trong đó, độ dài hai điểm thành phố xác định khoảng biểu diễn thời gian lái xe đơn vị phút (vì dao động đáng kể tùy thuộc vào điều kiện giao thông, tải trọng cụ thể, vv ) Áp dụng thuật toán Dijkstra để giải toán tìm đường ngắn thành phố 60 Hình 3.5 Kết toán ứng dụng Vậy để lái xe từ Việt Trì Hạ Hòa đường ngắn là: Việt Trì  Phù Ninh  Thị xã Phú Thọ  Thanh Ba  Hạ Hòa khoảng thời gian từ 70 đến 80 phút 3.3 Kết luận chương Trong chương này, luận văn trình bày phần mềm ứng dụng để tìm đường ngắn hai thành phố đồ thị, Minh họa liệu thực tế giao thông tỉnh Phú Thọ Từ cho thấy phương pháp đưa kết tốt việc tìm đường ngắn đồ thị mờ dạng khoảng đưa kết quan trọng dựa vào số liệu thực tế 61 KẾT LUẬN VÀ KIẾN NGHỊ Đồ thị có giá trị cung mờ nhà nghiên cứu xây dựng chưa lâu Trên thực tế, liệu thu theo thời gian thường chịu ảnh hưởng yếu tố khách quan chủ quan Trong việc xây dựng xếp giá trị mờ dạng khoảng cung chưa thực tối ưu Vì vậy, việc nghiên cứu giải toán tìm đường ngắn đồ thị mờ hướng đắn Luận văn trình bày giải số vấn đề sau: Trình bày cách tổng quan lý thuyết đồ thị thuật toán Dijkstra giải toán tìm đường ngắn có trọng số xác định rõ Tập trung nghiên cứu đồ thị có giá trị cung mờ dạng khoảng, xắp xếp khoảng, áp dụng thuật Dijkstra để giải toán tìm đường ngắn biểu diễn dạng cung đường số mờ dạng khoảng Các toán đường ngắn chia thành dạng chính: - Tìm đường ngắn từ nút nguồn đến nút đích cho trước - Tìm đường ngắn từ nút nguồn đến tất nút đích - Tìm đường ngắn hai nút Bài toán đề cập đến toán dạng thứ nhất: tìm đường ngắn từ nút nguồn đến nút đích cho trước Mục đích chuyển toán đường ngắn dạng toán có giá trị mờ dạng khoảng xếp khoảng Đồng thời đường có cung mờ ngắn đường tối ưu dựa độ xác cao 62 Nếu điều kiện cho phép, luận văn tiếp tục mở rộng ứng dụng mô hình tìm đường ngắn phạm vi rộng 63 TÀI LIỆU THAM KHẢO Tiếng Việt: [1] Nguyễn Đức Nghĩa, Nguyễn Tô Thành (2009), Toán rời rạc, Nxb Đại học Quốc gia Hà Nội Tiếng Anh [2] Cat Ho, N and H Van Nam (2002), An algebraic approach to linguistic hedges in Zadeh's fuzzy logic, Fuzzy Set and System, 129, 229-254 [3] Ishibuchi, H., H Tanaka (1990), Multiobjective Programming in Optimization of the Interval Objective Function, European Journal of Operational Research 48, 219–225 [4] Kundu, S (1997)., Min-Transitivity of Fuzzy Left-ness Relationship and its Application to Decision Making, Fuzzy Sets and Systems 86, 357–367 [5] Moore, R E (1979), Method and Application of Interval Analysis, Philadelphia: SIAM [6] Okada, S., M Gen (1994), Order Relation between Intervals and Its Application to Shortest Path Problem, Japanese Journal of Fuzzy Theory and Systems 6(6), 703–717 [7] Sengupta, A., T K Pal, D Chakraborty (2000), Interpretation of Inequality Constraints Involving Interval Coefficients and a Solution to Interval Linear Programming, Fuzzy Sets and Systems 119, 129–138 PHỤ LỤC // Thuât toán nhập ma trận khoảng private void btnEnd_Click(object sender, EventArgs e) { soluongnut = Convert.ToInt16(txtSoNut.Text); //Tao mang chieu ket xuat mangKXuat = new int[soluongnut, soluongnut]; //tao mang chieu kieu chuoi de luu 10,20 string[,] mangTam = new string[soluongnut, soluongnut]; //lap theo dong i tu de gan gia tri tuong duong for (int i = 1; i < soluongnut; i++) { for (int j = 1; j && Nhan[j] [k]> mangKXuat[XP, j] [gttrungbinh]+ Nhan[XP] [k]&& DanhDau[j] == 0) if m(X[i]>m(X[j]) && (w(X[i]=w(X[j])) pi(X[j])’=0.5 if m(X[i]=m(X[j]) && (w(X[i]=w(X[j])) pi(X[j])’=0.5; if m(X[i]=m(X[j]) && (w(X[i]=w(X[j])) pi(X[j])’=1; if m(X[i]? for (int i = 0; i < track.Length; i++) { if (dao[i] == ""; } } //gán vào label lblTrack.Text = "Đường chi tiết: "; for (int i = 0; i < track.Length; i++) { lblTrack.Text += dao[i]; } } [...]...    1.3 Bài toán tìm đường đi ngắn nhất trong đồ thị có trọng số mờ 1.3.1 Đặt bài toán Giả sử xét đồ thị có hướng G=(V,E) mỗi cung (u,v)  E được đặt tương ứng là số mờ dạng khoảng Các bài toán đường đi ngắn nhất được chia thành 3 dạng chính: - Tìm đường đi ngắn nhất từ một nút nguồn đến một nút đích - Tìm đường đi ngắn nhất từ một nút nguồn đến tất cả các nút đích - Tìm đường đi ngắn nhất giữa hai... sau: - Nghiên cứu giải bài toán tìm đường đi ngắn nhất trong trường hợp giá trị của các cung là mờ được biểu diễn dưới dạng các khoảng - Từ đó xây dựng ứng dụng trong bài toán giảm thiểu chi phí vận tải III Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI Tìm hiểu mở rộng thuật toán Dijkstra để giải bài toán tìm đường đi ngắn nhất trong trường hợp giá trị của các cung trên đồ thị Tìm hiểu thuật toán Dijkstra và... nút bất kỳ Bài toán được đề cập đến ở đây là bài toán ở dạng thứ nhất: tìm đường đi ngắn nhất từ một nút nguồn đến một nút đích cho trước 19 Input: Tập hữu hạn các đỉnh V, tập các cung E, nút nguồn u0; nút đích v Trọng số của các cung Output: Đường đi ngắn nhất từ đỉnh u0 đến đỉnh v * Xây dựng đường đi trong đồ thị: Theo định nghĩa với bài toán đường đi ngắn nhất ta xây dựng đường đi trên cung i,j là... của G và tìm đường đi ngắn nhất từ u0 đến v 1.2.2 Các thuật toán Có nhiều thuật toán để giải bài toán tìm đường đi ngắn nhất trên đồ thị có trọng số: - Dijkstra (1956- Hà Lan): áp dụng với đồ thị có trọng số không âm - Bellman Ford: áp dụng với đồ thị có trọng số âm - Giải thuật tìm kiếm A*: sử dụng hàm kinh nghiệm heuristic để tăng tốc độ tìm kiếm - Floyd: tìm đường đi ngắn nhất với mọi cặp đỉnh Tuy... Mỗi đường đi từ đỉnh u đến đỉnh v, có chiều dài là m(u,v), bằng tổng chiều dài các cạnh mà nó đi qua Khoảng cách d(u,v) 12 giữa hai đỉnh u và v là chiều dài đường đi ngắn nhất (theo nghĩa m(u,v) nhỏ nhất) trong các đường đi từ u đến v Bài toán tìm đường đi ngắn nhất: Cho đơn đồ thị liên thông, có trọng số G=(V,E) Tìm khoảng cách d(u0,v) từ một đỉnh u0 cho trước đến một đỉnh v bất kỳ của G và tìm đường. .. việc đi lại… Trong đó, giá trị mà các cung biểu diễn (thời gian vận chuyển hoặc chi phí trong việc đi lại) có thể dao động đáng kể tùy thuộc vào đi u kiện giao thông, tải trọng cụ thể, vv Khi đó các giá trị này là mờ và 22 bài toán trở thành bài toán tìm đường đi ngắn nhất trong trường hợp “độ dài” các cung là mờ, hầu hết các thông số đều không chính xác 1.3.3 Biểu diễn giá trị mờ của các cung bằng khoảng. .. huống như sau: để đi từ địa đi m A đến địa đi m B trong thành phố, có nhiều đường đi, nhiều cách đi; có lúc ta chọn đường đi ngắn nhất (theo nghĩa cự ly), có lúc lại cần chọn đường đi nhanh nhất (theo nghĩa thời gian) và có lúc phải cân nhắc để chọn đường đi rẻ tiền nhất (theo nghĩa chi phí), v.v Có thể coi sơ đồ của đường đi từ A đến B trong thành phố là một đồ thị, với đỉnh là các giao lộ (A và... việc đi lại Tuy nhiên, các giá trị này (thời gian vận chuyển hoặc chi phí trong việc đi lại) có thể dao động đáng kể tùy thuộc vào đi u kiện giao thông, tải trọng cụ thể, Khi đó ta có thể biểu diễn các giá trị này là mờ và bài toán trở thành bài toán tìm đường đi ngắn nhất trong trường hợp “độ dài” các cung là mờ trong đó các thông số đều không chính xác và đưa về khoảng 27 CHƯƠNG II: SỐ HỌC KHOẢNG... thỏa mãn các tính chất sau:  xij=0 hoặc xij=1 ứng với việc có hay không sử dụng cung i,j trong đường đi  Tổng đường đi ra tại nút nguồn bằng 1; tổng đường đi vào tại nút đích bằng 1  Tổng đường đi vào một nút i bất kỳ bằng tổng đường đi ra tại nút đó * Giới hạn đường đi: Đường đi trên cung không vượt quá trọng số của cung f (u , v)  c(u, v) * Cân bằng đường đi tại nút đỉnh: Tổng đường đi vào tại... đề về khoảng cách và việc sắp thứ tự đã được tác giả Nguyễn Cát Hồ và cộng sự nghiên cứu, hoàn thiện và ứng dụng trong rất nhiều công trình được công bố Trong luận văn này, với bài toán cụ thể là bài toán tìm đường đi ngắn nhất khi thông tin về các trọng số của các cung là thông tin mờ, tôi chọn cách biểu diễn các thông tin mờ bằng các khoảng Ví dụ quãng đường từ A đến B khoảng 60-70 km Mỗi cung trong

Ngày đăng: 23/08/2016, 15:03

Từ khóa liên quan

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

Tài liệu liên quan