Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
485,5 KB
Nội dung
Bài toán Tìm kiếm hình học Chương 2 Nội dung trình bày Xác định giao của các đoạn thẳng. Xác định vị trí điểm. Tìm kiếm theo khoảng. Giao của các đoạn thẳng Bài toán: • Cho tập S gồm n đoạn thẳng (đóng) trên mặt phẳng. Xác định tất cả các giao điểm giữa các đoạn thẳng trong S. Phương pháp đơn giản nhất • Kiểm tra sự giao nhau của từng cặp đoạn thẳng. • Thuật toán có độ phức tạp thực thi là O(n 2 ). • Số giao điểm nhỏ hơn n 2 rất nhiều. Phương pháp dòng quét S = {s 1 , s 2 , …, s n } Điểm sự kiện Trạng thái của đường thẳng quét l là tập hợp các đoạn thẳng cắt l. Trạng thái thay đổi khi l di chuyển và gặp các điểm sự kiện. Phương pháp dòng quét • Khi đường thẳng quét gặp điểm sự kiện: – Cập nhật trạng thái dòng quét. • Nếu là điểm mút trên thì thêm đoạn thẳng vào trạng thái. • Nếu là điểm mút dưới thì loại đoạn thẳng khỏi trạng thái. – Kiểm tra sự giao nhau. Phương pháp dòng quét • Kiểm tra sự giao nhau – Sắp xếp các đoạn thẳng cắt dòng quét từ trái sang phải theo các điểm mút trên. – Kiểm tra sự giao nhau của 2 đoạn kề nhau. Cụ thể là giữa đoạn mới với nhiều nhất 2 đoạn khác. • Trạng thái dòng quét – Dãy có thứ tự các đoạn thẳng cắt dòng quét. – Trạng thái thay đổi tại các điểm sự kiện • Các điểm mút của đoạn thẳng. • Giao điểm của các đoạn thẳng. • Định lý (Kiểm tra sự giao nhau) – Cho s i và s j là 2 đoạn thẳng không song song với trục Ox và giao nhau tại p. Giả sử không có đoạn thẳng thứ ba qua p. Khi đó tồn tại điểm sự kiện phía trên p trong đó s i và s j kề nhau và được kiểm tra sự giao nhau. Xử lý điểm sự kiện Điểm sự kiện là điểm mút trên của đoạn thẳng Phát hiện giao điểm Xử lý điểm sự kiện Điểm sự kiện là giao của 2 đoạn thẳng Xử lý điểm sự kiện Điểm sự kiện là điểm mút dưới của đoạn thẳng Cấu trúc dữ liệu Lưu hàng đợi sự kiện • Sử dụng cây nhị phân tìm kiếm cân bằng Q. • Thứ tự sắp xếp: p và q là 2 điểm sự kiện thì p < q nếu và chỉ nếu - p y > q q hoặc - p y = q y và p x < q x • Với mỗi điểm p trong Q lưu lại đoạn thẳng có điểm mút trên ứng với p. • Có 2 thao tác - Chuyển đến điểm sự kiện kế tiếp. - Chèn điểm sự kiện mới vào.