Diagnozowanie nieudanego generowania

Generowanie „nie udaje się” wtedy, gdy algorytm generowania nie zdoła umieścić wszystkiego: zwraca najlepszy znaleziony częściowy plan lekcji, a lekcje, które musiał poświęcić, pozostają na pasku karteczek do umieszczenia (czerwony baner streszcza blokadę). Problem niemal zawsze polega na nadmiarze ograniczeń: zbyt wiele kursów w stosunku do otwartych przedziałów czasowych albo ograniczenia zbyt ciasne, by dały się złożyć. Lekarstwem jest rozluźnienie tego, co rozluźnić można — i o tym jest ta strona. Aby zrozumieć, jak algorytm generowania ustala priorytety i co poświęca, zob. Automatyczne generowanie; katalog konfliktów na już ułożonym planie lekcji opisuje Konflikty i diagnostyka.

Diagnostyka wskazuje trop, nie wydaje wyroku

Gdy lekcji nie da się umieścić, Omniscol wskazuje jednostkę, która sprawiła najwięcej problemów w kolejnych próbach — „ten nauczyciel nie ma dość przedziałów czasowych”, „ta klasa nie mieści się w swojej siatce godzin”. To heurystyka: wskazana jednostka jest tą, która najczęściej wraca w blokadach, a nie koniecznie jedyną przyczyną. Ograniczenia krzyżują się — rozluźnienie w innym miejscu może odblokować całość. Proszę więc traktować komunikat jako kierunek poszukiwań: prawdziwym lekarstwem jest zwykle raczej złagodzenie ogólnego nadmiaru ograniczeń (trochę więcej przedziałów czasowych, mniej rygorystyczna dostępność) niż upieranie się przy wskazanej jednostce.

Najczęstsze przyczyny

1. Zbyt restrykcyjna dostępność

Nauczyciel oznaczył jako niemożliwe tyle przedziałów czasowych, że nie zostaje ich dość na umieszczenie jego lekcji.

Diagnostyka: proszę przejrzeć ekran dostępności danego nauczyciela. Proszę policzyć wolne przedziały czasowe i porównać je z jego liczbą godzin.

Rozwiązania:

  • Złagodzenie dostępności w części przedziałów czasowych (zamiana czarnego na czerwony — niepożądany, ale nie niemożliwy),
  • Rozdzielenie kursów na nowo (przekazanie części innemu nauczycielowi),
  • Rozmowa z nauczycielem, jeśli dostępność jest negocjowalna.

2. Brak zgodnej sali

Przedmiot wymaga specjalizacji, dla której nie utworzono żadnej sali, albo wszystkie odpowiadające jej sale są zajęte w jedynych możliwych przedziałach czasowych.

Rozwiązania:

  • Utworzenie brakującej specjalizacji na odpowiedniej sali,
  • Złagodzenie ograniczenia specjalizacji,
  • Dodanie sali.

3. Niewystarczająca pojemność sali

Liczba uczniów w grupie lub klasie przekracza pojemność wszystkich sal kandydujących.

Rozwiązania:

  • Przypisanie większej sali,
  • Przypisanie wielu sal do jednego kursu (łączna pojemność jest ich sumą),
  • Podzielenie klasy lub grupy.

4. Wyrównanie strukturalnie niemożliwe

Liczba godzin wyrównanych grup jest różna, klasy nadrzędne mają niezgodne siatki godzin albo nauczyciel objęty wyrównaniem może być tylko w jednym miejscu.

Rozwiązania:

  • Ujednolicenie liczby godzin między wyrównanymi grupami,
  • Zniesienie wyrównania i utworzenie jednego kursu na klasę,
  • Sprawdzenie, czy lokalizacje wyrównanych klas mają wspólną siatkę godzin w docelowym przedziale czasowym.

5. Zbyt wiele lekcji w stosunku do siatki godzin

Gdy klasa albo nauczyciel ma wyraźnie więcej godzin niż otwartych przedziałów czasowych, uprzedza o tym ostrzeżenie (zakładka Generowanie, liczniki godzin wobec przedziałów czasowych). Przypadek przewrotny jest bardziej podstępny: z osobna żadne przekroczenie nie jest widoczne, ale nawarstwienie ograniczeń nauczycieli i klas — oraz ich krzyżowanie się — w końcu przestaje się mieścić.

Rozwiązania:

  • Zmniejszenie wprowadzonej liczby godzin,
  • Rozszerzenie siatki godzin (na przykład otwarcie popołudnia dotąd zamkniętego),
  • Złagodzenie kilku niedostępności — zwłaszcza w przedziałach czasowych, których wiele jednostek unika jednocześnie: ich nakładanie się nasyca siatkę godzin.

6. Zbyt liczne niekompatybilności

Nawarstwianie ograniczeń „nie X po Y” może utworzyć układ bez rozwiązania.

Rozwiązanie: zamiana części niekompatybilności na bardziej elastyczne wagi pedagogiczne.

7. Za mało sal (wąskie gardło)

Bardzo częste: nawet jeśli każda sala się nadaje, ich liczba nie wystarcza, by wchłonąć zapotrzebowanie w tym samym momencie. Lekcje nawarstwiają się na tych samych przedziałach czasowych, a brak sal staje się wąskim gardłem, które nie pozwala zmieścić całości.

Rozwiązania:

  • Dodanie sal (albo ich współdzielenie między klasami),
  • Rozłożenie zapotrzebowania przez rozszerzenie siatki godzin,
  • Złagodzenie ograniczeń, które skupiają kursy na niewielu przedziałach czasowych.

8. Wiele lokalizacji: przejazdy uszczuplają godziny

Gdy lokalizacji jest kilka, czasy przejazdu między nimi zmniejszają liczbę przedziałów czasowych naprawdę użytecznych dla nauczyciela (albo klasy): zmiana lokalizacji kosztuje czas, którego nie da się już przeznaczyć na umieszczenie lekcji. Rzeczywista dostępność zawęża się, a łamigłówka staje się trudniejsza.

Rozwiązania:

  • Skupienie kursów nauczyciela w jednej lokalizacji w ciągu dnia,
  • Sprawdzenie zadeklarowanych czasów przejazdu między lokalizacjami,
  • Ograniczenie wielokrotnych przejazdów między lokalizacjami w ciągu jednego dnia.

Lista kontrolna przed ponownym generowaniem

  • Czy wszystkie klasy mają przypisaną lokalizację?
  • Czy wszystkie klasy mają swoje przedmioty i swoich nauczycieli?
  • Czy wszystkie grupy używane w kursach mają teoretyczną liczbę uczniów albo możliwą do obsłużenia pojemność?
  • Czy dostępność wszystkich nauczycieli jest zatwierdzona?
  • Czy w zakładce Generowanie nie ma krytycznego (czerwonego) alertu?

Wbudowane narzędzia diagnostyczne

  • Zakładka Generowanie — zawczasu: statystyki (kursy i godziny na nauczyciela, na klasę, na lokalizację) oraz ostrzeżenia (godziny wobec przedziałów czasowych, alerty krytyczne do poprawienia przed uruchomieniem).
  • Lekcje nieumieszczone (karteczki) — po nieudanej próbie: wynik niekompletnego generowania. Przycisk umieszczania (pinezka) na każdej z nich pokazuje kolorowanymi przedziałami czasowymi, dlaczego żadne miejsce się nie nadaje.
  • Wykrywanie zapomnianych grup: grupy zdefiniowane, ale bez żadnego przypisanego kursu.

Instrukcja

Diagnozowanie nieudanego generowania

  1. Gdy generowanie się nie uda, Omniscol wyświetla czerwony baner, zachowuje widoczny częściowy plan lekcji, a lekcje, których nie zdołał umieścić, przenosi na pasek karteczek.

  2. Proszę przeczytać baner: wskazuje kierunek (heurystyka, zob. wyżej), a nie wyrok.

  3. Proszę wyjść od lekcji nieumieszczonych, a nie od „konfliktów”. Generowanie nigdy nie tworzy konfliktu: po prostu pomija to, co się nie mieści. Proszę wziąć lekcję z karteczek i kliknąć jej przycisk umieszczania (pinezka, Umieść w planie lekcji).

  4. Proszę odczytać kolorowane przedziały czasowe. Omniscol pokazuje wszystkie kandydujące przedziały czasowe; dla lekcji niemożliwej do umieszczenia wszystkie są zablokowane. Proszę szukać dlaczego, w kolejności trzech zwykłych blokad: zajęty albo niedostępny nauczyciel, zajęta klasa (lub grupa), albo brak sali wolnej i zgodnej. Powód wyświetla się po najechaniu na przedział czasowy.

  5. Proszę rozluźnić ograniczenie, które blokuje — zależnie od przypadku: złagodzić dostępność, dodać albo zwolnić salę, ujednolicić wyrównanie, rozszerzyć siatkę godzin (zob. przyczyny powyżej) — a potem uruchomić generowanie ponownie.

  6. Przed ponownym uruchomieniem proszę przejść przez listę kontrolną wyżej (przypisane lokalizacje, obecne przedmioty i nauczyciele, wypełniona liczba uczniów, zatwierdzona dostępność, brak alertu krytycznego w zakładce Generowanie).

Zobacz także