Laufzeit des optimalen gierigen

16

Wir erhalten eine Menge zweidimensionaler Punkte und eine ganze Zahl . Wir müssen eine Sammlung von Kreisen finden, die alle Punkte so einschließen, dass der Radius des größten Kreises so klein wie möglich ist. Mit anderen Worten, wir müssen eine Menge von Mittelpunkten finden, so dass die Kostenfunktion wird minimiert. Hier bezeichnet den euklidischen Abstand zwischen einem Eingabepunkt und einem Mittelpunkt . Jeder Punkt ordnet sich dem nächstgelegenen Cluster-Zentrum zu und gruppiert die Eckpunkte ink k n C = { c 1 , c 2 , , c k } k Kosten ( C ) = max i min j D ( p i , c j ) D p i c j k|P|=nkknC={c1,c2,,ck}kcost(C)=maximinjD(pi,cj)Dpicjk verschiedene Cluster.

Das Problem ist als (diskretes) Clustering-Problem bekannt und es ist -hart. Es kann mit einer Reduktion von der gezeigt wird -komplette dominierende Menge Problem , dass , wenn es existiert ein -Approximationsalgorithmus für das Problem mit dann .NP NP ρ ρ < 2 P = NPkNPNPρρ<2P=NP

Der optimale Approximationsalgorithmus ist sehr einfach und intuitiv. Man wählt zunächst willkürlich einen Punkt und setzt ihn in die Menge der Clusterzentren. Dann wählt man das nächste Clusterzentrum so aus, dass es so weit wie möglich von allen anderen Clusterzentren entfernt ist. Also während , so finden wir immer wieder einen Punkt für die der Abstand maximiert wird , und fügen Sie . Einmal wir sind fertigp P C | C | < K j P D ( j , C ) C | C | = k2pPC|C|<kjPD(j,C)C|C|=k

Es ist nicht schwer zu erkennen, dass der optimale Greedy-Algorithmus in wird. Dies wirft die Frage auf: Können wir Zeit erreichen? Wie viel besser können wir tun?o ( n k )O(nk)o(nk)

Juho
quelle

Antworten:

7

Das Problem kann in der Tat geometrisch so gesehen werden, dass wir die Punkte mit Kugeln abdecken möchten , wobei der Radius der größten Kugel minimiert wird.kVk

Θ ( n log k )O(nk) ist zwar recht einfach zu erreichen, aber man kann es besser machen. Feder und Greene, Optimale Algorithmen für die ungefähre Clusterbildung, 1988, erreichen mit geschickteren Datenstrukturen eine Laufzeit von und zeigen weiter, dass dies im algebraischen Entscheidungsbaummodell optimal ist.Θ(nlogk)

Juho
quelle
1

Meine Frage: Gibt es eine Möglichkeit, die Strategie der gierigen Kommissionierung in Zeit auszuführen ?o(|V|2)

Es scheint mir, dass Sie es beschrieben haben. Falls ich in Ihrer Beschreibung zu weit gelesen habe, habe ich Folgendes verstanden. Haben Sie eine assoziative Datenstruktur, die jedes Element von mit der Summe der Entfernung zu Elementen von verknüpft . Diese Datenstruktur kann zu einem Preis mit dem Abstand zu initialisiert werden, und diese Initialisierung kann das nächste Element als Nebeneffekt erzeugen, ohne die Komplexität zu erhöhen. Sie kann nach der Auswahl eines neuen Elements zu einem Preis von aktualisiert werden , wodurch wiederum das nächste Element als Nebeneffekt erzeugt wird. Wiederholen, um zu erhalten . Die resultierende Komplexität ist .VO ( | V | ) p O ( | V | ) S O ( k | V | )SO(|V|)pO(|V|)SO(k|V|)

Ein Programmierer
quelle
1
Beachten Sie jedoch die Schranke für : Im schlimmsten Fall kann sie so groß sein wie. Ich vermute, dass es Datenstrukturen gibt, die noch bessere Grenzen erreichen, aber ich weiß es wirklich nicht. | V |k|V|
Juho
Ups, und nicht in deiner Frage. (Beachten Sie, dass Sie in Ihrer Frage zu , dies sollte also eine Verbesserung sein). Was ich vorschlage, nutzt nicht die Tatsache, dass Sie in einem euklidischen Raum arbeiten. Ich denke, Sie müssen es nutzen, um bessere Ergebnisse zu erzielen, aber ich verstehe derzeit nicht, wie. O k 3oOk3
AProgrammer