Hallo,
na dann legt nicht jeder Student seine Priorität 1 bis 3 sondern 1 bis 15 fest.
Wenn dem so ist, ist immer noch nicht klar, was das Optimum sein soll.
Mann kann ja mal davon ausgehen, dass das Optimum der Zustand ist, in dem jeder Student das Thema bekommt, das möglichst weit oben auf seiner Prioritätenliste steht.
Es gibt 15! (das soll die Fakultät von 15 sein) Möglichkeiten, die Themen den Studenten zuzuordnen.
Die kann man jetzt in einer Schreife durchlaufen. Innerhalb der Schleife wird dann geprüft, wie gut die aktuelle Möglichkeit ist.
Wie gut die Möglichkeit ist, kann man z. b. bestimmen, in dem man die Positionen der Möglichkeiten bei den Studenten aufsummiert. Ziel ist, diesen Wert zu minimieren.
Beispiel:
Student: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
akt. Zuor.: 08 13 11 06 15 04 02 14 05 09 03 07 10 12 01
Also Student 1 bekommt Thema 8, Student 2 Thema 13 usw.
Jetzt in der Prio-Liste von Studeten 1 nachsehen an welcher Positon sich Thema 8 befindent. Dann bei Student 2 nachsehen, an welcher Stelle sich Thema 13 gefindent. So für jeden Studenten vorgehen und die Postion aller Studenten summieren.
Im nächsten Schleifendurchlauf die nächste Mögliche Zuordnung prüfen. Ist die Summe der Positionen hier geringer als vorher, ist diese Lösung besser. Ist die Summe größer, die vorherige Lösung beibehalten.
Am Ende ist die beste Lösung gefunden.
Grüße
powerblue