Học tam giác trong mặt phẳng


13

Tôi đã chỉ định cho học sinh của mình bài toán tìm tam giác phù hợp với tập hợp điểm trong R 2 , được dán nhãn ± 1 . (Một tam giác Tphù hợp với mẫu nhãn nếu T chứa tất cả các tích cực và không ai trong số những điểm tiêu cực; theo giả thiết, những thừa nhận mẫu ít nhất 1 phù hợp tam giác).mR2±1TT

Điều tốt nhất họ (hoặc tôi) có thể làm là một thuật toán chạy trong thời gian , trong đó m là cỡ mẫu. Bất cứ ai có thể làm tốt hơn?Ôi(m6)m


Chỉ cần rõ ràng: các đỉnh của tam giác không cần phải là điểm của bộ sưu tập, phải không? Và có thể chấp nhận được những điểm tiêu cực trên ranh giới?
ex0du5

(1) Tôi đã bỏ phiếu để đóng câu hỏi vì tôi đã hiểu sai vấn đề. Hệ thống không cho phép tôi hủy bỏ phiếu bầu của mình, nhưng tôi hầu như hủy bỏ nó. (2) Tôi nghĩ rằng có một thuật toán thời gian O (m log m), nhưng không có thời gian để xác minh nó ngay bây giờ. Ý tưởng là tính toán vỏ lồi của các ví dụ tích cực và quét xung quanh thân lồi này để tìm ba đường thẳng tạo thành tam giác mong muốn.
Tsuyoshi Ito

@ ex0du5 - thực sự, các đỉnh của tam giác không cần phải bao gồm các điểm mẫu. Đối với các vấn đề ranh giới, những vấn đề này có thể được bỏ qua ở đây vì chúng không cần thiết. [Nếu ranh giới được tính là một phần của tam giác, thì bạn sẽ không có điểm âm trên đường biên.]
Aryeh

@TsuyoshiIto: Tôi cũng có suy nghĩ tương tự, nhưng có những trường hợp bạn không thể có các cạnh tam giác được nối với các cạnh của thân lồi, nhưng vẫn tồn tại một hình tam giác. Hình tam giác rõ ràng vẫn chứa vỏ lồi, nhưng nó không chỉ mở rộng các đường của thân tàu và tìm ra hình tam giác. Bạn có thể cần các đường được xoay quanh một số đỉnh để tránh các điểm âm. Đó là lý do tại sao tôi hỏi về các phủ định trên đường biên, để cho phép một thuật toán tìm kiếm chọn các đường từ các đỉnh của thân tàu đến các phủ định để giữ cho nó một tìm kiếm riêng biệt.
ex0du5

@ ex0du5: Chà, tôi không cho rằng các cạnh của tam giác song song với một số cạnh của thân lồi của các ví dụ tích cực.
Tsuyoshi Ito

Câu trả lời:


14

Như @TsuyoshiIto gợi ý, có một thuật toán thời gian cho vấn đề này, do Edelsbrunner và Prepata. Trong thực tế, thuật toán của họ tìm thấy một đa giác lồi với số cạnh tối thiểu có thể tách biệt hai tập hợp điểm. Họ cũng chứng minh một Ω ( n log n ) giảm ràng buộc đối với các vấn đề tổng quát hơn trong mô hình cây quyết định đại số; tuy nhiên, không rõ liệu giới hạn dưới này có áp dụng cho trường hợp tam giác hay không.Ôi(nđăng nhậpn)Ω(nđăng nhậpn)

Một mô tả đầy đủ về thuật toán quá dài để đăng ở đây, nhưng đây là ý tưởng cơ bản. Gọi là vỏ lồi của các điểm dương. Đối với mỗi điểm tiêu cực q , hãy xem xét các dòng thông qua q được tiếp xúc với C . Những đường này chia mặt phẳng thành bốn nêm, một trong số đó chứa C ; hãy W ( q ) là nêm đối diện một trong đó chứa C . Cuối cùng, đặt F ("vùng cấm") là liên kết của tất cả các nêm W ( q ) . Bất kỳ tam giác tách phải tách C khỏi FCqqCCW(q)CFW(q)CF. Cả F có thể được xây dựng trong thời gian O ( n log n ) .CFÔi(nđăng nhậpn)

ví dụ về $ C $ và $ F $

Dán nhãn các cạnh của xen kẽ theo chiều kim đồng hồ và ngược chiều kim đồng hồ. Edelsbrunner và Prepata chứng minh thêm rằng nếu một tam giác phân tách tồn tại, thì có một tam giác phân tách có các cạnh thẳng hàng với các cạnh của F theo chiều kim đồng hồ . Trong O ( n ) thời gian bổ sung, chúng ta có thể tìm thấy cạnh (nhất thiết phải theo chiều kim đồng hồ) của F lần đầu tiên được chiếu bởi một tia từ mỗi cạnh theo chiều kim đồng hồ e ; gọi cạnh này là "người kế vị" của e . Các con trỏ kế tiếp phân vùng các cạnh theo chiều kim đồng hồ thành các chu kỳ; nếu có một tam giác phân tách, một trong các chu kỳ kế tiếp này có độ dài 3 (và không có chu kỳ nào có độ dài lớn hơn 4).FFÔi(n)Fee

Xem giấy gốc để biết thêm chi tiết:


3

Đối với tôi, dường như đủ để xem xét các đường tiếp tuyến từ các điểm '-1' trên thân lồi của các điểm '+1' vì các ứng cử viên cho các cạnh của (giả sử rằng các điểm '+1' sẽ ở bên trong đến T ).TT

Quá tệ, tôi không thể công bố hình ảnh ở đây. Nhưng hình ảnh này: là đường tiếp tuyến của thân lồi đi qua một số điểm '-1'. A là điểm tiếp tuyến. B là điểm cực trị (xem bên dưới) trên tB C là đường tiếp tuyến từ điểm B ( C là điểm tiếp tuyến).tMộtBtBCBC

Vì vậy, thuật toán là như sau. Đối với mỗi dòng của các đường tiếp tuyến, chúng ta có thể cố gắng xây dựng một tam giác dựa trên nó:t

  1. Tính các điểm giao nhau của với tất cả các đường khác;t
  2. Tìm một điểm cực trị (xa nhất từ ) điểm B và đường thẳng tương ứng t ở bên phải (hoặc bên trái) từ A , sao cho psuedotrigin A B C (= A B , B C và phần thân lồi giữa AC ) không chứa điểm '-1' (nghĩa là không chứa bất kỳ điểm nào).MộtBt'MộtMộtBCMộtBBCMộtC
  3. Làm tương tự với dòng và xem liệu chúng ta có thể 'gần' tam giác.t'

Có vẻ như đây sẽ là thời gian chạy . Có lẽ điều này có thể được cải thiện bằng cách sử dụng một số cấu trúc dữ liệu?Ôi(m2)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.