FAQ — Działanie algorytmu generowania
Najczęstsze pytania o działanie algorytmu generowania planów lekcji. Opis samego generowania — zob. Algorytm generowania; szczegóły operacyjne — zob. Automatyczne generowanie.
Na jakich rodzajach planów lekcji działa algorytm generowania?
Na planach lekcji tygodniowych, cyklicznych i kalendarzowych. W trybie kalendarzowym lekcje są umieszczane na rzeczywistych datach, a opcje generowania obejmują granice dat.
Jak działa algorytm generowania?
Omniscol uruchamia obliczenia w tle. Algorytm ocenia lekcje do umieszczenia, zadeklarowane ograniczenia i wybrane ustawienia generowania. Wynik zależy przede wszystkim od jakości danych: liczby godzin, nauczycieli, sal, grup, dostępności, niekompatybilności i ograniczeń między lokalizacjami.
Każde generowanie uruchamia dedykowane, zrównoleglone środowisko obliczeniowe. Szkoła nie musi zarządzać żadną kolejką; sama inicjalizacja zajmuje często około dziesięciu sekund, zanim rozpoczną się właściwe obliczenia. W module Zarządzanie planami lekcji przycisk Generuj plan lekcji uruchamia obliczenia, pokazuje ich stan i pozwala sprawdzić wynik.
Algorytm generowania to optymalizacyjna sztuczna inteligencja typu neurosymboliczna metaheurystyka Monte Carlo: przeszukiwanie stochastyczne, ograniczenia symboliczne i stopniowa optymalizacja ocen. Nie jest to obietnica powodzenia przy niemożliwym zestawie ograniczeń; w takim przypadku Omniscol zwraca diagnostykę.
Ile czasu zajmuje generowanie?
Czas zależy od rozmiaru planu lekcji, liczby lekcji, liczby ograniczeń i wybranych opcji. Dla orientacji: szkoła podstawowa z około 550 uczniami, 45 nauczycielami i 16 klasami, z szeroko zadeklarowaną dostępnością, może w niespełna minutę otrzymać kompletny plan lekcji, z bardzo niewielką liczbą luk lub bez nich, o ile dane są spójne. Przypadek gęstszy, silnie ograniczony lub z kosztownymi optymalizacjami może zająć znacznie więcej czasu.
Czy algorytm generowania respektuje wszystkie ograniczenia?
Twarde ograniczenia są respektowane bezwzględnie:
- nauczyciel tylko w jednym miejscu w tym samym czasie;
- klasa bez podwójnego obłożenia, z wyjątkiem grup objętych podziałem klasy;
- dostępność i przedziały czasowe oznaczone jako niedostępne;
- sala ogólna zajęta tylko przez jedną lekcję jednocześnie;
- duża sala używana wyłącznie w granicach swojej pojemności i liczby klas;
- zgodne sale specjalistyczne, pojemności, zasoby materialne i czasy przejazdu między lokalizacjami;
- zablokowane lekcje zachowane na swoim miejscu.
Miękkie ograniczenia (niepożądane przedziały dostępności, przedziały preferowane, waga pedagogiczna, równowaga dni, liczba dni obecności, luki w planach lekcji) są optymalizowane w miarę możliwości. Tworzą punkty karne: algorytm generowania szuka rozwiązania, które zbiera ich najmniej, ale może część z nich zachować, jeśli jest to najlepszy kompromis zgodny z twardymi ograniczeniami.
Co zrobić, jeśli generowanie się nie uda?
Gdy nie zostanie znalezione żadne kompletne rozwiązanie, Omniscol zwraca najlepszy obliczony plan lekcji, a lekcje nieumieszczone pozostawia na pasku karteczek. Częściowy plan lekcji nadal można przeglądać, aby zobaczyć, co zostało umieszczone, a następnie poprawić ograniczenia lub ręcznie przestawić niektóre lekcje. Najczęstsze przyczyny opisuje strona Diagnozowanie nieudanego generowania.
Czy można ręcznie wymusić pozycję lekcji?
Tak, przez zablokowanie lekcji po ręcznym umieszczeniu. Przy kolejnym generowaniu algorytm generowania nie przesuwa zablokowanej lekcji, lecz dostosowuje wokół niej pozostałe. Przydaje się to do zakotwiczenia lekcji niezmiennych (lekcji prowadzonych przez nauczycieli zewnętrznych w ustalonym terminie, egzaminów o wyznaczonej dacie).
Dlaczego algorytm generowania nie proponuje kilku rozwiązań?
Algorytm generowania optymalizuje według zadeklarowanych ograniczeń i ustawień, a następnie zwraca najlepsze znalezione rozwiązanie. Aby uzyskać kilka rozwiązań do porównania, proszę zduplikować plan lekcji przed każdym generowaniem i nieznacznie dostosować ograniczenia lub wagi między dwoma przebiegami.
Czy algorytm generowania uwzględnia zgłoszone nieobecności?
Algorytm generowania działa na planie lekcji strukturalnym, niezależnie od nieobecności. Nieobecnościami zarządza się po fakcie w module Zarządzanie nieobecnościami (zob. Przegląd modułu Zarządzanie nieobecnościami), z wpływem na wyświetlanie opublikowanego planu lekcji i na statystyki w Panel zarządczy (ale nie na strukturę leżącą u jego podstaw).
Konflikt zamierzony a konflikt blokujący
Nie wszystkie konflikty są równoważne:
- Konflikty nieblokujące — można je pozostawić bez zmian, jeśli jest to świadoma decyzja (na przykład sala, w której wyświetlana liczebność przekracza pojemność, bo wiadomo, że nie przyjdą wszyscy zapisani). Ostrzeżenie pozostaje widoczne, ale niczego nie blokuje.
- Konflikty blokujące — uniemożliwiają pomyślne generowanie (brak zgodnej sali, niespójne wyrównanie grup itd.). Przycisk Generuj plan lekcji pozostaje nieaktywny, dopóki te konflikty się utrzymują.
Zob. Konflikt.