SlideShare a Scribd company logo
1 of 33
SEARCHING-COMPUTATIONAL GEOMETRY II
      TRÌNH BÀY : NGÔ QUANG TRUNG
NỘI DUNG TRÌNH BÀY

• Tổng quan về Searching
• Các dạng Range Searching :
           1-d trees
           2-d trees
           Range trees
TỔNG QUAN VỀ SEARCHING

• Searching : là 1 lớp các vấn đề được thể hiện
  dưới dạng đổi kiểu truy vấn-trả lời.hay nói 1
  cách dễ hiểu hơn khi thực hiện 1 chuỗi truy
  vấn thì nó sẽ trả về kết quả để đáp ứng lại
  chuỗi truy vấn đó
• Cho 1 tập hợp các đối tượng với điều kiện xử
  lý cho trước, Searching chính là tìm các đối
  tượng thỏa mãn các câu lệnh truy vấn
TỔNG QUAN VỀ SEARCHING

Searching được chia làm 2 dạng chính :
• Count mode
• report mode
Dạng count mode : chỉ đưa ra số lượng của các
đối tượng thỏa mãn điều kiện của chuỗi truy
vấn
Dạng report mode : đưa ra các đối tượng xác
định thỏa mãn điều kiện của chuối truy vấn
ở dạng report mode : thời gian truy
vấn của thuật toán bao gồm 2 thành
phần :
• search time (thời gian tìm kiếm)
• retrieval time (thời gian phản hồi)
và được biểu diễn : QA(n) = O(f (n) +
F)
Với n : chính là kích thước của
database
   f(n) : chính là 1 hàm theo n
   F : chính là kích thước của kết quả
CÁC DẠNG RANGE SEARCHING

Range Searching là 1 khía cạnh của kỹ thuật hình
học dùng để phân tích 1 tập hợp các đối tượng
nhằm xác định ra 1 tập con trong 1 khoảng giới
hạn cho trước.
Hay hiểu theo cách khác, cho 1 tập các đối tượng
đầu vào có những thuộc tính đã biết và ta chỉ cần
xác định ra những thuộc tính trong 1 khoảng giới
hạn nào đó. Vì vậy đầu ra sẽ là tập các đối tượng
có thuộc tính trong khoảng giới hạn đang xét
INPUT:
P : {P0, P1, P2,.. , Pn} 1 tập các đối
tượng với các thuộc tính cho trước
(ex. weights..etc)
Q :là khoảng giới hạn của các thuộc
tính(ex. Weights between x and y)
OUTPUT:
Tập hợp các phần tử thuộc vào tập
giao của P và Q
Chuỗi truy vấn database chính là ứng
dụng chính của việc áp dụng thuyết
range searching
Sau đây ta xét 1 ví dụ về chuỗi truy
vấn database và giải thích rõ trong
dạng hình học :
Giả sử ta có bảng ghi database là
SINH_VIEN,có chứa các thuộc tính là
MSV, HO_VA_TEN, TIN_CHI_TICH_LUY,
và DIEM_TICH_LUY
Ta thực hiện chuỗi truy vấn SQL :
SQL> SELECT ID,NAME FROM
SINH_VIEN WHERE
TIN_CHI_TICH_LUY BETWEEN 60 AND
90 AND DIEM_TICH_LUY BETWEEN
2.5 AND 3.0
Chuỗi truy vấn này sẽ cho ta kết quả
là những sinh viên có số tín chỉ tích
lũy trong khoảng [60,90] và có điểm
tích lũy trong khoảng [2.5,3.0]
Do chuỗi truy vấn trên có điều kiện
dựa vào 2 thuộc tính
TIN_CHI_TICH_LUY và
DIEM_TICH_LUY.do vậy khi ta thể
hiện nó sang dạng hình học thì nó sẽ
ở trong không gian 2 chiều
BIỂU DIỄN DƯỚI DẠNG HÌNH
           HỌC
           2-D
1-D RANGE SEARCHING QUERIES
Ta có thể sử dụng cấu trúc dữ liệu
kiểu mảng arrays lưu các phần tử của
dãy:




            a           b
Phân tích thời gian thực hiện giải
thuật:
Sử dụng việc tìm kiếm nhị phân trong
mảng arrays mất thời gian O(log n +
k) với k là số điểm thuộc vào tập P
nằm trong khoảng [a,b].
tuy nhiên việc sử dụng mảng lại có sự
hạn chế :
• Khó khăn khi ta thêm vào hoặc xóa
  đi 1 phần tử
• Không thể suy rộng lên trường hợp
  tổng quát hơn(có chiều cao hơn)
Để khắc phục những nhược điểm của
mảng arrays,ta lưu các phần tử trong
kiểu dữ liệu cây nhị phân cân bằng
AVL.Ví dụ :
Điền đầy đủ các nút, hoàn thiện cây
nhị phân cân bằng :
Sơ đồ phân tích thuật toán:
Phân tích thời gian thực hiện giải
thuật:
• Thời gian khởi tạo cây nhị phân BST
  sẽ là O(n log(n)).
• Thời gian để kiểm tra nằm trong
  khoảng là O(log n).(update hay
  delete)
• Thời gian trả về k điểm trong đoạn
  là O(k + log n).
• Thời gian đếm tổng số điểm trong
  đoạn là O(log n).
2-D RANGE SEARCHING QUERIES

Đặt vấn đề :
Làm cách nào để Tìm các điểm nằm trong 1
hình chữ nhật ?
Xét ví dụ :




 Cho 1 tập P gồm n điểm trong mặt
phẳng,tìm các điểm nằm trong HCN
Q
Nhận thấy các điểm nằm trong Q là
14,12,17.làm thế nào để tìm được
chúng?
Phương pháp :
Ta sử dụng 2 chuỗi truy vấn 1-d range
xét dọc theo từng trục của chúng để
giải quyết chuỗi truy vấn 2-d
range.kết quả chính là giao của các
tập
NG




mP   mP
2-D RANGE SEARCHING QUERIES

Ta xây dựng 2-dimensional kd-tree :
                                                                                          L1
               L5        L1             L7


                                   P9                                         L2                          L3
          P4

                                                                        L4          L5          L6                  L7
                    P5                            P10

     L2

                                                        L3
                                                                   L8    P3    P4              L9    P8        P9    P10
    L8         P2                                                                    P5
                                   P7
    P1
                                                              P1        P2                P6        P7
                    P3        L9
                                                         P8


               L4                            P6
                                                        L6
Vùng giới hạn và biểu thị trên k-d
               tree




Các điểm màu đen trong region(v) khi biểu diễn
qua k-d tree sẽ nằm trong cây con gốc v
      region(v)                   i
Thực hiện truy vấn trên k-d tree


                                                                                       L1
            L5        L1             L7


                                P9                                         L2                           L3
       P4

                                                                     L4          L5          L6                   L7
                 P5                            P10

  L2

                                                     L3
                                                                L8    P3                    L9     P8        P9    P10
 L8         P2                                                              P4    P5
                                P7
 P1
                                                           P1        P2                P6         P7
                 P3        L9
                                                      P8


            L4                            P6
                                                     L6
RANGE TREES

                                   m những sinh
viên có số tín chỉ tích lũy trong khoảng [60,90] và
có điểm tích lũy trong khoảng [2.5,3.0]
 ……….
                     75

           70              80


    70          75        80    85   2.6     3.0     3.5    4.0

                [60-90]                [2.5-3.0]
         Tin_chi_tich_luy                   diem_tich_luy
Tổng quát lên :




                  Là tập các lá của
                  cây con nút v
Quay trở lại ví dụ 2 :
Mở rộng lên chiều cao hơn :
n:
• Thời gian khởi tạo :
•    i                        n:

  i
           n

More Related Content

Viewers also liked

Ubercart 3.x trong drupal 7 - tiếng việt
Ubercart 3.x trong drupal 7 - tiếng việtUbercart 3.x trong drupal 7 - tiếng việt
Ubercart 3.x trong drupal 7 - tiếng việtNgo Trung
 
Giáo án_ Bài 1: Từ máy tính đến mạng máy tính
Giáo án_ Bài 1: Từ máy tính đến mạng máy tínhGiáo án_ Bài 1: Từ máy tính đến mạng máy tính
Giáo án_ Bài 1: Từ máy tính đến mạng máy tínhĐoàn Thu Huyền
 
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kế
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kếLập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kế
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kếNgo Trung
 
Báo cáo thảo luận nhóm 14
Báo cáo thảo luận nhóm 14Báo cáo thảo luận nhóm 14
Báo cáo thảo luận nhóm 14huongdangyeu91
 
Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trungTim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trungNgo Trung
 
Cách tối ưu hóa môi trường lập trình ứng dụng cho Android - Tăng tốc máy ảo A...
Cách tối ưu hóa môi trường lập trình ứng dụng cho Android - Tăng tốc máy ảo A...Cách tối ưu hóa môi trường lập trình ứng dụng cho Android - Tăng tốc máy ảo A...
Cách tối ưu hóa môi trường lập trình ứng dụng cho Android - Tăng tốc máy ảo A...Ngo Trung
 
Drupal 7 cho người mới học
Drupal 7 cho người mới họcDrupal 7 cho người mới học
Drupal 7 cho người mới họcNgo Trung
 
BÁO CÁO THỰC HÀNH DỰ ÁN NGHIÊN CƯU MARKETING
BÁO CÁO THỰC HÀNH DỰ ÁN NGHIÊN CƯU MARKETINGBÁO CÁO THỰC HÀNH DỰ ÁN NGHIÊN CƯU MARKETING
BÁO CÁO THỰC HÀNH DỰ ÁN NGHIÊN CƯU MARKETINGVisla Team
 
Cách cài đặt và thiết lập Netbean 7 làm IDE cho drupal 7
Cách cài đặt và thiết lập Netbean 7 làm IDE cho drupal 7 Cách cài đặt và thiết lập Netbean 7 làm IDE cho drupal 7
Cách cài đặt và thiết lập Netbean 7 làm IDE cho drupal 7 Ngo Trung
 
Phonegap cho người mới học
Phonegap cho người mới họcPhonegap cho người mới học
Phonegap cho người mới họcNgo Trung
 
Đường lối kháng chiến chống mỹ cứu nước, thống nhất tổ quốc (1954 1975)
Đường lối kháng chiến chống mỹ cứu nước, thống nhất tổ quốc (1954 1975)Đường lối kháng chiến chống mỹ cứu nước, thống nhất tổ quốc (1954 1975)
Đường lối kháng chiến chống mỹ cứu nước, thống nhất tổ quốc (1954 1975)akirahitachi
 
Xây dựng nền tảng nhượng quyền - Những điều cần biết dành cho doanh nghiệp ch...
Xây dựng nền tảng nhượng quyền - Những điều cần biết dành cho doanh nghiệp ch...Xây dựng nền tảng nhượng quyền - Những điều cần biết dành cho doanh nghiệp ch...
Xây dựng nền tảng nhượng quyền - Những điều cần biết dành cho doanh nghiệp ch...Phi Van Nguyen
 

Viewers also liked (16)

Ubercart 3.x trong drupal 7 - tiếng việt
Ubercart 3.x trong drupal 7 - tiếng việtUbercart 3.x trong drupal 7 - tiếng việt
Ubercart 3.x trong drupal 7 - tiếng việt
 
B2B - BIT
B2B - BIT B2B - BIT
B2B - BIT
 
Bai lam
Bai lamBai lam
Bai lam
 
Giáo án_ Bài 1: Từ máy tính đến mạng máy tính
Giáo án_ Bài 1: Từ máy tính đến mạng máy tínhGiáo án_ Bài 1: Từ máy tính đến mạng máy tính
Giáo án_ Bài 1: Từ máy tính đến mạng máy tính
 
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kế
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kếLập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kế
Lập trình hướng đối tượng trong Javascript và các kiểu mẫu thiết kế
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
Báo cáo thảo luận nhóm 14
Báo cáo thảo luận nhóm 14Báo cáo thảo luận nhóm 14
Báo cáo thảo luận nhóm 14
 
Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trungTim hieu ma nguon mo phone gap va xay dung ung dung   ngo quang trung
Tim hieu ma nguon mo phone gap va xay dung ung dung ngo quang trung
 
Cách tối ưu hóa môi trường lập trình ứng dụng cho Android - Tăng tốc máy ảo A...
Cách tối ưu hóa môi trường lập trình ứng dụng cho Android - Tăng tốc máy ảo A...Cách tối ưu hóa môi trường lập trình ứng dụng cho Android - Tăng tốc máy ảo A...
Cách tối ưu hóa môi trường lập trình ứng dụng cho Android - Tăng tốc máy ảo A...
 
Drupal 7 cho người mới học
Drupal 7 cho người mới họcDrupal 7 cho người mới học
Drupal 7 cho người mới học
 
BÁO CÁO THỰC HÀNH DỰ ÁN NGHIÊN CƯU MARKETING
BÁO CÁO THỰC HÀNH DỰ ÁN NGHIÊN CƯU MARKETINGBÁO CÁO THỰC HÀNH DỰ ÁN NGHIÊN CƯU MARKETING
BÁO CÁO THỰC HÀNH DỰ ÁN NGHIÊN CƯU MARKETING
 
Cách cài đặt và thiết lập Netbean 7 làm IDE cho drupal 7
Cách cài đặt và thiết lập Netbean 7 làm IDE cho drupal 7 Cách cài đặt và thiết lập Netbean 7 làm IDE cho drupal 7
Cách cài đặt và thiết lập Netbean 7 làm IDE cho drupal 7
 
Phonegap cho người mới học
Phonegap cho người mới họcPhonegap cho người mới học
Phonegap cho người mới học
 
Pinterest
PinterestPinterest
Pinterest
 
Đường lối kháng chiến chống mỹ cứu nước, thống nhất tổ quốc (1954 1975)
Đường lối kháng chiến chống mỹ cứu nước, thống nhất tổ quốc (1954 1975)Đường lối kháng chiến chống mỹ cứu nước, thống nhất tổ quốc (1954 1975)
Đường lối kháng chiến chống mỹ cứu nước, thống nhất tổ quốc (1954 1975)
 
Xây dựng nền tảng nhượng quyền - Những điều cần biết dành cho doanh nghiệp ch...
Xây dựng nền tảng nhượng quyền - Những điều cần biết dành cho doanh nghiệp ch...Xây dựng nền tảng nhượng quyền - Những điều cần biết dành cho doanh nghiệp ch...
Xây dựng nền tảng nhượng quyền - Những điều cần biết dành cho doanh nghiệp ch...
 

