| Title: | Alocă Pe Ore Lecțiile Zilei |
| Version: | 1.0.0 |
| 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 |
| Imports: | dplyr, igraph, magrittr, purrr, rlang, stats, tidyr |
| Depends: | R (≥ 3.5.0) |
| LazyData: | true |
| Suggests: | knitr, rmarkdown |
| VignetteBuilder: | knitr |
| Config/roxygen2/version: | 8.1.0 |
| NeedsCompilation: | no |
| Packaged: | 2026-09-10 07:20:27 UTC; vb |
| Author: | Vlad Bazon [aut, cre] |
| Maintainer: | Vlad Bazon <vlad.bazon@gmail.com> |
| Repository: | CRAN |
| Date/Publication: | 2026-09-10 15:30:24 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
Authors:
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 64 profesori (între care, patru cuplaje dintre care două fac parte din tuplaje) și 34 clase
Description
set de 205 lecții prof|cls, care trebuie să se desfășoare în orele 1:7 ale unei zile. Fiecare profesor are cel puțin una și cel mult 7 ore (lecții); fiecare clasă are cel puțin 5 și cel mult 7 ore. Unele lecții (indicate în setul "dayTuples") trebuie să cadă într-o aceeași oră a zilei.
Usage
dayLessons
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 de 4 tuplaje asociate setului "LSS". Un tuplaj va angaja într-o aceeași oră, mai mulți profesori și mai multe clase, dar un tuplaj corect trebuie să aibă același număr de profesori ca și de clase. Dacă numărul de profesori este totuși mai mare decât al claselor din tuplaj, utilizatorul va ști cel mai bine care dintre profesorii respectiv trebuie cuplați, încât tuplajul să devină corect.
Usage
dayTuples
Format
- prof
Profesorii (eventual, cuplați doi pe o aceeași clasă) 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(dayLessons, dayTuples)))
Adaugă 'ora' încât oricare două lecții prof|cls|ora să nu se suprapună, iar lecțiile dintr-un același tuplaj să cadă într-o aceeași oră 1:7
Description
Adaugă 'ora' încât oricare două lecții prof|cls|ora să nu se suprapună, iar lecțiile dintr-un același tuplaj să cadă într-o aceeași oră 1:7
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 egal cu al claselor) |
Details
'PERM' is a list of permutations for 4:7 elements. 'h2bin' is a vector of integers 2^(h-1) for the hours h=1:7. 'cnt_holes()' gives the current number of gaps in an individual schedule.
Value
Un orar 'prof|cls|ora' pentru ziua respectivă
Examples
STP <- as.data.frame(mount_hours(dayLessons, dayTuples)) %>%
dplyr::arrange(cls, ora)
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)