Bài giảng Phân tích thiết kế giải thuật - Chương 35: Hình học tính toán
lượt xem 2
download
Chương 35: Hình học tính toán trong "Bài giảng Phân tích thiết kế giải thuật" giới thiệu đến bạn đọc những kiến thức giải thuật thô sơ, kỹ thuật quét, thứ tự có đoạn thẳng, tính đúng đắn. Hy vọng, đây là tài liệu tham khảo hữu ích dành cho các bạn.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Phân tích thiết kế giải thuật - Chương 35: Hình học tính toán
- Hình Học Tính Toán 13.11.2004 1
- 35.2 Xác định có cặp đoạn thẳng nào cắt nhau không Bài toán: Cho tập các đoạn thẳng trong mặt phẳng. Xác định có cặp đoạn thẳng nào cắt nhau hay không. ª Để đơn giản, giả sử: – Không có đoạn thẳng nào là thẳng đứng – Không có ba đoạn thẳng nào cắt nhau tại một điểm chung. 13.11.2004 Chương 35: Hình học tính toán 2
- Giải thuật thô sơ ª Giải thuật thô sơ: Kiểm tra xem mỗi cặp đoạn thẳng có cắt nhau hay không. Thời gian chạy là (n2), với n là số các đoạn thẳng. 13.11.2004 Chương 35: Hình học tính toán 3
- Kỹ thuật quét ª Giải thuật hữu hiệu dùng kỷ thuật quét (sweeping): Dùng một đưòng thẳng thẳng đứng quét từ trái sang phải và xem xét các thay đổi của phần giao của đường thẳng quét với các đoạn thẳng. – Đường thẳng quét (sweep line) ° Đường thẳng quét thẳng đứng, vị trí hiện thời là toạ độ x x 13.11.2004 Chương 35: Hình học tính toán 4
- Thứ tự các đoạn thẳng ° Định nghĩa một thứ tự hoàn toàn trên các đoạn thẳng cắt bởi đường thẳng quét. – Hai đoạn thẳng s1 và s2 không cắt nhau là có thể so sánh được tại x nếu đường thẳng quét tại vị trí x cắt cả hai đoạn thẳng đó. s2 s1 – Nếu s1 và s2 là có thể so sánh được tại x và giao điểm của s1 với đường thẳng quét ở cao hơn giao điểm của s2 với cùng đường thẳng quét đó, thì ta nói s1 ở trên s2 , ký hiệu s1 x s2 . 13.11.2004 Chương 35: Hình học tính toán 5
- Thứ tự các đoạn thẳng (tiếp) e d g a i b h c f r t u v z w (a) (b) a r c a t b b u c e v f nhưng f w e b t c Mọi đường thẳng quét mà đi qua vùng a t c xám đều có các đoạn thẳng e và f ở liên Đoạn thẳng d không so sánh được với tiếp nhau trong quan hệ thứ tự của nó các đoạn thẳng khác trong hình (a). 13.11.2004 Chương 35: Hình học tính toán 6
- Các cấu trúc dữ liệu trong kỹ thuật quét – Đường thẳng quét ° Khi di chuyển đường thẳng quét, giải thuật trữ và duy trì các thông tin sau – Tình trạng của đường thẳng quét (sweepline status): cho biết thứ tự giữa các đối tượng (đoạn thẳng) bị cắt bởi đường thẳng quét với nhau – Lịch của các biến cố (eventpoint schedule): dãy các tọa độ x, sắp từ trái sang phải, xác định các vị trí dừng của đường thẳng quét. 13.11.2004 Chương 35: Hình học tính toán 7
- Các thao tác lên sweepline status ª Chi tiết giải thuật hữu hiệu dùng kỷ thuật quét – Đường thẳng quét ° Khi di chuyển đường thẳng quét, giải thuật trữ và duy trì các thông tin sau – Tình trạng của đường thẳng quét (sweepline status): Các thao tác lên T: ° INSERT(T, s): chèn đoạn thẳng s vào T ° DELETE(T, s): xoá đoạn thẳng s khỏi T ° ABOVE(T, s): trả về đoạn thẳng ở ngay trên s trong T ° BELOW(T, s): trả về đoạn thẳng ở ngay dưới s trong T. 13.11.2004 Chương 35: Hình học tính toán 8
- Eventpoint schedule – Lịch của các biến cố (eventpoint schedule): dãy các tọa độ x, sắp từ trái sang phải, xác định các vị trí dừng của đường thẳng quét. ° Mỗi điểm đầu mút của các đoạn thẳng (của tập input S) là một điểm biến cố (event point), là điểm mà thứ tự T thay đổi. ° Lịch của các biến cố là tĩnh và được xây dựng bằng cách sắp xếp các điểm đầu mút của các đoạn thẳng theo thứ tự từ trái qua phải. 13.11.2004 Chương 35: Hình học tính toán 9
- Xác định có cặp đoạn thẳng nào cắt nhau không ANYSEGMENTSINTERSECT(S) 1 T 2 Sắp các điểm đầu mút của các đoạn thẳng trong S theo thứ tự từ trái sang phải, breaking ties... 3 for mổi điểm p trong danh sách sắp xếp của các điểm đầu mút 4 do if p là điểm đầu mút bên trái của đoạn thẳng s 5 then INSERT(T, s) 6 if (ABOVE(T, s) tồn tại và cắt s) hay (BELOW(T, s) tồn tại và cắt s) 7 then return TRUE 8 if p là điểm đầu mút bên phải của đoạn thẳng s 9 then if cả hai ABOVE(T, s) và BELOW(T, s) đều tồn tại và ABOVE(T, s) cắt BELOW(T, s) 10 then return TRUE 11 DELETE(T, s) 12 return FALSE 13.11.2004 Chương 35: Hình học tính toán 10
- Thực thi ANYSEGMENTSINTERSECT e a d c f b a a a d d e e b c a c d d b c b c b b b thời gian 13.11.2004 Chương 35: Hình học tính toán 11
- Breaking ties ª Nếu khi sắp xếp các điểm đầu mút của các đoạn thẳng trong S từ trái sang phải mà có nhiều điểm có cùng tọa độ x thì breaking ties như sau – Các điểm đầu mút bên trái được xếp trước các điểm đầu mút bên phải. a q b p p được xếp trước q khi sắp xếp các điểm đầu mút ở dòng 2 của ANYSEGMENTSINTERSECT 13.11.2004 Chương 35: Hình học tính toán 12
- Tính đúng đắn ª Theorem 35.1 (Tính đúng đắn) Giải thuật ANYSEGMENTSINTERSECT chạy trên tập S trả về TRUE nếu và chỉ nếu có cắt nhau giửa các đoạn thẳng. ª Chứng minh “ ”: xem mã ta thấy ANYSEGMENTSINTERSECT trả về TRUE chỉ khi nào nó tìm thấy hai đoạn thẳng cắt nhau. “ ”: Sẽ chứng minh rằng nếu tồn tại hai đoạn thẳng cắt nhau thì ANYSEGMENTSINTERSECT trả về TRUE. 13.11.2004 Chương 35: Hình học tính toán 13
- Tính đúng đắn (tiếp) Giả sử tồn tại một giao điểm. Gọi p là giao điểm bên trái nhất, gọi a và b là các đoạn thẳng cắt nhau tại p. Tồn tại đường quét z mà tại đó a và b trở nên liên tiếp nhau trong thứ tự toàn phần. Tồn tại điểm đầu mút q mà là event point để cho a và b trở nên liên tiếp nhau trong thứ tự toàn phần. a p b z Có 2 trường hợp: A) giải thuật xử lý q và B) giải thuật không xử lý q. 13.11.2004 Chương 35: Hình học tính toán 14
- Tính đúng đắn (tiếp) A) Trường hợp 1: đoạn thẳng a hay b được chèn vào T, và đoạn thẳng kia ở trên hay dưới nó. Các dòng 47 tìm thấy trường hợp này. q q p q p p z z z p p p q q q z z z 13.11.2004 Chương 35: Hình học tính toán 15
- Tính đúng đắn (tiếp) Trường hợp 2: các đoạn thẳng a và b đang trong T, và một đoạn thẳng ở giữa chúng được xóa. Các dòng 811 tìm thấy trường hợp này. q p z Trong cả hai trường hợp, giải thuật tìm thấy p và trả về TRUE. B) Nếu q không được giải thuật xử lý, thì có nghĩa là giải thuật đã quay về trước khi xử lý xong tất cả các event points. Vậy giải thuật đã tìm thấy một giao điểm và trả về TRUE. 13.11.2004 Chương 35: Hình học tính toán 16
- Phân tích ANYSEGMENTSINTERSECT ª Thời gian chạy – Giả sử tập đoạn thẳng S gồm có n đoạn thẳng. Dùng cấu trúc dữ liệu thích hợp (ví dụ: dựa trên cây nhị phân cân bằng) để hiện thực T sao cho các thao tác lên T đều tốn O(lg n) thời gian. – Thời gian chạy của giải thuật ANYSEGMENTSINTERSECT gồm ° Dòng 1: O(1) thời gian ° Dòng 2: O(n lg n) thời gian ° Vòng lặp for: O(n lg n) thời gian Vậy thời gian chạy tổng cộng của giải thuật là O(n lg n). 13.11.2004 Chương 35: Hình học tính toán 17
- 35.4 Tìm bao lồi ª Tự đọc. 13.11.2004 Chương 35: Hình học tính toán 18
- 35.4 Tìm cặp điểm gần nhau nhất ª Tự đọc. 13.11.2004 Chương 35: Hình học tính toán 19
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Phân tích thiết kế hệ thống: Bài giảng 4 - TS. Đào Nam Anh
12 p | 155 | 15
-
Bài giảng Phân tích thiết kế phần mềm: Chương 10 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
8 p | 18 | 12
-
Bài giảng Phân tích thiết kế phần mềm: Chương 2 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
9 p | 18 | 11
-
Bài giảng Phân tích thiết kế phần mềm: Chương 6 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
12 p | 23 | 11
-
Bài giảng Phân tích thiết kế phần mềm: Chương 8 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
7 p | 19 | 11
-
Bài giảng Phân tích thiết kế phần mềm: Chương 9 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
11 p | 18 | 11
-
Bài giảng Phân tích thiết kế phần mềm: Chương 7 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
16 p | 18 | 11
-
Bài giảng Phân tích thiết kế phần mềm: Chương 3 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
8 p | 22 | 10
-
Bài giảng Phân tích thiết kế phần mềm: Chương 5 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
10 p | 20 | 10
-
Bài giảng Phân tích thiết kế hướng đối tượng: Chương 5 - Lê Thị Minh Nguyện
11 p | 100 | 8
-
Bài giảng Phân tích thiết kế hướng đối tượng: Chương 1 - Lê Thị Minh Nguyện
11 p | 78 | 7
-
Bài giảng Phân tích thiết kế hướng đối tượng: Chương 3 - Lê Thị Minh Nguyện
13 p | 64 | 6
-
Bài giảng Phân tích thiết kế hệ thống thông tin: Bài 7 - TS. Trần Mạnh Tuấn
14 p | 21 | 5
-
Bài giảng Phân tích thiết kế hệ thống thông tin - Chương 1: Tổng quan về phát triển hệ thống
20 p | 76 | 5
-
Bài giảng Phân tích thiết kế hướng đối tượng: Chương 4 - Lê Thị Minh Nguyện
14 p | 81 | 5
-
Bài giảng Phân tích thiết kế hướng đối tượng: Chương 2 - Lê Thị Minh Nguyện
10 p | 63 | 4
-
Bài giảng Phân tích thiết kế hệ thống thông tin - Chương 4: Thu thập yêu cầu hướng đối tượng
19 p | 26 | 3
-
Bài giảng Phân tích thiết kế hệ thống thông tin - Chương 8: Thiết kế lớp phương thức
18 p | 20 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn