1558 một thuật toán hiệu quả cho bài toán tìm cặp điểm khác màu gần nhất trong tập điểm hai màu trên mặt phẳng

11 1 0
1558 một thuật toán hiệu quả cho bài toán tìm cặp điểm khác màu gần nhất trong tập điểm hai màu trên mặt phẳng

Đ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

MỘT THUẬT TOÁN HIỆU QUẢ CHO BÀI TOÁN TÌM CẶP ĐIỂM KHÁC MÀU GẦN NHẤT TRONG TẬP ĐIỂM HAI MÀU TRÊN MẶT PHẲNG Nguyễn Ngọc Trung*, Trần Thị Diệu Huyền† 1 Mở đầu Bài toán tìm cặp điểm khác màu gần nhất tron[.]

Tạp chí KHOA HỌC ĐHSP TP.HCM Số 10 năm 2007 MỘT THUẬT TỐN HIỆU QUẢ CHO BÀI TỐN TÌM CẶP ĐIỂM KHÁC MÀU GẦN NHẤT TRONG TẬP ĐIỂM HAI MÀU TRÊN MẶT PHẲNG Nguyễn Ngọc Trung*, Trần Thị Diệu Huyền† Mở đầu Bài tốn tìm cặp điểm khác màu gần tập điểm hai màu mặt phẳng thuộc dạng tốn tìm cặp điểm gần mặt phẳng Bài toán đặt : “Cho n điểm màu xanh m điểm màu đỏ mặt phẳng, làm tìm cặp điểm xanh – đỏ gần nhất” Bài tốn giải cách dễ dàng cách lấy cặp phần tử điểm xanh và điểm đỏ, xác định khoảng cách chúng chọn cặp có khoảng cách nhỏ Thuật tốn có độ phức tạp O(n.m) n số điểm xanh m số điểm đỏ mặt phẳng Một câu hỏi đặt liệu xây dựng thuật toán tốt cho toán ? Chúng ta thấy rằng, chun ngành hình học tính tốn, lược đồ Voronoi đóng vai trị quan trọng việc giải tốn tìm cặp điểm gần mặt phẳng Điều dễ hiểu lược đồ Voronoi có tính chất đặc trưng khoảng cách, điều mà hay dùng để rút ngắn thời gian tính tốn, thời gian thực thuật toán giải toán Chính báo này, chúng tơi chọn lược đồ Voronoi để làm công cụ xây dựng thuật tốn giải tốn tìm cặp điểm khác màu gần số tập điểm hai màu mặt phẳng Cấu trúc báo sau : mục dành cho việc giới thiệu sơ lược lược đồ Voronoi tính chất Phần mơ tả chi tiết thuật toán giải toán trình bày mục Phần cuối báo số chứng * † ThS, Khoa Toán – Tin học, Trường Đại học Sư phạm Tp.HCM CN, Sinh viên Khoa Toán – Tin học Trường ĐHSP Tp.HCM (Khố 2001-2005) minh lí thuyết tính đắn đánh giá độ phức tạp thuật toán Lược đồ Voronoi tính chất Định nghĩa 2.1 Đặt P = {p1, p2, …, pn} tập gồm n điểm mặt phẳng Lược đồ Voronoi phân chia mặt phẳng thành n vùng (cell), vùng chứa điểm pi với tính chất điểm q nằm vùng tương ứng với pi Hình Lược đồ Voronoi P = {p1, p2, …, p7} dist(q, pi ) < dist(q, p j ) , ∀j = 1n Trong đó, dist(q, p) khoảng cách từ q đến p : dist(q, p) = qxx p  2  q yy p  Ta kí hiệu : Vor(P) lược đồ Voronoi P V(pi) vùng Vor(P) tương ứng với điểm pi Sau giới thiệu số tính chất quan trọng lược đồ Voronoi Do khuôn khổ báo, chúng tơi khơng trình bày phần chứng minh tính chất Độc giả tham khảo phần chứng minh tính chất [1] Định lí 2.1 Cho P tập gồm n điểm mặt phẳng Nếu điểm thẳng hàng, Vor(P) gồm (n – 1) đường thẳng song song Ngược lại, Vor(P) liên thơng cạnh đoạn thẳng nửa đường thẳng Điều có ý nghĩa lớn định lí điểm P khơng thẳng hàng với lược đồ Vor(P) bao gồm tập đoạn thẳng nửa đường thẳng khơng thể có đường thẳng (mở hai đầu) Tính chất giúp cho việc xây dựng cấu trúc liệu để biểu diễn lược đồ Vor(P) đơn giản nhiều Dễ nhận thấy rằng, lược đồ Voronoi tập điểm P xây dựng từ đường trung trực đoạn thẳng nối cặp đỉnh P nữa, đỉnh Vor(P) giao điểm đường trung trực Tuy nhiên, khơng phải đường trung trực cạnh Vor(P) khơng phải giao điểm đường trung trực đỉnh Vor(P) Định lí sau cho ta thấy rõ nhận xét Định lí 2.2 Cho lược đồ Vor(P) tập điểm P = {p1, p2, …, pn} Khi : a Một điểm q đỉnh Vor(P) đường tròn rỗng lớn có tâm q – gọi CP(q) chứa ba điểm P biên b Đường trung trực đoạn thẳng pipj cạnh Vor(P) có điểm q đường trung trực cho CP(q) qua pi, pj khơng chứa trạm khác CP(q) q q' Hình Minh hoạ tính chất ảnh cạnh lược đồ Voronoi Ví dụ Theo hình 2, q đỉnh Vor(P) CP(q) có chứa p3, p6, p7 Bên cạnh đó, đường trung trực đoạn thẳng p 1p4 cạnh Vor(P) có điểm q’ đường trung trực thỏa mãn CP(q’) qua p 1, p4 khơng qua đỉnh khác P Thuật toán xây dựng lược đồ Voronoi tập n điểm mặt phẳng xây dựng dựa tính chất quan trọng Thuật tốn sử dụng dòng quét (sweep line) từ xuống dần xác định đỉnh cạnh lược đồ Voronoi cần tìm Độc giả quan tâm tìm hiểu chi tiết thuật tốn [1] Định lí sau đề cập đến độ phức tạp thuật toán xây dựng lược đồ Voronoi tập n điểm mặt phẳng Định lí 2.3 Thuật tốn xây dựng lược đồ Voronoi tập n điểm mặt phẳng có độ phức tạp thời gian O(nlogn) không gian lưu trữ O(n) Định lí 2.3 Lược đồ Voronoi n điểm (n ≥ 3) mặt phẳng có tối đa (2n– 5) đỉnh (3n–6) cạnh Thuật tốn giải tốn tìm cặp điểm khác màu gần tập điểm hai màu mặt phẳng Như trình bày trên, giải toán thuật toán vét cạn : kiểm tra hết tất cặp điểm xanh – đỏ tập điểm cho trước, từ chọn cặp điểm có khoảng cách nhỏ Tuy nhiên, dễ dàng nhận thấy thuật tốn khơng tốt số tất cặp xanh – đỏ, có nhiều cặp trở thành cặp điểm xanh – đỏ gần : chẳng hạn cặp điểm xanh – đỏ xa chúng lại có nhiều điểm xanh, đỏ khác Để cải thiện nhược điểm này, ta quan tâm tới cặp xanh – đỏ “ứng cử viên” cho cặp điểm xanh – đỏ gần Cụ thể, ứng với điểm đỏ, ta quan tâm đến điểm xanh gần (so với điểm xanh cịn lại) cặp “ứng cử viên” cho lời giải toán đặt Dựa vào tính chất lược đồ Voronoi “những điểm thuộc vùng (cell) gần với trạm tương ứng với vùng so với trạm khác”, đưa ý tưởng để giải tốn tìm cặp điểm khác màu gần tập điểm hai màu mặt phẳng (gọi tắt Bài toán tập điểm hai màu mặt phẳng) sau : – Đầu tiên, ta xây dựng lược đồ Voronoi cho tập n điểm màu xanh – Ứng với điểm đỏ, tìm điểm xanh gần cách xác định điểm đỏ vùng tương ứng với điểm xanh Từ lập thành cặp “ứng cử viên” cho lời giải – So sánh cặp ứng cử viên, ta xác định cặp xanh – đỏ có khoảng cách ngắn Hình Tập điểm màu ban đầu : chấm trắng điểm đỏ, chấm đen điểm xanh Hình Lược đồ Voronoi tập điểm xanh xây dựng xong Sau đây, cụ thể hoá ý tưởng thuật toán Phần quan trọng làm để xác định điểm đỏ nằm vùng lược đồ Voronoi điểm xanh Để việc xác định thuận lợi, lược đồ Voronoi điểm xanh phải biểu diễn cách phù hợp  Biểu diễn lược đồ Voronoi điểm xanh danh sách cạnh kép (double-edge list) : Hình Minh hoạ biểu diễn lược đồ Voronoi danh sách cạnh kép Ta biểu diễn lược đồ Voronoi điểm xanh danh sách cạnh kép sau : – Thêm vào lược đồ Voronoi hình chữ nhật bao xung quanh tất đỉnh cạnh Như lược đồ Voronoi có thêm đỉnh đỉnh hình chữ nhật giao điểm cạnh với cạnh hình chữ nhật Mặt khác, lược đồ Voronoi bao gồm đoạn thẳng (khơng cịn nửa đường thẳng nữa) – Mỗi cạnh lược đồ Voronoi biểu diễn hai vector ngược chiều cho vùng, vector ln có chiều theo ngược chiều kim đồng hồ (xem hình 5) – Như vùng đa giác độc lập việc kiểm tra điểm đỏ có nằm vùng hay khơng đưa tốn hình học : kiểm tra điểm có nằm đa giác hay khơng  Thuật tốn tìm cặp điểm khác màu gần tập điểm hai màu mặt phẳng : Mặc dù biết cách xác định điểm đỏ có nằm vùng lược đồ Voronoi điểm xanh hay không điều khơng có nghĩa việc giải Trong lược đồ Voronoi có nhiều vùng, đó, ứng với điểm đỏ, ta khơng thể kiểm tra hết tất vùng để kết luận điểm đỏ nằm vùng nào, thay vào đó, ta kiểm tra vùng nằm “gần” điểm đỏ mà thơi Để thực ý tưởng trên, ta sử dụng dòng quét (sweep-line) từ xuống Dòng quét quét qua điểm đỏ Giả sử thời điểm, dịng qt cắt điểm đỏ, cắt số vector lược đồ Voronoi Trong số vector bị dòng quét cắt, ta tìm vector nằm gần bên phải điểm đỏ (khoảng cách xác định dòng quét), vùng tương ứng với vector chứa điểm xanh gần với điểm đỏ mà dịng qt cắt Hình Dịng qt qua điểm đỏ q Hình Xác định vùng chứa điểm xanh p gần với điểm đỏ q Nhằm xác định vector nằm bên phải gần so với điểm đỏ, cần cấu trúc lưu trữ cạnh bị dòng quét cắt lược đồ Voronoi Cấu trúc thường xuyên cập nhật (thêm, xoá cạnh, …) đồng thời phải đảm bảo cạnh tổ chức theo thứ tự định để việc tìm kiếm dễ dàng, cấu trúc thích hợp nhị phân tìm kiếm cân v20 v22 v23 Hình Cây nhị phân cân lưu trữ cạnh bị cắt dòng quét v20 v21 v22v23 v21 Để cập nhật lưu trữ cạnh này, cho dòng quét dừng lại đỉnh lược đồ Voronoi, đỉnh này, số cạnh khơng có khả cắt dịng quét xoá khỏi cây, số cạnh thêm vào Như dòng quét khơng dừng lại điểm đỏ mà dừng lại đỉnh lược đồ Voronoi để cập nhật lại lưu trữ cạnh bị dịng qt cắt Để dịng qt dừng lại điểm nói trên, ta xây dựng hàng đợi Q gồm điểm đỏ đỉnh lược đồ Voronoi điểm xanh Các điểm hàng đợi theo thứ tự giảm dần tung độ (điểm có tung độ lớn dòng quét qua trước) Tổng kết lại, thuật tốn mơ tả sau : Thuật tốn TÌM_CẶP_ĐỈNH_KHÁC_MÀU_GẦN_NHẤT Input : Tập P gồm n điểm xanh m điểm đỏ mặt phẳng Output : Cặp đỉnh xanh – đỏ gần Bước Xây dựng lược đồ Voronoi cho tập n điểm màu xanh Bước Xây dựng hàng đợi Q gồm đỉnh Voronoi điểm đỏ - hàng đợi ưu tiên theo tung độ điểm Bước Khởi tạo tìm kiếm cân T lưu cạnh bị cắt đường quét Bước WHILE Q khác rỗng DO : - Lấy đỉnh v từ Q - IF v điểm đỏ THEN Gọi thủ tục XỬ_LÍ_ĐIỂM_ĐỎ(v) ELSE Gọi thủ tục XỬ_LÍ_ĐỈNH (v) END DO Thủ tục XỬ_LÍ_ĐỈNH(v) Bước Tìm cạnh cần xố T (các cạnh có đỉnh thấp v) cạnh khỏi T Bước Thêm cạnh (các cạnh có đỉnh cao v) vào vị trí vừa xố Thủ tục XỬ_LÍ_ĐIỂM_ĐỎ(v) Bước Thực tìm kiếm T Kiểm tra vị trí điểm đỏ so với nửa cạnh giá trị nút gốc, điểm đỏ nằm bên trái thì qua kiểm tra phải nó, điểm đỏ nằm bên phải qua nút bên trái tiếp tục Q trình kết thúc khơng thể tiếp Bước Gọi e cạnh cuối trước dừng lại Kiểm tra xem điểm đỏ v nằm bên trái nửa cạnh hai nửa cạnh tạo cạnh e vừa tìm được, xác định chứa nửa cạnh vừa tìm được, từ xác định điểm xanh p gần v Bước Tính khoảng cách điểm đỏ v điểm xanh p vừa tìm so sánh với cặp nhỏ tại, nhỏ gán cặp gần Trên chúng tơi trình bày thuật tốn tìm cặp điểm khác màu gần tập điểm hai màu mặt phẳng Sau đánh giá độ phức tạp thuật toán Bổ đề 3.1 Thời gian chạy thuật toán O(plogp) với p tổng số điểm xanh điểm đỏ Chứng minh Thời gian thực thuật toán bao gồm thời gian xây dựng Voronoi thời gian xử lí kiện (cập nhật cây, xác định cặp nhỏ tại, …) Trước hết, nhận thấy rằng, thời gian xây dựng lược đồ Voronoi O ( n log n ) trình bày phần Duyệt từ xuống qua toàn thuật tốn tính thời gian qua bước thực thuật toán : – Do số đỉnh lược đồ Voronoi n đỉnh xanh không 2n-5 nên thời gian xây dựng hàng đợi Q gồm đỉnh lược đồ Voronoi n điểm xanh m điểm đỏ không O ( p log – cần nhắc lại p = m+n p) – Thời gian lấy phần tử khỏi Q O(1), tổng thời gian để lấy p phần tử khỏi Q O(p) – Thời gian xử lí kiện gặp đỉnh : tổng thời gian thời gian xây dựng cây, thời gian duyệt cây, thời gian thêm xoá phần tử khỏi Do số cạnh lược đồ Voronoi n điểm xanh không vượt 3n-6 nên tổng thời gian không vượt O ( n log n ) – Thời gian xử lí kiện gặp điểm đỏ : thời gian duyệt cây, cộng thêm thời gian xác định ô cần tìm Thời gian duyệt O n log n ( ) , thời gian xác định ô số, thời gian để xử lí kiện gặp điểm đỏ O ( n log n ) – Vậy tổng thời gian thực thuật toán O ( p log p)  Kết luận Bài tốn tìm cặp điểm khác màu gần tập điểm hai màu mặt phẳng có nhiều ứng dụng thực tế Đơn cử ta sử dụng thuật tốn giải tốn để tìm hai trạm gần hai hệ thống mạng khác nhau, nối chúng lại, tạo thành mạng liên thơng với chi phí tốn nhất, Những nghiên cứu toán dạng nhiều người quan tâm Dựa kết đạt này, tiếp tục nghiên cứu, mở rộng toán theo hướng sau : – Mở rộng với toán tìm điểm khác màu gần tập điểm 3, màu – Mở rộng toán tập điểm hai màu mặt phẳng thành toán tập điểm hai màu khơng gian : phải sử dụng đến khái niệm lược đồ Voronoi không gian TÀI LIỆU THAM KHẢO [1] Mark de Berg, Marc van Kreveld, Mark Overmars, Otfried Schwarzkopt (2000), Computational Geometry Algorithms and Applications, Springer Verlag, Berlin [2] Franco P.Preparata, Michael Ian Shamos (1985), Computational Geometry – An Introduction, Springer Verlag, Tokyo [3] O'Rourke, J (1993) : Computational Geometry in C, Cambridge University Press Tóm tắt : Một thuật tốn hiệu cho tốn tìm cặp điểm khác màu gần tập điểm hai màu mặt phẳng Bài toán tập điểm hai màu mặt phẳng phát biểu sau : “Cho n điểm màu xanh m điểm màu đỏ mặt phẳng, làm tìm cặp điểm xanh – đỏ gần nhất” Việc xác định lời giải cho toán thực tương đối dễ dàng thuật toán vét cạn – kiểm tra hết tất cặp điểm khác màu Tuy nhiên, báo chúng tơi trình bày thuật tốn tốt nhiều để giải toán Cơng cụ chủ yếu sử dụng thuật tốn lược đồ Voronoi mặt phẳng Từ khoá : algorithm Voronoi diagram, computational geometry, sweepline Abstract : An effective algorithm for the problem to find the nearest different color pair points in the set of two color points on the surface The problem of the set of two color points on the surface is suggested “Given n blue points and m red points on the surface, find the nearest blue – red pair point” Identifying the solution to the problem may be conducted relatively easily with sweep-line algorithm – checking all different color pair points However, in this article, a much better algorithm to solve this problem is presented The major tool used in the algorithm is the Voronoi diagram on the surface ... Một thuật tốn hiệu cho tốn tìm cặp điểm khác màu gần tập điểm hai màu mặt phẳng Bài toán tập điểm hai màu mặt phẳng phát biểu sau : ? ?Cho n điểm màu xanh m điểm màu đỏ mặt phẳng, làm tìm cặp điểm. .. điểm thuộc vùng (cell) gần với trạm tương ứng với vùng so với trạm khác? ??, đưa ý tưởng để giải tốn tìm cặp điểm khác màu gần tập điểm hai màu mặt phẳng (gọi tắt Bài toán tập điểm hai màu mặt phẳng) ... tục nghiên cứu, mở rộng toán theo hướng sau : – Mở rộng với tốn tìm điểm khác màu gần tập điểm 3, màu – Mở rộng toán tập điểm hai màu mặt phẳng thành toán tập điểm hai màu khơng gian : phải sử

Ngày đăng: 05/01/2023, 23:25

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan