Partea II: Optimizarea

În prima parte a acestei serii am explicat esența algoritmului A de repartizare a elevilor la licee: se așează toți la o coadă lungă, în ordinea mediei de admitere, și când îi vine rândul fiecare este rugat să-și aleagă un liceu (de fapt o specializare de la un liceu) de pe lista publică. Din păcate, broșura de admitere este redactată prost și-i face pe părinți să creadă că repartizarea se face după vechiul sistem, în care optai pentru un liceu (sau câteva) și conta „s-o nimerești bine din prima” – deci trebuia să-ți evaluezi șansele și să ai grijă „să nu țintești prea sus (sau prea jos)”.

Vlad EnacheFoto: Arhiva personala

Am tot spus că algoritmul A este mult mai bun. Dar până la urmă, prin ce este el atât de bun? Ce anume optimizează? De fapt, ce așteptăm să optimizeze un algoritm de repartizare a elevilor la liceu? Cu ce criteriu evaluăm diverse propuneri de algoritm încât să vedem care-i cea mai bună? Cea mai bună pentru cine: pentru elevi? pentru părinți? pentru profesori? pentru societate?

Modelul

În orice problemă trebuie să admitem niște simplificări, niște aspecte pe care le considerăm irelevante/neimportante și pe care le neglijăm. Aceasta se reflectă în definițiile pe care le dăm și în modelele pe care le creăm. Pentru studiul problemei repartizării elevilor la licee, propun următoarele simplificări:

1. Valoarea unui elev (pentru societate) poate fi cuprinsă într-un singur număr: media lui la admitere (calculată într-un mod sau altul, nu discutăm acum care mod e cel mai bun; presupunem că avem un mod și că îl acceptăm). Această presupunere este evident supra-simplificatoare, și se poate argumenta că este chiar greșită. Elevii cu aceeași medie de admitere nu sunt interschimbabili, ei au multe caracteristici diferite, potențial diferit în diverse domenii etc. Dar sistemul nostru de învățământ este construit pe această ipoteză simplificatoare, așa că o vom accepta. (Alte sisteme de învățământ, din alte țări, funcționează altfel: țin cont de tot felul de evaluări individuale, de recomandări ale unor psihologi, de aptitudini/competențe pe mai multe axe etc. Posibil să fie mai bine cum fac alții, dar noi în discuția de față ne vom raporta la realitatea și principiile fundamentale ale sistemului de învățământ românesc.)

2. Dorințele/aspirațiile unui elev (ale unei familii, de fapt) vizavi de liceele disponibile pot fi surprinse într-un tabel care asociază fiecărui liceu un număr (pozitiv sau negativ) egal cu satisfacția dacă elevul va fi repartizat la acel liceu. Tabelul acesta, chiar dacă este imposibil de „extras” practic din capul oamenilor, presupunem că există ascuns acolo, înăuntru. El va determina un anumit grad de satisfacție la aflarea rezultatului „Copilul a fost admis la liceul A”, alt grad de satisfacție la aflarea rezultatului „Copilul a fost admis la liceul B” și așa mai departe. Nu ne interesează faptul că satisfacția ulterioară, după ce începe efectiv școala și copilul își vede colegii și-și cunoaște profesorii, s-ar putea schimba (uneori dramatic).

3. Ceea ce putem cere practic de la familii este să completeze niște liste de preferințe care constau într-o ierarhizare a unor licee: pe locul 1 este liceul/specializarea A, pe locul 2 liceul/specializarea B ș.a.m.d. Această listă ar trebui să reflecte „tabelul de satisfacție” pentru familia X. Este important de notat că doar o parte din informația din tabelul de satisfacție poate supraviețui în lista de preferințe. Altă parte inevitabil se pierde. De exemplu, tabelele de satisfacție (A: „YESSSS!!! Mi s-a îndeplinit visul!”, B: „Dacă mai bun nu s-a putut...”, C: „Bleah!”) și (A: „Bunicel”, B: „Merge”, C: „Așa și-așa”) sunt foarte diferite, dar ambele conduc la aceeași listă de preferințe: A pe primul loc, B pe al doilea și C pe al treilea.

Având aceste definiții, putem să căutăm răspunsuri la întrebarea „Ce anume optimizează algoritmul A?”.

O variantă ar fi că maximizează satisfacția (totală a familiilor elevilor), prin repartizarea conform preferințelor situate cât mai sus pe lista fiecăruia. Dar nu este așa, pot fi imaginați algoritmi care chiar fac asta și funcționează diferit de algoritmul A. Oricum, un lucru e clar: un algoritm care maximizează satisfacerea dorințelor („Să generăm cât mai multă bucurie!”) nu are de ce să țină cont de mediile elevilor. Informația despre medii nu-l poate decât deturna de la scopul maximizării satisfacției.

O altă variantă este că algoritmul A optimizează ceva legat de valoare/note (nu e clar ce anume...). Din nou, nu poate fi așa – un astfel de algoritm n-are de ce să se lase influențat de dorințele elevilor, care nu ajută în niciun fel la socoteli legate de valoare.

