Tìm đường đi trong có khơng gian có chướng ngại vật

Một phần của tài liệu phát triển hệ thống hỗ trợ tìm đường trên các thiết bị di động có gps (Trang 35 - 39)

CHƯƠNG 3 XỬ LÝ TRUY VẤN KHÔNG GIAN

3.2.3.Tìm đường đi trong có khơng gian có chướng ngại vật

3.2. Tìm hiểu một số thuật tốn xử lý truy vấn trong CSDL không gian

3.2.3.Tìm đường đi trong có khơng gian có chướng ngại vật

Những vấn đề về tìm đường đi trong khơng gian có các chướng ngại vật đã được nghiên cứu rộng rãi trong Computational Geometry (de Berg et al. 1997).

Bài toán đặt ra: Cho một tập O các chướng ngại vật không giao nhau (các đa giác) trong không gian 2D, 1 điểm bắt đầu pstart và 1 điểm đích pend, mục đích là tìm đường dẫn ngắn nhất từ pstart đến pend mà không cắt qua chướng ngại vật nào. Đồ thị G tương ứng như trong hình 3(b). Đồ thị được tạo bởi các đỉnh của các chướng ngại vật và 2 điểm pstart và pend. Hai node ni và nj trong G được nối với nhau bởi một cạnh nếu và chỉ nếu cạnh đó khơng cắt chướng ngại vật. Vì các cạnh của chướng ngại vật khơng cắt chính nó, do đó chúng cũng chứa trong G.

29

Hình 10 – Đồ thị G trong khơng gian có chướng ngại vật

Trong Lozano-Pérez and Wesley 1979, đã định nghĩa đường dẫn ngắn nhất là đường chỉ chứa những cạnh của đồ thị. Do đó, vấn đề được giải quyết bởi: (1) xây dựng đồ thị G và (2) tính tốn khoảng cách ngắn nhất giữa pstart và pend trong G. Việc tính tốn khoảng cách ngắn nhất giữa pstart và pend được thực hiện bằng cách sử dụng thuật tốn tìm đường đi ngắn nhất Dijkstra. Vì vậy, vấn đề chỉ cịn là xây dựng đồ thị G.

Truy vấn có chướng ngại vật

Cho một tập các chướng ngại vật O, 1 tập các thực thể P, một điểm truy vấn q và khoảng cách là e, một truy vấn có chướng ngại vật (obstacle range – OR) trả về tất cả các thực thể trong P có khoảng cách thực với q là e. Thuật toán OR xử lý truy vấn này như sau: (1) Xây dựng tập các ứng cử P’ có khoảng cách O-clit đến q ≤ e; (2) Xây dựng tập O’ các chướng ngại liên quan đến truy vấn; (3) Xây dựng một đồ thị cục bộ G’, chứa các thành phần của P’ và O’; (4) Loại bỏ những đối tượng không đạt trong P’ bằng cách đánh giá khoảng cách thực của chúng cho mỗi ứng cử sử dụng đồ thị G’.

Xem xét ví dụ trong hình 12(a) với e=6. Những vùng màu sẩm là các chướng ngại vật và các điểm là các thực thể. Tập P’ chứa các thực thể giao với hình trịn C tâm q với bán kính e. Để loại bỏ các thực thể không đúng, chúng ta cần có được các chướng ngại vật thích hợp. Nhận xét rằng: những chướng ngại vật giao với hình trịn C là những chướng ngại vật có thể liên quan đến kết quả của truy vấn. Theo thuộc tính đường bao thấp O-clit, bất kỳ đường dẫn nào bắt đầu ở q và kết thúc ở đỉnh bất kỳ của một chướng ngại vật nằm ở ngồi C thì sẽ có độ dài lớn hơn e. Vì vậy, các chướng ngại vật này sẽ bị loại bỏ. Do đó tập O’ các chướng ngại thích hợp có thể nhận được bởi 1 truy vấn dãy (tâm tại q với bán kính e) trên R-tree của O. Đồ thị cục bộ G’ được vẽ ở hình 12(b). Để xây dựng đồ thị ta sử dụng thuật toán của (Sharir and Schorr 1984).

30

Hình 12 – Truy vấn có chướng ngại vật

Bước cuối cùng là đánh giá khoảng cách thực của q đến mỗi ứng cử. Để tối ưu việc tính tốn, OR mở rộng đồ thị xung quanh điểm truy vấn q chỉ một 1 lần cho tất cả các ứng cử sử dụng phương thức tree traversal tương tự như trong thuật toán Dijkstra. Đặc biệt, OR chứa một hàng đợi ưu tiên Q. Q được khởi tạo chứa các hàng xóm của q, sắp xếp theo khoảng cách thực của chúng đến q. Vì những hàng xóm này nối trực tiếp đến q, khoảng cách thực của chúng dO(ni,q), với 1≤i≤4, bằng khoảng cách O-clit dE(ni,q). Node đầu tiên (n1) được đưa vào hàng đợi và chèn vào tập các node đã thăm V. Với mỗi hàng xóm chưa được thăm nx của n1, dO(nx,q) được tính (sử dụng n1 như một node trung gian). Nếu dO(nx,q) ≤ e, nx được chèn vào Q.

Truy vấn hàng xóm gần nhất

Cho một điểm truy vấn q, một tập chướng ngại vật O và một tập thực thể P, một truy vấn hàng xóm gần nhất trong khơng gian có chướng ngại vật (obstacle nearest neighbour - ONN) trả về k đối tượng trong P có khoảng cách thực nhỏ nhất đến q. Ý tưởng chung của thuật toán ONN như sau: đầu tiên, lấy ra hàng xóm O-clit gần nhất của q (a) (sử dụng 1 thuật toán tiền lời - e.g.Hjaltason and Sammet 1999), và dO(a,q) được tính. Do thuộc tính đường bao thấp O-clit, các đối tượng có khoảng cách thực nhỏ hơn a sẻ nằm trong khoảng dEmax = dO(a,q). Sau đó, hàng xóm O-clit (f) trong khoảng dEmax được lấy ra, và khoảng cách thực của nó (dO(f,q)) được tính. Vì dO(f,q) < dO(a,q), f trở thành NN hiện tại, và dEmax được cập nhật thành dO(f,q).

31

Hình 13 – Truy vấn hàng xóm gần nhất trong khơng gian có chương ngại vật Thuật tốn dừng khi khơng cịn hàng xóm O-clit gần nhất nào của q trong khoảng dEmax.

Phép nối e-distance

Cho một tập các chướng ngại vật O, hai tập thực thể S, T và giá trị e. Một truy vấn nối e-distance (Ostacle e-distance join – ODJ) trả về tất cả các cặp thực thể (s,t) với sєS, tєT và dO(s,t) ≤ e. Dựa trên thuộc tính đường bao thấp Ơ-clit, thuật toán ODJ được thực hiện như sau: (1) Thực hiện một phép nối O-clit e-distance trên các cây R- trees của S và T để nhận được các cặp thực thể (s,t) với dE(s,t) ≤ e; (2) Tính tốn cho dO(s,t) cho mỗi cặp ứng cử (s,t) và xóa những cặp khơng phù hợp.

32

Một phần của tài liệu phát triển hệ thống hỗ trợ tìm đường trên các thiết bị di động có gps (Trang 35 - 39)