Các kiểu chia đoạn

Một phần của tài liệu Phương pháp tổ chức cơ sở dữ liệu cho đối tượng chuyển động (Trang 35)

Một sửa đổi khác của cây STR-tree từ R-tree là phân chia thuật tốn, để duy trì quỹ đạo trong chỉ mục, chúng ta chia một nút lá khi nó tràn như sau (như thể hiện trong hình 2.21):

(a) Tất cả các đoạn là được huỷ kết nối với nhau, QuadraticSplit được gọi ra để quyết định việc phân chia.

(b) Không phải tất cả các đoạn là huỷ kết nối với nhau, đoạn huỷ kết nối được đặt vào nút mới tạo ra.

(c) Không tồn tại đoạn huỷ kết nối, đoạn kết nối ngược gần nhất được đặt vào nút mới tạo ra.

Lập chỉ mục TB-tree

Không giống như STR-tree, TB-tree nhằm mục đích cho phương pháp tiếp cận duy trì quỹ đạo một cách hồn toàn, như vậy một nút lá chỉ chứa đoạn thuộc cùng một quỹ đạo, do đó lập chỉ mục được hiểu như là một tập hợp (bundle) quỹ đạo. Nhược điểm là các đoạn đường thẳng độc lập từ quỹ đạo nằm trong không gian gần sẽ được lưu trữ trong các nút khác nhau. Khi sự chồng chéo tăng lên, sự suy xét khơng gian giảm vì vậy giá thành cho phạm vi truy vấn thông thường tăng lên.

Hình 2.22. (a) Nút cha là khơng đầy đủ, (b) Nút cha đầy đủ

Thuật toán chèn là để chèn một phân đoạn mới tới một nút. Đầu tiên chúng ta chọn toàn bộ nút lá chứa một phân đoạn được kết nối với mục mới. Trong trường hợp nút là khơng tìm thấy, chúng ta tạo một nút mới cho mục mới. Trong trường hợp nút là được tìm thấy (giai đoạn 1 trong hình 2.22a), nếu nút lá có khơng gian chúng ta chèn vào mục mới, nhưng ngược lại chúng ta tăng cây cho tới khi chúng ta tìm thấy một nút cha không đầy đủ (giai đoạn 2 đến 4 trong Hình 2.22a). Chúng ta chọn con đường đúng nhất (giai đoạn 5) để chèn vào nút mới. Nếu có chỗ trong nút cha (giai đoạn 6), chúng ta chèn nút lá mới như thể hiện trong Hình 2.22a. Trong trường hợp nút cha là đầy đủ như trong hình 2.22b chúng ta sẽ chia nó bằng cách tạo một nút mới (khơng lá) ở mức 1có nút lá mới con cháu duy nhất của nó. Như minh hoạ, cây TB-tree là đang phát triển từ trái

sang phải, tức là chúng ta chèn vào nút trái nhất trước tiên sau đó nút phải nhất cuối cùng.

Để duy trì quỹ đạo đầy đủ, mỗi nút lá của TB-tree chứa một phần quỹ đạo và các đoạn đường thẳng cùng quỹ đạo đặt trong nút lá khác nhau. Vì vậy đối với mỗi quỹ đạo một danh sách liên kết kép được xây dựng để kết nối tất cả các nút lá chứa đoạn đường thẳng cùng quỹ đạo như thể hiện trong hình 2.23 dưới đây.

Hình 2.23. Cấu trúc TB-tree

Nhược điểm của phương pháp này là nó khơng hỗ trợ tốt cho truy vấn dựa trên toạ độ chẳng hạn như điểm, phạm vi và láng riềng gần nhất. Lý do là số lượng lớn “không gian chết” trong MBRs và TB-tree, STR-tree làm giảm hạn chế các thuộc tính khơng gian, đặc biệt là TB-tree. Ví dụ cho các truy vấn “ tìm

đối tượng k gần nhất tại một điểm nhất định ở thời gian nhất định” hay “tìm tất cả đối tượng trong một khu vực nhất định ở một khoảng thời gian nhất định”

Tuy nhiên, phương pháp này cũng có một số ưu điểm sau: Nó rất dễ dàng để xây dựng đỉnh của cây R-tree, nó hỗ trợ tốt cho các truy vấn dựa trên quỹ đạo như truy vấn topo, điều hướng(Navigational), kết hợp(Combined).

- Truy vấn Navigational (khoảng cách, tốc độ,…): tốc độ di chuyển của máy bay là gì, tốc độ tối đa là gì?

- Truy vấn Topological: nhập, để lại, vượt qua, bỏ qua như thể hiện trong hình 2.24a.

- Truy vấn Combined: để truy xuất các thông tin liên quan tới (một phần) quỹ đạo. Ví dụ "Quỹ đạo của đối tượng là gì sau khi họ rời Hà Nội giữa 7 giờ và 8 giờ sáng ngày hôm nay, trong một giờ tiếp theo?" Như thể hiện trong hình 2.24b.

Hình 2.24. (a) truy vấn Topological, (b) truy vấn Combined 2.2. Lập chỉ mục cho hiện tại và tƣơng lai của đối tƣợng chuyển động 2.2. Lập chỉ mục cho hiện tại và tƣơng lai của đối tƣợng chuyển động

Đối với hệ thống quản trị cơ sở dữ liệu truyền thống, các dữ liệu được lưu trữ trong cơ sở dữ liệu không thay đổi cho đến khi nó có một bản cập nhật mới (thể hiện sự thay đổi một cách rõ ràng của các đối tượng chuyển động). Mơ hình này chỉ phục vụ cho các ứng dụng có thay đổi nhiều về dữ liệu nhưng theo bước rời rạc, nó khơng thích hợp cho các ứng dụng mà các dữ liệu thay đổi liên tục. Một trong những ứng dụng là cơ sở dữ liệu "chuyển động" lưu trữ các vị trí của các đối tượng di động(ví dụ như xe ơ tô, phương tiện vận chuyển..). Khi đối tượng thay đổi vị trí liên tục, nó sẽ phải cập nhật cơ sở dữ liệu liên tục tại mỗi đơn vị thời gian. Đây rõ ràng là một giải pháp không hiệu quả và không khả thi.

Một phương pháp tiếp cận tốt hơn là bản ghi tóm tắt các thơng số của mỗi đối tượng chuyển động tại một vị trí được coi như một hàm số của f(t) và cơ sở dữ liệu sẽ cập nhật khi các thơng số của f thay đổi(ví dụ như khi tốc độ và hướng của xe thay đổi).Sử dụng cơ sở dữ liệu biến đổi theo hàm f(t) có thể tính tốn vị trí của đối tượng chuyển động bất cứ lúc nào trong tương lai. Phương pháp này giảm thiểu các chi phí cập nhật, ngồi ra phương pháp cũng giới thiệu một loạt các vấn đề mới (chẳng hạn như sự cần thiết của mơ hình dữ liệu thích hợp, ngơn ngữ truy vấn, xử lý truy vấn và các kỹ thuật tối ưu hóa) khi đó cơ sở dữ liệu khơng trực tiếp lưu trữ giá trị dữ liệu nhưng có chức năng tính tốn các giá trị của dữ liệu.

Truy vấn không-thời gian của các đối tượng chuyển động có ứng dụng quan trọng trong việc theo dõi lưu lượng truy cập, chuyển hướng thông minh và các lĩnh vực truyền thơng di động. Ví dụ, trong cơ sở dữ liệu theo dõi xe ôtô của một hệ thống đường cao tốc, chúng ta có thể phát hiện các khu vực tắc nghẽn trong tương lai. Trong truyền thơng di động, chúng ta có thể phân bổ thêm băng thơng cho các khu vực có số lượng lớn điện thoại di động đang đến gần khu vực đó. Điều đó địi hỏi việc lập chỉ mục cho đối tượng phải đạt hiệu quả, để có thể xác định các địa điểm của đối tượng trong tương lai.

Một ví dụ về một truy vấn không-thời gian là: "Báo cáo tất cả các đối tượng sẽ có tại một khu vực cần truy vấn trong thời gian 10 phút kể từ bây giờ". Lưu ý rằng các câu trả lời chotruy vấn này dự kiến có nghĩa là nó được tính tốn dựa trên dữ liệuhiện tại được lưu trữ trong cơ sở dữ liệu về các chức năng vị trí của các đối tượng chuyển động. Trong tương lai gần, dữ liệu nàycó thể thay đổi, có nghĩa là cùng một truy vấn có thể có một câu trả lời khác nhau. Trong phần này, chúng ta tập trung vào cách tiếp cận linh hoạt và hiệu quả nhất, tham số thời gian R-tree(TPR-tree) [7] .