Înseamnă că e vorba de o combinație între satisfacție și valoare. Care să fie aceasta? M-am gândit inițial că poate algoritmul A maximizează corelația între distribuția valorii și distribuția satisfacției în populația de elevi. Adică face ca elevii valoroși (cu note mari) să fie mai bucuroși/satisfăcuți decât cei mai puțin valoroși (cu rezultate mai slabe). Nu este chiar o idee proastă, ar fi o bună lecție morală: dacă vrei să fii mulțumit/fericit, ai face bine să fii valoros (pentru societate). Dar mi-am dat seama că algoritmul A nu poate conduce la un astfel de optim: ce ne facem dacă elevii mai slabi chiar își doresc cel mai mult să intre la licee mai slabe (să zicem pentru că sunt conștienți că nu ar face față la cele bune)? La limită, dacă se-ntâmplă ca fiecare elev să-și dorească cel mai tare exact liceul la care ajunge să fie repartizat? În cazul acesta, valoarea este repartizată neuniform, dar satisfacția este maximă la toți. Deci algoritmul A nu conduce la optimul presupus în acest paragraf – posibil să existe o altă distribuție a elevilor la licee, dată de alt algoritm, care chiar asigură proporționalitatea între valoare și satisfacție. Abandonăm deci și ideea asta.

Libertatea

Să ne imaginăm un concurs de înot cu trei participanți. Avem trei premii, de valoare egală (pentru noi, ca organizatori): o cafetieră, un mixer și un prăjitor de pâine. Se pune problema: cum distribuim premiile, cine primește ce? Unul s-ar putea să-și dorească tare mult cafetiera, altul poate are deja două cafetiere, dar visează la un mixer... Au preferințe diferite. Soluția este să-i lăsăm să aleagă: primului clasat îi oferim șansa să aleagă primul, apoi alege cel de-al doilea (din obiectele rămase), și-n fine cel de-al treilea nu mai are de ales, primește ultimul obiect rămas.

În acest caz, recompensa nu constă într-un obiect anume, ci în posibilitatea alegerii. Aceasta este maximă pentru cel mai valoros înotător, mai mică pentru cel de-al doilea și minimă pentru ultimul.

Algoritmul descris este exact algoritmul A. Și vedem că el maximizează corelația între valoarea individului și libertatea lui (de alegere). Corelația asta este ceva bun, ceva de dorit? Vrem să trăim într-o societate ghidată de principiul „Corelație maximă între valoarea individului și libertatea lui”? Vă las pe voi să răspundeți.

Partea III: Softul

În prima parte a acestei serii am explicat esența algoritmului A de repartizare a elevilor la licee: se așază toți la coadă, în ordinea mediei de admitere, și când îi vine rândul fiecare este rugat să-și aleagă un liceu/specializare de pe lista publică. Din păcate, broșura de admitere nu explică clar și induce ideea că metoda de repartizare ar fi cea de dinainte de 1989. În partea a doua am arătat în ce sens este optim algoritmul A: el maximizează corelația dintre valoarea individului și libertatea lui (de alegere).

Înainte de 1989 „repartiția guvernamentală” a absolvenților de facultate pe posturile asigurate de stat funcționa conform algoritmului A. Doar că atunci nu se făcea pe computer, ci oamenii se adunau efectiv într-o sală și procesul dura câteva ore, pe bază de întrebare și răspuns verbal, „live”. Dar acum vorbim de mult mai mulți elevi de clasa a VIII-a, care nu pot fi adunați fizic la un loc. Ar dura prea mult să așteptăm să-și aleagă fiecare liceul/specializarea, ca la coada la înghețată. Soluția este ca fiecare să „delege un prieten” să facă alegerea în locul lui, instruindu-l pe prieten ce să aleagă atunci când îi va veni rândul.

Să ne gândim: Ce instrucțiuni ar trebui să-i dau prietenului? Evident, ar fi trebuit să-i dau lista mea de preferințe. Dar dacă prietenul ar vedea că lista conține doar 20 de variante ierarhizate, deși în total sunt 100 de licee/specializări? Ar fi foarte îndreptățit să spună „Amice, nu te supăra, dar ce fac dacă până-ți vine ție rândul se duc toate liceele astea 20 de pe lista ta? Eu ce zic atunci? N-o să știu ce să zic, și-o să tac, și-o să-ți treacă rândul, și-o să ajungi la cel mai nasol liceu dintre toate. Și-o să mă-nvinovățești pe mine. Așa că haide, te rog, fă un efort și ierarhizează-le pe toate.” Bun, să zicem că mai buchisesc cu pixul pe hârtie și-i dau o nouă listă, cu 80 de opțiuni ierarhizate, explicându-i „Pe primele 20 chiar n-are rost să le trec, alea sunt liceele cele mai «suculente», n-am eu medie de ele. Sigur le vor lua alții înaintea mea. Consum pixul degeaba...” Dar prietenul ar putea să insiste: „OK, înțeleg că ești de părere că e o probabilitate foarte mică să mai rămână vreunul din locurile alea «suculente» până când îți vine ție rândul. Dar totuși, dacă se întâmplă cazul ăla de 1 la milion și, prin cine știe ce concurs de împrejurări, mai rămâne liber unul din ele când mă ridică ăștia în picioare? Nu ți-ai da cu pumnii în cap să știi că ai fi avut medie să-l iei, dar l-ai ratat doar pentru că ți-a fost lene să-l pui pe listă? Ce te costă? Pastă de pix? Așa că haide, te rog, trece aicea toate cele 100 de licee, în ordinea în care visezi la ele. Ca să fiu și eu liniștit.”

Ar avea prietenul dreptate? Ar avea.

Exact asta face sistemul computerizat: Practic fiecare elev (familie) își alcătuiește din timp, în liniște, lista de preferințe și deleagă „un prieten” să răspundă rapid, în fracțiuni de secundă, pe baza preferințelor. „Prietenul” este un program de computer, care face toată treaba în fracțiuni de secundă.

Iată programul, l-am scris eu în Python pentru că e foarte ușor de înțeles chiar dacă nu știți programare:Citeste tot articolul si comenteaza pe contributors.ro