Thời gian chạy của thuật toán -appro xấp xỉ tối ưu cho bài toán -clustering


16

Chúng tôi được cung cấp một bộ điểm 2 chiều và một số nguyên . Chúng ta phải tìm một tập hợp các vòng tròn bao gồm tất cả các điểm sao cho bán kính của vòng tròn lớn nhất càng nhỏ càng tốt. Nói cách khác, chúng ta phải tìm một tập hợp của các điểm trung tâm sao cho hàm chi phí được giảm thiểu. Ở đây, biểu thị khoảng cách Euclide giữa điểm đầu vào và điểm trung tâm . Mỗi điểm tự gán cho trung tâm cụm gần nhất nhóm các đỉnh thànhk k n C = { c 1 , c 2 , Mạnh , c k } k cost ( C ) = max i min j D ( p i , c j ) D p i|P|=nkknC={c1,c2,,ck}kcost(C)=maximinjD(pi,cj)Dpi kcjk các cụm khác nhau.

Vấn đề được gọi là vấn đề -cluster (rời rạc) và nó là -hard. Nó có thể được hiển thị với sự giảm bớt từ vấn đề tập hợp thống trị mà nếu tồn tại thuật toán -appro xấp xỉ cho vấn đề với thì .NP NP ρ ρkNPNPρP = NPρ<2P=NP

Thuật toán tối ưu hóa tối ưu là rất đơn giản và trực quan. Đầu tiên người ta chọn một điểm p \ in P một cách tùy ý và đặt nó vào tập C của các tâm cụm. Sau đó, người ta chọn trung tâm cụm tiếp theo sao cho càng xa càng tốt từ tất cả các trung tâm cụm khác. Vì vậy, trong khi | C | <K , chúng tôi liên tục tìm thấy một điểm j \ trong P mà khoảng cách D (j, C) là tối đa và thêm nó vào C . Một lần | C | = k chúng ta đã xong.2pPC|C|<kjPD(j,C)C|C|=k

Không khó để thấy rằng thuật toán tham lam tối ưu chạy trong thời gian O(nk) . Điều này đặt ra một câu hỏi: chúng ta có thể đạt được thời gian o(nk) không? Chúng ta có thể làm tốt hơn bao nhiêu?

Câu trả lời:


7

Vấn đề thực sự có thể được xem một cách hình học theo cách mà chúng tôi muốn bao phủ các điểm bằng k quả bóng, trong đó bán kính của quả bóng lớn nhất được giảm thiểu.Vk

thực sự khá đơn giản để đạt được nhưng người ta có thể làm tốt hơn. Feder và Greene, các thuật toán tối ưu cho clustering xấp xỉ, 1988đạt được một thời gian chạy của Θ ( n log k ) sử dụng cấu trúc dữ liệu thông minh hơn và còn cho biết rằng đây là tối ưu trong mô hình cây quyết định đại số.O(nk)Θ(nlogk)


1

Câu hỏi của tôi: Có cách nào để tôi có thể khiến chiến lược chọn tham lam chạy trong thời gian không?o(|V|2)

Dường như với tôi rằng bạn đã mô tả nó. Trong trường hợp tôi đọc quá xa trong mô tả của bạn, đây là những gì tôi đã hiểu. Có một cấu trúc dữ liệu kết hợp liên kết mỗi phần tử của với tổng các khoảng cách đến các yếu tố của S . Cấu trúc dữ liệu này có thể được khởi tạo với chi phí O ( | V | ) với khoảng cách đến p và việc khởi tạo này có thể tạo ra phần tử tiếp theo dưới dạng hiệu ứng phụ mà không làm tăng độ phức tạp. Nó có thể được cập nhật sau khi lựa chọn một yếu tố mới với chi phí O ( | V | ) , một lần nữa tạo ra yếu tố tiếp theo làm hiệu ứng phụ. Lặp lại để có SVSO(|V|)pO(|V|)S. Độ phức tạp kết quả là .O(k|V|)


1
Nhưng lưu ý ràng buộc trên : trong trường hợp xấu nhất, nó có thể lớn bằng | V | . Tôi nghi ngờ có những cấu trúc dữ liệu đạt được giới hạn tốt hơn, nhưng tôi thực sự không biết. k|V|
Juho

Rất tiếc, và không phải O trong câu hỏi của bạn. (Lưu ý rằng trong câu hỏi của bạn, bạn quay lại k 3 , vì vậy đây sẽ là một cải tiến). Những gì tôi đề xuất không sử dụng thực tế là bạn đang làm việc trong không gian Euclidian, tôi nghĩ bạn sẽ phải sử dụng nó để làm tốt hơn, nhưng hiện tại tôi không thấy cách nào. oOk3
AProgrammer
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.