Documente Academic
Documente Profesional
Documente Cultură
A. Enunț. Variante
Problemă Care este numărul maxim de lucrări ce pot fi atribuite agenților astfel încât:
− 𝑜𝑟𝑖𝑐𝑒 𝑙𝑢𝑐𝑟𝑎𝑟𝑒 𝑠ă 𝑓𝑖𝑒 𝑎𝑡𝑟𝑖𝑏𝑢𝑖𝑡ă 𝒄𝒆𝒍 𝒎𝒖𝒍𝒕 𝑢𝑛𝑢𝑖 𝑎𝑔𝑒𝑛𝑡;
(*)
− 𝑜𝑟𝑖𝑐𝑒 𝑎𝑔𝑒𝑛𝑡 𝑠ă 𝑝𝑟𝑖𝑚𝑒𝑎𝑠𝑐ă 𝒄𝒆𝒍 𝒎𝒖𝒍𝒕 𝑜 𝑙𝑢𝑐𝑟𝑎𝑟𝑒.
Această problemă se va numi problema de afectare simplă (abreviat PAS)
II) Observăm că în cadrul PAS, dacă mai mulți agenți pot executa o aceeași lucrare, nu se face
nici o referire asupra modului în care este executată lucrarea : mai bine sau mai puțin bine, mai
repede sau mai încet, mai scump sau mai ieftin.Să presupunem că este posibilă evaluarea
modului în care o lucrare Li este executată de un agent Aj printr-o valoare numerică aij . Aceste
valori se vor numi eficacități de execuție și pot fi, după caz, note, timpi sau costuri.Pentru
simplitate vom presupune că m = n și ca urmare o lucrare va fi repartizată unui singur agent iar
un agent va primi o singură lucrare.
Problemă Să se repartizeze lucrările pe agenți cu respectarea condițiilor (*) astfel încât suma
eficacităților de execuție să fie, după caz :
- maximă (dacă, de exemplu, eficacitățile sunt note)
sau
- minimă (dacă eficacitățile sunt timpi de execuție sau costuri)
Aceasta se va numi problema generală de afectare (abreviat PA)
Se constată că atribuirea unui număr de lucrări unor agenți – cu respectarea condițiilor (*) – se
poate vizualiza în tabloul T printr-o mulțime C de celule admisibile cu proprietatea :
Oricare două celule diferite din C nu se află în aceeași linie (rând sau coloană) (**)
În mod evident, numărul celulelor admisibile independente nu poate depăși nici numărul m de
lucrări nici numărul n de agenți:
|C| ≤ 𝑚𝑖𝑛{𝑚, 𝑛}
Considerațiile precedente furnizează următoarea traducere pur combinatorială a problemei de
afectare simplă:
În notațiile secțiunii B vom spune că o coloană Aj este admisibilă pentru rândul Li dacă celula
(Li,Aj) este admisibilă.
Start : Inițializăm mulțimea curentă C de CAI. Mulțimea C poate fi dată sau se construiește după
următoarea regulă :
(R) În fiecare rând, începând cu L1 se plasează un 1-ar în prima coloană admisibilă a rândului,
coloană în care nu apare déjà un 1-ar (dacă o asemenea coloană nu există se trece la examinarea
rândului următor).
Pasul 1 Dacă |C| = 𝑚𝑖𝑛{𝑚, 𝑛} Stop : mulțimea curentă de CAI este maximală deoarece:
Fie toate lucrările au fost repartizate, dacă m ≤ n ;
Fie toți agenții au primit câte o lucrare dacă m > n.
În caz contrar – deci când avem și rânduri și coloane fără 1 – marcăm cu eticheta * toate
rândurile fără 1.
Pasul 2 : Se examinează – într-o ordine oarecare - toate rândurile marcate (cu * sau altă etichetă)
în căutarea unuia care are măcar o coloană admisibilă și nemarcată. Dacă un asemenea rând nu
există Stop : mulțimea curentă C de CAI este maximală.
În caz contrar, fie Li un rând marcat care are cel puțin o coloană admisibilă și nemarcată. Se
examinează pe rând aceste coloane – în caz că sunt mai multe. Fie Aj coloana ce urmează a fi
examinată. În primul rând ea se va marca cu eticheta [𝐿 ]. Mai departe sunt posibile două situații :
Coloana Aj nu are 1 : se trece imediat la pasul 3 fără a mai examina și celelale coloane
admisibile și nemarcate ale rândului Li;
Coloana Aj are un 1 (unic !): rândul în care se află acest 1 se marchează cu eticheta 𝐴
după care se trece la examinarea altei coloane admisibile și nemarcate a rândului Li (dacă mai
există…)
La terminarea acestei operații se reia pasul 2 pe alt rând marcat.
Notă : Eichetele rândurilor se trec în dreapta tabloului T. Etichetele coloanelor se trec sub
tablou. Se recomandă ca etichetele să fie consemnate și separat sub forma unui arbore.
Marca rândului Li are forma [𝐴 ]; în urma operației precedente în rândul Li sunt doi 1 -ari !
Ștergem 1 -arul din coloana Ak : 1 .Acum coloana Ak nu are 1! Reluăm prima operație pe
coloana Ak.
Eticheta rândului Li este *. Stop : rândul Li , care nu avea 1, acum are unul ! S-a obținut o
mulțime nouă C’ de CAI care are o celulă în plus față de vechea mulțime C. Se trece la :
Pasul 4 Ștergem toate etichetele, actualizăm mulțimea curentă de CAI :C ←C’ și revenim la
pasul 1 în cadrul unei noi iterații.
1 și 1
care evidențiază 1 -arii noi respectiv 1 -arii șterși vor fi folosite când se lucrează pe hârtie cu
pix, creion și eventual gumă!
În redactarea pe calculator un 1 -ar nou se va deosebi de cei vechi prin sigla 1nou iar un 1 -ar șters
va fi evidențiat prin sigla 1șters.
A1 A2 A3 A4 A5 A6 A7
S-au adăugat doi 1-ari și a fost șters unul ; L1 X X 1 X X X [A4]
noua mulțime de CAI, vizualizată în tabelul L2 X X X 1
3, arată că se pot atribui 6 din cele 7 L3 1 X X X X
proiecte. L4 X X 1 X X X [A3]
L5 X X X X 1
L6 X 1 X X X X
L7 X X X X X *
[L7] [L7]
Tabelul 3
Iterația 2
Tabelul 4
A1 A2 A3 A4 A5 A6 A7
Notă: dacă mulțimea inițială de CAI ar fi fost L1 X X 1 X X X
construită dupa regula R s-ar fi obținut direct o L2 1 X X X
altă soluție optimă indicată în tabelul 5. L3 X X 1 X X
L4 X X 1 X X X
L5 X 1 X X X
L6 X X X X 1 X
L7 X X X X X
Tabelul 5
𝑢 = 𝑚𝑖𝑛 𝑐 , 𝑗 = 1, … , 𝑛
𝑣 = 𝑚𝑖𝑛 𝑐 − 𝑢 , 𝑖 = 1, … , 𝑚
𝑐̅ = 𝑐 −𝑢 −𝑣
Observație : Prin construcție costurile reduse 𝑐̅ = 𝑐 − 𝑢 − 𝑣 sunt nenegative. În fiecare
rând și în fiecare coloană a matricii 𝑐̅ se găsește cel puțin un zero !
Pasul 1 Se rezolvă o PAS în care atribuirile permise 𝐿 → 𝐴 corespund costurilor reduse nule.
Două rezultate sunt posibile:
I) Toate lucrările au fost repartizate. Aceasta va fi și soluția care minimizează suma
costurilor individuale. Stop
II) Nu s-a reușit repartizarea tuturor lucrărilor. Se trece la:
Pasul 2 (modificarea matricii costurilor reduse curente) Faptul că nu s-a reușit atribuirea tuturor
lucrărilor a rezultat din aplicarea procedurii de marcare din algoritmul de rezolvare a PAS.
Ca urmare:
în matricea costurilor reduse curente 𝑐̅ se taie cu o linie punctată fiecare rând nemarcat
și fiecare coloană marcată.
Notă: Teoria ne asigură că numărul acestor linii este egal cu numărul de lucrări atribuite și că ele
acoperă (taie) toate costurile reduse nule.
Exemplul 4 Antrenorul unei echipe de înot trebuie să Stil Andrei Barbu Costin Dan
stabilească reprezentanții la cele patru stiluri pentru Spate 38 33 34 37
proba de ștafetă 4 × 100 m. Timpii medii (în Bras 43 33 42 36
secunde) ai celor patru membri ai echipei sunt dați în Fluture 33 28 39 31
tabelul alăturat. Antrenorul crede că repartizarea ar Liber 29 26 30 28
trebui făcută astfel încât suma timpilor individuali să
fie minimă.
Soluție:
Start Determinarea matricii costurior reduse inițiale:
𝑐 ui 𝑐 −𝑢 𝑐̅
38 33 34 37 33 5 0 1 4 2 0 0 2
43 33 42 36 33 10 0 9 3 7 0 8 1
33 28 39 31 28 5 0 11 3 2 0 10 1
29 26 30 28 26 3 0 4 2 0 0 3 0
vj 3 0 1 2
Iterația 1
Se rezolvă o PAS în care atribuirile permise corespund costurilor reduse nule :
A1 A2 A3 A4 A1 A2 A3 A4
L1 X 1șters 1nou X [A2] L1 X 1 X
L2 X 1nou X X * L2 X 1 X X [A2]
L3 X X X * L3 X X X *
L4 1 X L4 1 X
[L2] [L1] [L3]