Xem xét một đồ thị mờ G với tập đỉnh mờ V. Gọi là tập tất cả các đường đi từ đỉnh va tới đỉnh vb và độ dài “mờ” của tuyến đường được tính theo công thức:
với P , ek là các cạnh của G.
Tập mờ các đường đi ngắn nhất là tập mờ S trên với hàm thành viên
S cho bởi công thức:
với P , Q .
Support bao gồm tất cả các đường đi có thể với độ dài tối thiểu
Thuật toán đường đi ngắn nhất “mờ” (Fuzzy Shortest Path Algorithm - FSA) được mô tả như sau:
Bước 1: tạo các đồ thị Gvà G đồng nhất với G và trọng số trên các cạnh của G và G có thể được tính như sau:
Với G: a sup{supp(a)} Với G: a inf{supp(a)}
Bước 2: Tìm đường đi ngắn nhất p từ va đến vb trong G, vấn đề tìm đường đi ngắn nhất có thể được giải quyết bởi một trong số các thuật toán tìm đường đi ngắn nhất. Gọi k là độ dài của đường đi p.
Bước 3: Gọi S là tập tất cả các đường đi từ va đến vb trong G, có độ dài nhỏ hơn k. Gọi S là tập tất cả các đường đi trong G. Hình ảnh các đường đi này
trong cả S và Slà tương đồng. Vì thế, S là tập tất cả các đường đi mờ ngắn nhất. Cuối cùng tính hàm thành viên cho mỗi đường đi mờ trong S có tính đến k.
Hình 2.4 Đồ thị mờ G minh họa thuật toán FSA
Hình 2.4 biểu diễn trọng số của đồ thị mờ. Đỉnh a là đỉnh xuất phát và f là đỉnh kết thúc của đường đi. Trọng số có thể chỉ là một số hoặc bộ ba số “mờ”. Độ dài mờ cho 4 đường đi từ a đến f được của đồ thị biểu diễn trên hình 2.4 với k=8 – là các đường abdf có hàm thành viên S(abdf)=1, đường đi abef có hàm thành viên S(abef)=2/5, và các đường khác có hàm thành viên S(acdf)=S(acef)=0 trong tập các đường đi mờ ngắn nhất. Hình 2.5 minh hoạ các đường đi mờ ngắn nhất này.
2.2.2.2 Thuật toán tìm đƣờng đi ngắn nhất trên cơ sở số mờ
Thuật toán được đề xuất bởi A. Kiran Yadav, B. Ranjit Biswas để giải quyết vấn đề không chắc chắn, không chính xác thường gặp trong thực tế như giao thông vận tải, định tuyến, thông tin liên lạc… Thuật toán trên cơ sở logic mờ này được sử dụng để kết hợp đồng thời nhiều chi phí hơn cho các cung, nhưng tính năng mới này làm gia tăng sự tính toán.
Giả sử có ba đường đi rõ là p1= 5 , p2 = 9, p3 = 3, chúng ta có thể thấy rằng, quãng đường ngắn nhất là 3. Nhưng trong thế giới thực, chiều dài cung (Cạnh) trong đường đi của một mạng có các thông số không chính xác (như chi phí, năng lực, nhu cầu, thời gian, giao thông ...). Trong trường hợp này việc sử dụng các số mờ để mô hình hóa vấn đề là khá thích hợp.
Nhắc lại một vài khái niệm cơ sở về logic mờ
Trong phần này, một số khái niệm cơ bản liên quan đến tập mờ được nhắc lại.
Định nghĩa 2.1: X là tập vũ trụ, sau đó một tập mờ được định nghĩa là: A = {[x, μA (x)] x є X}
Điều này được đặc trưng bởi một hàm thành viên (hàm thuộc) như sau: μA: X → [0 1],
với: μA (x) biểu thị mức độ thành viên của phần tử x trong tập A.
Định nghĩa 2.2: Số mờ là một tập mờ A có các đặc điểm sau: - Là tập mờ chuẩn, tức là Hight(A)=1
- Mọi tập mức A, (0, 1], là các khoảng đóng - Support(A) là tập giới nội hay là một đoạn hữu hạn.
Định nghĩa 2.3: Cho A(a1,a2.a3),) và B(b1,b2,b3)là hai số tam giác mờ, sau đó tổng mờ của hai số là:
) , , (a1 b1 a2 b2 a3 b3 B A
Một hàm thành viên tam giác được mô tả là A (a,b,c). Hình 2.6 chỉ ra cách mà 1 số mờ được biểu diễn
Hình 2.6 Số mờ tam giác
Nếu a và c tương ứng là giá trị giới hạn nhỏ nhất và lớn nhất, b là tâm của số mờ. Theo đó, hàm thành viên của nó được định nghĩa là:
Thuật toán
Ở đây, chiều dài cung trong một mạng được coi là một số mờ, cụ thể là, số mờ tam giác. Chiều dài đường đi ngắn nhất được tính toán theo phương pháp do Chuang và Kung đề xuất, như sau:
1
Tính tất cả các độ dài đường có thể Litừ i=1,2 …n, với
) ' , ' , ' ( i i i i a b c L 2 Đặt Lmin (a,b,c)L1 (a1',b1',c1') 3 đặt i=2 4 Tính ); ' , min( ); ' , min( ' a b neu ; ) ' a (a ) ' b (b ) ' a (a ) ' b (b ' a b neu ; 1 i i i i 1 i i b c c a a a b b
5 Gán Lmin (a,b,c)như đã tính trong bước 4 6 i=i+1
7 nếu i<n+1, tới bước 4
Để minh họa cho cách thức trên, hãy xét một ví dụ nhỏ về mạng lưới trong hình 2.7, nơi mà mỗi chiều dài cung được đại diện bởi số tam giác như thể hiện trong bảng dưới đây.
Hình 2.7 Ví dụ mạng lưới
Trong mạng lưới như hình 2 có ba đường đi có thể và chiều dài đường đi tương ứng như sau:
Cung(i , j ) Độ dài lij (1 ,2) (1, 3, 4) (1, 3) (2, 4, 5) (2, 4) (1, 2, 3) (2, 5) (2, 4, 6) (3, 5) (2, 5, 6) (4, 6) (2, 3, 8) (5, 6) (3, 5, 7)
Cách thức có thể được thực hiện như sau: Bước 1: P1: 1-2-4-6 → L1 = (4, 8, 15)
P2: 1-2-5-6 → L2 = (6, 12, 17) P3: 1-3-5-6 → L3 = (7, 14, 18)
Bước 2: Lmin = (a, b, c) = L1= (a1',b1',c1') = (4,8,15)
Bước 3: đặt i=2 Bước 4: tính (a,b,c) 12 ) 12 , 15 min( 4 ) 6 , 4 min( 2 . 7 ) 4 6 ( ) 8 12 ( ) 4 6 ( ) 8 12 ( c a b Bước 5: đặt Lmin=(4,7.2,12) Bước 6: đặt i=3(i=i+1) 12 ) 14 , 12 min( 4 ) 7 , 4 min( 1 . 7 ) 7 4 ( ) 14 2 . 7 ( ) 7 4 ( ) 14 2 . 7 ( c a b
Bước 7: khi i=4. Quá trình kết thúc
Lmin = (4, 7.1, 12). Bây giờ chúng ta phải quyết định con đường ngắn nhất bằng các tính toán sau.
Mục tiêu là xác định chiều dài mờ ngắn nhất Lmin và đường đi ngắn nhất cần thiết để đi qua từ nguồn tới đích, thuật toán được đề xuất như sau:
1 Tìm tất cả quãng đường có thể từ nút nguồn S tới nút đích D và tính độ dài quãng đường liên quan Li, với i= 1,2…..n.
2 Tính Lmin bằng cách sử dụng phương pháp độ dài đường mờ nhỏ nhất (bảng 1)
3 Tìm khoảng cách Euclide di với i=1,2…..n giữa tất cả đường có thể và Lmin
4 Xác định đường ngắn nhất với đường có khoảng cách Euclide nhỏ nhất
Trong việc thực hiện các thuật toán trên với mạng như hình 2.7: Hai bước đầu tiên đã được đã được được tính như mô tả trên đây.
Bước tiếp theo, mức độ tương tự S (Lmin, Li) giữa Lmin, và Li khi i = 1,2,3 được tính toán tương tự
Để tính toán độ chính xác ở mức độ tương tự, ta nên để một phần tử chung U ký hiệu là μi = (i = 1,2 ... 10), như sau:
Từ kết quả tính toán như đã mô tả trên đây, chúng ta có ba chiều dài đường dẫn như trong hình 2 là:
P1 = (4, 8, 15) P2 = (6, 12, 17)
P3= (7, 14, 18)
Và chiều dài đường đi tối thiểu là Lmin = (4, 7.13, 12).
Bây giờ ta chuyển sang bước 3 của thuật toán trong trên, tức là tìm khoảng cách Euclide giữa tất cả các chiều dài đường dẫn và Lmin. Đối với đường đi 1 với chiều dài là (4, 8, 15) và Lmin là (4, 7.13, 12), ta có khoảng cách Euclide như sau:
d (đường 1, Lmin) = √ (4-4)2
+ (8-7.13) 2 + (15-12) 2 = 3.12
Theo cách tương tự, sau khi tính toán khoảng cách Euclide của các đường đi còn lại, ta được
d (đường 2, Lmin) = 7.25 và d (đường 3, Lmin) = 9.59.
Tiếp theo, ta phải quyết định đường đi ngắn nhất bằng cách kiểm tra khoảng cách Euclide giữa Lmin và di với i = 1, 2, 3. Từ các tính toán ở trên, chúng ta có thể thấy rằng đường đi 1 có khoảng cách Euclide ít nhất, và ta chọn đường 1-2-4-6 là con đường ngắn nhất.
Chƣơng 3
PHÁT TRIỂN CHƢƠNG TRÌNH THỬ NGHIỆM
Trong chương này, học viên phát triển thuật toán tìm đường đi ngắn nhất trên cơ sở số mờ (ở cuối chương 2, phần 2.2.2.2) để minh hoạ cho những lý thuyết đã trình bày.
3.1. Môi trƣờng phát triển chƣơng trình
Phần cứng
Môi trường phát triển sử dụng máy tính có bộ vi xử lí Pentium 4 tốc độ 2.4 GHz, 2 GB RAM.
Phần mềm
Chương trình thử nghiệm được phát triển trên bộ công cụ cho Java là NetBeans IDE với phiên bản 6.9.1, với JDK 1.6.
3.2. Các chức năng của chƣơng trình
Chương trình thử nghiệm mô phỏng lại thuật toán với một đồ thị có hướng gồm 6 đỉnh. Đỉnh nguồn là 1 và đỉnh đích là 6. Chương trình sẽ tìm tất cả các đường đi có thể từ đỉnh nguồn tới đích, sau đó tính toán độ dài mờ của chúng, xác định độ dài đường đi mờ tối thiểu, tính toán khoảng cách Euclide giữa các đường đi tới đường đi mờ và sau cùng là đưa ra được đường đi ngắn nhất có khoảng cách với đường đi mờ tối thiểu là nhỏ nhất.
Việc nhập dữ liệu được cung cấp thực hiện bằng tay. Chương trình cũng cho phép sửa đổi lại dữ liệu sau khi nhập.
3.3. Một số giao diện của chƣơng trình
Hình 3.1 Giao diện chính của chương trình thử nghiệm
Hình 3.3 Giao diện chức năng tính toán
3.4. Một số kết quả thử nghiệm
Bộ thử nghiệm đầu tiên như trong ví dụ của chương 2, với một đồ thị 6 đỉnh và các giá trị được cho như trong bảng.
Hình 3.4 Ví dụ mạng lưới
Trong mạng lưới như hình 2 có ba đường đi có thể và chiều dài đường đi tương ứng như sau:
Cung (i, j) Độ dài lij (1, 2) (1, 3, 4) (1, 3) (2, 4, 5) (2, 4) (1, 2, 3) (2, 5) (2, 4, 6) (3, 5) (2, 5, 6) (4, 6) (2, 3, 8) (5, 6) (3, 5, 7)
Hình 3.5 Nhập dữ liệu cho cung (1,2)
Kết quả thu được thể hiện ở hình 3.6, giống như đã trình bày ở chương 2, với đường đi tốt nhất là 1-2-4-6, độ dài đường đi tối thiểu (độ dài tối ưu) là (4, 7.13, 12).
Hình 3.6 Kết quả thử nghiệm
Hình 3.7 là kết quả thử nghiệm một trường hợp khác khi không tồn tại đường đi từ nguồn tới đích, ở đây đồ thị chỉ có các cung (1,2), (2,3), (4,5), (5,6).
Hình 3.8 là kết quả thử nghiệm một đồ thị đầy đủ khi có tất cả các cung giữa các đỉnh trong đồ thị. Kết quả thu được có 65 đường đi từ nguồn tới đích.
Hình 3.8 Kết quả thử nghiệm với đồ thị đầy đủ
Đường đi tốt nhất trong trường hợp này đi qua tất cả các đỉnh (1-5-3-4- 2-6). Điều này minh hoạ rằng có những trường hợp đường đi tốt nhất có thể là đường đi qua nhiều đỉnh nhất.
KẾT LUẬN
Ngày nay, GIS được xem là một trong những công nghệ mới nhất, có nhiều ứng dụng nhất trong việc giải quyết các bài toán thực tế trong hầu hết các lĩnh vực kinh tế - xã hội của loài người. Bên cạnh đó, việc sử dụng GIS để phân tích không gian là một trong những hướng đi tiềm năng trong việc ứng dụng GIS để giải quyết các vấn đề thực tế. Một trong số những ứng dụng trong phân tích không gian là lập phương án vận chuyển tức tìm kiếm phương án tối ưu cho bài toán tối ưu. Lý thuyết tập mờ được xem như là phương tiện thiết kế các công cụ một cách hiệu quả để hỗ trợ các cách xử lý ra quyết định đối với các bài toán không gian. Trong luận văn này đã nghiên cứu sự hợp nhất của lý thuyêt tập mờ trong hệ thống cơ sở dữ liệu quan hệ GIS và ứng dụng thành quả nghiên cứu vào thực tiễn mà điển hình là bài toán Tìm đường đi ngắn nhất từ đỉnh nguồn tới đỉnh đích của đồ thị.
Nó chỉ ra sự hiệu quả như thế nào của lý thuyết tập mờ để có thể thực hiện các diễn tả và phân tích dữ liệu địa lý. Sự đóng góp của luận văn có thể được khái quát như sau:
Trình bày tổng quan về hệ thống thông tin địa lý cấu trúc dữ liệu không gian vectơ và bài toán liên quan. Tổng quan về logic mờ và các hàm thuộc
Tìm hiểu phân tích, đánh giá, một số thuật toán cụ thể là các thuật toán tìm đường đi ngắn nhất trong đồ thị cụ thể là thuật toán Dijkstra, thuật toán A*, thuật toán Bellman-Ford, hàm heuristic, thuật toán FSA , thuật toán tìm đường đi ngắn nhất trên cơ sở số mờ…
Tìm hiểu bộ công cụ cho Java là NetBeans IDE với phiên bản 7.1.2, với JDK 1.6.
Tìm đường ngắn nhất từ đỉnh nguồn tới đỉnh đích của đồ thị có áp dụng thuật toán tìm đường đi ngắn nhất trên cơ sở số mờ.
Những hướng phát triển của luận văn ở trong tương lai dự kiến như sau:
Xây dựng một hệ thống chương trình “Tìm kiếm đường đi ngắn nhất giữa các tuyến đường của thành phố Hà Nội” có giao diện thuận tiện, có nhiều chức năng.
Thu thập cơ sở dữ liệu về các lớp bản đồ thành phố Hà Nội để xây dựng một bản đồ tuyến đường Hà Nội chi tiết và sống động.
Tiếp tục cài đặt các thuật toán còn lại đã trình bày trong luận văn. Mặc dù đã rất cố gắng, nỗ lực nhưng do thời gian và trình độ có những hạn chế nhất định nên luận văn sẽ không tránh khỏi những thiếu sót. Trong tương lai học viên sẽ cố gắng hoàn thiện những hạn chế và phát triển những vấn đề đã nêu trên để mang lại những vấn đề khả quan hơn nữa. Rất mong nhận được sự đóng góp ý kiến của các thầy cô và các bạn để luận văn ngày càng hoàn thiện hơn.
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Bùi Công Cường và Nguyễn Doãn Phước (2006). Hệ mờ mạng nơronvà ứng dụng, NXB Khoa học kỹ thuật.
[2] Đặng Văn Đức (2001). Hệ thống thông tin địa lý, NXB Khoa học kỹ thuật.
[3] Đặng Văn Đức (2010). Nghiên cứu phát triển hệ thống dịch vụ dựa trên vị trí. Báo cáo toàn văn đề tài nghiên cứu khoa học cấp Viện Khoa học và công nghệ Việt Nam.
Tiếng Anh
[4] G. J. Klir, B. Yuan (1995) Fuzzy Sets and Fuzzy Logic, Theory and Applications, Prentice-Hall Inc.
[5] Goodchild, M.F., Kemp, K. K. (1991). Technical issues in GIS. NCGIA-University of California. 3rd Printing, October 1991.
[6] Kiran Yadav, Ranjit Biswas, On Searching Fuzzy Shortest Path In a Network, International Journal of Recent Trends in Engineering, 11/2009.
[7] Longley et al. (2005) Geographical Information systems and Science, John Wiley & Sons Ltd.
[8] Petrik, S. et al. (2003) Application of Shortest Path Algorithm to GIS using Fuzzy Logic, 4th International Symposium of Hungarian Researchers on Computational Intelligence, November 13-14, 2003, Budapest, Hungary
[9] Wolfgang Kainz (2010), The Mathematics of GIS, University of Vienna, Austria.
[10] Zhang, J., Goodchild, M. F. (2002) Uncertainty in Geographical Information, Taylor & Francis.