Main Menu

Pseudo activities

Started by aliponte, February 23, 2010, 10:27:39 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

aliponte

Ich habe im Unterforum "Suggestions" in meinem Beitrag "Pseudo activities" eine Idee vorgelegt, die ich der ganzen FET-Benutzerschaft vorstellen wollte, notwendigerweise auf englisch. Um aber Details dazu auszuführen, reicht meine englische Sprachfertigkeit nicht aus. Darum die Fortsetzung hier auf deutsch.

Das Programm, mit dem ich schon viele Jahre arbeite, stellt dem Anwender wesentlich weniger Einschränkungstypen zur Verfügung als FET. Dafür kann man aber Pseudounterrichte auf vielfältige Weise einsetzen. Ihre Hauptanwendung ist darin zu sehen, dass sie als zeitliche Sperre für wirkliche Aktivitäten eingesetzt werden können.

Beispiel: Einem Lehrer soll an den Tagen, an denen er Nachmittagsunterricht gibt, eine Mittagspause garantiert sein. Der Lehrer soll maximal zweimal Nachmittagsunterricht haben. Die Mittagspause kann in der 5. 6. oder 7. Stunde sein (entsprechend der Öffnungszeit der Schulmensa). Der Nachmittagsunterricht hat den Zeitrahmen von der 7. bis zur 11.Stunde.

Dazu richte ich 5 Pseudoaktivitäten (PA) ein mit der Einschränkung "Min days between activities = 1" (in FET-Bezeichnungsweise), also ist an jedem Tag eine PA. Drei von diesen PA dauern 5 Stunden und haben die Startzeit 7. Stunde. Diese verhindern, dass der Lehrer (echten) Nachmittagsunterricht bekommt. Die beiden anderen haben die Dauer 1 Stunde und sind auf die Startzeit 5./6./7. Stunde eingeschränkt. Sie sind also die Mittagspausen. Das Programm hat somit die Möglichkeit, frei zu wählen, wann der Lehrer am besten den Nachmittagsunterricht gibt.

Anderes Beispiel:
Ein Lehrerehepaar, A und B, hat kleine Kinder. Einer von beiden soll zur Mittagszeit frei haben, damit er die Kinder vom Kindergarten/von der Grundschule abholen kann. Die Beschreibung beschränkt sich auf den Montag.
Sowohl A als auch B bekommt eine Pseudoaktivität, die montags ausschließlich in der 6. oder in der 13. Stunde (nach Ende des Nachmittagsunterrichts d.h. in einer "Abstellposition") sein kann. Die Pseudoaktivitäten bekommen die Einschränkung, nicht zeitgleich zu sein. Wenn also die PA von Lehrer A in der Abstellposition ist, dann muss die PA von B in der 6. Stunde sein und verhindert, dass B einen Unterricht halten muss. Da immer eine PA in der 13. und die andere in der 6. Stunde ist, hat mindestens einer der beiden Eheleute mittags frei.

Volker Dirr

#1
Ok. Die Beispiele hören sich ganz gut an.

Im Moment sind sie nicht 100% umsetztbar, da sie die Pseudoaktivitäten in der Tat zu viele "falsche" Hohlstunden produzieren können. Durch folgende Maßnahmen können sie die Anzahl an "falschen" Hohlstunden jedoch reduzieren:

Bei ihr erstes Beispiel richten Sie (wie schon vorgeschlagen) eine 5 teiligen Pseudoaktivität ein, allerdings immer nur mit der Stundenzahl 1. Denn Nachmittagunterrich halten sie sich nicht mit einer 5 stündigen Dauer der Aktivität frei, sondern durch limitieren der auf maximal 3 maliges arbeiten in den Nachmittagstuden. (vgl. http://lalescu.ro/liviu/fet/forum/index.php?topic=918.msg5330#msg5330 )

Bei dem zweiten Beispiel legen Sie eine Aktivität mit der Kennzeichnung "6" an. Die Kennzeichnung 6 darf nur in der sechsten Stunde liegen. Die Aktivität wird in 5 Teile geteilt mit min n Tage = 1 und 100%. Setzen Sie Lehrer A hinein.
Jetzt hat A natürlich immer in der sechsten frei.
Gehen sie dann auf "ändern von Teilaktivitäten" und ändern sie 1 oder 2 oder 3 oder ... dieser Teilaktivitäten. Nehmen sie A heraus und setzen sie B hinein. Wie oft sie A bzw. B einsetzten müssen sie natürlich entscheiden. Dazu sollten sie mal schauen wie sinnvoll das ist (je nach ihren Daten) und/oder was von den Eltern gewüscht ist. (Evtl. einfach im ersten Halhjahr A 3 mal und B 2 mal. Im nächsten Halbjahr umgekehrt.)


Wir müsste mal ausprobieren um wieviel das Programm langsamer wird, wenn jede Aktivität eine Eigenschaft "als Stunde zu zählen" hat (schließlich müsste ein paar Millionen mal geprüft werden, ob die Stunden zu zählen sind oder nicht.).

aliponte

@Volker Dirr
Ich danke Ihnen, wenn Sie einmal schauen könnten, ob die Programmausführung unter der Neuerung leiden würde. Vielleicht ist die Verlangsamung gar nicht so gravierend.

Ich könnte noch weitere Beispiele aus meinem stundenplanerischen Aufgabenfeld liefern, die aber komplizierter zu beschreiben wären als die o.g. beiden. Der Einsatz von Pseudoaktivitäten ist wirklich ein mächtiges Instrument, dessen Möglichkeiten sich der Stundenplaner allerdings erst schrittweise erschließen muss. Ich finde, dass es gerade FET gut anstünde, seine universelle Einsetzbarkeit als Stärke auszubauen. M.E. ist FET ein Programm, das sich besonders an kreative Stundenplaner wendet, die nicht nach "quick & dirty" -Methoden suchen, um einen Plan zu erstellen. Diese Leute würden sicher schnell das Feature einzusetzen und zu schätzen wissen.

Volker Dirr

#3
Kurzfristig werde ich nicht dazu kommen mir das anzuschauen. Auf meiner Prioritätenliste stehen erst andere Dinge, da ich selbst diese Funktion nicht benötige (ich sehe aber natürlich den guten Sinn in dieser Option).
Die Änderungen sind durchaus kritisch und bedürfen vielen Test. Selbst wenn Liviu im optimalen Fall die Änderungen an 2 Tagen programmieren könnte, müssten wir anschließend die Auswirkungen auf die Geschwindigkeit auf unterschiedliche Beispieldaten untersuchen. Solche Testreihen sind unbedingt nötig. Auch bei "schweren" Beispielen. Im günstigen Fall tippe ich daher auf 2 Wochen Arbeitszeit. Wenn man dann noch unerwartetet Fehler suchen und verbessern muss locker das doppelte. Daher ist diese Neuerung erstmal nur im TODO gelandet.

Wie wäre es bei ihrem Beispiel 1, wenn sie eine Einschränkung vom Typ "max. x Stunden in einem bestimmten Zeitintervall" haben? Dann könnten Sie vielleicht sagen: Jeder Leherer hat max. 2 Stunden zwischen der 5. und 7. Stunde. So wie ich das sehe würde diese Einschränkung Problem 1 lösen. Diese Einschränkung würde andere Datensätze weniger verlangsamen.

aliponte

#4
Ihre Idee klingt sehr interessant. Wo finde ich die Einschränkung "max n Stunden in einem täglichen Intervall"? In Version 5.12.3 finde ich sie weder unter Daten > Zeiteinschränkungen > Lehrer noch unter Daten > Zeiteinschränkungen > Aktivitäten. Oder ist das ein Vorschlag Ihrerseits, FET um einen neuen Einschränkungstyp zu erweitern?

"Meine" Stundenplananforderungen sollen nicht das Maß der Weiterentwicklung von FET sein. Doch wenn ich von diesen Anforderungen ausgehe, so würde mir eine Lösung, wie Sie sie mit "max n Stunden in einem täglichen Intervall" vorschlagen nur ansatzweise helfen, weil unsere Schulmensa nicht jeden Tag die selben Öffnungszeiten hat. (Freitags geschlossen, Montags nur in der 7, Stunde) Das habe ich oben der Einfachheit halber nicht erwähnt. Aber das ist es gerade: In solch komplizierten Situationen sind Einschränkungen nicht so flexibel handhabbar wie Pseudoaktivitäten.

Volker Dirr

Diese Einschränkung gibt es noch nicht. Es ist ein Vorschlag von mir.

Das diese Lösung nicht so felxible ist ist mir klar. Aber es dürfte nicht ganz so kritsch in der Implementierung sein (da es u.A. sich nicht so stark (negative) auf andere Datensätze auswirken dürfte)).

Das bei ihnen Freitags die Mesa geschlossen ist, wäre überhaupt kein Problem, wenn die Schüler nur 6 Stunden haben. Wenn die Schüler auch in der 7. Stunde Schule haben dürfen, dann wäre es in der Tat eine unnötige/zusätzlich Einschränkung.

Montags in der 7. Stunde sieht es Ähnlich aus. Wenn alle Schüler damit einfach Montags in der 7. Stunde keinen Unterricht haben, dann ist das kein Problem. Einfach Montags in der 7. Stunde die Pause (Break) für alle Schüler/Lehrer fest vorgeben. Wenn natürlich z.B. die Unterstufenschüler in der 7. Stunde noch Unterricht haben dürfen, dann wäre mein Vorschlag unnötigerweise zu stark einschränkend.

Das nicht zählen der Stunden ist ja sinnvoll und wir werden es hoffentlich auch irgendwann ausprobieren, aber meine TODO Liste ist recht lang und auf meiner Liste steht es recht weit unten.