Thuật toán tìm kiếm DOA_Search

Một phần của tài liệu Một số kỹ thuật dự báo vị trí và truy vấn các đối tượng chuyển động trong cơ sở dữ liệu không gian thời gian (Trang 86)

c. Tính riêng tư

3.4.2.Thuật toán tìm kiếm DOA_Search

Kỹ thuật xử lý truy vấn

Như mô tả ở phần trên, cây TPR*-tree mang tính thụ động trong việc điều chỉnh MBR. Nghĩa là việc điều chỉnh MBR ở một nút N trong cây chỉ xảy ra khi có thao tác cập nhật hay thêm mới đối tượng chuyển động trong MBR của nút đó. Giả sử DEF

Algorithm Insert (e)

Input: e is the entry to be inserted

Output: Inserted e into Node N

1. re-insertedi= false for all levels 1≤ ih−1 (h is the tree height) 2. Initialize an empty re-insertion list Lreinsert

3. Invoke Choose Path to find the leaf node N to insert e

4. Invoke Node Insert (N, e) 5. For each entry e' in the Lreinsert

6. Invoke Choose Path to find the leaf node N to insert e'

7. Invoke Node Insert (N, e) 8. End for

Algorithm End

Algorithm Node Insert (N, e)

/* Input: N is the node where entry e is inserted */

1. if N is a leaf node

2. enter the information of e 3. if N overflows

4. if re-inserted0 = false //no re-insertion at leaf level yet 5. invoke Pick Worst to select a set Sworst of entries 6. remove entries in Sworst from N; add them to Lreinsert 7. re-inserted0 = true

8. else

9. invoke Node Split to split N into itself and N' 10. let P be the parent of N

11. Node Insert(P,∅) or Node Insert(P,N') if N has been split 12. else //N is a non-leaf node

13. similar to lines 2-9 except that (i) the MBR/VBR of the affected child node is adjusted, and (ii) in lines 4, 7 replace re-inserted0 with re-insertedi where i is the level of N

85

và DEFHIlần lượt là các thời điểm cập nhật liên tiếp thứ j(j+ 1) mà sẽ có điều chỉnh MBR ở nút N. Chúng ta cùng xem xét tình huống xử lý truy vấn P tại nút N của cây TPR*-tree mà P thực hiện trong khoảng thời gian [DEF, DEFHI]. Giả sử có k truy vấn liên tục sau thời điểm cập nhật thứ j ký hiệu Qj,k tại các thời điểm truy vấn DJF,K xảy ra ở nút N và nằm trong khoảng thời gian giữa hai lần cập nhật liên tiếp [DEF, DEFHI]. Ta có:

DEF< DJF,I< DJF,L< … < DJF,M< DEFHI

Vì MBR của nút N mở rộng nhanh chóng trong khoảng thời gian [DEF, DEFHI], truy vấn của người sử dụng tại thời điểm DJF,K (1 ≤ ik) sẽ xem xét toàn bộ MBR của N

và vì vậy sẽ dẫn đến tồn tại những vùng không gian trống ngày càng lớn mà việc thực hiện truy vấn trên đó không đem lại thêm kết quả nào. Rõ ràng là nếu có thể thực hiện điều chỉnh MBR ở nút N tại thời điểm DJF,K khi thực hiện truy vấn Qj,inàođó, thì tất cả các truy vấn sau đó Qj,x (i < xk) sẽ không phải xử lý trong vùng không gian trống đó nữa ở khoảng thời gian còn lại [DJF,K, DEFHI].

Phương pháp đề xuất của nghiên cứu sinh là bắt buộc điều chỉnh MBR dựa trên mật độ của nút N trong cây TPR*-tree. Lợi ích của phương pháp này là giảm được một số lượng lớn các truy vấn liên tục vào nút N trong khoảng thời gian [DJF,K, DEFHI] do MBR của nó đã được điều chỉnh nhỏ lại và giảm thiểu không gian trống.

Trong phương pháp đề xuất, nghiên cứu sinh đưa ra hai định nghĩa sau mà sẽ được sử dụng trong thuật toán đề xuất.

ĐỊNH NGHĨA 3.1 [Node Density – Mật độ của một nút]. Giả sử N là một nút của cây TPR*-Tree.Mật độ của nút N, ký hiệu DN, là tỉ số giữa số lượng Entry nằm trong N trên diện tích của MBR của nút đó. Mật độ của nút N tại thời điểm T, ký hiệu

DN(T), là tỉ số của số lượng Entry nằm trong N trên diện tích của MBR của nút đó tại thời điểm T.

86

DN (T) =NE6_PQ(9) (adsbygoogle = window.adsbygoogle || []).push({});

RSTQ(9) (3-1)

Trong đó,

Num_EN(T) số lượng các Entry nằm trong N tại thời điểm T. Nếu N là nút lá thì Num_EN(T) là số đối tượng chuyển động nằm trong N

ABRN(T) là diện tích của MBR của nút N tại thời điểm T

ĐỊNH NGHĨA 3.2 [Node Density Optimal – Mật độ đủ tốt của một nút]. Giả sử N là một nút của cây TPR*-Tree.Mật độ của nút N tại thời điểm truy vấn Tq được gọi là đủ tốt nếu tỉ số của mật độ của nút N tại thời điểm cập nhật cuối cùng trước đó

Tu với nó nhỏ hơn một số λ cho trước. UQ(9V)

UQ(9W) < λ (3-2)

Trong đó,

− XN(DJ) là mật độ của nút N tại thời điểm truy vấn Tq

− XN(DE) là mật độ của nút N tại thời điểm cập nhật cuối cùng Tu

− λ là một số cho trước.

Nhìn chung, lựa chọn λ là tùy thuộc vào ngữ cảnh của từng ứng dụng cụ thể và tùy từng thời điểm khác nhau, do mật độ các đối tượng chuyển động thay đổi theo thời gian. Trong ứng dụng quản lý phương tiện chuyển động, λ có thể khởi tạo bằng giá trị h-1 trong đó h là chiều cao của cây. Giá trị này có thể điều chỉnh lại trong quá trình sử dụng ứng dụng. Ví dụ với mật độ giao thông cao vào thời điểm đầu giờ sáng hay giờ tan tầm thì giảm giá trị λ (nhưng vẫn lớn hơn 1), còn những thời điểm khác có thể tăng λ.

Điều kiện mật độ đủ tốt (3-2) nhằm đảm bảo vùng không gian trống trong MBR của nút N tại thời điểm truy vấn chưa quá lớn đến mức ảnh hưởng đến các truy vấn tiếp sau thời điểm này.

Trong phương pháp đề xuất này, nghiên cứu sinh kiểm tra điều kiện mật độ đủ tốt (3-2) của nút N khi có truy vấn của người sử dụng tại thời điểm truy vấn DJF,K. Nếu

87

không thỏa điều kiện (3-2), việc điều chỉnh MBR sẽ được thực hiện trên nút N. Vì vậy tất cả các truy vấn sau thời điểm này Qj,x (i < xk) sẽ không phải xử lý trong vùng không gian trống của N ở khoảng thời gian còn lại [DJF,K, DEFHI]. Nhờ đó mà giảm được một số lượng lớn các truy vấn liên tục vào nút N trong khoảng thời gian này và nâng cao hiệu năng truy vấn của cây TPR*-Tree.

Thuật toán tìm kiếm DOA_Search

Gọi việc điều chỉnh MBR khi kiểm tra điều kiện (3-2) là điều chỉnh mật độđủ tốt

- Density Optimal Adjustment (DOA). Truy vấn tương lai của người sử dụng được biểu diễn dưới dạng (QBR, QT). Trong đó, QBR là ký hiệu phạm vi truy vấn (bao gồm MBR và VBR) trong không gian truy vấn hai chiều và QT là ký hiệu khoảng thời gian truy vấn (bao gồm thời gian bắt đầu và thời gian kết thúc). Truy vấn tương lai dự đoán các đối tượng chuyển động mà sẽ đi vào vùng QBR trong khoảng thời gian QT. Thuật toán tìm kiếm đề xuất DOA_Search được mô tả dưới đây, trong đó trả về tập các định danh của những đối tượng thỏa mãn truy vấn tương lai (QBR, QT).

88

Thuật toán tìm kiếm từ trên xuống các nút lá từ nút gốc. Trong quá trình tìm kiếm, tiến trình tìm kiếm sẽ xác định đường tìm kiếm bằng cách tính toán các hình chữ nhật bao từ mỗi mục e ở các nút trung gian. Tiến trình sẽ lưu nội dung mỗi mục e đã gặp vào vùng nhớ cache tại dòng 11. Việc tính toán mật độ của nút được thực hiện ở dòng

Algorithm DOA_Search(QBR, QT, rootNode)

Input: (QBR, QT) = future-time query answered.

rootNode= address to the root of a sub-tree being searched.

Output:SBR= objects’ ids satisfying (QBR, QT). 1. IF rootNode is a leaf node THEN

2. SBR ; // initialization

3. FOR EACH moving object O IN rootNode

4. IF O IN (QBR, QT) THEN //O is expected computed to be positioned d in QBR

within interval QT

5. SBR= SBR ∪ O.id; (adsbygoogle = window.adsbygoogle || []).push({});

6. END IF 7. END FOR

8. ELSE // rootNode is a non-leaf node 9. FOR EACH index entry e IN rootNode

10. IF OVERLAP(e.MBR, QBR, QT) THEN // if there is an overlap between the MBR of e and QBR within QT

11. Cache(e); // cache the content of e into the memory buffer

12. nodeDensity = Cal_NodeDensity(e.childNode); // calculate the Node Density Optimal of the child node pointed to by e

13. λ = h-1; // h is the tree height

14. IF (nodeDensity >= λ) THEN // a DOA execution is needed on childNode

15. Adjust (e.MBR, e.VBR); // adjust the MBR and VBR data of e

16. END IF

17. childSBR← DOA_Search(QBR, QT, childNode); 18. SBR ← SBR ∪childSBR; 19. END IF 20. END FOR 21. RETURN SBR 22. END IF Algorithm End

89

12. Điều kiện mật độ đủ tốt của nút được kiểm tra ở dòng 14, nếu điều kiện này không đạt, việc điều chỉnh MBR của nút đó sẽ được thực hiện ở dòng 15. Khi đến nút lá ở dòng 5, thuật toán sẽ đưa ra nhóm các định danh của các đối tượng chuyển động thỏa mãn điều kiện truy vấn và trả về ở dòng 21.

Định lý 4.1 (Thuật toán DOA_Search là đúng). Thuật toán DOA_Search trả về đúng và đầy đủ các kết quả truy vấn phạm vi trong tương lai.

Chứng minh.

Ta thấy, mọi nút trong cây đều được duyệt. Điều này có thể thấy ở dòng 3, mọi nút lá và dòng 9, mọi nút trung gian trong cây (a).

Tất cả các nút lá có vị trí nằm trong phạm vi hình chữ nhật truy vấn QBR trong khoảng thời gian truy vấn tương lai QT đều được đưa vào danh sách kết quả truy vấn (dòng 4 và 5) (b).

Tất cả các mục entry của nút trung gian mà có hình chữ nhật bao giao với hình chữ nhật truy vấn QBR trong khoảng thời gian truy vấn tương lai QT(dòng 9, 10) đều được duyệt và tìm kiếm đệ quy để tìm ra nút lá bên trong thỏa mãn kết quả truy vấn (dòng 17, 18) (c).

Thuật toán dừng khi duyệt hết tất cả các nút trong cây (d). Từ (a) (b) (c) và (d) ta có điều phải chứng minh.

Một phần của tài liệu Một số kỹ thuật dự báo vị trí và truy vấn các đối tượng chuyển động trong cơ sở dữ liệu không gian thời gian (Trang 86)