Giới thiệu bài toán Sh-tree sẽ là sự kết hợp của kd-tree để giả quyết vấn đề fan-out và SR-tree để giải quyến vấn đề cây cân bằng Để quản lý spatial points và extended spatial objects
Trang 1SH-TREE ĐÁNH CHỈ MỤC TRONG TÌM
KIẾM DỮ LIỆU ĐA CHIỀU
SVTH : Đoàn Xuân Duy
Lê Nguyễn Khánh Duy Phan Thanh Duy
Huỳnh Anh Duy
Trang 3Giới thiệu bài toán
Hiện nay có khá nhiều cách tiếp cận trong việc đánh chỉ mục cho dữ liệu
Đánh chỉ mục dựa theo phân vùng không gian
Đánh chỉ mục theo phân vùng dữ liệu
Trang 4Giới thiệu bài toán
Với SR-tree chia không gian thành 2 khối nhỏ ( hình chữ nhật- rectangles–BRs)
và phân theo đường kính (hình cầu - spheres–BSs)
SR-tree chịu fan-out thấp do khi đọc thêm node và làm giảm hiệu suất của câu truy vấn
Trang 5Giới thiệu bài toán
Vấn đề trên sẽ không gặp phải trong KD-Tree, fan-out là hằng số
Không có không gian trống.
Trang 6Giới thiệu bài toán
Sh-tree sẽ là sự kết hợp của kd-tree để giả quyết vấn đề fan-out và SR-tree để giải quyến vấn đề cây cân bằng
Để quản lý spatial points và extended spatial objects sh-tree cho phép chồng chéo dữ các phân vùng.
Trang 8Cấu trúc SH-Tree
Trang 9Cấu trúc SH-Tree
Trang 10Cấu trúc SH-Tree
Internal <d, lo, up, other_info>
Balanced.
Leaf.
Trang 11SH-Tree node: Internal
Mỗi internal node của SH-Tree có cấu trúc: <d, lo, up, other_info>
Trong đó:
d: chiều chia (split dimension).
lo: biên trái của partition phải.
up: biên phải của partition trái.
other_info: các thông tin bổ sung như số đối tượng dữ liêêu của phần tử con bên
trái, bên phải của nó.
up = lo: nghĩa là không có sự trùng lắp giữa 2 partition.
up > lo: 2 partition này có phần phủ lấp lên nhau
Trang 12SH-Tree node: Balanced
Là node nằm ngay phía trên node lá (leaf node)
Có cấu trúc tương tự internal node của SR-Tree (Đăêc trưng của cây SH-Tree)
BN: <B1, B2, …, BN> (minBN_E <= maxBN_E)Bi: <BS, MBR, num, child_ptr>
Trang 13SH-Tree node: Leaf
Có cấu trúc tương tự SS-Tree
Trang 15Các phép toán trên SH-tree
Insertion:
Ý tưởng để insert New Data Object (NDO) vào SH-tree:
1 Duyệt từ root xuống đến vị trí leaf node mà NDO cần thêm vào.
2 Algorithm duyệt ta xét 2 loại node: Internal và balanced nodes.
a) Internal node:
+ 2 partitions là overlapping , algorithm trả về child node ( left hay right) phụ thuộc vào feature value của NDO trong split dimension D của Internal node
+ 2 partitions là không overlapping , như trên nhưng trường hợp feature value của NDO thuộc (D.Lo,
D.Up), algorithm trả về child node chứa NDO của cha theo split dimension D liên quan
Trang 16Các phép toán trên SH-tree
Insertion:
b) Balanced node:
+ Node ứng cử tốt nhất là node gần nhất với NDO Sử dụng phương pháp tương tự như SR-tree
3 Sau khi xác định leaf node , ta có 2 trường hợp : empty entry or overfull entry
+ Empty entry : NDO được thêm
+ Overfull entry :2 strategies giải quyết : Reinsertion,Redistribution
Trang 17Các phép toán trên SH-tree
Insertion:
- Reinsertion : Dùng REINSERTION flag (True, False) cho leaf node để kiểm soát reinsertion Ở đây
sau khi chuyển TRUE thành FALSE ta có thể thực hiện reinsertion lại => Khác biệt với SS-tree, R* tree (Hình 1)
- Redistribution: Phân bố lại 1 data object (object entry) từ overfull leaf cho sibling1 Ta xét locally
located trong balanced node vì mỗi balanced node có thể sẽ có (minBN_E,maxBN_E) khác nhau
1sibling: node gần nhất với overfull node mà còn ít nhất 1 chỗ trống
Trang 18Các phép toán trên SH-tree
Insertion:
Hình 1
Trang 19Các phép toán trên SH-tree
Delete:
Khi xóa 1 node ta gặp vấn đề leaf node trở thành under-full(số lượng feaf node mà object giữ < minO_E)
- SR-tree, SS-tree, R*-tree và Hybrid –tree sử dụng re-insertion policy
- SH-tree sử dụng eliminate-pull-reinsert algorithm
Ý tưởng eliminate-pull-reinsert algorithm:
+ Đầu tiên ’pull’ strategy: Chuyển 1 data object (object entry) từ overfull leaf cho sibling hoặc ‘kéo’ 1 data object từ overfull leaf hay sibling cho under-full leaf node
+ Cho đến khi ’pull’ strategy không thể giải quyết vấn đề Reinserted strategy sẽ áp dụng cho under-full leaf node
Trang 20Các phép toán trên SH-tree
Search:
- Search internal nodes của SH-tree tương tự KD-tree và R-tree tùy theo query types nhưng search balanced nodes và leaves thì tương tự SR-tree
- Để thực hiện tìm kiếm ta cần quan tâm metric distance function D
(Euclidean metric, Manhattan metric hay Minkowski metric, etc)
- Sau đây là 1 số query types:
1 Exact match queries
2 Range queries
3 Nearestneighbor queries
4 k nearest neighbor queries
Trang 21Các phép toán trên SH-tree
Search:
1/ Exact match queries:
- Giả thiết: spatial object O trong d-dimensional space E tìm kiếm object O trong database
- Ý tưởng giải quyết:
(1) Duyệt locate balanced nodes chứa query object O Từ đó xét các leaf node thỏa O ’s feature values.(2) MBR và BS của những leaf node này phải overlap O
+ True: nếu chứa O hoặc False nếu không chứa O
Node: Nếu tồn tại thì là duy nhất trong SH-tree(khác R+-tree , UB-tree)
Trang 22Các phép toán trên SH-tree
Search:
2/ Range queries
- Giả thiết: Cho 1 query object Q trong d-dimensional space E và 1 giá trị thực r, tìm tất cả data objects O thỏa: D(Q, O) ≤ r
(bounding sphere range queries)
- Ý tưởng giải quyết:
(1) Xác định balanced node thỏa khoảng truy vấn
(2) Cho từng balanced node đã xác định, tìm kiếm tất cả entries Nếu MBR và BS overlap khoảng truy vấn thì data page (DP) được load
(3) Cho từng loaded data page, xét tất cả data objects Nếu D(Q, O) ≤ r thì object O được báo như 1
Trang 23Các phép toán trên SH-tree
Search:
3/ Nearest neighbor queries
- Giả thiết:Cho 1 query object Q trong d -dimensional space E Tìm tất cả data objects O trong database
có khoảng cách gần nhất với Q
- Ý tưởng giải quyết:
Trang 24Các phép toán trên SH-tree
Search:
4/ k nearest neighbor queries
- Giả thiết:Cho 1 query object Q trong d-dimensional space E và 1 số tự nhiên k, tìm ít nhất k objects gần
nhất với Q trong database
Đây là 1 khái quát hóa của NN queries
Trang 26Đánh giá hiệu suất (1)
Kế thừa và chỉnh sửa thuật toán từ hai công trình đi trước:
• N Roussopoulos, S Kelley, F Vincent: Nearest Neighbor Queries 1995
• G.R Hjaltason, H Samet: Ranking in Spatial Databases 1995
Chỉnh sửa:
• Không tính toán MINMAXDIST
• Không sử dụng “Active Branch List”
Trang 27Đánh giá hiệu suất (2)
Tập dữ liệu đo đạc:
Tập dữ liệu phân phối đồng nhất:
• Số chiều dao động từ 2->64, mỗi tập chứa 100,000 “tuples”
Trang 28Đánh giá hiệu suất (4)
Trang 29Đánh giá hiệu suất (5)
Trang 30Đánh giá hiệu suất (5)
Trang 32Kết luận
Trang 33Tài liệu tham khảo
[1] The SH-Tree: A Novel and Flexible Super Hybrid Index Structure for Similarity Search on Multidimensional Data, IJCSA, 3(1):1-25, 2006
[2] The Hybrid Tree: An Index Structure for High Dimensional Feature Spaces , Kaushik Chakrabarti, Sharad Mehrotra
Trang 34Thank You !