PowerPoint Presentation Fast neighbor search by using revised k d tree 1 Tóm tắt Tìm kiếm lân cận nhanh chóng bằng cách sử dụng cây k d sửa đổi được đề xuất để giảm tính toán khoảng cách không cần thi. Tìm kiếm lân cận nhanh chóng bằng cách sử dụng cây kd đã sửa đổi
1 Fast neighbor search by using revised k-d tree Tóm tắt Tìm kiếm lân cận nhanh chóng cách sử dụng k-d sửa đổi đề xuất để giảm tính tốn khoảng cách khơng cần thiết cách kiểm tra liệu ô nút nằm bên hay bên vùng lân cận định điểm truy vấn điểm lại sử dụng để giảm nút truy cập dư thừa cách lưu số điểm cháu Nội dung PHẦN I: CÁC KHÁI NIỆM PHẦN II: CÁC PHƯƠNG PHÁP ĐỀ XUẤT PHẦN III: ĐÁNH GIÁ PHẦN IV: KẾT LUẬN PHẦN I: CÁC KHÁI NIỆM Cây KD-Tree: cấu trúc liệu sử dụng để đánh mục đa chiều, cấu trúc liệu phân vùng không gian tổ chức thành điểm khơng gian Cây KD-Tree thuộc dạng nhị phân tìm kiếm mà nút véc-tơ k-chiều Mỗi nút khơng phải nút chia khơng gian liệu thành hai phần mặt phẳng k-chiều PHẦN I: CÁC KHÁI NIỆM Truy vấn lân cận, dạng tìm kiếm tiệm cận, vấn đề tối ưu hóa việc tìm điểm tập hợp định gần (hoặc tương tự nhất) với điểm cho Về mặt hình thức, vấn đề truy vấn lân cận gần (NN) định nghĩa sau: cho trước tập S gồm điểm không gian M điểm truy vấn q ∈ M, tìm điểm gần q S. k-truy vấn lân cận gần (kNN) khái quát trực tiếp toán này, nhiệm vụ kNN tìm k điểm gần nhất. Truy vấn phạm vi, gọi truy vấn phạm vi lân cận gần (RNN), loại truy vấn lân cận khác, tìm lân cận vùng lân cận cụ thể PHẦN I: CÁC KHÁI NIỆM Kí hiệu: Gọi P ⊂ là tập điểm liệu, d chiều; n số P; là điểm thứ i trong P; dist(p, q) = khoảng cách từ q đến p; Range (p, ϵ) lân cận ϵ p, xác định sau: Range (p, ϵ) = {o|≤ ϵ, o ∈ } (1) Định nghĩa OutRange (p, ϵ) khối hộp chứa hình cầu có tâm p với bán kính ϵ sau: OutRange (p, ϵ) = {o|≤ ϵ, o ∈ } (2) Truy vấn RNN định nghĩa sau: Định nghĩa 1. Với khoảng cách ϵ , Khoảng lân cận gần của q được xác định là: RNN (q, ϵ) = {p | p ∈ Range (q, ϵ) ∩ P} PHẦN I: CÁC KHÁI NIỆM HẠN CHẾ CỦA TÌM KIẾM PHẠM VI DỰA TRÊN CÂY K-D: Các nút truy cập dư thừa: Đối với điểm truy vấn q, phải duyệt qua nút, Range (q,ϵ) bao phủ tồn nút. Tính tốn khoảng cách dư thừa: Mặc dù, k-d lọc số tính tốn khoảng cách, cịn số tính toán khoảng cách dư thừa Nội dung PHẦN I: CÁC KHÁI NIỆM PHẦN II: CÁC PHƯƠNG PHÁP ĐỀ XUẤT PHẦN III: ĐÁNH GIÁ PHẦN IV: KẾT LUẬN PHẦN II: CÁC PHƯƠNG PHÁP ĐỀ XUẤT Xác định mối quan hệ phạm vi tìm kiếm Gọi ξ ô nút s t điểm, có ba trường hợp ξ Range(t,ϵ), sau: • Trường hợp (1) khơng giao nhau: tất điểm ô ξ xa t, khơng cần thăm điểm • Trường hợp (2) Range(t,ϵ) bao hàm (bao gồm) ξ: tất điểm ô ξ lân cận t. Ngồi ra, khơng cần thiết phải ghé thăm điểm • Trường hợp (3) giao nhau: cần thăm nút 10 PHẦN II: CÁC PHƯƠNG PHÁP ĐỀ XUẤT 1 Xác định mối quan hệ phạm vi tìm kiếm Cho rect ⊂ là siêu hình chữ nhật d chiều, lvex uvex hai đỉnh rect, cho: ∀q ∈ rect s.t ∀j ≤ ≤ j =1, 2, , d. Gọi cent điểm rect, tức là: cent = (lvex + uvex)/2, dvec = uvex - cent = cent - lvex vectơ cho biết khoảng cách từ cent tới mặt (siêu mặt phẳng) rect. Rõ ràng, ∀i ta có ≥ Thuật tốn RNN 19 -1 a d,e,f h f q b c e g,h c f d g e g b f a d Xét node d dist(d,q)>ϵ h Thuật toán RNN 20 -1 a d,e,f h f q b c e g,h c f d g e g b f a d Xét node e fdist = udist(q, recte ) < ϵ h Thuật toán RNN 21 -1 a f q h d,e,f v b e c g,h c f cent d g e g b f a d Xét node c cdist = ldist(q, rectc ) > ϵ Như vậy: RNN(q, ϵ)={e,f} h 22 PHẦN II: CÁC PHƯƠNG PHÁP ĐỀ XUẤT toán truy vấn lân cận gần Thuật Thuật toán 2: Fast Nearest Neighbor Searching: FNNS 1: Input: data , revised -d tree , query point , current node , searching radius 2: Output: the index of the nearest point, , to , minimum distance 3: global 4: global 5: if is root node then 6: 7: 8: 9: else 10: 11: according to Theorem 12: if then 13: return; 14: end if 15: if then 16: 17: 18: 19: ; end if 20: end if 21: if is not empty then 22: 23: end if 24: if is not empty then 25: 26: end if 27: if is root node then 28: return ; 29: end if Thuật toán FNNS 23 q g,h b c cDis et a d,e,f h f -1 c f d g e g b f a d B1: xét node a, a node gốc ->min_dist=dist(q,a) B2: xét node b, < min_dist mà dist(q,a) > dist(q,b) ->min_dist= dist(q,b) h Thuật toán FNNS 24 q g,h b c cDis et a d,e,f h f -1 c f d g e g b f a d B3: xét node e, < min_dist mà dist(q,b) > dist(q,e) ->min_dist= dist(q,e) h Thuật toán FNNS 25 a d,e,f h f -1 q g,h b c e c f d g e g b f a d B4: xét node f, dist(q,f) > dist(q,e) ->min_dist= dist(q,e) B5: xét node d, dist(q,d) > dist(q,e) ->min_dist= dist(q,e) h Thuật toán FNNS 26 q cDis t e a d,e,f h f -1 g,h b c c f d g e g b f a d B6: xét node c, > min_dist ->min_dist= dist(q,e) Vậy best node=e, min_dist=dist(q,e) h 27 PHẦN II: CÁC PHƯƠNG PHÁP ĐỀ XUẤT Thuật toán truy vấn lân cận gần Thuật toán 3: Revised PROCESSALLBUFFERS 1: Ensure: A sequence of query indices 2: 3: for do 4: Remove all query indices from buffer 5: for all in parallel 6: if the nearest distance from the rect of current leaf associated with the buffer nearest distance from current query point then 7: Update nearest neighbors w.r.t all points in the leaf 8: end if 9: end for 10: (concatenate indices) 11: end for 12: Return 28 Nội dung PHẦN I: CÁC KHÁI NIỆM PHẦN II: CÁC PHƯƠNG PHÁP ĐỀ XUẤT PHẦN III: ĐÁNH GIÁ PHẦN IV: KẾT LUẬN 29 PHẦN III: ĐÁNH GIÁ So sánh thời gian chạy kNN cho 2000 điểm truy vấn ngẫu nhiên tập liệu khác với k khác Thuật toán kNN cải thiện nhiều chiều thấp, hiệu biến theo chiều tăng lên PHẦN III: ĐÁNH GIÁ 30 Thấy số lượng nút truy cập dư thừa tính tốn khoảng cách giảm đáng kể thuật tốn đề xuất kích thước thấp Sự cân độ phức tạp thuật toán k-d sửa đổi trung bình vào khoảng O(αnlog(n)) Tập liệu kNN k=1 k=41 Bộ đệm kd pam 605,203,501 2,893,962,806 2,003,902,87 3,854,265,000 Tăng tốc 3.31 1.33 kNN 995,721,799 3,064,925,450 Bộ đệm kd 2,003,906,24 Tăng tốc kNN k=121 rand_5dim Bộ đệm kd Tăng tốc 2.01 1,037,119,33 2,003,903,90 1.93 3,854,265,000 house 1,740,878,2 90 3,854,265,000 1.23 23,456,39 1,910,181,8 02 23,922,00 1.10 1,817,370,7 55 1.02 23,477,90 1,910,215,3 18 1.26 3,129,228,967 blog 23,922,00 1.05 1,843,986,0 73 1.02 23,470,73 1,910,137,1 14 23,922,00 1.03 1.02 So sánh tổng khoảng cách tính tốn kNN cho 2000 điểm truy vấn ngẫu nhiên tập liệu khác 31 Nội dung PHẦN I: CÁC KHÁI NIỆM PHẦN II: CÁC PHƯƠNG PHÁP ĐỀ XUẤT PHẦN III: ĐÁNH GIÁ PHẦN IV: KẾT LUẬN 32 PHẦN IV: KẾT LUẬN Thuật toán RNN, NN kNN mới, giúp giảm đáng kể nút truy cập khơng cần thiết tính tốn khoảng cách, dựa hai kỹ thuật sau: Đầu tiên kiểm tra xem ô nút nằm hay ngồi Range(q, ϵ), nằm phép tính khoảng cách từ q đến tất điểm bên ô lọc Cách thứ hai giảm nút truy cập khơng cần thiết dựa kd cây, có chi phí khơng gian khoảng O(αnlog(n)). Với giúp đỡ k-d sửa đổi, truy xuất tất cháu nút thời gian O(1), thay qua nút 33 PHẦN IV: KẾT LUẬN Có hai nhược điểm thuật tốn đề xuất, nhược điểm tính tốn khoảng cách xa tăng nhanh chóng theo chiều, điều làm cho khơng phù hợp với liệu chiều cao ϵ khơng đủ lớn phần cịn lại độ phức tạp thuật tốn cịn tương đối cao Trung bình, RNN đề xuất chạy thời gian (độ phức tạp thuật tốn) Trong trường hợp có chiều thấp ϵ nhỏ, thuật toán thực thời gian O(log(n)). Tốt tất cả, độ phức tạp O(1), Range(p, ϵ) bao phủ tồn khơng gian liệu khơng giao với nó. Trường hợp xấu O(n) xảy chiều cao Range(p, ϵ) giao với hầu hết ô nút Mặc dù độ phức tạp thuật toán truy vấn NN đề xuất FNNS thứ tự độ lớn thuật toán NN ban đầu, thực tế, cải thiện đáng kể sau đó. Thuật tốn kNN chúng tơi dựa khung k-d đệm cải thiện đáng kể k-d đệm chiều thấp ... tốc 2. 01 1,037 ,11 9,33 2,003,903,90 1. 93 3,854,265,000 house 1, 740,878,2 90 3,854,265,000 1. 23 23,456,39 1, 910 ,18 1,8 02 23,922,00 1. 10 1, 817 ,370,7 55 1. 02 23,477,90 1, 910 , 215 ,3 18 1. 26 3 ,12 9,228,967... 5: if is root node then 6: 7: 8: 9: else 10 : 11 : according to Theorem 12 : if then 13 : return; 14 : end if 15 : if then 16 : 17 : 18 : 19 : ; end if 20: end if 21: if is not empty then 22: 23: end if... + all descendants of ; 10 : end if 11 : Return; 12 : end if 13 : according to Theorem 14 : if then 15 : ; Return; 16 : end if 17 : end if 18 : if then 19 : add into ; 20: end if 21: %Searching left child