Kurzfassung

Werbung
Sublineare Algorithmen, Testing of Clustering
Seminar über Algorithmen
FU-Berlin, SoSe 2007
Stefan Bochow
Clusteringprobleme sind im Allgemeinen NP-Vollständig für Zahlenräume der Dimension
d ≥ 2 (und einem variablem k). Das Problem beim Clustering ist zu entscheiden ob eine gegebene Menge X bestehend aus n Punkten in einem z.B. d-dimensionalen Euklidischen Raum in
k Teilmengen (Cluster) geteilt werden kann so das jeder Cluster maximal den Durchmesser b
bzw. Radius b hat. Der Durchmesser eines Clusters ist definiert als die maximale Distanz
zweier Punkte im Cluster (Bild 2) und der Radius sei der minimale Radius einer ddimensionalen Kugel die alle Punkte des Clusters einschließt (Bild 1). Existiert eine solche kfache Partition, so sagt man X ist (k,b) – clusterable in Hinblick auf den Durchmesser oder
den Radius b.
Im Folgenden, sollen nun ein paar Algorithmen vorgestellt werden die auf Basis eines Samples (Stichprobe) aus der Menge X von ℜd eine Aussage darüber treffen ob X (k,b) – clusterable ist oder ε − weit davon entfernt ist (k , (1 + β )b) - clusterable zu sein. ε − weit bedeutet
dass wir mehr als ε ⋅ X Punkte aus X verändern müssten damit X wieder (k , (1 + β )b) clusterable wäre. Die Algorithmen zum testen der Eigenschaften arbeiten in sub-linearer Zeit
in n = X oder aber unabhängig von n.
Zusammengefasst:
Eine Menge von Punkten X aus ℜd ist (k,b) - clusterable wenn eine Partitionierung der
Punkte aus X existiert, die alle Punkte in k Cluster aufteilt so das der Durchmesser (Radius)
der einzelnen Clusters maximal b wird.
r
x
Bild 1
Bild 2
dist ( x, y ) ist die Distanz zwischen zwei Punkten x,y.
Die L2 Metrik im Folgenden bezieht sich auf die Euklidische Distanz. Als Beispiel, seien x, y ∈ℜd , so das x = ( x1 ,..., xd ) und y = ( y1 ,..., yd ) , so das die Euklidische Distanz zwidef
schen x und y gleich dist ( x, y ) =
2
∑ i=1 (x i − yi ) ist.
d
2
Gegeben sei die Teilmenge S ⊆ X .
Dann ist d ( S ) der Durchmesser von S also der maximale Abstand zweier Punkte in S und
r ( S ) ist der minimale Radius der Kugel die alle Punkte aus S einschließt.
Sei P eine Partition aus X mit P = ( X 1 ,..., X k ) , so ist der Durchmesser von P definiert
als D( P) = max j d ( X j ) . Der Radius von P definiert sich als R( P) = max j r ( X j ) .
Für eine solche k-fache Partition P aus X gilt also:
1. Durchmesserkosten: Cost(P) = D(P).
2. Radiuskosten: Cost(P) = R(P).
Daher, eine Menge X ist (k,b)-clusterable im Zusammenhang mit einer der beiden Kostenbilanzierungen wenn eine k-fache Partition P = ( X 1 ,..., X k ) von X existiert so das Cost ( P) ≤ b
sind. Die Menge ist ε − weit davon entfernt (k , (1 + β )b) -clusterable für ein gegebenes
0 ≤ ε ≤ 1 und β ≥ 0 zu sein, wenn für jede Teilmenge Y ⊆ X (maximal (1 − ε ) X groß) und
für jede k-fache Partition Py = (Y 1 ,..., Y k ) von Y gilt das wir Cost ( PY ) > (1 + β )b haben.
Des Weiteren sagen wir ein Algorithmus ist ein Durchmesser-Clustering (Radius-Clustering)
Tester wenn der als Eingabe eine Menge X ⊂ ℜd ist und die Parameter k, b, ε und β nimmt.
Und der Algorithmus akzeptiert X wenn es (k,b)-clustrable ist in Bezug auf Durchmesser
(Radius) und verwirft X mit einer Wahrscheinlichkeit von 2 3 wenn es ε − weit von
(k , (1 + β )b) -clusterable zu sein scheint.
Für alle Sample setzen wir voraus dass sie gleichmäßig und unabhängig ausgewählt wurden,
also eine Gleichverteilung haben.
Algorithmus 1 (für jede Metrik, Durchmesser, k ≥ 1, β = 1 )
1. Sei rep1 ein beliebiger Punkt aus X (Repräsentant für den ersten Cluster)
2. i ← 1; find-new-rep ← TRUE
3. while i < k + 1 und find-new-rep = TRUE do
(a) wähle ein Sample der Größe ln(3k ) ε
(b) Wenn ein Punkt x in diesem Sample existiert dessen dist ( x, rep j ) > b für jedes j ≤ i , dann i ← i + 1 und repi = x .
(c) Else (alle Punkte im Sample sind maximal b vom rep j entfernt)
find-new-rep ← FALSE
4. Wenn i ≤ k so akzeptiere, ansonsten verwerfe.
Also haben wir maximal k Iterationen der while – Schleife in denen der Algorithmus maximal
k ⋅ ln(3k ) ε Distanzen berechnet. Daraus folgt die Laufzeit von O(k ² log k ε ) .
Algorithmus 1 läst sich auch auf Radius-Clustering anwenden wenn man beachtet dass ein
gewählter Punkt nur dann als neuer Repräsentant ausgewählt wird wenn er weiter als 2b von
jedem anderen Repräsentanten entfernt ist.
Theorem 1 Algorithmus 1 ist eine Durchmesser-Clustering Tester für β = 1 und beliebiger
Metrik.
Beweis: Wir halten zuerst fest das der Algorithmus erst dann verwirft wenn er k + 1 Punkte
gefunden hat deren Paarweiser Abstand größer als b ist. Folglich, wenn X (k,b)-clusterable ist,
so wird der Algorithmus niemals verwerfen. Also, sagen wir das von jetzt an gelte das X
ε − weit davon entfernt ist (k,2b)-clusterable zu sein und wir werden zeigen das der Algorithmus mit der Wahrscheinlichkeit von 2 3 verwirft. Wir zeigen dass in diesem Fall mit einer
Wahrscheinlichkeit von mindestens 2 3 in jeder Iteration ein neuer Repräsentant gefunden
wird, was dann wohl in k + 1 Repräsentanten enden wird. Betrachten wir eine Iteration. Wir
sagen dass der Punkt x ∈ X ein potenziell Repräsentativer in Bezug auf bisher gewählten
rep1 ,..., repi , wenn sein Abstand größer ist als b zu jedem dieser Repräsentanten.
Behaupten wir jetzt das so lange i ≤ k ist muss es mindestens ε n solcher potenziellen Repräsentanten geben. Gegenvermutung, es gibt maximal ε n solcher Punkte. Dann könnten wir diese Punkte aus X entfernen und für jeden anderen Punkt y ∈ X , einem Cluster j für den gilt
dist ( y, rep j ) ≤ b zuweisen. Nach der Dreiecksungleichung, ist der Durchmesser eines jeden
Ergebnis-Clusters maximal 2b, was unserer Annahme bezüglich X widerspricht. Wenn wir
gleichverteilt ln(3k ) ε Punkte aus X wählen, dann ist die Wahrscheinlichkeit dass wir keinen
potentiellen Repräsentanten erwischt haben kleiner als (1 − ε )ln(3k ) / ε < exp(−ε (ln(3k ) ε ) = 3k1 .
Die Wahrscheinlichkeit das dass in allen k Iterationen passiert ist maximal 1 3 .
Algorithmus 2 (Durchmesser, k=1, d ≥ 1, 0 < β ≤ 1 , L2 Metrik )
1. Wähle m = O
(
1
ε
)
⋅ d 3 2 log(1 β ) ( β2 ) Punkte aus X.
d
2. Wenn die Distanz zwischen zwei Punkten des Samples maximal b ist so akzeptiere,
ansonsten verwerfe.
Dieser Algorithmus kann sehr leicht in O(m²) erledigt werden. Wenn d ≤ 3 so ist auch
O(m log m) möglich nach [1].
Algorithmus 2b (Verallgemeinerung von Algorithmus 2) für k ≥ 1 :
1. Wähle m = Θ
(
k ² log k
ε
⋅d ⋅
( )
2
β
2d
) Punkte aus X.
2. Wenn es eine k-fache Partition P des Sample gibt für das gilt D( P ) ≤ b so akzeptiere,
ansonsten verwerfe.
Einbindung von Algorithmus 2b: (Annährend gutes Clustering )
1. Rufe Algorithmus 2b auf mit Sample m = O
(
d 5 / 2 ⋅k 3
ε
⋅
( )
2
β
d
log
( )) .
d ⋅k
ε ⋅β
2. Sei P eine k-fache Partition von Sample die durch Algorithmus 2b gefunden wurden
(wenn das der fall sein sollte).
(
3. Sehe dir die Sample an die in den letzten p (k ) = Θ k ⋅ d ⋅ ( 2 β )
d
) Phasen ausgewählt
wurden, wobei U j die Einheit aller vorherigen Sample aus j Phasen ist.
Uj =Θ
( ⋅ ( d ⋅ k ² ⋅ log
j
d ⋅k ⋅ j ⋅ p ( k )
ε
ε
) ) Sei P die Begrenzung von P zu U
j
j
. Wenn
P = (U 1 ,...,U k ) dann ist Pj = (U 1 ∩ U j ,..., U k ∩ U j ) .
4. Nehme ein zusätzliche Sample der Größe Θ ( log ( p (k ) ) ε ) und zähle die schlechten
Punkte in diesem zusätzlichen Sample in Hinsicht auf jede Partition Pj .(linearer Aufwand)
5. Wähle eine Begrenzung Pg das die kleinste Anzahl von schlechten Punkten in den
Samples enthält und nutze diese um eine Partition von X zu erzeugen. Wenn
Pg = (U 1g ,..., U gk ) ist so überprüfe dann für jedes x ∈ X ob ein Index i existiert so das
x ∈ I (U gi ) und die dist ( x, y ) ≤ (1 + β )b ist für jedes y ∈ I (U gi ) , so füge x dem Cluster i
hinzu.
Algorithmus 3 ( L2 Metrik, Radius, k ≥ 1, d ≥ 1, β = 0 )
1. Wähle ein Sample von m = Θ ( dε⋅k ⋅ log ( dε⋅k ) ) Punkten aus X.
2. Wenn es eine Partition P = (U 1 ,...,U k ) aus U gibt so das R( P ) ≤ b dann akzeptiere,
ansonsten verwerfe.
Finde k Kugeln mit dem minimalen Radius welche alle m Punkte aus dem Sample einschließen. (dieses Problem ist auch als Euklidian k-Center Problem bekannt) Dies kann in
O(m kd + 2 ) erledigt werden [2]. Wenn aber d relativ klein ist, so ist es möglich eine bessere
Laufzeit mit dem Algorithmus von Agrawal und Procopiuc [3] zu erreichen, mit der Laufzeit
von m
(
O f (d)⋅k1−1 d
) , wobei f (d ) von O(d 5/ 2 ) beschränkt wird.
Quellen:
[1] E.A. Ramos. Deterministic algorithms for 3-d diameter and some 2-d lower envelopes. In
16th Symp. on Computational Geometry, 2000. To appear.
[2] P.K. Agrawal and M. Sharir. Algorithms for geometric optimization. ACM Computing
Surveys, pages 413-458, 1998.
[3] P.K. Agrawal and C.M. Procopiuc. Exact and approximation algorithms for clustering. In
Proceedings of SODA, pages 658-667, 1998.
[4] N. Alon., S. Dar, M. Parnas, D. Ron, Testing of Clustering. 2000.
Herunterladen