Range Searching computational geometry ii

  • 1. SEARCHING-COMPUTATIONAL GEOMETRY II TRÌNH BÀY : NGÔ QUANG TRUNG
  • 2. NỘI DUNG TRÌNH BÀY • Tổng quan về Searching • Các dạng Range Searching :  1-d trees  2-d trees  Range trees
  • 3. TỔNG QUAN VỀ SEARCHING • Searching : là 1 lớp các vấn đề được thể hiện dưới dạng đổi kiểu truy vấn-trả lời.hay nói 1 cách dễ hiểu hơn khi thực hiện 1 chuỗi truy vấn thì nó sẽ trả về kết quả để đáp ứng lại chuỗi truy vấn đó • Cho 1 tập hợp các đối tượng với điều kiện xử lý cho trước, Searching chính là tìm các đối tượng thỏa mãn các câu lệnh truy vấn
  • 4. TỔNG QUAN VỀ SEARCHING Searching được chia làm 2 dạng chính : • Count mode • report mode Dạng count mode : chỉ đưa ra số lượng của các đối tượng thỏa mãn điều kiện của chuỗi truy vấn Dạng report mode : đưa ra các đối tượng xác định thỏa mãn điều kiện của chuối truy vấn
  • 5. ở dạng report mode : thời gian truy vấn của thuật toán bao gồm 2 thành phần : • search time (thời gian tìm kiếm) • retrieval time (thời gian phản hồi) và được biểu diễn : QA(n) = O(f (n) + F) Với n : chính là kích thước của database f(n) : chính là 1 hàm theo n F : chính là kích thước của kết quả
  • 6. CÁC DẠNG RANGE SEARCHING Range Searching là 1 khía cạnh của kỹ thuật hình học dùng để phân tích 1 tập hợp các đối tượng nhằm xác định ra 1 tập con trong 1 khoảng giới hạn cho trước. Hay hiểu theo cách khác, cho 1 tập các đối tượng đầu vào có những thuộc tính đã biết và ta chỉ cần xác định ra những thuộc tính trong 1 khoảng giới hạn nào đó. Vì vậy đầu ra sẽ là tập các đối tượng có thuộc tính trong khoảng giới hạn đang xét
  • 7. INPUT: P : {P0, P1, P2,.. , Pn} 1 tập các đối tượng với các thuộc tính cho trước (ex. weights..etc) Q :là khoảng giới hạn của các thuộc tính(ex. Weights between x and y) OUTPUT: Tập hợp các phần tử thuộc vào tập giao của P và Q
  • 8. Chuỗi truy vấn database chính là ứng dụng chính của việc áp dụng thuyết range searching Sau đây ta xét 1 ví dụ về chuỗi truy vấn database và giải thích rõ trong dạng hình học : Giả sử ta có bảng ghi database là SINH_VIEN,có chứa các thuộc tính là MSV, HO_VA_TEN, TIN_CHI_TICH_LUY, và DIEM_TICH_LUY
  • 9. Ta thực hiện chuỗi truy vấn SQL : SQL> SELECT ID,NAME FROM SINH_VIEN WHERE TIN_CHI_TICH_LUY BETWEEN 60 AND 90 AND DIEM_TICH_LUY BETWEEN 2.5 AND 3.0 Chuỗi truy vấn này sẽ cho ta kết quả là những sinh viên có số tín chỉ tích lũy trong khoảng [60,90] và có điểm tích lũy trong khoảng [2.5,3.0]
  • 10. Do chuỗi truy vấn trên có điều kiện dựa vào 2 thuộc tính TIN_CHI_TICH_LUY và DIEM_TICH_LUY.do vậy khi ta thể hiện nó sang dạng hình học thì nó sẽ ở trong không gian 2 chiều
  • 11. BIỂU DIỄN DƯỚI DẠNG HÌNH HỌC 2-D
  • 13. Ta có thể sử dụng cấu trúc dữ liệu kiểu mảng arrays lưu các phần tử của dãy: a b
  • 14. Phân tích thời gian thực hiện giải thuật: Sử dụng việc tìm kiếm nhị phân trong mảng arrays mất thời gian O(log n + k) với k là số điểm thuộc vào tập P nằm trong khoảng [a,b]. tuy nhiên việc sử dụng mảng lại có sự hạn chế : • Khó khăn khi ta thêm vào hoặc xóa đi 1 phần tử • Không thể suy rộng lên trường hợp tổng quát hơn(có chiều cao hơn)
  • 15. Để khắc phục những nhược điểm của mảng arrays,ta lưu các phần tử trong kiểu dữ liệu cây nhị phân cân bằng AVL.Ví dụ :
  • 16. Điền đầy đủ các nút, hoàn thiện cây nhị phân cân bằng :
  • 17.
  • 18. Sơ đồ phân tích thuật toán:
  • 19. Phân tích thời gian thực hiện giải thuật: • Thời gian khởi tạo cây nhị phân BST sẽ là O(n log(n)). • Thời gian để kiểm tra nằm trong khoảng là O(log n).(update hay delete) • Thời gian trả về k điểm trong đoạn là O(k + log n). • Thời gian đếm tổng số điểm trong đoạn là O(log n).
  • 20. 2-D RANGE SEARCHING QUERIES Đặt vấn đề : Làm cách nào để Tìm các điểm nằm trong 1 hình chữ nhật ?
  • 21. Xét ví dụ : Cho 1 tập P gồm n điểm trong mặt phẳng,tìm các điểm nằm trong HCN Q Nhận thấy các điểm nằm trong Q là 14,12,17.làm thế nào để tìm được chúng?
  • 22. Phương pháp : Ta sử dụng 2 chuỗi truy vấn 1-d range xét dọc theo từng trục của chúng để giải quyết chuỗi truy vấn 2-d range.kết quả chính là giao của các tập
  • 23. NG mP mP
  • 24. 2-D RANGE SEARCHING QUERIES Ta xây dựng 2-dimensional kd-tree : L1 L5 L1 L7 P9 L2 L3 P4 L4 L5 L6 L7 P5 P10 L2 L3 L8 P3 P4 L9 P8 P9 P10 L8 P2 P5 P7 P1 P1 P2 P6 P7 P3 L9 P8 L4 P6 L6
  • 25. Vùng giới hạn và biểu thị trên k-d tree Các điểm màu đen trong region(v) khi biểu diễn qua k-d tree sẽ nằm trong cây con gốc v region(v) i
  • 26. Thực hiện truy vấn trên k-d tree L1 L5 L1 L7 P9 L2 L3 P4 L4 L5 L6 L7 P5 P10 L2 L3 L8 P3 L9 P8 P9 P10 L8 P2 P4 P5 P7 P1 P1 P2 P6 P7 P3 L9 P8 L4 P6 L6
  • 27.
  • 28. RANGE TREES m những sinh viên có số tín chỉ tích lũy trong khoảng [60,90] và có điểm tích lũy trong khoảng [2.5,3.0] ………. 75 70 80 70 75 80 85 2.6 3.0 3.5 4.0 [60-90] [2.5-3.0] Tin_chi_tich_luy diem_tich_luy
  • 29. Tổng quát lên : Là tập các lá của cây con nút v
  • 30. Quay trở lại ví dụ 2 :
  • 31.
  • 32. Mở rộng lên chiều cao hơn :
  • 33. n: • Thời gian khởi tạo : • i n: i n