Halbieren einer Menge von Punkten in zwei optimale Teilmengen


9

Ich möchte eine Menge von Punkten in zwei gleich große Teilmengen aufteilen, damit die Summe der Quadrate innerhalb des Clusters minimiert wird. Wir können annehmen, dass sich die Punkte im zweidimensionalen euklidischen Raum befinden. Ich hoffe auf etwas schnelleres als einen allgemeinen k-Mittelwert-Clustering-Algorithmus, wenn k = d = 2 ist. Kann mich jemand in die Richtung eines guten Algorithmus dafür weisen?

Eine genaue Lösung ist nicht erforderlich, wenn wir eine gute Annäherung haben.

Vielen Dank!

Antworten:


10

Wenn Sie auf einer präzisen Partition bestehen, müssen Sie alle ausgeglichenen Partitionen einer Menge von Punkten in der Ebene durch eine Linie berechnen (die optimale Partition ist eine Voronoi-Partition, sodass die beiden Punktmengen durch eine Linie getrennt sind). Solche Partitionen sind als Sätze bekannt. Der schnellste Algorithmus zur Zeit für diese Arbeit in bekannten O ( n 4 / 3 log n ) für diese Partitionen im dualen Berechnung [dh die k -Niveau eines Satzes von n - Linien, für k = n / 2kÖ(n4/.3Logn)knk=n/.2]. Sobald Sie alle möglichen Partitionen haben, müssen Sie nur jede von ihnen überprüfen. Mit Standardtricks kann dies für jede Partition in konstanter Zeit durchgeführt werden.

kk=n/.2

kÖ(ϵ- -2Logn)n

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.