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.O ( n logn )Ω ( nhật ký nn )
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ả và F có thể được xây dựng trong thời gian O ( n log n ) .CFO ( n logn )
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Ô ( n )Fee
Xem giấy gốc để biết thêm chi tiết:
- Herbert Edelsbrunner và Franco P. Prepata. Tách đa giác tối thiểu . Thông tin và tính toán 77 (3): 218 Xây 232, 1988.