Top Banner
SEARCHING-COMPUTATIONAL GEOMETRY II TRÌNH BÀY : NGÔ QUANG TRUNG
33

Range Searching computational geometry ii

May 27, 2015

Download

Technology

Ngo Trung

bài slide trong môn seminar b1.trình bày về Range Searching.slide được viết bởi Ngô Quang Trung-khoa toán tin ứng dụng k52-đại học bách khoa hà nội
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Range Searching computational geometry ii

SEARCHING-COMPUTATIONAL GEOMETRY IITRÌNH BÀY : NGÔ QUANG TRUNG

Page 2: Range Searching computational geometry ii

NỘI DUNG TRÌNH BÀY

• Tổng quan về Searching• Các dạng Range Searching :

1-d trees2-d treesRange trees

Page 3: Range Searching computational geometry ii

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

Page 4: Range Searching computational geometry ii

TỔNG QUAN VỀ SEARCHING

Searching được chia làm 2 dạng chính :• Count mode • report modeDạ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ấnDạ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

Page 5: Range Searching computational geometry ii

ở 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ả

Page 6: Range Searching computational geometry ii

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

Page 7: Range Searching computational geometry ii

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

Page 8: Range Searching computational geometry ii

Chuỗi truy vấn database chính là ứng dụng chính của việc áp dụng thuyết range searchingSau đâ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

Page 9: Range Searching computational geometry ii

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.0Chuỗ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]

Page 10: Range Searching computational geometry ii

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

Page 11: Range Searching computational geometry ii

BIỂU DIỄN DƯỚI DẠNG HÌNH HỌC2-D

Page 12: Range Searching computational geometry ii

1-D RANGE SEARCHING QUERIES

Đặt vấn đề :Cho 1 tập P gồm n phần tử P = { p1, p2,…, pn } với các phần tử là các số thực.tìm các điểm thuộc P nằm trong đoạn [a.b] với a b

Chúng ta thực hiện nó như thế nào ?

Page 13: Range Searching computational geometry ii

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

Page 14: Range Searching computational geometry ii

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)

Page 15: Range Searching computational geometry ii

Để 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ụ :

Page 16: Range Searching computational geometry ii

Điền đầy đủ các nút, hoàn thiện cây nhị phân cân bằng :

Page 17: Range Searching computational geometry ii
Page 18: Range Searching computational geometry ii

Sơ đồ phân tích thuật toán:

Page 19: Range Searching computational geometry ii

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).

Page 20: Range Searching computational geometry ii

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 ?

Page 21: Range Searching computational geometry ii

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 QNhậ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?

Page 22: Range Searching computational geometry ii

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

Page 23: Range Searching computational geometry ii

QUY TĂC XÂY DƯNG

Bao gôm ca điêm P

Bao gôm ca điêm P

Page 24: Range Searching computational geometry ii

2-D RANGE SEARCHING QUERIES

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

P1

P2

P3

P4

P5

P6

P7

P8

P9

P10

L1

L2

L3

L4

L5

L6

L7

L8

L9

L1

L2 L3

L4

P3

L5

P5P4

L6

P8

L7

P10P9L8

P1 P2

L9

P7P6

Page 25: Range Searching computational geometry ii

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 vChú ý region(v) không bị ch n dướiă

Page 26: Range Searching computational geometry ii

Thực hiện truy vấn trên k-d tree

P1

P2

P3

P4

P5

P6

P7

P8

P9

P10

L1

L2

L3

L4

L5

L6

L7

L8

L9

L1

L2 L3

L4

P3

L5

P4

L6

P8

L7

P9L8

P1 P2

L9

P6

P10P5

P7

Page 27: Range Searching computational geometry ii

Phân tích thời gian thực hi n :ê• Khởi tạo cây : O(n log n)• Không gian chứa : O(n)• Thời gian xử lý chuỗi truy vấn :O(n +

k) với k là số điểm nằm trong vùng giới hạn truy vấn

Page 28: Range Searching computational geometry ii

RANGE TREES

Ta quay lại xét ví dụ đầu tiên : Tì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

[60-90]

4.03.52.6 3.0

[2.5-3.0]

Tin_chi_tich_luy diem_tich_luy

Page 29: Range Searching computational geometry ii

Tổng quát lên :

Là tập các lá của cây con nút v

Page 30: Range Searching computational geometry ii

Quay trở lại ví dụ 2 :

Page 31: Range Searching computational geometry ii

Phân tích thời gian thực hi n :ê• Thời gian khởi tạo : O(n log n)• Thời gian xử lý chuỗi truy vấn :

O(log2(n) + k) với k là số điểm nằm trong vùng giới hạn truy vấn

Page 32: Range Searching computational geometry ii

Mở rộng lên chiều cao hơn :

Page 33: Range Searching computational geometry ii

Phân tích thời gian thực hi n :ê• Thời gian khởi tạo : • Thời gian xử lý chuỗi truy vấn :

với k là số điểm nằm trong vùng giới hạn truy vấn