Przejdź do głównej zawartości
kontakt@dobryplan.edu.pl

Strategie i optymalizacja planu

W tym rozdziale zobaczymy różne podejścia do optymalizowania planu lekcji. Oprócz tego pamiętajmy, że zawsze najlepszą strategią do optymalizacji planu jest luzowanie ograniczeń. Za każdym razem musimy znaleźć złoty środek pomiędzy higieną planu uczniów, preferencjom nauczycieli oraz możliwościom układania zastępstw.

Przesuwanie pojedynczych lekcji lub blokowanie oddziałów

Dział zatytułowany „Przesuwanie pojedynczych lekcji lub blokowanie oddziałów”

W Dobrym Planie nie możemy przesunąć pojedynczej lekcji ani zablokować lekcji jednego oddziału lub nauczyciela. Po wprowadzeniu nowych ograniczeń mamy dwie możliwości:

  • wygenerować nowy plan i go zoptymalizować od nowa
  • wygenerować plan podobny, który zminimalizuje liczbę zmienionych karteczek w stosunku do planu bazowego.

Zachęcamy, by najpierw skupić się tylko na Kozłach ofiarnych. Jeśli przez dłuższy czas nie uda się nam pomóc nauczycielom z największą liczbą okienek, to wtedy uruchamiamy “Plan oddziałów” razem z “Kozły ofiarne” — wtedy algorytm będzie próbował pomóc nauczycielom, potencjalnie nieznacznie zmieniając plan uczniów.

W następnej kolejności możemy uruchamiać opcje: “Jedna lekcja”, “Trudne późno” i “BHP nauczycieli”, w zależności co jest najbardziej potrzebne w danym momencie.

Rekomendujemy, by optymalizować sale na samym końcu. W każdym kroku teraz możemy uruchamiać Dobry Plan do momentu, gdy coś poprawia. Gdy już przestanie lub zmiany będą dużo rzadsze, to możemy go zatrzymać.

Wtedy uruchamialibyśmy optymalizację planu w następujących konfiguracjach:

  1. “Kozły ofiarne” (Jeśli kozły ofiarne nie zeszły do odpowiedniego poziomu, to możemy uruchomić: “Kozły ofiarne” + “Plan oddziałów”)
  2. “Kozły ofiarne” + “Jedna lekcja”
  3. “Kozły ofiarne” + “Jedna lekcja” + “BHP nauczycieli”
  4. “Kozły ofiarne” + “Jedna lekcja” + “BHP nauczycieli” + “Trudne późno”
  5. “Kozły ofiarne” + “Jedna lekcja” + “BHP nauczycieli” + “Trudne późno” + “Biegający nauczyciele”

Każdy z tych kroków uruchamiamy tak długo, aż wybrane statystyki dojdą do odpowiedniego poziomu lub plan przestanie się dalej optymalizować. Przykładowo, statystyki dobrze zoptymalizowanego planu lekcji mogłyby wyglądać następująco:

img.png

Widać, że w ostatnim kroku optymalizowaliśmy jednocześnie: “Kozły ofiarne”, “Jedna lekcja”, “Trudne późno” i “Biegający nauczyciele”.

Zdarza się, że po uruchomieniu etapu “Kozły ofiarne” na dłuższy czas, ciągle ich liczba okienek nie chce zejść do satysfakcjonującego poziomu. Wtedy możemy próbować:

  1. uruchomić “Plan oddziałów” + “Kozły ofiarne”
  2. uruchomić “Plan oddziałów” + “Okienka”
  3. uruchomić “Plan oddziałów” + “Kozły ofiarne” + “BHP nauczycieli”
  4. uruchomić “Plan oddziałów” + “Kozły ofiarne” + “Jedna lekcja”
  5. (po zapisaniu aktualnego planu): “Plan oddziałów” + “BHP nauczycieli”, a następnie “Plan oddziałów” + “Kozły ofiarne”

Każdy z tych kroków uruchamiamy do momentu, aż statystyki przestaną się zmieniać. Nie ma jednej reguły, jaka kolejność będzie najlepsza: zachęcamy, by zacząć od góry i co jakiś czas cofać się do wcześniejszych kroków. Warto w trakcie zapisywać najlepsze plany (z najmniejszą liczbą okienek u kozłów), by móc je później porównać i wybrać najlepszy.

W niektórych szkołach może się zdarzyć, że optymalizując okienka dostaniemy zbyt małą liczbę okienek. Taka sytuacja jest niedopuszczalna, gdyż wtedy bardzo trudno będzie robić zastępstwa na wypadek nieobecności nauczycieli.

By uniknąć takiej sytuacji, możemy skorzystać z opcji Ławka rezerwowych, którą włączamy wchodząc w Ustawienia szkoły i Opcje zaawansowane. Wtedy możemy ustalić, jaka byłaby idealna liczba nauczycieli dostępnych na zastępstwo na każdej z godzin lekcyjnych.

img.png

Na powyższym obrazku widzimy wartość 1 pod lekcją nr 2. Oznacza to, że chcielibyśmy mieć jednego nauczyciela dostępnego na zastępstwo na drugiej godzinie lekcyjnej. Podobnie na godzinach 3-7 mamy podane konkretne wartości, a na godzinach 1. i 8. żadnej, tzn. że może wtedy nie być żadnego nauczyciela na zastępstwo. Na skrajnych godzinach, tzn. 0. i 9. na tym przykładzie, nie podajemy żadnej wartości, gdyż wtedy żaden nauczyciel nie ma okienka.

Możemy również zrobić więcej ławek rezerwowych, na przykład gdybyśmy chcieli rozróżnić nauczycieli uczących w klasach 1-3 podstawówki od nauczycieli klas starszych. By to uzyskać, klikamy w przycisk: “Dodaj ławkę dla wybranych nauczycieli”, wybieramy nauczycieli i ustalamy liczbę nauczycieli dostępnych na każdej godzinie.

img.png

Pamiętajmy, że:

  1. Ławkę rezerwowych włączamy jedynie w szkołach z prostym planem lekcji. W skomplikowanych szkołach ta funkcjonalność jedynie spowolni algorytm, a niekoniecznie cokolwiek pomoże.
  2. Podane wartości są sugestią dla programu, nie każdy ułożony plan będzie spełniał warunki wszystkich ławek.
  3. Optymalizacja ławek rezerwowych następuje w trakcie kroku “Okienka” oraz “Kozły ofiarne”.
  4. Każdy z nauczycieli jest w dokładnie jednej ławce rezerwowych.
  5. Okienka nauczycieli elastycznych nigdy nie wliczają się do ławki rezerwowych.
  6. Jeśli dany nauczyciel mógłby przyjść przed swoimi zajęciami lub zostać dłużej by poprowadzić zastępstwo na danej lekcji, to nie wliczamy go do osób “dostępnych na tej godzinie”.

Nie można ustawić konkretnemu nauczycielowi dokładnej liczby okienek. Zamiast tego korzystamy z ławki rezerwowych.

Po pełnym skonfigurowaniu szkoły, tzn. po wprowadzeniu wszystkich oddziałów, nauczycieli i przydziałów generujemy plan. Jeśli po zakończeniu optymalizacji planu oddziałów i nauczycieli nie jesteśmy usatysfakcjonowani ich rozkładem godzinowym, to możemy ręcznie wprowadzić dodatkowe ograniczenia.

Mamy do dyspozycji:

  • maksymalną i minimalną liczbę godzin w ciągu dnia dla jednego oddziału
  • maksymalną liczbę godzin w szkole jednego dnia oraz maksymalną liczbę godzin lekcyjnych pod rząd dla jednego nauczyciela

Pamiętajmy, że ustawienie tych limitów bardzo ogranicza układanie planu, szczególnie gdy skorzystamy z ustawień dla wszystkich oddziałów. Korzystajmy z tego dopiero na samym końcu konfigurowania szkoły, stopniowo zacieśniając limity. Po każdej zmianie sugerujemy króciutkie generowanie nowego planu, by sprawdzić, czy dalej plan jest matematycznie możliwy do ułożenia. Kolejne kroki prawdopodobnie będą trwały coraz dłużej, gdyż z każdym nowym ograniczeniem ułożenie planu będzie robiło się coraz trudniejsze.

W opcjach zaawansowanych oddziału możemy ustalić minimalną oraz maksymalną liczbę godzin lekcyjnych każdego dnia dla każdego ucznia w danym oddziale. Jeśli chcemy wprowadzić dane ograniczenie dla wszystkich oddziałów w naszej szkole jednocześnie, to możemy to zrobić w ustawieniach szkoły, wybierając przycisk “Ustawienia” w panelu po lewej stronie.

Wskazówka: Zanim zaczniesz wprowadzać to ograniczenie, pamiętaj o uruchomieniu na dłuższą chwilę kroku “Plan oddziałów” w trakcie generowania planu. Wtedy program sam postara się jak najlepiej zoptymalizować plan oddziałów.

Pamiętajmy, że do maksymalnej liczby godzin dla uczniów nie wliczają się przedmioty extra odbywające się na skrajach.

Podobne ograniczenia możemy zadać nauczycielom: możemy wskazać maksymalną liczbę godzin pod rząd (bez okienka) oraz maksymalną liczbę godzin, jaką może spędzić w szkole jednego dnia (uwzględniając okienka). Te ograniczenia również znacząco utrudniają układanie planu i optymalizowanie okienek, dlatego sugerujemy by używać ich jedynie w ostateczności, np. gdy wynika ono z powodów zdrowotnych prowadzącego.

Wskazówka: Zanim zaczniesz wprowadzać to ograniczenie, pamiętaj o uruchomieniu na dłuższą chwilę kroku “BHP nauczycieli” w trakcie generowania planu. Wtedy program sam postara się jak najlepiej zoptymalizować BHP nauczycieli.