-
-
Erfahrener Benutzer
Roboter-Spezialist
versteh ich das richtig:
du hast n punkte (von denen du die positionen kennst)
und möchtest die in m gruppen aufteilen (deren mittelpunkt du finden willst),
so das die punkte einer gruppe möglichst dicht zusammen sind
und in jeder gruppe möglichst gleich viele punkte landen
das problem ist zunächst mal nicht eindeutig lösbar:
nimm an, 4 punkte seien an den ecken eines quadrates plaziert und du willst 2 gruppen bilden. dann gibt es schon mal 2 völlig gleichwertige lösungen.
ich würde damit beginnen die aufgabe weiter zu präzisieren.
z.b. die eigenschaften einer gruppe (mittelpunkt, radius) mathematisch festzulegen
also:
mittelpunkt: x_m=(sum_i=1..k x_i )/k ; y_m=(sum_i=1..k y_i )/k
beim radius wirds schon schwieriger: man könnte den mittleren abstand zum mittelpunkt bestimmen. oder aber den maximalen abstand vom mittelpunkt. allgemein must du also ein maß festlegen, mit dem du den radius der gruppe misst. je nach dem wie du dieses maß wählst bekommst du unter umständen unterschiedliche ergebnisse bei gleichen punktkoordinaten. auserdem wird der berechnungsaufwand unterschiedlich sein.
wenn deine punkte immer sehr stark gruppiert sind (also enge häufchen von punkten mit großen abständen zwischen den gruppen) wirds einfach, aber wenn die gruppen nicht so eindeutig plaziert sind (abstand der gruppen etwa gleich groß wie radius der gruppen) wirds schwieriger und das ergebnis weniger eindeutig.
ok - jetzt mal konkret. ich würde den radius als maximum von maximalem x-abstand und maximalem y-abstand zum zentrum definieren. das läßt sich am einfachsten berechnen und funktioniert gut, wenn die gruppen gut zu unterscheiden sind:
radius=max( max_k=1..kmax(abs(x_k-x_m)) , max_k=1..kmax(abs(y_k-y_m)) )
entscheidend für das weitere vorgehen ist nun die mutmaßliche verteilung der punkte:
also sind die punkte üblicherweise schon gruppiert (d.h. würde ich sie offensichtlich als gruppen erkennen, wenn ich sie sehe) oder sind die punkte eher gleichmäßig verteilt und die gruppen können/sollen insofern willkürlich gebildet werden?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen