Laden...

Algorithmus um zusammenhänge Gruppen zu erkennen

Erstellt von Christoph K. vor 2 Jahren Letzter Beitrag vor 2 Jahren 212 Views
Christoph K. Themenstarter:in
821 Beiträge seit 2009
vor 2 Jahren
Algorithmus um zusammenhänge Gruppen zu erkennen

Hallo zusammen,

ich bin auf der Suche nach einem Algorithmus, der folgendes Problem löst.

Es sind 1000 Personen gegeben, die sich alle untereinander mehr oder weniger mögen. Wie doll sich zwei Personen mögen wird mit einer Gleitkommazahl zwischen 0 und 1 ausgedrückt. Bei 0.1 mögen sie sich eher weniger, bei 0.9 mögen sie sich schon sehr doll. Die Werte die diese Zahl annehmen kann sind aber fließend.

Es sollen nun n Gruppen gebildet werden, mit Personen die sich möglichst dolle mögen, somit n Gruppen, die möglichst gut zusammenpassen. Hierbei kann es natürlich auch sein, dass eine Person nicht mit der Person zusammen in einer Gruppe ist, die sie am meisten mag, jedoch im Ganzen besser in diese Gruppe passt. Die Eingabe der Gruppen n, die gebildet werden soll, soll dabei variabel sein.

Kann mir einer sagen, wie ich dieses Problem in einem Algorithmus löse?

4.939 Beiträge seit 2008
vor 2 Jahren

Das scheint in etwa wie das in Algorithm to split people into groups with most diversity per group beschriebene Problem zu sein, d.h. du benötigst eine Gewichtungsfunktion (z.B. Summe [bzw. Durchschnitt] der "Lieb-Haben"-Werte je Gruppe).
Und dabei kann dann der Bergsteigeralgorithmus (hill climbing) helfen, um per zufälliges Austauschen von Personen sich dem Gesamtmaximum anzunähern (und dies wiederholt mit verschiedenen zufälligen Ausgangsgruppen).
Es kann aber auch sein, daß es einen noch einfacheren Algorithmus dafür gibt, z.B. das auch noch im Artikel erwähnte Simulated Annealing oder ein genetischer Algorithmus.