Розбиття набору точок на дві оптимальні підмножини


9

Я хочу розділити набір точок на дві підмножини однакового розміру, щоб мінімальну суму квадратів було мінімізовано. Можна припустити, що точки знаходяться в двовимірному евклідовому просторі. Я сподіваюся на щось швидше, ніж загальний алгоритм кластеризації k-означає, враховуючи, що k = d = 2. Чи може хтось вказати мені в напрямку хорошого алгоритму для цього?

Точне рішення не потрібне, якщо ми маємо гарне наближення.

Дякую!

Відповіді:


10

Якщо ви наполягаєте на точному розділенні, то вам потрібно обчислити всі врівноважені перегородки набору точок у площині лінією (оптимальний розділ - це розділ Вороного, тому два набори точок розділені прямою). Такі розділи відомі як -набори. Найбільш швидкий алгоритм, відомий в даний час для цієї роботи в для обчислення цих розділів у подвійному [тобто, -рівні набору з рядків, при ] . Після того, як у вас є всі можливі розділи, потрібно просто перевірити кожен з них. Використовуючи стандартні трюки, це можна зробити в постійний час для кожного розділу.кО(н4/3журналн)кнк=н/2

(Оновлення: Доведення, що оптимальний розділ реалізований a к-набір, для к=н/2, не зовсім банально. Я залишив би це як миле вправу для зацікавленого читача. Підказка. Розгляньте лінію, що проходить через два оптимальних центри, і напрямок, перпендикулярний до неї.)

Якщо ви не піклуєтесь про точне рішення, тоді більш простим підходом буде використання корсет для к-групи кластеризації Це призведе доО(ϵ-2журналн) зважених балів у цьому випадку із загальною вагою н. Тоді вам просто потрібно вирішити задачу на зваженій точці. Найпростішим рішенням було б генерувати тоді набір кандидатських місць для центрів та спробувати всі пари на зважених точках. Побудова основних ядер та генерація кандидатських центрів описані в цьому документі:

http://sarielhp.org/p/03/kcoreset/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.