Trong phần này tôi trình bày cấu trúc và thuật toán của TPR-tree. Khái niệm về một tham số thời gian được xác định với ranh giới hình chữ nhật MBR, các cách thức để truy vấn cây và các thuật toán.
TPR- tree là một cây cân bằng, đa chiều và có cấu trúc của R-tree. Các phần tử trong nút là là một cặp bao gồm: vị trí của đối tượng điểm chuyển động và con trỏ đến của đối tượng điểm chuyển động. Các mục trong các nút trung gian (internal node) là một cặp bao gồm: con trỏ đến của cây con (subtree) và hình chữ nhật giới hạn tất cả các vị trí của đối tượng chuyển động (hình chữ nhật bao bọc trong nhánh cây con).
Hình 2.26. Ví dụ các điểm di chuyển nhƣ các Leaf Node của TPR-tree
Trong trường hợp một chiều, vị trí của một đối tượng điểm chuyển động được mô tả bởi một vị trí tham chiếu và một vectơ vận tốc tương ứng (x,v) , x = x(tref), với tref là chỉ mục tham chiếu tại thời gian tl.
Khái niệm về Time-parameterized bounding rectangles [7]
Trong TPR-tree, các hình chữ nhật giới hạn trong không gian d- chiều sử dụng các tham số của thời gian, tọa độ của chúng là hàm thời gian. Một hình chữ nhật giới hạn theo tham số thời gian nó bao bọc tất cả điểm kèm theo hay các hình chữ nhật tại tất cả thời gian tương lai gần nhất. Vì vậy nó là một tham số thời gian có khả năng bao bọc các điểm chuyển động liên tục.
Đối với mỗi chiều d, khoảng cách giới hạn được xác định bởi 2 hàm tuyến tính theo thời gian: [xd
├ (tref) + vd ├ (t – tref), xd ┤ (tref) + vd ┤ (t – tref)], trong đó:
xd├ = xd├ (tref) = mini{oi.xd├ (tref)}
xd ┤ = xd ┤ (tref ) = maxi{oi.xd ┤ (tref)} vd ├ = mini{oi. vd ├ } vd ┤= maxi{oi. vd┤ }
tref là thời gian hình chữ nhật giới hạn được tạo ra.
Các hình chữ nhật không bao giờ thu nhỏ lại và thực tế nó có thể phát triển rất nhanh theo thời gian, nó làm hiệu suất truy vấn giảm theo thời gian vì vậy các hình chữ nhật phải được điều chỉnh và cập nhật lại.
Đối với mỗi chiều d, điểm cuối của khoảng giới hạn sẽ được cập nhật (update) như sau:
xd ├ = mini{oi.xd ├ (tupd)} – vd ├ (tupd – tref) xd ┤ = maxi{oi.xd ┤ (tupd)} – vd ┤ (tupd – tref)
tref là thời gian hình chữ nhật giới hạn được tạo ra. tupd là thời gian khi thực hiện cập nhật.
Hình 2.28. Ví dụ cập nhật khoảng giới hạn theo tham số thời gian
Trong ví dụ tại hình 2.28, các nét đậm phía trên và phía dưới thể hiện thời gian được tạo ra và nét đứt là thời gian cập nhật, 4 đường thể hiện 4 đối tượng chuyển động.
Truy vấn
a. Timeslice query
Trong thực tế việc trả lời một truy vấn mốc thời gian (timeslice) trong cây TPR-tree không khác với R-tree. TPR-tree lưu trữ hàm tuyến tính cho cả điểm di chuyển và hình chữ nhật giới hạn theo tham số thời gian. Do đó một sự lưu trữ nhanh của TPR-tree sẽ chứa tham số thời gian tq, việc truy vấn tìm kiếm trong phạm vị lưu trữ nhanh sẽ chính xác tại các mốc thời gian.
Algorithm timeslice-query (u, r, t q
) 1. If u is a leaf then
2. report all points stored at u that are covered by r at t = t q
3. Else
4. for each child v of udo
5. if bounding-rectangle(v) intersects r at t = t q then 6. timeslice-query(v, r, t q )
Đối với mỗi chiều d, một khoảng giới hạn (xd ├ , xd ┤ , vd ├ , vd
┤) giao nhau với khoảng truy vấn ([ad├, ad┤] r, tq) khi và chỉ khi:
ad├ xd┤
+ vd ┤(tq – tref ) ∧ ad┤ xd├ + vd├
(tq – tref ) trong đó tq
là thời gian chỉ định trong truy vấn
Hình 2.29. Ví dụ truy vấn Timeslice trong TPR-tree
b. Moving query
Để trả lời một truy vấn di chuyển trong tập dữ liệu d chiều, chúng ta cần xem xét tới không gian d+1 chiều, với thời gian như là một chiều của không gian. Nói một cách khác, các kết quả chỉ được đưa ra khi hình chữ nhật giới hạn giao nhau với phạm vi truy vấn, thuật toán sẽ chỉ ra phạm vi thời gian khi nó giao nhau.
Algorithm moving-query(u, r ├, r ┤,t├, t ┤) 1. If u is a leaf then
2. report all points stored at u that are covered by the trapezoid formed by (r ├, r ┤) during the time span [t├, t ┤]
3. Else
4. for each child v of udo
5. Obtain the [tsub├ , tsub┤
] where bounding-rectangle(v) intersects with trapezoid formed by (r ├, r ┤) during the time span [t├, t ┤]
Đối với mỗi chiều d, chúng ta lấy được từ r ├, r ┤ một khoảng truy vấn theo hàm thời gian: [ad├ (t├) + wd├ (t – t├), ad ┤ (t├) + wd ┤(t – t├)] [xd├ , xd ┤ ] bounding-rectangle(v)
Hình 2.30. Ví dụ giao của một khoảng thời gian giới hạn và một truy vấn
c.Window query
Để trả lời một truy vấn di chuyển trong tập dữ liệu d chiều, chúng ta cần xem xét tới không gian d+1 chiều, với thời gian như là một chiều của không gian. Nói một cách khác, các kết quả chỉ được đưa ra khi hình chữ nhật giới hạn giao nhau với quỹ đạo không gian của điểm chuyển động.
Các truy vấn có thể lấy các đối tượng dựa trên vị trí của nó tại bất kỳ thời điểm trong tương lai. Nhưng các vị trí dự đoán tại thời gian truy vấn trở nên ít hơn và kém chính xác hơn khi các truy vấn di chuyển vào tương lai bởi vì các cập nhật chưa được biết tại thời gian truy vấn có thể xảy ra, các truy vấn xa trong tương lai có thể sẽ có ít giá trị. Vì vậy, các ứng dụng trong thế giới thực có thể được dự kiến để truy vấn được tập trung ở một số thời gian hạn chế mở rộng từ thời điểm hiện tại.
Thuật toán
Hàm tuyến tính của một điểm dữ liệu là một dự đoán của đối tượng chuyển động. Khi các tuyến đường đi thay đổi thì phải cập nhật lại các nút lá tương ứng nơi mà ở đó lưu trữ dữ liệu của các điểm. Cập nhật hàm tuyến tính của nút lá có thể gây ra giá trị không đúng của hình chữ nhật giới hạn, để giải quyết vấn đề này đòi hỏi phải xây dựng lại lập chỉ mục cho đối tượng. Cấu trúc dữ liệu của TPR-tree có một khoảng thời gian tồn tại, nó được gọi là Time Horizon (H), cấu trúc dữ liệu có thể xây dựng lại với mọi khoảng thời gian của H.
Khi có dữ liệu một điểm mới, chúng ta có thể sử dụng thuật toán chèn để chèn nó vào cây hiện có. Tương tự chúng ta có thể sử dụng các thuật toán chèn, cập nhật và xóa của cây R-tree một cách bình thường để áp dụng cho TPR-tree. Do TPR-tree là mở rộng của R-tree vì vậy nó sử dụng các thuật toán tương tự trong R-tree như đã trình trong phần R-tree.
Trong chương tiếp theo tôi sẽ trình bày các bước để xây dựng một chương trình thử nghiệm dựa trên cấu trúc của phương pháp TPR-tree và sẽ mô tả chi tiết các thuật toán được sử dụng.
Chƣơng 3. XÂY DỰNG CHƢƠNG TRÌNH THỬ NGHIỆM
Trong chương này tôi trình bày một thiết kế dữ liệu cho TPR-tree để thực hiện demo thuật toán TPR-tree.