Auswertung von Listen < Sonstiges < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Hallo!
Ich arbeite an einer Schule und es steht bald eine Projektwahl an. Diese auszuwerten kommt nun auf mich zu. Leider merke ich bereits jetzt, dass ich noch keine mathematische Lösung habe. Ich mutmaße jetzt auch nur, dass dieses Problem in den Bereich Lineare Algebra gehört - kann mich auch irren und es ist eher stochastischer Natur (da es um Verteilung aber auch um Vektoren/Matrizen geht).
Folgendes steht an:
Ungefähr 1000 SchülerInnen wählen fünf Projektwünsche aus einem Katalog (dort sind etwa 50 verschiedene Projekte angeboten, jedes bekommt eine Nummer). Die SchülerInnen wählen nach Präferenz, also es wird unterschieden zwischen Erst-, Zweit-, Dritt-, Viert- und Fünftwunsch.
Die Wahlen erfasse ich digital in einer CSV-Datei, diese enthält dann solche Zeilen
10HR,Gampen,Luisa,11,07,18,25,22
07Ga,Ahrens,Mustafa,03,18,12,22,30
06f,Toeppse,Elea,26,14,01,28,41
(nach dem Komma beginnt eine neue Spalte)
.... (insgesamt 1000 Zeilen a fünf Zahlenwerte)
(die Namen sind ausgedacht)
Ich weiß nun leider nicht, wie ich per schematischem Verfahren (ungleich Rumprobieren...) die folgenden Eigenschaften optimal erfülle:
1. möglichst viele Projekte sollen stattfinden können = genügend Teilnehmer zugeordnet bekommen.
2. häufiger den Erstwunsch als den Zweitwunsch als ... Fünftwunsch erfülle.
Freue mich sehr über Hilfe!
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 10:52 Sa 27.04.2024 | Autor: | Infinit |
Hallo Riesenradfahrrad,
über Dein Problem habe ich mir in den letzten Tagen mal ein paar Gedanken gemacht, und ich glaube nicht, dass dies auf analytische Weise mit Hilfe der Linearen Algebra gelöst werden kann. Ich weiß von Bekannten, die Lehrer sind, dass die Ergebnisse solcher Projektwünsche auch in der Stundenplanplanung berücksichtigt werden müssen, und dies ist häufig Handarbeit.
Ich zähle hier einfach mal ein paar Gedanken auf, die mir bei Deiner Beschreibung in den Kopf gekommen sind, ohne eine Priorisierung oder so etwas. Es sind Randbedingungen, die aber nicht linear zu lösen sind.
1. Ich gehe mal davon aus (und hoffe, dass dies stimmt), dass für jedes angebotene Projekt auch eine Betreuungskraft vorhanden ist.
2. Jeder Schüler hat 5 Projekte zur Auswahl und zur Priorisierung, er/sie wird aber immer nur einem Projekt zugeordnet (das geht aus Deiner Beschreibung nicht so klar hervor).
3. Ich gehe davon aus, dass alle Projekte über den gleichen Zeitraum laufen.
4. Ein Projekt wird nur dann stattfinden, wenn eine gewisse Mindestanzahl von Interessenten sich dafür eingetragen haben.
5. Ein Projekt wird bei einer bestimmten Anzahl von Interessenten ausgebucht sein.
6. Die einfachste Art der Zuodnung ist es, von Prio 1 ab absteigend die Projekte aufzufüllen. Dann stellt sich aber die Frage, wie man dies in eine geordnete Liste bringt, alphabetisch? Dann kann es passieren, dass die Schüler im vorderen Teil des Alphabets (alle) ihre Wünsche erfüllt bekommen, der Rest muss mit dem Rest leben (ist das gewünscht?, kennen die Schüler die Wünsche ihrer Mitschüler?)
7. Wurde erfolgreich (auf welche Art auch immer) eine Zuordnung erstellt, dann müssen den Projekten Betreuer zugeordnet werden. Wenn es genau einen Betreuer pro Projekt gibt, ist dies keine Schwierigkeit.
8. Die Einbindung in den Stundenplan ist wohl nur von Hand zu machen. Welcher Betreuer steht wann zur Verfügung und welcher Raum wird benötigt? Wie sehen die Randbedingungen dazu aus (maximale Arbeitszeit der Betreuer, maximale Stundenanzahl jedes Schülers, Uhrzeitenplanung)
Das sind so die Sachen, die mir in den Kopf gekommen sind (und darin umherschwirren). Ich lasse mal Deine Frage auf "Halb-beantwortet" in der Hoffnung, dass sich noch andere zu diesem Thema melden, die mehr Erfahrung auf diesem Gebiet haben als ich.
Viele Grüße,
Infinit
|
|
|
|
|
Danke @infinit für Deine Antwort!
Zu Deinen Punkten:
zu 1. und 8. : die Projekte finden alle parallel in der Prokjektwoche statt - sorry, hätte ich schreiben sollen. Der Betreuerschlüssel ist für jedes Projekt gegeben und jeder potenzielle Betreuer mit Stundenkontigent erfasst.
zu 2.: Ja, jede/r Teilnehmer/in ist genau einem Projekt zugeordnet.
zu 3.: Jepp.
zu 4.: Ja, ansonsten wird es mit dem Stundenkontigent der Betreuer zu eng. Ich habe mir daher gedacht, zuerst die Anzahl aller (fünf) Anwahlen auszuwerten, wenn bereits dort zu wenige Anwählen sind, so wird das Projekt gestrichen.
zu 5.: Ja bzw. muss zum Betreuerschlüssel passen. Wird das Kontingenz doppelt ausgeschöpft, so könnte man bei bestimmten Projekten die Betreuerzahl verdoppeln.
zu 6.: Dieses Vorgehen macht Sinn! Und überall dort, wo zu viele Anwahlen sind, wird zunächst geschaut, ob die Zweitwahl erfüllbar ist (also nach der Erstwahl noch freie Plätze hat).
zu 7.: Es gibt Initiatoren - zB der Leiter der Musik-AG initiiert das BigBand-Projekt. Wenn mehr Anwahlen sind, als per Betreuungsschlüssel vorgesehen sind, so gibt es Lehrkräfte (die selbst keine Initiatoren sind), die unterstützend dazu kommen, sodass mehr Anwahlen angenommen werden. Somit ist die Basiszuordnung gegeben, nur die unterstützenden Lehrkräfte müssen verteilt werden.
Wenn ich Deine und meine Ideen zusammenpacke, so kann folgendes systematisch erfolgen:
1. Die Auswertung der Gesamtanwahl für jedes Projekt (Excel zählt für jede Projektnummer deren Häufigkeit in der Tabelle).
2. Nach eventuellen Projektstreichungen werden für alle verbliebenen Projekte die Erstwahlen ausgezählt.
Nun das händische:
nach 2. muss diese Anzahl mit zulässigen Teilnehmer abgeglichen werden. Falls ein Überhang besteht, müssen die Zweitwahlen dieser Erstwähler untersucht werden.
Danach müssen die Zweitwähler zugeordnet werden. Falls nun erneut Überhänge entstehen, müssen entweder weitere Erstwähler umverteilt werden (dazu tendiere ich) oder bei dem bisher erfüllten Zweitwunsch sogar auf den Drittwunsch ausgewichen werden (dazu tendiere ich nicht, weil die unfair gegenüber denjenigen wäre, die sogar ihren Erstwunsch erfüllt bekommen haben). Dh ich priorisiere Zweitwunsch- vor Drittwuscherfüllung gegenüber Erstwunsch vor Zweitwunscherfüllung.
Danach bleiben hoffentlich nicht so viele Teilnehmer übrig. Ärgerlich sind die Fälle, die nach fortsetzen obigem Vorgehens angekommen beim Fünfwunsch immer noch keinem Projekt zugeordnet werden konnten. Denn diese können bereits fertige Zuordnungen kompromittieren. Er bisschen lindern lässt sich dies, indem man den Betreuungsschlüssel nicht total starr, sondern zB mit plus/minus 3 Teilnehmer umsetzt.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:50 Do 02.05.2024 | Autor: | Infinit |
Halo Riesenradfahrrad,
ich würde mal sagen, da ist ein umsetzbarer Plan entstanden, den auch Excel bewältigen kann. Das Problem des "Long Tail" bei solchen Verteilungen ist eigentlich immer ungelöst, was macht man Interessenten, die nirgendwo unterzubekommen sind? Es gibt hierfür kein optimales Verfahren, das hängt einfach zu sehr von (meist ganz unterschiedlichen) Randbedingungen ab.
Ansonsten würde ich sagen, starte mal!
Viel Erfolg dabei wünscht
Infinit
|
|
|
|
|
Nachtrag:
Es ist soweit, ich stecke mitten in der Auswertung der Wahllisten.
Und ich habe tatsächlich ein Verfahren entwickeln können. Und das geht so:
Die 855 SchülerInnen konnten je 5 verschiedene aus insgesamt 44 Projekten wählen. Sie geben also jeder ein 5-Tupel a la (34,05,10,17,38) ab.
Die Tupel werden werden mit Tabellenkalkulation ausgezählt (ich nenne das jetzt einfach mal Excel, obwohl es von Libre Office ist).
Das heißt jedes Projekt hat ein zwei Tupel, seine Nummer und seine Wähleranzahl, wir haben also eine Liste a la
(01,27)
(02,33)
(03,112)
...
(44,52)
An dieser Stelle unterscheiden wir noch nicht zwischen Erst- und nachrangiger Wahl.
Ablauf: Sollen alle Projekt stattfinden (Bestandsschutz), so beginnt man mit dem Projekt geringster Anwahlzahl. Diesem werden ALLE seine Wähler gegeben, auch wenn darunter viele Fünftwünsche sind. In Excel kann man mitteils einer zweiten verifizierten 5-Tupel-Wahlliste, dafür sorgen (mit Wenn-Funktionen), dass die verbleibenden Werte eines Wählers zu Null werden.
Beispiel Erik hat (34,05,10,17,38) gewählt. Projekt 17 braucht ihn als Wähler, dann dürfen seine anderen 5-Tupelwerte nicht in Anwahlzahlen der anderen Projekt eingehen. Dies realsiert man wie folgt:
Erik,34,05,10,17,38,[leere Zell],34,05,10,17,38
die wird zu
Erik,34,05,10,17,38,17,0,0,0,17,0
sobald man in die Zwischen-Zelle 17 einfügt, wenn sich hinter dem kopierten 5-Tupel das hier verbürgt. Die Spalten seien von links nach rechts einfach mal A bis L und alle Einträge befinden sich in Zeile 1. Dann gilt hier
Erik,34,05,10,17,38,17,=Wenn(B1=$G1;1;0)*$G1,=Wenn(C1=$G1;1;0)*$G1,=Wenn(D1=$G1;1;0)*$G1,=Wenn(E1=$G1;1;0)*$G1,=Wenn(C1=$F1;1;0)*$G1
Die Projekte erhalten nun noch einen Zuteilungszähler, der zählt für jede Projektnummer, wie oft diese in Spalt G vorkommt.
(01,27,19)
(02,33,17)
(03,112,22)
...
(44,52,24)
Der zweite Zähler geht durch die obigen Nullsetzung runter. Man muss sich diesen erneut anschauen, wenn man nun dem nächstgrößeren Projekt Wähler zuteilt.
Irgendwann kommt man zu einem Projekt, das mehr als genug Wähler hat, wenn man eine Teilnehmerzahl von zB maximal 25 haben möchte. Dort kann man bei der Verwendung obiger 5-Tupeln zB den fünften Wert herauslassen.
Die Setzung des Zuteilungswertes in der Spalt G kann man ebenfalls automatisieren. Man sortiert zuvor die Tabelle nach Spalte G. Dann werden alle Leerzellen lückenlos hintereinander sortiert. Will man nun diejenigen Wähler/5-Tupel einem Projekt, zB dem Projektnummer 10, zuordnen, so kann man wieder mit einer Wenn-Funktion zB alle ersten Einträge der Tupel auf anwenden. Excel durchsucht, alle 5-Tupel (links) darauf, ob der erste Eintrag eine 10 ist. Ist dies der Fall, so schreibt Excel in der Spalte G in der Zeilennummer des betreffenden Tupel den Wert 10. Im 5-Tupel rechts, das aus Wenn-Funktionen besteht, bilden sich wieder die Nullen.
Danach muss die Tabelle erneut nach G sortiert werden. Nun kann die Wenn-Funktion in Spalte G auf die zweite Spalte der 5-Tupel losgelassen werden, danach muss wieder sortiert usw. bis man genügend Wähler für das Projekt hat. Dort bricht man ab. Und dann kommt das Projekt mit der nächstgrößeren Anwählerzahl.
Fazit: Früher wurde diese Projektwahl von HAND ausgezählt. Das dauerte 5 h mit 10 Lehrkräften.
Mein Verfahren dauert etwa 2 Stunden mit 2 Lehrkräften (genau kann es nicht sagen, ich habe das Auswertungsverfahren noch bei der Anwendung immer weiterentwickelt. Am Anfang haben wir noch ineffizient gearbeitet, die Möglichkeit der automatischen Ausfüllung von G ist mir erst nach 2 h eingefallen, das habe ich rausgerechnet).
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:00 Mi 12.06.2024 | Autor: | Infinit |
Hallo Riesenradfahrrad,
ich bin zwar kein Tabellenkalkulationsexperte, aber die Logik in Deinem Vorgehen kann ich durchaus nachvollziehen. Wenn dies außerdem so viel Zeit spart wie Du geschrieben hast, so ist das doch eine prima Lösung.
Viele Grüße und viel Erfolg damit weiterhin,
Infinit
|
|
|
|