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

Reducerea ferestrelor din orarul zilei (II)

Local Search | limbajul R | orar şcolar
2021 oct

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.

Reducerea ferestrelor din orarul zilei

limbajul R | orar şcolar
2021 oct

O strategie coerentă (fără elemente aleatorii) de reducere a numărului de ferestre din orarul iniţial: pentru fiecare coloană, mutăm pe rând fiecare clasă din coloana respectivă pe fiecare dintre celelalte coloane, aplicăm de fiecare dată o reducere „standard” de ferestre şi reţinem acel caz în care obţinem cel mai mic număr de ferestre.
Până una-alta, rezultatul este mulţumitor.

Schimbarea claselor dintr-o coloană în alta

limbajul R | orar şcolar
2021 oct

În [1] am demarat "recast.R", care caută să reducă numărul de ferestre de pe orarul şcolar iniţial (al unei zile); pentru a acoperi o fereastră, se mută o anumită clasă dintr-o coloană a orarului în alta, pe baza unei liste prealabile (cât mai cuprinzătoare) de acoperiri posibile; dacă orarul rezultat în urma acoperirii unei ferestre are mai puţine ferestre decât cel curent, atunci este reţinut drept noul orar curent şi se repetă mutarea de clase pe baza listei de acoperiri corespunzătoare acestuia.

De fapt, în [1] am făcut un prim experiment, urmărind să ne convingem că lucrurile ar putea merge astfel, în direcţia dorită; am tratat mutarea claselor în măsura suficientă unei tatonări, fără să luăm seama la toate aspectele şi subtilităţile. Ori mutarea de clase este esenţială în procedura descrisă mai sus şi în primul rând, avem de corectat formulările din [1] pentru swap_cols() şi swap_cls().

Instrumentarea reducerii ferestrelor din orar (II)

Local Search | limbajul R | orar şcolar
2021 sep

Operaţia swap_cls() din [1] asigură acoperirea unei ferestre (cu riscul apariţiei altora) şi returnează orarul astfel modificat. Aplicăm orarului iniţial (sau celui curent) o secvenţă (potrivită) de "swap_cls()" şi dintre orarele rezultate reţinem (ca orar curent) unul cu numărul minim de ferestre; aplicăm orarului reţinut aceeaşi procedură, cât timp se ajunge astfel la un număr de ferestre mai mic decât cel curent.

Instrumentarea reducerii ferestrelor din orar

graf | lanţ KEMPE | limbajul R | orar şcolar
2021 sep

Iniţiem un program de reducere a ferestrelor dintr-un orar; deocamdată, specificăm o operaţie de modificare a orelor alocate lecţiilor, pe care o susţinem şi vizual, arătând că ea se poate deriva din conceptul de lanţ Kempe al teoriei colorării hărţilor.


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: