| Title: | 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/>. |
| Authors: | Vlad Bazon [aut, cre] |
| Maintainer: | Vlad Bazon <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 1.0.0 |
| Built: | 2026-10-11 15:45:58 UTC |
| Source: | https://github.com/cran/hours2lessons |
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.
dayLessonsdayLessons
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ă
Clasa (două sau trei caractere) la care va intra profesorul/cuplajul în ziua respectivă
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.
dayTuplesdayTuples
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).
Clasele care trebuie tuplate (separate printr-un spațiu).
"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.
long2matrix(ORR)long2matrix(ORR)
ORR |
data.frame prof|cls|ora (format lung) |
matricea orară a lecțiilor: clasele alocate pe ore fiecărui profesor
LM <- long2matrix(as.data.frame(mount_hours(dayLessons, dayTuples)))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
mount_hours(LSS, TPL = NULL)mount_hours(LSS, TPL = NULL)
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) |
'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.
Un orar 'prof|cls|ora' pentru ziua respectivă
STP <- as.data.frame(mount_hours(dayLessons, dayTuples)) %>% dplyr::arrange(cls, ora)STP <- as.data.frame(mount_hours(dayLessons, dayTuples)) %>% dplyr::arrange(cls, ora)
Fiecare clasă trebuie să apară cel mult o singură dată, pe fiecare coloană.
verify_matrix(MP)verify_matrix(MP)
MP |
Matricea-orar |
TRUE dacă fiecare clasă apare cel mult o dată, pe fiecare coloană (FALSE în caz contrar)