Documente Academic
Documente Profesional
Documente Cultură
Problemele de repartiie sunt probleme n care se urmrete cuplarea a p subieci cu q subieci, iar rezolvarea unei probleme de repartiie const n determinarea cuplajului maxim care se face cu ajutorul algoritmului ungar. Acesta cuprinde 6 etape: 1) Se formeaz matricea C ptratic de ordinul p dac p > q i de ordinul q dac p < q. 2) Obinerea de zerouri. Se scade minorantul fiecrei linii din toate elementele liniei respective obinnd astfel cel puin cte un 0 pe fiecare linie a matricei C. Dac n urma acestei operaii exist coloane care nu conin 0, se scade minorantul fiecrei coloane n cauz din toate elementele coloanei respective. Se obine astfel cel puin cte un 0 pe fiecare linie i coloan a matricei C. 3) n matricea C1 obinut din matricea C dup parcurgerea etapei a doua se caut un cuplaj maxim prin operaia de ncadrare i barare de zerouri astfel: - se ncadreaz un 0 situat pe linia cu cele mai puine zerouri i se bareaz (taie) toate celelalte zerouri aezate pe linia i coloana zeroului ncadrat; - se repet aceast operaie pn cnd toate zerourile matricei C1 au fost ncadrate sau barate. Dac se obine cte un 0 ncadrat pe fiecare linie i coloan, s -a obinut cuplajul maxim. n caz contrar se trece la etapa urmtoare. 4) Cutarea unui cuplaj maxim printr-o marcare a liniilor i coloanelor astfel: - se marcheaz liniile care nu conin nici un 0 ncadrat; - se marcheaz coloanele care conin zerouri tiate pe liniile deja marcate; - se marcheaz liniile care conin un 0 ncadrat pe coloanele deja marcate; - se repet aceste operaii pn cnd nu mai este posibil s se obin alte linii sau coloane marcate. 5) n matricea C1 se taie toate liniile nemarcate i coloanele marcate. Minorantul elementelor rmase netiate se adaug elementelor dublu tiate, se scade din elementele netiate, lsnd neschimbate elementele simplu tiate. Se obine o nou matrice C2. 6) Pe matricea C2 se repet procedeul de ncadrare i tiere a zerourilor. Se procedeaz n continuare aa cum s-a artat mai sus, pn cnd se obine cte un 0 ncadrat pe fiecare linie i coloan, deci se obine cuplajul maxim. Soluia optim poate s nu fie unic.
Aplicaie 1. Se consider 4 beneficiari care urmeaz s se aprovizioneze cu marf de la 7 centre de distribuie. Distanele de transport (n km) sunt date n tabloul urmtor. S se determine repartiia optim a beneficiarilor pe centre de distribuie creia i corespunde o distan total de transport minim cu condiia ca fiecare beneficiar s aprovizioneze cel puin de la un centru i cel mult de la dou.
Centre Beneficiari
x1 x2 x3 x4
y1 3 4 4 5
y2 5 6 7 8
y3 2 2 3 3
y4 7 6 8 8
y5 4 5 5 5
y6 6 7 8 7
y7 6 8 7 5
Rezolvare: Se formeaz o matrice ptratic adugnd 3 beneficiari fictivi (x5, x6, x7).
Centre Beneficiari
x1 x2 x3 x4 x5 x6 x7
y1 3 4 4 5 0 0 0
y2 5 6 7 8 0 0 0
y3 2 2 3 3 0 0 0
y4 7 6 8 8 0 0 0
y5 4 5 5 5 0 0 0
y6 6 7 8 7 0 0 0
y7 6 8 7 5 0 0 0
Minorantul
2 2 3 3 0 0 0
x1 x2 x3 x4 x5 x6 x7
y1 1 2 1 2 0 0 0
y2 3 4 4 5 0 0 0
y3 0 0 0 0 0 0 0
y4 5 4 5 5 0 0 0
y5 2 3 2 2 0 0 0
y6 4 5 5 4 0 0 0
y7 4 6 4 2 0 0 0
Exist pe fiecare linie i coloan cel puin cte un 0, aa c se poate trece la ncadrarea i tierea zerourilor.
Centre Beneficiari
Y1 1 2 1 2 0 0 0
y2 3 4 4 5 0 0 0
y3 0 0 0 0 0 0 0
y4 5 4 5 5 0 0 0
y5 2 3 2 2 0 0 0
y6 4 5 5 4 0 0 0
y7 4 6 4 2 0 0 0
x1 x2 x3 x4 x5 x6 x7
Pentru c pe liniile 2, 3, 4 i pe coloanele 5, 6, 7 nu se gsete nici un 0 ncadrat, se continu algoritmul cu marcarea liniilor i coloanelor.
Centre Beneficiari
y1 1 2 1 2 0 0 0
y2 3 4 4 5 0 0 0
y3 0 0 0 0 0 0 0
y4 5 4 5 5 0 0 0
y5 2 3 2 2 0 0 0
y6 4 5 5 4 0 0 0
y7 4 6 4 2 0 0 0
x1 x2 x3 x4 x5 x6 x7
Minorantul elementelor rmase netiate este 1. El se adaug elementelor dublu tiate, se scade din elementele netiate, lsnd neschimbate elementele simplu tiate.
Centre Beneficiari
y2 2 3 3 4 0 0 0 y3 0 0 0 0 1 1 1 y4 4 3 4 4 0 0 0 y5 1 2 1 1 0 0 0 y6 3 4 4 3 0 0 0 y7 3 5 3 1 0 0 0
y1 0 1 0 1 0 0 0
x1 x2 x3 x4 x5 x6 x7
Minorantul elementelor rmase netiate este 1. El se adaug elementelor dublu tiate, se scade din elementele netiate, lsnd neschimbate elementele simplu tiate.
Centre Beneficiari
y1 0 1 0 1 1 1 1
y2 1 2 2 3 0 0 0
y3 0 0 0 0 2 2 2
y4 3 2 3 3 0 0 0
y5 0 1 0 0 0 0 0
y6 2 3 3 2 0 0 0
y7 2 4 2 0 0 0 0
x1 x2 x3 x4 x5 x6 x7
n matricea de mai sus pe fiecare linie i pe fiecare coloan exist cte un 0 ncadrat, deci cuplajul este maxim. Soluia optim gsit este: x1 y1 x2 y3 x3 y5 x4 y7 x5 y2 x6 y4 x7 y6 De la centrele y2, y4 i y6 se aprovizioneaz beneficiari fictivi (x5, x6, x7). De la aceste centre va trebui s se aprovizioneze beneficiari reali (x1, x2, x3, x4). Vom forma o matrice ptratic, introducnd un depozit fictiv.
Centre Beneficiari
x1 x2 x3 x4
y2 5 6 7 8
y4 7 6 8 8
y6 6 7 8 7
y8 0 0 0 0
Minorantul fiecrei linii este 0. Pe fiecare linie se gsete cte un 0, ns pe primele 3 coloane nu se gsete nici un 0. Minorantul acestor coloane este, n ordine: 5, 6, 6. Acesta se scade din coloana pe care se afl.
Centre Beneficiari
x1 x2 x3 x4
y2 0 1 2 3
y4 1 0 2 2
y6 0 1 2 1
y8 0 0 0 0
n matricea de mai sus avem pe fiecare linie i coloan cel puin un 0. Se trece la ncadrarea i bararea zerourilor.
Centre Beneficiari
y2 0 1 2 3
y4 1 0 2 2
y6 0 1 2 1
y8 0 0 0 0
x1 x2 x3 x4
Linia a IV-a i coloana a III-a nu conin nici un 0 ncadrat, se trece aadar la marcarea liniilor i coloanelor. y8 0 0 0 0
Centre Beneficiari
y2 0 1 2 3
y4 1 0 2 2
y6 0 1 2 1
x1 x2 x3 x4
Minorantul elementelor rmase netiate este 1. El se adaug elementelor dublu tiate, se scade din elementele netiate, lsnd neschimbate elementele simplu tiate.
Centre Beneficiari
y2 0 1 1 2
y4 1 0 1 1
y6 0 1 1 0
y8 1 1 0 0
x1 x2 x3 x4
Fiecare linie i coloan conine cte un zero ncadrat, deci soluia gsit este optim (avem cuplaj maxim): x1 y2 x2 y4 x3 y8 x4 y6 innd cont i de soluia determinat anterior, soluia problemei este: x1 x1 x1 x1 y1 y2 y3 y4 y5 y6 y7