Chestiunea cuplajelor existente în orarul şcolar (IV)
Cu daySchoolSchedule.R
din [2], putem genera foarte rapid orarele zilnice (având repartiţia lecţiilor pe zile), dar fără să ţinem seama de semnificaţia profesorilor fictivi (introduşi în [1] pentru mascarea lecţiilor cuplate); pentru a corecta imediat poziţia cuplajelor, vom folosi deocamdată aplicaţia interactivă "dayRecast.html
" (v. /dayRecast şi github). Apoi, vom completa programul "recast.R
" din [3], astfel încât reducerea de ferestre din orarul rezultat să ţină seama şi de situaţiile de cuplare.
Chestiunea cuplajelor existente în orarul şcolar (III)
Pentru a ţine seama de cuplaje la repartizarea pe ore a lecţiilor dintr-o aceeaşi zi, am avea chiar două posibilităţi: modificăm programul respectiv ("daySchoolSchedule.R
" din [2]) pentru a condiţiona şi faţă de cuplaje, etichetarea cu ore 1..7 – sau nu-l modificăm, dar constituim un program de ajustare finală a lecţiilor cuplate. A doua variantă ar fi cea mai bună: necesită rescrierea funcţiilor din [3] pentru mutarea unei clase, ori acestea trebuie oricum rescrise (pentru a repara ferestrele ţinând seama şi de cuplaje); dar să încercăm deocamdată prima variantă (fiind mai simplă).
Chestiunea cuplajelor existente în orarul şcolar (II)
În [1] am depistat cuplajele existente în orarul original, dar le-am folosit doar când am ajustat (interactiv) repartizarea pe zile furnizată de "distribute_by_days.R
"; dacă vrem să ţinem cont de ele chiar în cadrul programului – iar aici, vizăm programul din [2], pentru repartizarea pe orele zilei a lecţiilor distribuite într-o aceeaşi zi – atunci trebuie ceva mai mult decât să le evidenţiem.
Chestiunea cuplajelor existente în orarul şcolar
În [1] aveam chipurile noroc: cuplajele erau explicitate cumva chiar în orar, prin linii precum "P_5 Mi 4 11C/11D/\r\n
11E" – însemnând că în ora a 4-a din ziua "Mi", profesorul "P_5" partajează clasele indicate, cu alţi profesori (la care deasemenea găsim câte o astfel de linie). De data aceasta, valorile din celulele tablei Excel de la care am plecat sunt „curate” (cum şi trebuie să fie) – nu apar clase multiple (separate prin "/" sau "\r\n
"); dar cum evidenţiem atunci, cuplajele existente?
Reducerea ferestrelor din orarul zilei (II)
Următoarea subliniere ne face să schimbăm strategia deterministă desfăşurată copios în [1]: există o clasă a cărei mutare dintr-o anumită coloană într-o alta, conduce la un orar cu mai puţine ferestre. Pe orarul rezultat se va găsi deasemenea o clasă, a cărei mutare diminuează numărul de ferestre, ş.a.m.d.
vezi Cărţile mele (de programare)