Hallo,
ich programmiere ein Lehrveranstaltungs-Anmeldesystem für eine Universität. Der Student hat die Möglichkeit 3 LV aus einem Bereich auszuwählen, von denen er dann zu einer zugeteilt wird.
Dabei speichere ich in einer Datenbank ua. folgende Felder:
Praeferenz1 = Die erste Wahl des Studenten
Praeferenz2 = Die zweite Wahl
Praeferenz3 = Die dritte Wahl
Zugewiesen = Die LV, die gleich nach der Anmeldung aufgrund verschiedener Kriterien zugeteilt wird. (entweder 1, 2 oder 3)
Wegen des Designs des übrigen Anmeldemechanismus kann es vorkommen, ... Das Problem ist schwer in Worte zu fassen. Ein Beispiel:
Beiden Studenten wurde also die zweite Wahl zugeteilt. Würde man nur die Zuweisung von ihnen tauschen wären sie aber beide glücklicher, weil sie nun beide ihre 1. Wahl besuchen könnten, ohne dass Platzprobleme bei einer LV entstehen würden.
Ich möchte nun, nachdem die Anmeldungsfrist abgeschlossen ist, mit einem PHP-Skript über alle Anmeldedaten drüberfahren, alle solche Konstellationen herausfiltern und die Zuweisungen solange tauschen bis ein Optimum erreicht ist, also es nicht mehr möglich ist durch das Tauschen von Zuweisungen einem Studenten in eine höhere Präferenz zuzuweisen.
Dabei muss natürlich 1. mit 2., 2. mit 3. und 1. mit 3. Präferenz geprüft werden.
Ja, mein Problem: Ich habe keinen Schimmer für einen (schnellen) Lösungsansatz.
Bin für jede Idee dankbar!
ich programmiere ein Lehrveranstaltungs-Anmeldesystem für eine Universität. Der Student hat die Möglichkeit 3 LV aus einem Bereich auszuwählen, von denen er dann zu einer zugeteilt wird.
Dabei speichere ich in einer Datenbank ua. folgende Felder:
Praeferenz1 = Die erste Wahl des Studenten
Praeferenz2 = Die zweite Wahl
Praeferenz3 = Die dritte Wahl
Zugewiesen = Die LV, die gleich nach der Anmeldung aufgrund verschiedener Kriterien zugeteilt wird. (entweder 1, 2 oder 3)
Wegen des Designs des übrigen Anmeldemechanismus kann es vorkommen, ... Das Problem ist schwer in Worte zu fassen. Ein Beispiel:
PHP-Code:
Student Praeferenz1 Praeferenz2 Praeferenz3 Zugewiesen
Max 15 20 22 20
Moritz 20 15 19 15
Ich möchte nun, nachdem die Anmeldungsfrist abgeschlossen ist, mit einem PHP-Skript über alle Anmeldedaten drüberfahren, alle solche Konstellationen herausfiltern und die Zuweisungen solange tauschen bis ein Optimum erreicht ist, also es nicht mehr möglich ist durch das Tauschen von Zuweisungen einem Studenten in eine höhere Präferenz zuzuweisen.
Dabei muss natürlich 1. mit 2., 2. mit 3. und 1. mit 3. Präferenz geprüft werden.
Ja, mein Problem: Ich habe keinen Schimmer für einen (schnellen) Lösungsansatz.
Bin für jede Idee dankbar!
Kommentar