Řízení vstupu do rozvrhu robotem
Verze z 16. 1. 2008, 11:37, kterou vytvořil Tomas (diskuse | příspěvky) (→Algoritmus stanovení limitu vážených kreditů)
Robot - noční zpracování
Aby byla zajištěna plynulost přihlašování studentů do rozvrhu, byl pro podmínku založenou na váženém počtu kreditů implementován robot, který při nočním zpracování nastavuje novou hodnotu limitu pro vpuštění do rozvrhu (parametr ZRVK_LIMIT) na základě požadovaného počtu vpuštěných studentů (parametr ZRVK_VPUSTIT. Robot postupuje takto:
- Přečte hodnotu parametru ZRVK_VPUSTIT.
- Pokud parametr není vyplněn, nedělej nic a skonči.
- Je-li hodnota parametru 0, naplň parametr ZRVK_LIMIT hodnotou 9999 a skonči.
- Je-li hodnota parametru > 0, nastav parametr ZRVK_LIMIT na hodnotu, při které je počet studentů vpuštěných do rozvrhu nejblíže počtu uvedenému v parametru ZRVK_VPUSTIT (ale vždy větší než 0). Zároveň všem studentům, kteří vyhověli podmínce, nastav příznak "KROZVRHU" na "A" a pošli jim mail s oznámením, že byli vpuštěni do rozvrhu.
Algoritmus stanovení limitu vážených kreditů
Vstupy:
- PRISEM - semestr, do kterého probíhá zápis
- FAKULTA - fakulta, pro kterou probíhá výpočet
- VPUSTIT - Požadovaný počet studentů vpuštěných do rozvrhu
Výstupy:
- LIMIT - Limit vážených kreditů
- STUDENTI - Seznam studentů, kteří by byli vpuštěni do rozvrhu při nastavení výsledného limitu
Postup:
- Přečti a spočítej z databáze množinu trojic <student, semestr, počet VK studenta v semestru> pro všechny studující studenty fakulty FAKULTA, kteří mají v semestru PRISEM zapsán alespoň jeden předmět, nejsou doktorandi a nemají dosud otevřen přístup do rozvrhu.
- Pro každého studenta, který se vyskytuje v množině trojic načtené v předchozím kroku, spočti jeho individuální limit, při kterém by byl vpuštěn do rozvrhu. Výsledkem je zobrazení S : Student -> Limit.
- Ze zobrazení S spočti četnost jednotlivých limitů, výsledkem je zobrazení L : Limit -> Pocet.
- Z nalezených četností L spočti zobrazení K, které každému nalezenému limitu přiřadí počet studentů, který by byl při dané hodnotě vpuštěn do rozvrhu. Výsledkem je zobrazení K : Limit -> Pocet.
- Najdi takový limit x, pro který je hodnota |K(x)-VPUSTIT| minimální. Vrať jej jako LIMIT.
- Ze zobrazení S sestaveného v druhém kroku vyber množinu studentů STUDENTI, kteří vyhovují nalezenému limitu LIMIT.