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)