Řízení vstupu do rozvrhu robotem: Porovnání verzí

Z Nápověda KOS
Skočit na navigaci Skočit na vyhledávání
m
 
(Není zobrazeno 12 mezilehlých verzí od 4 dalších uživatelů.)
Řádek 1: Řádek 1:
== Robot - noční zpracování ==
+
== Robot - algoritmus zpracování ==
  
Aby byla zajištěna plynulost [[Zápis do rozvrhu|přihlašování studentů do rozvrhu]], byl pro podmínku založenou na [[Vážený počet kreditů|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:
+
Aby byla zajištěna plynulost [[Zápis do rozvrhu|přihlašování studentů do rozvrhu]], byl pro podmínku založenou na [[Vážený počet kreditů|váženém počtu kreditů]] implementován robot, který spočte a nastaví 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]].
 
#Přečte hodnotu parametru [[ZRVK_VPUSTIT]].
Řádek 8: Řádek 8:
 
#Je-li hodnota parametru ZRVK_VPUSTIT > 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.
 
#Je-li hodnota parametru ZRVK_VPUSTIT > 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.
  
Výpočet je součástí [[Noční zpracování|nočního zpracování]].
+
Výpočet je součástí [[Noční zpracování|nočního zpracování]] nebo pokud je nastaven parametr [[ZRVK_KDY]] výpočet se spouští v čas určený tímto parametrem.
 +
(Pokud [[ZRVK_KDY]] neexistuje nebo není nastaven, algoritmus se provede v nočním zpracování.)
 +
 
 +
Výpočet je možné omezit pouze na studenty konkrétních programů. Viz parametr [[ZRVK_PROG]].
  
 
== Otevření vstupu do rozvrhu - první spuštění robota ==
 
== Otevření vstupu do rozvrhu - první spuštění robota ==
 +
 +
Vstup do rozvrhu je zpravidla otvírán v konkrétní hodinu daného dne. Jak tedy vpustit první várku studentů do rozvrhu například v 16 hodin dne 4.2.2024 ?
 +
# parametr [[ZRVK_KDY]]="16:00"
 +
# parametr [[ZROTEVST]]="4.2.2024"
 +
# parametr [[ROZUZAVST]] = den kdy má končit zápis do rozvrhu
 +
 +
Takto je třeba parametry nastavit kdykoliv předtím než nastane 16:00 dne 4.2.2024. Klidně týden předem.
 +
Algoritmus se při takovém nastavení bude spuštět každý den v 16:00 od 4.2.2024 po den nastavený v [[ROZUZAVST]].
 +
 +
 +
<blockquote style="color:#AAA">
 +
Zastaralý způsob použítí - (kdy neexistoval parametr [[ZRVK_KDY]])
  
 
Vstup do rozvrhu je zpravidla otvírán v konkrétní hodinu daného dne. Změna nastavení parametrů se projeví až v nočním zpracování. Jak tedy vpustit první várku studentů do rozvrhu například v 16 hodin?  
 
Vstup do rozvrhu je zpravidla otvírán v konkrétní hodinu daného dne. Změna nastavení parametrů se projeví až v nočním zpracování. Jak tedy vpustit první várku studentů do rozvrhu například v 16 hodin?  
Řádek 17: Řádek 32:
  
 
Příklad:
 
Příklad:
dne 10.01.2017 v kalendáři nastavení parametrů vytvořím tyto dvě položky:
+
dne 10.01.2017 v kalendáři nastavení parametrů vytvořím tyto tři položky:
  
 
{| cellspacing="0" border="1"
 
{| cellspacing="0" border="1"
Řádek 24: Řádek 39:
 
|Nová hodnota
 
|Nová hodnota
 
|Stará hodnota
 
|Stará hodnota
| Pozn.
+
|Pozn.
 
|-
 
|-
|29.1.2017 0:00
+
|29.1.2017 23:40
| ZROTEVST
+
|ZROTEVST
 +
|04.03.2017
 +
|10.5.2016
 +
|nová hodnota musí být větší, než ta, kterou nastavíme na 2. následujícím řádku
 +
|-
 +
|30.01.2017 23:50
 +
|ROZUZAVST
 
|28.2.2017
 
|28.2.2017
|10.5.2016
+
|29.09.2016
 
|nová hodnota musí být větší, než ta, kterou nastavíme na následujícím řádku
 
|nová hodnota musí být větší, než ta, kterou nastavíme na následujícím řádku
 
|-
 
|-
Řádek 39: Řádek 60:
 
|}
 
|}
  
 +
</blockquote>
 
== Algoritmus stanovení limitu vážených kreditů ==
 
== Algoritmus stanovení limitu vážených kreditů ==
  
Řádek 61: Řádek 83:
  
 
[[Image:Novylimit.gif|left|framed|Diagram toku dat]]
 
[[Image:Novylimit.gif|left|framed|Diagram toku dat]]
 +
  
 
[[Kategorie:KOS]]
 
[[Kategorie:KOS]]
 
[[Kategorie:KOS_POJMY]]
 
[[Kategorie:KOS_POJMY]]
 +
[[Parametry_KOS]]
 +
[[Kategorie:Help]]

Aktuální verze z 15. 6. 2024, 12:44

Robot - algoritmus 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ý spočte a nastaví 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:

  1. Přečte hodnotu parametru ZRVK_VPUSTIT.
  2. Pokud parametr není vyplněn, nedělej nic a skonči.
  3. Je-li hodnota parametru ZRVK_VPUSTIT = 0, naplň parametr ZRVK_LIMIT hodnotou 9999 a skonči.
  4. Je-li hodnota parametru ZRVK_VPUSTIT > 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.

Výpočet je součástí nočního zpracování nebo pokud je nastaven parametr ZRVK_KDY výpočet se spouští v čas určený tímto parametrem. (Pokud ZRVK_KDY neexistuje nebo není nastaven, algoritmus se provede v nočním zpracování.)

Výpočet je možné omezit pouze na studenty konkrétních programů. Viz parametr ZRVK_PROG.

Otevření vstupu do rozvrhu - první spuštění robota

Vstup do rozvrhu je zpravidla otvírán v konkrétní hodinu daného dne. Jak tedy vpustit první várku studentů do rozvrhu například v 16 hodin dne 4.2.2024 ?

  1. parametr ZRVK_KDY="16:00"
  2. parametr ZROTEVST="4.2.2024"
  3. parametr ROZUZAVST = den kdy má končit zápis do rozvrhu

Takto je třeba parametry nastavit kdykoliv předtím než nastane 16:00 dne 4.2.2024. Klidně týden předem. Algoritmus se při takovém nastavení bude spuštět každý den v 16:00 od 4.2.2024 po den nastavený v ROZUZAVST.


Zastaralý způsob použítí - (kdy neexistoval parametr ZRVK_KDY)

Vstup do rozvrhu je zpravidla otvírán v konkrétní hodinu daného dne. Změna nastavení parametrů se projeví až v nočním zpracování. Jak tedy vpustit první várku studentů do rozvrhu například v 16 hodin?

Ve formuláři 80108 lze naplánovat budoucí nastavení parametrů dokonce i na určitou hodinu. Je-li naplánována na daný den a danou hodinu (v našem příkladu na 16:00) změna parametru ZROTEVST na tentýž den (v den změny je to "dnešní" datum), spustí se při provedení změny (v 16:00) i automatické vpuštění do rozvrhu, které vpustí první várku studentů do rozvrhu. Každá další várka pak bude vpuštěna během nočního zpracování.

Příklad: dne 10.01.2017 v kalendáři nastavení parametrů vytvořím tyto tři položky:

Od kdy Parametr Nová hodnota Stará hodnota Pozn.
29.1.2017 23:40 ZROTEVST 04.03.2017 10.5.2016 nová hodnota musí být větší, než ta, kterou nastavíme na 2. následujícím řádku
30.01.2017 23:50 ROZUZAVST 28.2.2017 29.09.2016 nová hodnota musí být větší, než ta, kterou nastavíme na následujícím řádku
30.1.2017 0:10 ZROTEVST 30.1.2017 28.2.2017 změna z jiné hodnoty na datum změny

Algoritmus stanovení limitu vážených kreditů

Vstupy:

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:

  1. Přečti a spočítej z databáze množinu čtveřic <student, semestr, počet kreditů studenta v semestru, počet vážených kreditů 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.
  2. Z připravených údajů vytvoř množinu studentů M, kteří nezískali požadovaný minimální počet kreditů.
  3. Pro každého studenta, který se vyskytuje v množině čtveřic načtené v první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.
  4. Ze zobrazení S vytvoř S2 tak, že z definičního oboru S odstraníš všechny prvky množiny M (odstraníš studenty, kteří nezískali dostatečný počet kreditů).
  5. Ze zobrazení S2 spočti četnost jednotlivých limitů, výsledkem je zobrazení L : Limit -> Pocet.
  6. 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.
  7. Najdi takový limit x, pro který je hodnota |K(x)-VPUSTIT| minimální. Vrať jej jako LIMIT.
  8. Ze zobrazení S sestaveného v druhém kroku vyber množinu studentů STUDENTI, kteří vyhovují nalezenému limitu LIMIT.
Diagram toku dat

Parametry_KOS