2.2.1. Khái niệm TPR-tree

Xét ví dụ minh hoạ tại hình 2.25dưới đây: trong hình trên cùng bên trái cho thấy các vị trí và vectơ vận tốc của 7 đối tượng vào thời điểm 0 (t0). Đối tượng 1 và 2 di chuyển về phía phải với tốc độ 1 đơn vị khoảng cách, đối tượng 3 di chuyển về phía phải với tốc độ bằng 2 đơn vị khoảng cách, các đối tượng 4 và 6 di chuyển về phía trái với tốc độ bằng 1 đơn vị khoảng cách và các đối tượng 5 và 7 di chuyển lên trên với tốc độ bằng 1 đơn vị khoảng cách.

Hình 2.25. Các điểm di chuyển và kết quả Leaf-Level MBRs

Giả sử chúng ta tạo ra một R-tree vào thời điểm 0, biểu đồ phía trên bên phải cho thấy một vị trí xác định của các đối tượng được bao quanh bởi hình chữ nhật tối thiểu (MBRs), giả định tối đa là ba MBR như trên hình. Mục đích của các bài tốn làcố gắng để giảm thiểu số lượng MBRs để tránh chồng chéo lên nhau, tránh không gian chết để tạo chỉ mục với một kết quả truy vấn tốt. Tuy nhiên, nó rất thuận tiện để truy vấn tại thời điểm hiện tại, nhưng khó xác định được đối tượng chuyển động trong tương lai. Trong hình dưới cùng bên trái cho thấy các vị trí của các đối tượng và các MBRs ở thời điểm t3. Tại thời điểm này tất cả các MBR đã phát triển mở rộng, gây khó khăn đến kết quả truy vấn. Nếu thời gian tiếp tục tăng, các MBR sẽ tiếp tục phát triển mở rộng, dẫn đến khó khăn cho việc truy vấn hơn nữa. MBR có chứa đối tượng 4 và 5 cũng như MBR chứa các đối tượng 6 và 7 đã mở rộng nhiều hơn, mặc dù các đối

tượng ban đầu gần nhau, các hướng chuyển động của đối tượng khác nhau vì vậy vị trí chuyển động nhanh chóng làm cho MBRs phát triển rộng. Tại thời điểm t3, sẽ có tối ưu hơn cho việc truy vấn khi gán các đối tượng 4 và 6 vào một MBR và các đối tượng 5 và 7 với cùng một MBR, như được minh họa bằng hình phía dưới bên phải.

Các MBR trong ví dụ minh họa trên là kiểu tham số thời gian với hình chữ nhật bao bọc được hỗ trợ bởi TPR-tree. Mơ hình hố vị trí của đối tượng chuyển động theo thời gian cho phép chúng ta dự đốn được vị trí tương lai của đối tượng.

2.2.2. Cấu trúc và thuật toán TPR-tree (Time parameterizer R-tree)

Trong phần này tơi trình bày cấu trúc vàthuật toán củaTPR-tree. Khái niệm về một tham số thời gian được xác định với ranh giớihình chữ nhật MBR, các cách thức để truy vấn cây và các thuật toán.

Cấu trúc chỉ mục (adsbygoogle = window.adsbygoogle || []).push({});

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.27. Ví dụ các điểm di chuyển nhƣ các Internal 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.

Algorithmtimeslice-query (u, r, tq ) 1. If u is a leaf then

2. report all points stored at u that are covered by r at t = tq 3. Else

4. for each child v of udo

5. if bounding-rectangle(v) intersects r at t = tq then

6. timeslice-query(v, r, tq )

Đố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:

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.

Algorithmmoving-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 ┤] (adsbygoogle = window.adsbygoogle || []).push({});

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 ┤]

6. If [tsub├, tsub┤] ≠ Ø then moving-query(v, r ├, r ┤,tsub├, tsub┤)

Đố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ự đố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 tố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 tố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 tố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

Một phần của tài liệu Phương pháp tổ chức cơ sở dữ liệu cho đối tượng chuyển động (Trang 35)