Range Searching computational geometry ii

Post on 27-May-2015

437 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

Transcript

SEARCHING-COMPUTATIONAL GEOMETRY IITRÌ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 trees2-d treesRange 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 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

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

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]

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ỌC2-D

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 ?

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

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

QUY TĂC XÂY DƯNG

Bao gôm ca điêm P

Bao gôm ca điêm P

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

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ă

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

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

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

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 :

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

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

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

top related