3.4.2. Biểu đồ tuần tự
Biểu đồ này mô tả hoạt động tương tác tuần tự giữa các lớp, như là các hoạt động Insert (Phần tử), Delete (Phần tử), RangeQuery. Hình 3.2 liệt kê tất cả các hoạt động chính của mỗi lớp, ví dụ như lớp RTNode chỉ sử dụng hoạt động truy cập đĩa.
Một số thuật toán sử dụng:
a. Thuật toán chèn vào một phần tử.
AlgorithmInsert (e) /* Input: e là một Entry để thực hiện chèn */
1. Re-insertedi= false for all levels 1≤ i ≤h-1 (h là độ cao của cây) 2. Intialize an entry re-insertion list Lreinsert
3. Invoke ChoosePath 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 ChoosePath to find the leaf node N to insert e’ 7. Invoke Node Insert (N,e)
End Insert
b. Thuật toán chèn một Node.
AlgorithmNode Insert (N, e) /* Input: Nlà nút để thực hiện chèn entry */
1. If N is a leaf node
2. Enter the information of e 3. If N overflows
4. If Re-inserted= false //no Re-inserted at leaf level yet
5. Invoke Pick Worst to select a set Sworst of entries 6. Remove entries in Sworst from N; add them toLreinsert 7. Re-inserted0=true
8. Else
9. Invoke Node Split to split N into itself anh 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 line 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
End Node Insert
c. Thuật toán xóa một phần tử từNode.
AlgorithmDelete (E,N) /* Input: xóa một entry từ nút N */
1. If N is a leaf node
2. Search all entries of N to find E.mbr 3. Else/* N is an internal node
4. Find all entries of N that cver E.mbr
5. Follow the corresponding subtrees until the leaf L that contains E is found
6. Remove E from L 7. Endif
9. If the root has only one child 10.Remove the root
11.Set as new root its only child 12.Endif
3.5. Một số kết quả thử nghiệm chƣơng trình 3.5.1. Form chƣơng trình
Chương trình demo thử nghiệm TPR-tree được viết trên ngôn ngữ C# của Microsoft visual Studio 2012, chạy trên máy tính PC với hệ điều hành Windows. Chương trình thiết kế với một số chức năng chính như sau:
- Form chính của chương trình: bao gồm 3 phần Cấu hình dữ liệu, Tạo cây dữ liệu TPR-Tree và Truy vấn dữ liệu, các quá trình sẽ được thực hiện tuần tự từ việc tạo dữ liệu đến việc truy vấn dữ liệu.
Hình 3.3. Form chính của chƣơng trình
- Cấu hình dữ liệu: trong phần này sử dụng để sinh ra các dữ liệu giả lập của các đối tượng chuyển động, nó tạo ra các file dữ liệu ngẫu nhiên dựa vào các tham số đầu vào như: số lượng đối tượng sẽ tạo, số mốc thời gian, tỷ lệ đối tượng trên khoảng thời gian. Dữ liệu tạo ra được đặt tên và lưu dưới dạng file với đuôi *.data.
- Tạo cây dữ liệu TPR-tree: trong phần này cây dữ liệu sẽ được tạo ra từ các dữ liệu giả lập, ta sẽ chọn file số liệu từ dữ liệu ngẫu nhiên để tạo lên một cây dữ liệu TPR-tree, sau đó sẽ ghi cây dữ liệu dưới dạng file *.tpr (file Index). Kết quả của việc tạo cây sẽ đưa ra các thông số liên quan đến việc tạo cây như: Cost of update, Node Internal, Node data, Data.
Hình 3.5. Form tạo cây Rtree
- Truy vấn dữ liệu: trong phần này dữ liệu sẽ được truy vấn dựa trên các file index, ta sẽ chọn file để thực hiện các truy vấn. Dữ liệu đầu vào truy vấn là số lần thực hiện truy vấn, khoảng thời gian truy vấn, giá trị MBR cần truy vấn và giá trị VBR cần truy vấn.
Hình 3.6. Form truy vấn dữ liệu
Kết quả của việc truy vấn sẽ được đưa ra màn hình bên phải với các thông số về: giá trị nút đi qua sau mỗi lần truy vấn, Avg data entries (trung bình số đối tượng
tìm được trong tương lai), Avg node accesses (trung bình số nút đi qua để có kết quả).
Hình 3.7. Form kết quả nhận đƣợc sau khi truy vấn 3.4.2. Thử nghiệm
Quá trình thử nghiệm là thực hiện trên cây TPR-tree, mục tiêu của quá trình thử nghiệm là so sánh việc kết quả đạt được khi thực hiện truy vấn các mốc thời gian trong tương lai với các khối lượng dữ liệu khác nhau. Giả định rằng các đối tượng di chuyển là tương tự nhau tại mỗi mốc thời gian truy vấn.
Mỗi một truy vấn gồm ba tham số truy vấn: Kính thước không gian của đối tượng (qrlen), vận tốc của đối tượng trên một chiều (qvlen) và khoảng thời gian truy vấn (qTlen). Trong thử nghiệm này sẽ test phạm vi truy vấn qrlen là [100, 100], qvlen là {-10, 10, -10, 10}, và khoảng thời gian qTlen từ [0, T]. Việc test sẽ thực hiện truy vấn ngẫu nhiên 100 lần sau đó lấu giá trị trung bình của mỗi lần truy vấn. Lưu ý rằng các truy vấn ở đây đều có kích thước, vectơ vận tốc và theo khoảng thời gian nghĩa là bản thân các truy vấn cũng là các cửa sổ chuyển động.
Bảng 3.7 mô tả giá trị đạt được trong tương lai khi thực hiện truy vấn tại những khoảng thời gian khác nhau 10, 20, 30, 40, 50 với khối lượng dữ liệu là 10000 (10k) đối tượng.
Bảng 3.8 mô tả giá trị đạt được trong tương lai khi thực hiện truy vấn tại những khoảng thời gian khác nhau 10, 20, 30, 40, 50 với khối lượng dữ liệu là 30000 (30k) đối tượng.
Bảng 3.9 mô tả giá trị đạt được trong tương lai khi thực hiện truy vấn tại những khoảng thời gian khác nhau 10, 20, 30, 40, 50 với khối lượng dữ liệu là 50000 (50k) đối tượng.
Trong các bảng dữ liệu, cột 1 thể hiện độ dài của khoảng thời gian truy vấn (T size), cột 2 thể hiện giá trị trung bình của số đối tượng tìm được trong tương lai (Avg data entries), cột 3 thể hiện giá trị trung bình của số nút đi qua để có kết quả (Avg node accesses), cột 4 thể hiện số nút trung gian (Internal nodes), cột 5 thể hiện số nút dữ liệu (Data nodes).
Bảng 3.7. TRP-tree tại khoảng thời gian khác nhau với 10k T size Avg data retrieves Avg Node access Internal node Data node Data T size Avg data retrieves Avg Node access Internal node Data node Data
10 7,81 23,44 34 532 10000 20 17,27 33,59 33 526 10000 30 28,00 44,20 33 553 10000 40 41,80 54,90 32 525 10000 50 56,37 67,09 32 525 10000
Bảng 3.8. TRP-tree tại khoảng thời gian khác nhau với 30k T size Avg data retrieves Avg Node access Internal node Data node Data T size Avg data retrieves Avg Node access Internal node Data node Data
10 23,31 42,13 96 1609 30000 20 51,73 62,43 95 1648 30000 30 88,18 87,03 95 1621 30000 40 127,13 113,32 94 1604 30000 50 170,86 140,74 96 1597 30000
Bảng 3.9. TRP-tree tại khoảng thời gian khác nhau với 50k T size Avg data retrieves Avg Node access Internal node Data node Data T size Avg data retrieves Avg Node access Internal node Data node Data
10 38,82 56,31 160 2706 50000 20 86,37 84,93 160 2726 50000 30 145,78 121,22 157 2653 50000 40 210,36 159,27 158 2648 50000 50 286,06 195,36 157 2649 50000
Hình 3.8. Kết quả thử nghiệm Avg data retrieves
Hình 3.9. Kết quả thử nghiệm Avg Node access
0.00 50.00 100.00 150.00 200.00 250.00 300.00 350.00 0 10 20 30 40 50 60 10k 30k 50k
Avg data retrieves
Time 0.00 50.00 100.00 150.00 200.00 250.00 0 10 20 30 40 50 60 10k 30k 50k
Bảng 3.10 mô tả giá trị đạt được trong tương lai khi thực hiện truy vấn tại những khối dữ liệu khác nhau :10000, 30000, 50000, 70000, 100000 bản ghi,cột 2 thể hiện giá trị trung bình của số đối tượng tìm được trong tương lai (Avg data entries), cột 3 thể hiện giá trị trung bình của số nút đi qua để có kết quả (Avg node accesses), với dung lượng cache khác nhau: 1000block, 2000block, 4000 block
Bảng 3.10. TRP-tree với cache size khác nhau Data Avg data
retrieves Avg Node access(0 block) Avg Node access( 1000 block) Avg Node access(2000 block) Avg Node access(400 0 block) 10000 583.62 191.44 43.18 25.48 24.34 30000 1642.5 483.98 325.34 194.98 70.7 50000 2751.02 717.9 628.34 450.4 212.88 70000 3817.1 979.62 920.9 735.84 478.04 100000 5465.26 1309.22 1281.98 1163.6 808.08
Hình 3.10. Kết quả thử nghiệm Avg Node với cache size
3.4.3. Đánh giá
Nhìn vào kết quả thử nghiệm ta thấy rằng khi truy vấn tại khoảng thời gian trong tương lai càng xa thì số Node access càng nhiều, lý do là do các MBR
0 200 400 600 800 1000 1200 1400 10000 30000 50000 70000 100000 Cache 0 block Cache 1000 block Cache 2000 block Cache 4000 block
của index tăng kích thước nên khả năng overlap càng nhiều, dẫn đến số nút truy xuất tăng lên.
Tương tự như vậy khi truy vấn khoảng thời gian trong tương lai càng xa thì số data entries cáng nhiều, khả năng các đối tượng đi qua cửa sổ truy vấn càng cao.
Nhìn vào biểu đồ AvgNode với cahce size khác nhau chúng ta thấy, dung lượng cache càng tăng thì giá trị trung bình của số nút đi qua có kết quả là giảm dần, do nhiều node được lưu vào bộ đệm nhiều hơn, dẫn đến chi phí duyệt sẽ ít hơn làm tăng hiệu suất cho truy vấn
KẾT LUẬN KếT LUậN
Sau một thời gian tìm hiểu và hoàn thành luận văn, tác giả đã nắm bắt được một số phương pháp tổ chức cơ sở dữ liệu cho đối tượng chuyển động. Luận văn đã trình bày được các khái niệm tổng quát của các phương pháp lập chỉ mục cho các đối tượng chuyển động, các cách thức truy vấn và các ưu nhược điểm của các phương pháp. Ngoài ra luận văn cũng đề cập chi tiết phương pháp lập chỉ mục hiện tại và tương lai cho đối tượng chuyển động dựa trên cấu truc TPR-tree. Dựa vào cấu trúc để trình bày một thuật toán và một số kết quả thử nghiệm đạt được khi sử dụng thuật toán TRP-tree.
Để hoàn thiện hơn về đề tài hướng nghiên cứu trong tương lai sẽ tập trung nghiên cứu về các thuật toán từ đó xây dựng lên các kết quả so sánh cụ thể cho việc lập chỉ mục của các đối tượng chuyển động. Trên cơ sở đó áp dụng hỗ trợ cho các bài toán quản lý phương tiện giao thông nói chung và hệ thống nói riêng.
Mặc dù tác giả đã có nhiều nỗ lực trong nghiên cứu và thực hiện đề tài, nhưng chắc chắn luận văn không tránh khỏi thiếu sót. Tác giả hy vọng rằng với phương pháp tổ chức dữ liệu cho đối tượng chuyển động sẽ được áp dụng rộng rãi cho các bài toán quản lý các đối tượng chuyển động.
TÀI LIỆU THAM KHẢO
1. Ahmed El-Rabbany (2002), Introduction to GPS The Global Positioning System.
2. Antonin Guttman, Michael Stonebraker (1984), "R-tree: A Dynamic Index Structure for Spatial Searchinh", Defense Technical Information Center.
3. N.Beckmann and H.P.Kriegel and R.Schneider and B.Seeger (1990), "The R*-tree: an efficient and robust access method for points and rectangles", Proceedings of the SIGMOD Conference, Atlantic City, NJ, p322-331.
4. Erwig, Güting, M.Schneider, M.Vazirgiannis (1999),“Spatio-Temporal Data Types: An Approach to Modeling and Querying Moving Objects in Databases”, Geoinformatica.
5. M.A.Nascimento and J.R.O.Silva (1998), “Towards historical R-Trees”,
ACM symposium onApplied Computing, p235–240.
6. D.Pfoser, C.S.Jensen, and Y.Theodoridis (2000), “Novel Approaches in Query Processing forMoving Objects”, Proceedings of the VLDB Conference, p395–406.
7. S. Saltenis, C. S. Jensen, S. T. Leutenegger, and M. A. Lopez (1999), “Indexing the Positions of Continuously Moving Objects”, Technical Report. 8. Rauber A.,Tomish P., Riedel H., and Kouba Z (2000), Integrating Geo- Spatial Data into OLAPSystems Using a Set-based Quad- TreeRepresentation. In Proc. of the 4th Int. Conf.onInformation technology for BalancedAutomation Systems in Production andTransportation, BASYS.
9. Yufei Tao, Dimitris Papadias, Jimeng Sun (2003), “The TPR*-Tree: An Optimized Spatio-Temporal Access Method for Predictive Queries”.
10.Yufei Tao and D.Papadias (2001), “MV3R-Tree: A Spatio-Temporal Access Method for Timestampand Interval Queries”, Proceedings of the LDB Conference, p431–440.
11.Y.Theodoridis, M.Vazirgiannis, and T. K. Sellis (1996), “Spatio-Temporal Indexing for LargeMultimedia Applications”, IEEE International Conference on Multimedia Computing andSystems, p441–448.