1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn PHÂN TÍCH & THIẾT KẾ GIẢI THUẬT NÂNG CAO BÀI TOÁN TÌM CẶP ĐIỂM GẦN NHẤT

26 774 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 145 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ể giải quyết yêu cầu ầu ất trong mặt phẳng”.. ộ phức tạp, thực nghiệm trên cùng ức tạp, thực nghiệm trên cùng ạp, thực nghiệm trên cùng 2  Dùng k thu t “Plane Sweep” gi m đ ph c t p ỹ

Trang 1

BÀI TOÁN

TÌM C P ĐI M G N NH T ẶP ĐIỂM GẦN NHẤT ỂM GẦN NHẤT ẦN NHẤT ẤT

Nhóm 3:

Huỳnh Minh Trí Nguyễn Ngọc Nga Trương Mỹ Thu Thảo Nguyễn Thị Hồng Yến

GV hướng dẫn:

PGS, TS Trần Cao Đệ

Trang 2

Gi i thi u ới thiệu ệu

Gi i thi u v hai thu t toán đ gi i quy t yêu c u ới thiệu ệu ề hai thuật toán để giải quyết yêu cầu ật toán để giải quyết yêu cầu ể giải quyết yêu cầu ải quyết yêu cầu ết yêu cầu ầu

“Tìm c p đi m ng n nh t trong m t ph ng” ặp điểm ngắn nhất trong mặt phẳng” ể giải quyết yêu cầu ắn nhất trong mặt phẳng” ất trong mặt phẳng” ặp điểm ngắn nhất trong mặt phẳng” ẳng”

Ý t ng, tính đ ph c t p, th c nghi m trên cùng ưởng, tính độ phức tạp, thực nghiệm trên cùng ộ phức tạp, thực nghiệm trên cùng ức tạp, thực nghiệm trên cùng ạp, thực nghiệm trên cùng ực nghiệm trên cùng ệu

m t b d li uộ phức tạp, thực nghiệm trên cùng ộ phức tạp, thực nghiệm trên cùng ữ liệu ệu

So sánh th i gian th c hi n ời gian thực hiện ực nghiệm trên cùng ệu

K t lu n thu t toán t i u : Brute forte ho c Plane ết yêu cầu ật toán để giải quyết yêu cầu ật toán để giải quyết yêu cầu ối ưu : Brute forte hoặc Plane ư ặp điểm ngắn nhất trong mặt phẳng” sweep

Trang 3

Kho ng cách gi a hai đi m ải quyết yêu cầu ữ liệu ể giải quyết yêu cầu

Trang 4

Tìm c p đi m g n nh t ặp điểm ngắn nhất trong mặt phẳng” ể giải quyết yêu cầu ầu ất trong mặt phẳng”

– Phát bi u v n đ : ể giải quyết yêu cầu ất trong mặt phẳng” ề hai thuật toán để giải quyết yêu cầu

• Cho n đi m: p ể giải quyết yêu cầu i =(xiyi), i=1, 2, …,n

• Tìm c p đi m g n nh t trong n đi m ặp điểm ngắn nhất trong mặt phẳng” ể giải quyết yêu cầu ầu ất trong mặt phẳng” ể giải quyết yêu cầu

– Gi i pháp: N u xét h t t t c kho ng cách gi a các ải quyết yêu cầu ết yêu cầu ết yêu cầu ất trong mặt phẳng” ải quyết yêu cầu ải quyết yêu cầu ữ liệu

c p, đ ph c t p là O(n ặp điểm ngắn nhất trong mặt phẳng” ộ phức tạp, thực nghiệm trên cùng ức tạp, thực nghiệm trên cùng ạp, thực nghiệm trên cùng 2 )

 Dùng k thu t “Plane Sweep” gi m đ ph c t p ỹ thuật “Plane Sweep” giảm độ phức tạp ật toán để giải quyết yêu cầu ải quyết yêu cầu ộ phức tạp, thực nghiệm trên cùng ức tạp, thực nghiệm trên cùng ạp, thực nghiệm trên cùng

Trang 5

T p đi m minh h a ật toán để giải quyết yêu cầu ể giải quyết yêu cầu ọa

Trang 6

K THU T TR Ỹ THUẬT TRƯỢT PHẲNG ẬT TRƯỢT PHẲNG ƯỢT PHẲNG T PH NG ẲNG

S p x p các đi m tăng d n theo x ắn nhất trong mặt phẳng” ết yêu cầu ể giải quyết yêu cầu ầu

