Schlechtes Blockungsergebnis? Vielleicht kann ich helfen.

Hier können alle Themen rund um die neuen zusätzlichen Blockungsprogramme diskutiert werden.

Moderator: wschrewe

Antworten
Benutzeravatar
Johannes Friebe
Beiträge: 5
Registriert: Mittwoch 10. Juni 2020, 16:21
Schulform: Gymnasium

Schlechtes Blockungsergebnis? Vielleicht kann ich helfen.

Beitrag von Johannes Friebe »

Liebe Kolleg*innen, mein Name ist Johannes Friebe, ich war 20 Jahre lang OSt-Koordinator am Mauritius-Gymnasium Büren und bin seit Februar in Pension. Aus Enttäuschung über schwache Blockungsergebnisse von Kurs42 hab‘ ich über die Jahre mein eigenes Blockungstool entwickelt und freue mich seitdem über die guten Resultate.

Jetzt stehe ich vor der Frage, ob das Programm vielleicht auch für andere Schulen von Interesse ist. Fall ja, müsste ich vor einer Veröffentlichung erst noch eine benutzerfreundlichere Oberfläche programmieren, ca. 1 Jahr Arbeit.

Ich würde deshalb gerne wissen, ob der Algorithmus evtl. auch für Ihre Blockung zu einer Verbesserung führen kann und möchte anbieten, wenn Sie das wünschen, zu Ihrem bisherigen Blockungsergebnis ein eigenes Resultat als Alternative zu erstellen, vielleicht mit weniger Umwahlen, dichterer Blockung oder gleichmäßigeren Parallelkursen. Ich will das aus Zeitgründen nicht für viele Schulen offerieren, aber wenn sich vielleicht 3 oder 4 Kolleg*innen melden, die das jeweils zusammen mit mir probieren möchten, wäre das machbar und gut.

Bitte schreiben Sie mir bei Interesse an friebe@mauritius-gymnasium.de damit wir den Datenaustausch und die Vorgehensweise besprechen können. Meine Software benötigt als Input nur eine Lupo-Datei.lup oder den Lupo-Export schuelerleistungsdaten.dat im Schild-Schnittstellenformat. Außerdem müssten Sie mir Ihre Wünsche und Vorgaben mittteilen.

Bei der aus Datenschutzgründen notwendigen Anonymisierung Ihrer Schülernamen will ich gern helfen.

Herzliche Grüße, Johannes Friebe
Zuletzt geändert von Johannes Friebe am Mittwoch 10. Juni 2020, 20:56, insgesamt 1-mal geändert.
Benutzeravatar
Pfotenhauer
Beiträge: 3081
Registriert: Dienstag 25. September 2018, 12:53
Wohnort: Wuppertal
Schulform: Realschule
Motto: Wer schnell hilft, hilft doppelt!
Kontaktdaten:

Re: Schlechtes Blockungsergebnis? Vielleicht kann ich helfen.

Beitrag von Pfotenhauer »

Hallo Herr Friebe.

Vielen Dank für Ihr Angebot an die Schulen. Wir wissen diese Art von Zusammenarbeit hier sehr zu schätzen.

Haben Sie das Kurs42_To_2CNF von Herrn Bartsch auch schon mal ausprobiert.
Ein ähnlicher Algorithmus kommt auch in Kurs42. In der Beta-Version von Herrn Schrewe kann man den m.W. schon aktivieren.
Mit freundlichen Grüßen
Frank Pfotenhauer
---
Fachberater für die Schulverwaltungssoftware des MSB
Referat 135

E-Mail: frank.pfotenhauer@msb.nrw.de
B. Bartsch
Fachberater*in
Beiträge: 321
Registriert: Dienstag 4. Dezember 2018, 14:14
Schulform: Gymnasium

Re: Schlechtes Blockungsergebnis? Vielleicht kann ich helfen.

Beitrag von B. Bartsch »

Ein ähnlicher Algorithmus kommt auch in Kurs42. In der Beta-Version von Herrn Schrewe kann man den m.W. schon aktivieren.
Da muss ich kurz korrigieren ;-) ... mit dem CNF-Algorithmus hat der nichts zu tun. Nichtsdestotrotz ist der Algorithmus ziemlich gut. :geek:
B. Bartsch
Volker_Dirr
Beiträge: 94
Registriert: Sonntag 2. Dezember 2018, 19:55
Schulform: Realschule

Re: Schlechtes Blockungsergebnis? Vielleicht kann ich helfen.

Beitrag von Volker_Dirr »

20 Jahre Erfahrung und etwas Zeit und eigenes Programm? Klasse!
Evtl. haben Sie mal Lust einen kleinen Benchmark zu machen?
Ihr Programm vs. Kurs42 vs. Kurs42_To_2CNF vs. StElTo ( vs. Untis; falls sie darauf zugriff haben)

Ich möchte mich auch gerne noch einmal dafür aussprechen, dass wir mal eine (offizielle) Testdatenbank mit verschiedenen Beispielen anlegen.
Ich habe zwar ein paar reale Beispiele erhalten, habe mich aber nicht getraut die zu veröffentlichen, da mir nicht 100% klar ist ob ich das machen darf.

Aber wenn wir (insbesondere auch ein paar Extrembeispiele) an Datensätzen hätten, dann könnten wir (die Programmierer) davon viel lernen und bestimmt noch stärker verbessern. Offensichtlich sind wir dann ja auch schon zu viert hier.

Meine Anfrage an Beispieldateien besteht noch. Irgendwie traut sich ja keiner zu testen.
B. Bartsch
Fachberater*in
Beiträge: 321
Registriert: Dienstag 4. Dezember 2018, 14:14
Schulform: Gymnasium

Re: Schlechtes Blockungsergebnis? Vielleicht kann ich helfen.

Beitrag von B. Bartsch »

Ich wäre dabei, kann aber selbst die Tests nicht machen, da ich kein Windows System besitze und die Emulation z.B. von StElTo bei mir nicht klappte.

Zudem ist es schwer die Programme zu vergleichen, denn die Programme können nicht unbedingt den gleichen Regelsatz abbilden. Beispiele
  • Kurs IF-GK1 soll max. 7 SuS haben, aber der IF-GK2 und IF-GK3 soll mit in die Kursdifferenzberechnung einbezogen werden.
  • Das eine Programm hat die Metrik "max. SuS Abweichung vom Mittelwert der Kurs-Art", das andere Programm die Metrik "Differenz vom größten Kurs zum kleinsten Kurs".
  • Das eine Programm kann nur Single-Threading das andere Multi-Threading.
  • Das eine schafft ein gutes Ergebnis in 10 Sekunden, das andere ein wenig besseres, benötigt aber 20 Stunden.
  • Das eine Programm findet eine Lösung von 3 Nichtwahlen, das andere auch eine Lösung von 3 Nichtwahlen, aber vorher konnte man genau definieren pro Schüler, welche Nichtwahlen überhaupt akzeptabel sind und somit keine Laufbahn gefährden.
Ich hätte einen anderen Vorschlag.

Jemand öffnet einen neuen Thread und lädt die Kurs42-Export-Textdateien einer anonymen Blockung hoch und schreibt alle Bedingungen, die für die Blockung gelten sollen, hinzu.

Und dann beginnt ein Wettbewerb.

Jeder versucht mit seinem Programm (es müssen nicht die Programmierer sein, natürlich darf jede/r jedes Programm testen) die "beste Lösung" zu finden. Sobald man eine gute (nicht unbedingt bessere) Lösung findet, lädt man als "Beweis" die Textdateien hoch und schreibt einige Informationen dazu (Zeitdauer, Nichtwähler, Kursdifferenz, Prozessorkerne).

Natürlich ist das kein fairer Vergleich, da die PCs unterschiedlich stark sind. Aber es macht bestimmt Spaß! ;-)
B. Bartsch
Volker_Dirr
Beiträge: 94
Registriert: Sonntag 2. Dezember 2018, 19:55
Schulform: Realschule

Re: Schlechtes Blockungsergebnis? Vielleicht kann ich helfen.

Beitrag von Volker_Dirr »

Ja, die Programme sind leicht unterschiedlich.

Unterschiede könnten wir in einer Tabelle festhalten.

Ein Testdurchlauf muss natürlich mit allen Programmen auf EINEM Rechner laufen. Welchen Rechner man nutzt, muss man angeben. Und gerne von verschiedenen Leuten auf verschiedenen Architekturen testen - aber immer alle Programme.

Logischerweise sollte man versuchen gleich "fair" einstellen. Das funktioniert natürlich nicht 100%, ist aber - denke ich - in den vielen Fällen nicht schlimm.
Zumindest dann nicht, wenn das Programm mit den Nachteilen gewinnt. Bzw. Wenn das Programm mit den Nachteilen extrem deutlich verliert.
"Verliert" das benachteiligte Programm nur knapp, dann ist natürlich die Ursache nicht 100% geklärt. Das kann man dann aber herausfinden, indem man mit den Grenzen etwas spielt.
Bei Dingen wie Kursdifferenzen und ähnlichem dürfte sich das z.B. auch leicht vermeiden lassen indem man sie möglichst vermeidet (also als Maximum einfach 0 bzw. 1 vorgibt - dann gibt es zumindest zwischen unseren Programmen keinen Unterschied.).
Bei Multiprozessor ist das so etwas schwieriger. Hier würde ich vorschlagen, dass Multiprozessorprogramme 2 mal den Test durchlaufen sollten. Einmal im Multiprozessorbetrieb, da dies wohl das entscheidende für den Anwender sein wird; und einmal im Single-Core-Betrieb; das ist für den normalen Anwender i.d.R. uninteressant, aber wir als Programmierer können dann besser abschätzen an welchen Stellen es gut oder schlecht läuft.

Es ist ja auch nicht "Ein" Durchlauf. wir wissen ja alle selbst wie unterschiedliche lange es schon mal dauert. Daher müssten wir die Datei natürlich mindestens 50 mal lösen. Minimum, Maximum und Durchschnitt angeben - evtl. noch die Streuung.

Ich würde auch 2 Arten von Testdateien vorschlagen:
Einmal reale Testdateien, weil das für den Anwender das Ausschlaggebende ist.
Aber auch künstliche Testdateien, weil wir so Extremsituation herstellen können und gezielt eine besondere Funktion / Einschränkung testen können.

Mich wundert etwas, dass sie das Programm nicht unter Linux zum Laufen bekommen haben. Mit welcher Wine-Version haben sie getestet?
Ich könnte es auch unter Linux kompilieren und zur Verfügung stellen. Möchte ich aber eher nicht, weil dort mein gcc Kompiler wesentlich neuer ist und das Programm dort schneller läuft als unter Windows. Das würde die Ergebnisse verfälschen; hier im Forum dürften die meisten Nutzer Windows nutzen.
B. Bartsch
Fachberater*in
Beiträge: 321
Registriert: Dienstag 4. Dezember 2018, 14:14
Schulform: Gymnasium

Re: Schlechtes Blockungsergebnis? Vielleicht kann ich helfen.

Beitrag von B. Bartsch »

Ein Testdurchlauf muss natürlich mit allen Programmen auf EINEM Rechner laufen. Welchen Rechner man nutzt, muss man angeben. Und gerne von verschiedenen Leuten auf verschiedenen Architekturen testen - aber immer alle Programme.
So sehr ich das nachvollziehen kann, denke ich, dass es nicht praktikabel ist. Niemand wird sich die Zeit nehmen alle 4 Programme zu testen. Man ist fit in einem Programm, ggf. zwei, aber die Einarbeitung dauert zu lange.

Zudem finde ich persönlich den Aspekt "Zeit" gar nicht so wichtig. Mir geht es primär um das Resultat innerhalb von 1 - 24 h. Somit muss man m.m.N. auch gar nicht auf der selben Architektur testen, wenn die Computer sich um den Faktor 1-10 unterscheiden, finde ich das nicht so schlimm.

Auch 50 - 100 Werte zu mitteln geht bei meinem Algorithmus gar nicht, da eine einzige schwere Blockung selbst mehrere Stunden dauert.

Oder anders ausgedrückt. Auf lange Sicht würde ich sehr gerne den Vergleich auf einem PC sehen. Aber kurzfristig würde ich den Wettbewerb auf einer Blockung basierend favorisieren.

Man kann die Performance des eigenen Programms bezogen auf die konkrete Blockung auch relativ gut beschreiben.

Das Hauptproblem ist aber, dass jemand uns eine schwierige Blockung zur Verfügung stellen müsste. Am besten eine bei der 0 Umwahlen/Nichtwahlen nicht möglich ist. Ich hatte auch mal eine Blockung erhalten (welche ich aber bereits gelöscht habe), bei der konnte man (beweisbar) nicht unter 7 Nichtwahlen/Umwahlen kommen, da die Schule auf keinen Fall eine 13 Schiene aufmachen wollte.
B. Bartsch
B. Bartsch
Fachberater*in
Beiträge: 321
Registriert: Dienstag 4. Dezember 2018, 14:14
Schulform: Gymnasium

Re: Schlechtes Blockungsergebnis? Vielleicht kann ich helfen.

Beitrag von B. Bartsch »

Ich werde heute Abend ein paar anonyme Blockungen (+Bedingungen) in einem neuen Thread hochladen.
B. Bartsch
Volker_Dirr
Beiträge: 94
Registriert: Sonntag 2. Dezember 2018, 19:55
Schulform: Realschule

Re: Schlechtes Blockungsergebnis? Vielleicht kann ich helfen.

Beitrag von Volker_Dirr »

Klasse. (Ich kann nämlich alte Beispiele z.T. nicht mehr mit Kurs42_To_2CNF öffnen, weil mittlerweile mehr Dateien benötigt werden als in früheren Versionen. Optimal wäre es, wenn die Dateien auch reichen, damit man es auch in Kurs42 öffnen kann.)
Bis zu den Sommerferien habe ich leider noch sehr viel zu tun, sodass ich nicht dazu kommen werde ausführlich zu testen.
Aber dann mache ich das mal in Ruhe.

Ich werde auch in den Ferien mal ein paar synthetische Tests erstellen, da wir damit dann gezielter einzelne Funktionen prüfen können um festzustellen an welchen Stellen es genau hakt. Bei realen Beispielen ist dies i.d.R. nicht zu erkennen, da dort zu viele verschiedene mögliche Ursachen vorhanden sind.

Schön wäre es natürlich, wenn in Kurs42_To_2CNF auch eine Option wie "Berechne X Pläne" (oder Rechen X stunden so viele Pläne wie du kannst. Oder finde so viele Lösungen, bis der Benutzer abbricht) zur Verfügung stehen würde, dann könnte man die Benchmarks schön automatisch durchführen und wesentlich leichter vergleichen kann. Wenn wir nämlich nur extrem schwere Beispiele nehmen und die nur einmal durchlaufen lassen, dann weiß man nie ob es Zufall war oder nicht, da selbst der langsamste Algorithmus, wenn man ihn nur mit genügend verschiedenen Startwerten ausprobiert, einmal so schwerer Daten auch innerhalb von wenigen Sekunden lösen kann. Die schweren Lösungen ja Spannweiten zwischen 0 Sekunden und vielen Jahren.
Benutzeravatar
Johannes Friebe
Beiträge: 5
Registriert: Mittwoch 10. Juni 2020, 16:21
Schulform: Gymnasium

Re: Schlechtes Blockungsergebnis? Vielleicht kann ich helfen.

Beitrag von Johannes Friebe »

Ich freue mich riesig, lieber Herr Bartsch und lieber Herr Dirr, dass mein Angebot bei Ihnen so viele gute Ideen ausgelöst hat. Danke, Herr Bartsch, für Ihre mitternächtliche, ausführliche Antwort auf meine Mail. Ich hab' sie noch heute morgen vor dem ersten Kaffee gelesen und werde Ihnen ausführlich antworten.
Den heutigen Fronleichnamstag will ich einmal ohne Rechner verbringen, melde mich aber Freitag oder Samstag mit Dateien und Vorschlägen. Ich freue mich sehr auf einen spannenden Austausch mit Ihnen.
Herzlichen Gruß,
Johannes Friebe
Antworten

Zurück zu „Externe Blockungsprogramme“