Title: | Alocă Pe Ore Lecțiile Zilei |
Version: | 0.1.4 |
Description: | Lecțiile prof/cls trebuie completate cu un câmp "ora", astfel ca oricare două lecții prof/cls/ora să nu se suprapună într-o aceeași oră. The prof/cls lessons must be completed with a "hour" field ('ora), so that any two prof/cls/ora lessons do not overlap in the same hour. https://vlad.bazon.net/. |
License: | MIT + file LICENSE |
Encoding: | UTF-8 |
Language: | ro |
RoxygenNote: | 7.3.2 |
Imports: | dplyr, igraph, magrittr, purrr, rlang, stats, tidyr |
Depends: | R (≥ 3.5.0) |
LazyData: | true |
Suggests: | knitr, rmarkdown |
VignetteBuilder: | knitr |
NeedsCompilation: | no |
Packaged: | 2025-05-21 14:50:55 UTC; vb |
Author: | Vlad Bazon [aut, cre] |
Maintainer: | Vlad Bazon <vlad.bazon@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2025-05-21 15:20:02 UTC |
hours2lessons: Alocă Pe Ore Lecțiile Zilei
Description
Lecțiile prof/cls trebuie completate cu un câmp "ora", astfel ca oricare două lecții prof/cls/ora să nu se suprapună într-o aceeași oră. The prof/cls lessons must be completed with a "hour" field ('ora), so that any two prof/cls/ora lessons do not overlap in the same hour. https://vlad.bazon.net/.
Author(s)
Maintainer: Vlad Bazon vlad.bazon@gmail.com
Pipe operator
Description
See magrittr::%>%
for details.
Usage
lhs %>% rhs
Arguments
lhs |
A value or the magrittr placeholder. |
rhs |
A function call using the magrittr semantics. |
Value
The result of calling rhs(lhs)
.
Exemplu de lecții, cu 62 profesori (între care, două cuplaje) și 32 clase
Description
set numit "LSS" de 204 lecții prof|cls, care trebuie să se desfășoare într-o zi. În ziua respectivă, fiecare profesor are cel mult 7 lecții; fiecare clasă are cel puțin 4 și cel mult 7 lecții.
Usage
LSS
Format
- prof
Cod de 3 sau 6 caractere, reprezentând un profesor, respectiv un cuplaj (doi profesori, pe grupe ale unei clase); primele două litere abreviază disciplina pe care este încadrat profesorul, iar cifra care urmează indexează profesorii de pe aceeași disciplină
- cls
Clasa (două sau trei caractere) la care va intra profesorul/cuplajul în ziua respectivă
Exemplu de tuplaje
Description
set numit "Tuplaje", conținând 4 tuplaje asociate setului "LSS". Un tuplaj va angaja într-o aceeași oră, mai mulți profesori și mai multe clase. Lecțiile tuplate NU sunt înregistrate în "LSS".
Usage
Tuplaje
Format
- prof
Profesorii care trebuie să intre într-o aceeași oră a zilei la câte una dintre clasele respective (separați printr-un spațiu).
- cls
Clasele care trebuie tuplate (separate printr-un spațiu).
Depistează cuplajele și dependențele de alocare pe ore, induse de acestea
Description
Lecțiile cuplajelor trebuie să nu se suprapună (într-o aceeași oră) cu lecțiile membrilor acestora.
Usage
get_twins(LSS)
Arguments
LSS |
data.frame cu lecțiile prof|cls |
Value
NULL dacă nu există cuplaje; altfel, lista care indică bilateral, pe fiecare membru al unui cuplaj și pe fiecare cuplaj, profesorii și cuplajele de care depinde alocarea pe ore a lecțiilor sale.
Transformă prof|cls|ora în matricea profesorilor pe orele 1:7
Description
"Matricea-orar" are liniile numite după profesori, fiecare linie conținând clasele la care intră profesorul respectiv, în orele 1:7. Fiecare clasă apare câte o singură dată pe fiecare coloană de rang mai mic sau egal cu numărul de ore al clasei respective.
Usage
long2matrix(ORR)
Arguments
ORR |
data.frame prof|cls|ora (format lung) |
Value
matricea orară a lecțiilor: clasele alocate pe ore fiecărui profesor
Examples
LM <- long2matrix(as.data.frame(mount_hours(LSS, Tuplaje)))
Adaugă 'ora' încât oricare două lecții prof|cls|ora să nu se suprapună
Description
Se presupune că lecțiile tuplate sunt înregistrate separat (în 'TPL', nu și în 'LSS'), permițând o analiză prealabilă a tuplajelor (dacă tuplajul indică de exemplu, 4 profesori pe 3 clase, atunci se va înființa intern un nou cuplaj și abia apoi, lecțiile tuplate - inclusiv cuplajele nou înființate - vor fi adăugate în 'LSS').
Usage
mount_hours(LSS, TPL = NULL)
Arguments
LSS |
data.frame cu lecțiile prof|cls, unde 'prof' este un profesor propriu-zis, sau unul fictiv (cuplaj de doi/clasă) |
TPL |
data.frame pentru tuplaje, dacă este cazul Un tuplaj conține 2 sau mai mulți profesori, pe 2 sau mai multe clase (numărul de profesori fiind cel mult cu 1 mai mare, ca al claselor) |
Value
Un orar 'prof|cls|ora' pentru ziua respectivă
Examples
STP <- as.data.frame(mount_hours(LSS, Tuplaje)) %>%
dplyr::arrange(cls, ora)
Adaptează setul tuplajelor în vederea alocării în câte o aceeași oră a lecțiilor dintr-un același tuplaj
Description
Dacă numărul de profesori este cu 1 mai mare ca al claselor, atunci se înființează un cuplaj pentru primii doi din tuplajul respectiv.
Usage
on_tuples(TPL)
Arguments
TPL |
'data.frame' conținând tuplajele prof|cls (separate cu un spațiu, pe fiecare câmp, dacă este cazul) |
Value
NULL dacă setul TPL este defectuos; altfel, o listă conținând setul prof|cls|ora ('ora' fiind inițializată cu 0), împreună cu doi vectori: profesorii și respectiv clasele, din tuplaje
Scalează profesorii (clasele) după numărul de clase (profesori) în comun
Description
Clasele vor fi parcurse (pentru a monta ore 1:7 pe lecțiile fiecăreia) în ordinea crescătoare a coeficienților "betweenness" din graful în care două clase sunt adiacente după numărul de profesori comuni lor.
Usage
scale_prof_cls(LSS)
Arguments
LSS |
data.frame cu lecțiile prof|cls |
Value
lista de coeficienți betweenness pentru profesori și clase
Verifică matricea-orar
Description
Fiecare clasă trebuie să apară cel mult o singură dată, pe fiecare coloană.
Usage
verify_matrix(MP)
Arguments
MP |
Matricea-orar |
Value
TRUE dacă fiecare clasă apare cel mult o dată, pe fiecare coloană (FALSE în caz contrar)