Dùng đ ng th ng th ng đ ng tr t t trái sang ph i ười gian thực hiện ẳng” ẳng” ức tạp, thực nghiệm trên cùng ượt từ trái sang phải ừ trái sang phải ải quyết yêu cầu

– C p đi m g n nh t trong t p h p các đi m đã quét qua (a,b) ặp điểm ngắn nhất trong mặt phẳng” ể giải quyết yêu cầu ầu ất trong mặt phẳng” ật toán để giải quyết yêu cầu ợt từ trái sang phải ể giải quyết yêu cầu

v i kho ng cách d(a,b) ới thiệu ải quyết yêu cầu

– M t t đi n S ch a các đi m đã quét qua theo th t t a đ ộ phức tạp, thực nghiệm trên cùng ực nghiệm trên cùng ể giải quyết yêu cầu ức tạp, thực nghiệm trên cùng ể giải quyết yêu cầu ức tạp, thực nghiệm trên cùng ực nghiệm trên cùng ọa ộ phức tạp, thực nghiệm trên cùng y.

– Lo i b kh i S các đi m r th a: x(p)-x(r) > d ạp, thực nghiệm trên cùng ỏ khỏi S các điểm r thỏa: x(p)-x(r) > d ỏ khỏi S các điểm r thỏa: x(p)-x(r) > d ể giải quyết yêu cầu ỏ khỏi S các điểm r thỏa: x(p)-x(r) > d

– Tìm đi m q trong S sao cho d(p,q)<d C p nh t l i a=p, b=q ể giải quyết yêu cầu ật toán để giải quyết yêu cầu ật toán để giải quyết yêu cầu ạp, thực nghiệm trên cùng

và d=d(p,q)

– Insert p vào S.

Trang 7

Tr t t trái sang ph i ượt từ trái sang phải ừ trái sang phải ải quyết yêu cầu

Trang 8

Tìm c p đi m g n nh t ặp điểm ngắn nhất trong mặt phẳng” ể giải quyết yêu cầu ầu ất trong mặt phẳng”

Cho n (n>=2) đi m trong m t ph ng 2 chi u ể giải quyết yêu cầu ặp điểm ngắn nhất trong mặt phẳng” ẳng” ề hai thuật toán để giải quyết yêu cầu

đ c l u tr trong m t m ng a v i m i đi m th ượt từ trái sang phải ư ữ liệu ộ phức tạp, thực nghiệm trên cùng ải quyết yêu cầu ới thiệu ỗi điểm thứ ể giải quyết yêu cầu ức tạp, thực nghiệm trên cùng

i có t a đ (x,y).ọa ộ phức tạp, thực nghiệm trên cùng

Tìm m t c p đi m (p, q) g n nhau nh t b ng ộ phức tạp, thực nghiệm trên cùng ặp điểm ngắn nhất trong mặt phẳng” ể giải quyết yêu cầu ầu ất trong mặt phẳng” ằng cách dùng thu t toán ật toán để giải quyết yêu cầu Brute forte và, Plane sweep

Trang 9

Tìm c p đi m g n nh t ặp điểm ngắn nhất trong mặt phẳng” ể giải quyết yêu cầu ầu ất trong mặt phẳng”

V i hai đ nh b t kỳ a(xa , ya), b(xb , yb) trong t p n đ nh thì ới thiệu ỉnh bất kỳ a(xa , ya), b(xb , yb) trong tập n đỉnh thì ất trong mặt phẳng” ật toán để giải quyết yêu cầu ỉnh bất kỳ a(xa , ya), b(xb , yb) trong tập n đỉnh thì kho ng cách gi a chúng là ải quyết yêu cầu ữ liệu

2

)

(x bx ay by a

Trang 10

Ý tưởng:

-Khởi tạo vị trí đỉnh đầu tiên i=1; Khoảng nhỏ nhất dmin=;

p= a[1]; q= a[2]

-Duyệt qua từng đỉnh i trong tập n đỉnh

* Duyệt đỉnh j trong tập n-1 đỉnh \\ không tính đỉnh i Tính khoảng cách từ đỉnh i đến đỉnh j d(a[i],a[j]) Nếu dmin > d(a[i],a[j]) thì dmin = d(a[i],a[j])

p= a[i] q= a[j]

 Kết quả: (p, q) là ngắn nhất

 Độ phức tạp của Brute forte là O(n2)

Gi i thu t Brute forte ải thuật Brute forte ật Brute forte

Trang 11

Gi i thu t Plane sweep ải thuật Brute forte ật Brute forte

Dùng 1 đường thẳng thẳng đứng, trượt

từ trái sang phải từ điểm trái nhất

Lưu giữ các cặp điểm gần nhất và các điểm gần với đường quét

Trang 12

Gi i thu t Plane sweep ải thuật Brute forte ật Brute forte

Khi quét ngang qua 1 đi m ta l u tr : C p ể giải quyết yêu cầu ư ữ liệu ặp điểm ngắn nhất trong mặt phẳng”

đi m g n nh t trong t p h p các đi m đã ể giải quyết yêu cầu ầu ất trong mặt phẳng” ật toán để giải quyết yêu cầu ợt từ trái sang phải ể giải quyết yêu cầu

M t t đi n S ch a các đi m đã quét qua ộ phức tạp, thực nghiệm trên cùng ực nghiệm trên cùng ể giải quyết yêu cầu ức tạp, thực nghiệm trên cùng ể giải quyết yêu cầu theo th t t a đ y ức tạp, thực nghiệm trên cùng ực nghiệm trên cùng ọa ộ phức tạp, thực nghiệm trên cùng

Trang 13

Gi i thu t Plane sweep ải thuật Brute forte ật Brute forte

Như vậy, khi quét ngang 1 điểm p phải thực hiện các phép toán sau:

loại bỏ khỏi S các điểm r thỏa: x(r) > d, tìm điểm q trong S sao cho d(p,q)<d Cập nhật lại a=p, b=q và d=d(p,q), insert p vào S.

Trang 14

x(p)-Gi i thu t Plane sweep ải thuật Brute forte ật Brute forte

Trang 15

Gi i thu t Plane sweep ải thuật Brute forte ật Brute forte

Đ u tiên tr t t nút 1 qua ph i g p nút 2 thì ầu ượt từ trái sang phải ừ trái sang phải ải quyết yêu cầu ặp điểm ngắn nhất trong mặt phẳng”

đo n 12 tìm th y đ u tiên là đo n g n nh t.ạp, thực nghiệm trên cùng ất trong mặt phẳng” ầu ạp, thực nghiệm trên cùng ầu ất trong mặt phẳng”

Ti p theo tr t t i nút 3 thì đo n 12 c ng là ết yêu cầu ượt từ trái sang phải ới thiệu ạp, thực nghiệm trên cùng ủng là

đo n g n nh t t ng t nút 4 và nút 5 ạp, thực nghiệm trên cùng ầu ất trong mặt phẳng” ương tự nút 4 và nút 5 ực nghiệm trên cùng Hình ch nh t có chi u ngang d và hình tròn ữ liệu ật toán để giải quyết yêu cầu ề hai thuật toán để giải quyết yêu cầu

có bán kính d v n ch a thay đ i C th ti p ẫn chưa thay đổi Cứ thế tiếp ư ổi Cứ thế tiếp ức tạp, thực nghiệm trên cùng ết yêu cầu ết yêu cầu

t c tr t hình ch nh t v i bán d m i (d’) sang ục trượt hình chữ nhật với bán d mới (d’) sang ượt từ trái sang phải ữ liệu ật toán để giải quyết yêu cầu ới thiệu ới thiệu

đi m 7 …ể giải quyết yêu cầu

Trang 16

Gi i thu t Plane sweep ải thuật Brute forte ật Brute forte

Nh ng đ n nút 6 thi trong ph n giao gi a hình ư ết yêu cầu ầu ữ liệu

ch nh t và hình tròn tâm nút 6 có ch a 2 đi m ữ liệu ật toán để giải quyết yêu cầu ức tạp, thực nghiệm trên cùng ể giải quyết yêu cầu

là 4 và 5 Khi đó gi i thu t so sánh chi u dài ải quyết yêu cầu ật toán để giải quyết yêu cầu ề hai thuật toán để giải quyết yêu cầu

gi a nút 64 v i d và nút 65 v i d Xét th y ữ liệu ới thiệu ới thiệu ất trong mặt phẳng” kho ng cách gi a 2 nút 6, 5 nh h n d nên c p ải quyết yêu cầu ữ liệu ỏ khỏi S các điểm r thỏa: x(p)-x(r) > d ơng tự nút 4 và nút 5 ật toán để giải quyết yêu cầu

nh t l i d là d’ và lo i b nút 1,2 ra, c p nh t l i ật toán để giải quyết yêu cầu ạp, thực nghiệm trên cùng ạp, thực nghiệm trên cùng ỏ khỏi S các điểm r thỏa: x(p)-x(r) > d ật toán để giải quyết yêu cầu ật toán để giải quyết yêu cầu ạp, thực nghiệm trên cùng

Trang 17

Đ ph c t p ộ phức tạp ức tạp ạp

S p x p các đi m theo O(n logn)ắn nhất trong mặt phẳng” ết yêu cầu ể giải quyết yêu cầu

Thêm/xóa m t ph n t vào/t S là O(logn)ộ phức tạp, thực nghiệm trên cùng ầu ử vào/từ S là O(logn) ừ trái sang phải

Th c hi n tìm ki m ph m vi trong S là O(logn)ực nghiệm trên cùng ệu ết yêu cầu ạp, thực nghiệm trên cùng

Th c hi n tìm ki m khi quét qua n đi m O(nlogn)ực nghiệm trên cùng ệu ết yêu cầu ể giải quyết yêu cầu

T ng th i gian th c hi n O(nlogn) ổi Cứ thế tiếp ời gian thực hiện ực nghiệm trên cùng ệu

Trang 18

Rõ ràng chúng ta thấy chương trình sẽ tốn nhiều thời gian là lúc xét trong

phần giao nói trên (có nút 4 và 5) nếu

có nhiều nút thì phải duyệt hết các nút này Nếu trong tất cả các phần giao

không có nút nào thì trượt đến nút

cuối cùng sẽ tốn thời gian là O(n).

Độ phức tạp

Trang 19

Cách th c nghi m ực nghiệm trên cùng ệu

 Các đi m n m trong ph n giao nh ng các khoàng ể giải quyết yêu cầu ằng ầu ư

cách gi a các c p b ng nhau (t t nh t <n) ữ liệu ặp điểm ngắn nhất trong mặt phẳng” ằng ối ưu : Brute forte hoặc Plane ất trong mặt phẳng”

 Các đi m không trùng nhau và có kho ng cách t trái ể giải quyết yêu cầu ải quyết yêu cầu ừ trái sang phải

qua ph i t ng đôi m t tăng d n ho c gi m d n (g n ải quyết yêu cầu ừ trái sang phải ộ phức tạp, thực nghiệm trên cùng ầu ặp điểm ngắn nhất trong mặt phẳng” ải quyết yêu cầu ầu ầu

t t nh t =n) ối ưu : Brute forte hoặc Plane ất trong mặt phẳng”

Trang 20

Cách th c nghi m ực nghiệm trên cùng ệu

 Các đi m n m t p trung m t ph n nhi u v phía ể giải quyết yêu cầu ằng ật toán để giải quyết yêu cầu ộ phức tạp, thực nghiệm trên cùng ầu ề hai thuật toán để giải quyết yêu cầu ề hai thuật toán để giải quyết yêu cầu

trái (t ng đ i) ương tự nút 4 và nút 5 ối ưu : Brute forte hoặc Plane

 Các đi m n m t p trung m t ph n nhi u v phía ể giải quyết yêu cầu ằng ật toán để giải quyết yêu cầu ộ phức tạp, thực nghiệm trên cùng ầu ề hai thuật toán để giải quyết yêu cầu ề hai thuật toán để giải quyết yêu cầu

ph i (t ng đ i) ải quyết yêu cầu ương tự nút 4 và nút 5 ối ưu : Brute forte hoặc Plane

Trang 21

Cách th c nghi m ực nghiệm trên cùng ệu

 Th c hi n các đi m có t a đ x n m t p trung ực nghiệm trên cùng ệu ể giải quyết yêu cầu ọa ộ phức tạp, thực nghiệm trên cùng ằng ật toán để giải quyết yêu cầu

m t ph n nhi u gi a (t ng đ i) ộ phức tạp, thực nghiệm trên cùng ầu ề hai thuật toán để giải quyết yêu cầu ởng, tính độ phức tạp, thực nghiệm trên cùng ữ liệu ương tự nút 4 và nút 5 ối ưu : Brute forte hoặc Plane

 M t c p ng n nh t n m phía trái và các đi m ộ phức tạp, thực nghiệm trên cùng ặp điểm ngắn nhất trong mặt phẳng” ắn nhất trong mặt phẳng” ất trong mặt phẳng” ằng ởng, tính độ phức tạp, thực nghiệm trên cùng ể giải quyết yêu cầu

còn l i t p trung nhi u v phía ph i (khá lâu) ạp, thực nghiệm trên cùng ật toán để giải quyết yêu cầu ề hai thuật toán để giải quyết yêu cầu ề hai thuật toán để giải quyết yêu cầu ải quyết yêu cầu

Trang 22

Cách th c nghi m ực nghiệm trên cùng ệu

 M t c p ng n nh t n m phía ph i và các đi m ộ phức tạp, thực nghiệm trên cùng ặp điểm ngắn nhất trong mặt phẳng” ắn nhất trong mặt phẳng” ất trong mặt phẳng” ằng ởng, tính độ phức tạp, thực nghiệm trên cùng ải quyết yêu cầu ể giải quyết yêu cầu còn l i t p trung nhi u v phía trái (khá lâu)ạp, thực nghiệm trên cùng ật toán để giải quyết yêu cầu ề hai thuật toán để giải quyết yêu cầu ề hai thuật toán để giải quyết yêu cầu

 Các đi m n m trong ph n giao c a hình tròn và ể giải quyết yêu cầu ằng ầu ủng là hình ch nh t đ u tiên (x u nh t >n).ữ liệu ật toán để giải quyết yêu cầu ầu ất trong mặt phẳng” ất trong mặt phẳng”

Trang 23

Demo và code (Pascal):

 Demo

 Code (xem ph l c đính kèm)ục trượt hình chữ nhật với bán d mới (d’) sang ục trượt hình chữ nhật với bán d mới (d’) sang

Trang 24

K t Lu n ết Luận ật Brute forte

» Tùy theo b trí các đi m trên m t ph ng mà ối ưu : Brute forte hoặc Plane ể giải quyết yêu cầu ặp điểm ngắn nhất trong mặt phẳng” ẳng”

gi i thu t ch y nhanh hay ch mải quyết yêu cầu ật toán để giải quyết yêu cầu ạp, thực nghiệm trên cùng ật toán để giải quyết yêu cầu

» Gi i thu t này và các gi i thu t nói trên s ải quyết yêu cầu ật toán để giải quyết yêu cầu ải quyết yêu cầu ật toán để giải quyết yêu cầu ởng, tính độ phức tạp, thực nghiệm trên cùng ẽ

có th i gian ch y khác nhau tùy theo b trí ời gian thực hiện ạp, thực nghiệm trên cùng ối ưu : Brute forte hoặc Plane các đi m ể giải quyết yêu cầu

» Nh v y rõ ràng gi i thu t Plane sweep t i ư ật toán để giải quyết yêu cầu ải quyết yêu cầu ật toán để giải quyết yêu cầu ối ưu : Brute forte hoặc Plane

u h n Brute forte

ư ơng tự nút 4 và nút 5

Trang 25

K t Lu n ết Luận ật Brute forte

» Tuy nhiên chúng ta cũng nên l u ý vi c t ư ệu ổi Cứ thế tiếp

ch c l u tr d li u nh th nào cho hi u ức tạp, thực nghiệm trên cùng ư ữ liệu ữ liệu ệu ư ết yêu cầu ệu

qu đ gi m đi s ph c t p t vi c xây d ng ải quyết yêu cầu ể giải quyết yêu cầu ải quyết yêu cầu ực nghiệm trên cùng ức tạp, thực nghiệm trên cùng ạp, thực nghiệm trên cùng ừ trái sang phải ệu ực nghiệm trên cùng không gian l u tr và vi c tìm ki m.ư ữ liệu ệu ết yêu cầu

» M t khác, d li u nhi u hay ít thì các gi i ặp điểm ngắn nhất trong mặt phẳng” ữ liệu ệu ề hai thuật toán để giải quyết yêu cầu ải quyết yêu cầu thu t cũng có th ch y v i th i gian khác ật toán để giải quyết yêu cầu ể giải quyết yêu cầu ạp, thực nghiệm trên cùng ới thiệu ời gian thực hiện nhau Ví d nh t ch c tìm ki m theo cây ục trượt hình chữ nhật với bán d mới (d’) sang ư ổi Cứ thế tiếp ức tạp, thực nghiệm trên cùng ết yêu cầu

nh phân có th đ t t i đ ph c t p là nị phân có thể đạt tới độ phức tạp là n ể giải quyết yêu cầu ạp, thực nghiệm trên cùng ới thiệu ộ phức tạp, thực nghiệm trên cùng ức tạp, thực nghiệm trên cùng ạp, thực nghiệm trên cùng 2

Trang 26

Ph l c Code ụ lục Code ụ lục Code

Ngày đăng: 23/03/2015, 07:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w