Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Algorithmus um zusammenhänge Gruppen zu erkennen
Christoph K.
myCSharp.de - Member

Avatar #avatar-3248.png


Dabei seit:
Beiträge: 800
Herkunft: Köln

Themenstarter:

Algorithmus um zusammenhänge Gruppen zu erkennen

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.320

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers