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

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

limbajul R | orar şcolar
2021 jan

Distribuţia (4,4,4,4,4) este perfectă şi chiar, rămâne perfectă pe fiecare schimb: (1,1,1,1,1) şi (3,3,3,3,3); numai că realitatea nu are de-a face cu „perfecţiunea” (sau invers): profesorul va prefera plasarea celor 5 ore din primul schimb în două zile (nicidecum câte una pe zi), sau şi mai bine, într-o singură zi (de exemplu (5, 0,0,0,0) şi (0, 4,4,4,3)) – ceea ce desigur că se poate, cu îndoiala (justificată) că „înghesuirea” astfel a orelor sale, va afecta mai degrabă negativ, distribuirea orelor celorlalţi. Aceasta-i întrebarea: cum putem controla generarea unei distribuţii a orelor profesorilor pe zilele de lucru (ţinând seama că sunt două schimburi)?

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

limbajul R | orar şcolar
2021 jan

Obţinem 1455 de distribuţii, pseudo-omogene; obţineam şi mai multe (10000?) dacă aş fi avut de urmărit vreun turneu de tenis pe Eurosport (lăsam atunci programul să ruleze în pace). Par multe – dar de fapt, este un număr infim faţă de gama tuturor distribuţiilor pe zile care sunt posibile pentru orele din încadrarea de bază a profesorilor. Cu alte cuvinte – este foarte mică şansa ca între cele aşa de „multe” distribuţii generate, să o fi obţinut şi pe aceea care chiar ar fi cea mai promiţătoare… Dar începem să vedem lumina de la capătul tunelului.

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

limbajul R | orar şcolar
2021 jan

Generăm un set de distribuţii pe zile a orelor din încadrarea profesorilor, numărând 319 distribuţii (în final, constatăm că sunt totuşi prea puţine); tatonăm în jurul acestei chestiuni: care ar fi dintre acestea, cea mai promiţătoare? Şi deducem câteva îndreptări…

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.


Prev
Next
ALL (354 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: