momente şi schiţe de informatică şi matematică
To attain knowledge, write. To attain wisdom, rewrite.

Repartizarea pe zile a încadrării profesorilor (V)

limbajul R | orar şcolar
2021 jan

Pretenţia de a obţine o distribuţie omogenă – diferenţa dintre numărul de ore pe o zi şi alta să fie cel mult 1, pentru fiecare profesor (şi clasă) – este nerealistă, fiind uşor de generat doar dacă neglijăm condiţia asupra numărului zilnic de ore pentru clase (acceptând ca unele clase să aibă de exemplu 3 ore într-o zi şi 8 ore într-o alta).

Următoarea idee este însă fezabilă: alocăm orele astfel încât numărul de ore pe zi să nu varieze cu mai mult de 1 de la o zi la alta pentru fiecare clasă, iar pentru profesori, să nu depăşească 7 şi să nu varieze cu mai mult de 2 ore de la o zi la cea următoare; dacă ar fi puţini profesorii cu peste 20 de ore, sau dacă am avea în vedere fiecare schimb în parte, limitele respective pot fi reduse (probabil) la 6 şi 1.

Repartizarea pe zile a încadrării profesorilor (IV.bis)

limbajul R | orar şcolar
2021 jan

Pentru a aloca pe zile orele existente este firesc să parcurgem profesorii într-o ordine legată cumva de numărul de ore; funcţia set_zile() din [1] ordona profesorii unei clase după numărul de ore pe săptămână la acea clasă şi apoi le distribuia orele pe zile. De mai înainte încă, am „anonimizat” numele profesorilor (agreând pe cât putem opera parlamentară privitoare la „protecţia datelor personale”); acum vedem că putem şi profita de practica anonimizării, pentru a evita (în principiu) reordonarea ulterioară a datelor.

Repartizarea pe zile a încadrării profesorilor (IV)

limbajul R | orar şcolar
2021 jan

O valoare ca "Rom\r\n11.D" – preluată dintr-o celulă a unui tabel Excel sau PDF – acoperă două domenii de valori (obiectele de învăţământ şi respectiv, clasele existente), ba mai vizează şi imprimanta (care chiar nu are de-a face cu datele respective).

Dacă ai de operat cu date, primul lucru de făcut constă în „normalizarea” acestora (obţinând un „set de date”); este inutil – în general – să înregistrăm valori neexistente; apoi, valorile înregistrate ar trebui să aibă fiecare propriul domeniu (şi să fie complet eliberate de aspecte vizuale – de exemplu, să nu includă în expresia lor, caractere de control a imprimării).

Repartizarea pe zile a încadrării profesorilor (III)

limbajul R | orar şcolar
2021 jan

Cum extragi datele dintr-un document PDF care prezintă orarul unei şcoli? Folosind eventual Camelot-py (dar mai bine apelezi la un serviciu de conversie extern), poţi obţine un fişier Excel în care fiecare foaie prezintă câte unul din tabelele prezentate în documentul PDF; apoi, folosind R (prin pachetele tidyverse şi readxl), poţi transforma fişierul Excel respectiv într-un „set de date” (obiect de tip data.frame). Eliberând datele de sub formatările vizuale specifice PDF sau Excel – le vei putea organiza şi prelucra prin program, după caz.

Repartizarea pe zile a încadrării profesorilor (II)

limbajul R | orar şcolar
2020 dec

Alocând zilele de lucru pe clase (şi profesori), am obţinut repartiţii omogene în privinţa numărului de ore pe zi ale claselor, dar neomogene în privinţa numărului de ore pe zi ale profesorilor. Este uşor de inversat rolurile, alocând zilele pe profesori (şi clase); vom obţine repartiţii omogene pentru profesori, dar neomogene pentru clase.


Prev
Next
ALL (366 titluri)

vezi Cărţile mele (de programare)

despre acesta ~ Home
(sau https://vlad.bazon.net/

Factoriale | Graficul funcţiilor

PGN browser | chess JS engine

Load

in /slightchess

/slightchess

626 partide analizate cu Crafty

(R) Computer Art | Decoraţiuni

Aplicaţii şcolare (javaScript)

Sinteze: