Deputat_To_CNF
Verfasst: Mittwoch 26. Dezember 2018, 22:29
Sehr geehrte Forenmitglieder,
anbei ein Programm zur 'optimalen' Verteilung von Lehrkräften auf Kurse. Das Programm heißt 'Deputat_To_CNF'. Sie benötigen den SAT-Solver CryptoMiniSat als externes Programm. Es folgt eine kurze Auflistung, was das Programm kann.
##### HINWEIS: Am Ende des Chats befindet sich immer die aktuellste Version. #####
FÄCHER
Können definiert/gelöscht werden. Fächer besitzen ein Kürzel und eine Beschreibung (D, Deutsch). Zur Zeit verwendet das Programm nur das Kürzel. Fächer können mit anderen zusammengefügt (merge) werden (ggf. nötig bei Importen). Ob man beispielsweise Deutsch, D-Förder, D-Lernzeit als drei Fächer oder als ein Fach modelliert hat Vor- und Nachteile. Persönlich würde ich nur das Fach Deutsch modellieren.
LEHRKRÄFTE
Können definiert/gelöscht werden. Jede Lehrkraft besitzt ein Kürzel und einen Namen (derzeit unwichtig). Eine Mindeststundenzahl (wird noch ignoriert), eine Maximalstundenzahl und eine etc-Stundenzahl (zb. Entlastung, nur wichtig zur Soll-Stunden-Darstellung). Zusätzlich kann die Anzahl an Klassenlehrerfunktionen begrenzt werden. Zudem kann forciert werden, dass die Klassenlehrerfunktion eine Mindestanzahl an Stunden in der jeweiligen Klasse zur Folge hat. Lehrkräfte können zu jedem Fach eine Maximalstundenanzahl definieren. Werte über 0 bedeuten, dass die Lehrkraft das Fach potentiell unterrichten darf. Lehrkräfte können zu jeder Klasse/Klassenlehrerfunktion eine Präferenz abgeben. Und Lehrkräfte können zu jedem Kurs eine Präferenz angeben.
KLASSEN (--> KURSE)
Klassen haben ein Kürzel und benötigen ggf. einen Klassenlehrer. Pro Klasse kann man Kurse definieren. Klassen können geklont werden. Kurse werden dabei dupliziert, außer der Kurs ist in einer Schiene, dann nimmt die Klasse an dem bereits existierenden Kurs teil.
KURSE
Ein Kurs hat ein Fach (unveränderlich) und einen Anzeigename. So kann man Deutsch, Deutsch-Förder, Deutsch-Lernzeit als 'D' deklarieren, die Kurse aber dennoch unterscheiden. Ein Kurs hat 1-n Klassen (Eingabe durch Komma getrennt). Der Kurs kann in einer Schiene sein --> Eine Lehrkraft kann nicht zwei Kurse innerhalb der selben Schiene unterrichten. Ein Kurs hat eine Mindest- und eine Maximalstundenanzahl. Das Minimum ist wichtig, wenn Kurse gekürzt werden dürfen. Ein Kurs kann in einer Stundengruppe sein. Kurse in der selben Stundengruppe haben stets die gleiche Stundenanzahl. So kann man z.B. erreichen, dass wenn zb. Religion in einer Schiene gekürzt wird, alle Religionskurse gekürzt werden. Ein Kurs kann in einer Lehrkraftgruppe sein. So kann man z.B. erreichen, dass wenn eine Lehrkraft Deutsch in einer Klasse unterrichtet, sie auch Deutsch-Lernzeit bekommen soll.
### BERECHNUNG ###
Die Berechnung hat drei Parameter, nach denen man optimieren kann. 'Summe aller Stundenkürzungen minimieren' und 'Summe unerfüllter Lehrer-Kurs-Präferenzen minimieren' und 'Summe unerfüllter Lehrer-Klassenlehrer-Präferenzen minimieren'.
Im oberen Teil sieht man hinter Lehrkräfte z.b. (900-950) und hinter Klassen (930-970). Die Zahlen zeigen das Stunden-Angebot der Lehrkräfte und die Stunden-Nachfrage der Kurse an. Nur bei Überschneidung der Intervalle macht die Berechnung mit dem Programm Sinn.
Herzliche Grüße
Benjamin Bartsch
PS: Fragen, Anregungen und Wünsche gerne hier posten.
anbei ein Programm zur 'optimalen' Verteilung von Lehrkräften auf Kurse. Das Programm heißt 'Deputat_To_CNF'. Sie benötigen den SAT-Solver CryptoMiniSat als externes Programm. Es folgt eine kurze Auflistung, was das Programm kann.
##### HINWEIS: Am Ende des Chats befindet sich immer die aktuellste Version. #####
FÄCHER
Können definiert/gelöscht werden. Fächer besitzen ein Kürzel und eine Beschreibung (D, Deutsch). Zur Zeit verwendet das Programm nur das Kürzel. Fächer können mit anderen zusammengefügt (merge) werden (ggf. nötig bei Importen). Ob man beispielsweise Deutsch, D-Förder, D-Lernzeit als drei Fächer oder als ein Fach modelliert hat Vor- und Nachteile. Persönlich würde ich nur das Fach Deutsch modellieren.
LEHRKRÄFTE
Können definiert/gelöscht werden. Jede Lehrkraft besitzt ein Kürzel und einen Namen (derzeit unwichtig). Eine Mindeststundenzahl (wird noch ignoriert), eine Maximalstundenzahl und eine etc-Stundenzahl (zb. Entlastung, nur wichtig zur Soll-Stunden-Darstellung). Zusätzlich kann die Anzahl an Klassenlehrerfunktionen begrenzt werden. Zudem kann forciert werden, dass die Klassenlehrerfunktion eine Mindestanzahl an Stunden in der jeweiligen Klasse zur Folge hat. Lehrkräfte können zu jedem Fach eine Maximalstundenanzahl definieren. Werte über 0 bedeuten, dass die Lehrkraft das Fach potentiell unterrichten darf. Lehrkräfte können zu jeder Klasse/Klassenlehrerfunktion eine Präferenz abgeben. Und Lehrkräfte können zu jedem Kurs eine Präferenz angeben.
KLASSEN (--> KURSE)
Klassen haben ein Kürzel und benötigen ggf. einen Klassenlehrer. Pro Klasse kann man Kurse definieren. Klassen können geklont werden. Kurse werden dabei dupliziert, außer der Kurs ist in einer Schiene, dann nimmt die Klasse an dem bereits existierenden Kurs teil.
KURSE
Ein Kurs hat ein Fach (unveränderlich) und einen Anzeigename. So kann man Deutsch, Deutsch-Förder, Deutsch-Lernzeit als 'D' deklarieren, die Kurse aber dennoch unterscheiden. Ein Kurs hat 1-n Klassen (Eingabe durch Komma getrennt). Der Kurs kann in einer Schiene sein --> Eine Lehrkraft kann nicht zwei Kurse innerhalb der selben Schiene unterrichten. Ein Kurs hat eine Mindest- und eine Maximalstundenanzahl. Das Minimum ist wichtig, wenn Kurse gekürzt werden dürfen. Ein Kurs kann in einer Stundengruppe sein. Kurse in der selben Stundengruppe haben stets die gleiche Stundenanzahl. So kann man z.B. erreichen, dass wenn zb. Religion in einer Schiene gekürzt wird, alle Religionskurse gekürzt werden. Ein Kurs kann in einer Lehrkraftgruppe sein. So kann man z.B. erreichen, dass wenn eine Lehrkraft Deutsch in einer Klasse unterrichtet, sie auch Deutsch-Lernzeit bekommen soll.
### BERECHNUNG ###
Die Berechnung hat drei Parameter, nach denen man optimieren kann. 'Summe aller Stundenkürzungen minimieren' und 'Summe unerfüllter Lehrer-Kurs-Präferenzen minimieren' und 'Summe unerfüllter Lehrer-Klassenlehrer-Präferenzen minimieren'.
Im oberen Teil sieht man hinter Lehrkräfte z.b. (900-950) und hinter Klassen (930-970). Die Zahlen zeigen das Stunden-Angebot der Lehrkräfte und die Stunden-Nachfrage der Kurse an. Nur bei Überschneidung der Intervalle macht die Berechnung mit dem Programm Sinn.
Herzliche Grüße
Benjamin Bartsch
PS: Fragen, Anregungen und Wünsche gerne hier posten.