Ří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 31 mezilehlých verzí od 5 dalších uživatelů.)
Řádek 1: Řádek 1:
== Robot - noční zpracování ==
+
== 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ý 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]].
 
#Pokud parametr není vyplněn, nedělej nic a skonči.
 
#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 ZRVK_VPUSTIT = 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.
+
#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í]] 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 ?
 +
# 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?
 +
 +
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:
 +
 +
{| cellspacing="0" border="1"
 +
|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
 +
|}
 +
 +
</blockquote>
 
== Algoritmus stanovení limitu vážených kreditů ==
 
== Algoritmus stanovení limitu vážených kreditů ==
  
 
Vstupy:
 
Vstupy:
*PRISEM - semestr, do kterého probíhá zápis
+
*PRISEM, PRISEM2 - semestry, do kterých probíhá zápis. PRISEM2 se použije při [[Kontrola minimálního počtu kreditů pro pokračování ve studiu na ČVUT |kontrole požadovaného minimálního počtu kreditů]]
 
*FAKULTA - fakulta, pro kterou probíhá výpočet
 
*FAKULTA - fakulta, pro kterou probíhá výpočet
 
*VPUSTIT - Požadovaný počet studentů vpuštěných do rozvrhu
 
*VPUSTIT - Požadovaný počet studentů vpuštěných do rozvrhu
  
 
Výstupy:
 
Výstupy:
*LIMIT - Limit vážených kreditů
+
*LIMIT - Limit [[Vážený počet kreditů|vážených kreditů]]
 
*STUDENTI - Seznam studentů, kteří by byli vpuštěni do rozvrhu při nastavení výsledného limitu
 
*STUDENTI - Seznam studentů, kteří by byli vpuštěni do rozvrhu při nastavení výsledného limitu
  
 
Postup:
 
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.
+
#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ý počet kreditů|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.
#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.
+
#Z připravených údajů vytvoř množinu studentů M, kteří nezískali [[Kontrola minimálního počtu kreditů pro pokračování ve studiu na ČVUT |požadovaný minimální počet kreditů]].
#Ze zobrazení S spočti četnost jednotlivých limitů, výsledkem je zobrazení L : Limit -> Pocet.
+
#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.
 +
#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ů).
 +
#Ze zobrazení S2 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.
 
#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.  
 
#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.
 
#Ze zobrazení S sestaveného v druhém kroku vyber množinu studentů STUDENTI, kteří vyhovují nalezenému limitu LIMIT.
  
[[Image:Novylimit.gif]]
+
[[Image:Novylimit.gif|left|framed|Diagram toku dat]]
 +
 
  
 
[[Kategorie:KOS]]
 
[[Kategorie:KOS]]
 +
[[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