Sunteți pe pagina 1din 11

CAPITOLUL IV

REPARTIZAREA LUCRRILOR PE EXECUTANI PE BAZA


CHELTUIELILOR TOTALE MINIME PRIN METODE ALE CERCETRII
OPERAIONALE
Aceast perfecionare a programrii operative se poate realiza prin metodele cercetrii
operaionale, care implic alocarea executanilor direci la nivelul sarcinilor de producie, o sarcin de
producie putnd utiliza o combinaie de executani (fig. 3.1).

Fig. 3.1 Repartizare tip distribuire


ntr-o problem de afectare (repartizare) intervin n resurse (R1, R2,.....Rn) care trebuie repartizate la
n activiti (A1, A2,.....An), astfel nct:
- fiecare resurs s fie repartizat la cte o singur activitate;
- fiecrei activiti s i se repartizeze cte o singur resurs,

Aj
Ri
R1
R2
.
.
.
Ri
.
.
.
Rn

A1 A2
c11
c21
.
.
.
ci1
.
.
.
cn1

...

Aj

An

c12 .. c1j ..
c22 .. c2j ..

c1n
c2n

ci2 ... cij ... cin

cn2 ... cnj ... cnn

unde cij- costul corespunztor repartizrii Ri pe activitile A j .


Observaie. Termenul de cost ataat unei perechi (R i, A j ) are un sens larg, de valoare ataat acestei
perechi i poate avea diferite interpretri: consum de timp, cheltuial bneasc, beneficiu unitar, procentaj
de rebuturi, randament, etc.

Pentru scrierea modelului matematic al problemei fixm n2 variabile (necunoscutele problemei)


astfel:

Aj
Ri
R1
R2
.
.
.
Ri
.
.
.
Rn

A1 A2
x11
x21
.
.
.
xi1
.
.
.
xn1

...

Aj

An

x12 .. x1j .. x1n


x22 .. x2j .. x2n

xi2 .. xij

xin

xn2 .. xnj .. xnn

Convenim ca variabilele fixate s poat lua valori egale cu 0 sau cu 1, astfel nct:
x ij 1

xij 0

dac resursa Ri este repartizat activitii A j ;

dac resursa Ri nu este repartizat activitii A j .

Faptul c resursele R1,...,Rn sunt afectate unei singure activiti, se pot scrie urmtoarele egaliti:

x11 x12 ..... x1n 1


x x .... x 1
21
22
2n

...................................
x n1 x n 2 .... x nn 1
Se observ c egalitatea nu poate avea loc dect dac un termen este egal cu 1 iar toi ceilali
sunt egali cu zero.
n

Aceasta poate fi scris condensat astfel:

x
j 1

ij

1,

i 1, n

Restriciile care impun ca fiecrei activiti s-i fie repartizat o singur resurs sunt:

x11 x 21 ..... x n1 1
x x .... x 1
12
22
n2

...................................
x1n x 2 n .... x nn 1
n

Condensat, aceste relaii se scriu astfel:

x
i 1

ij

1,

j 1, n

Costul total se calculeaz cu formula:

Z (c11 x11 c12 x12 .... c1n x1n ) (c 21 x 21 c 22 x 22 .... c 2 n x 2 n ) ..... (c n1 x n1 c n 2 x n 2 .... c nn x nn )
n

cij xij
i 1 j 1

Observaie. Aceast sum se reduce la suma acelor costuri C ij care corespund la valori xij 1 .
Modelul matematic al problemei de afectare va fi:

opt Z

c
i 1 j 1

ij

xij

ij

1,

i 1,2,..., n

ij

1,

j 1,2,..., n

x 0,1 ,
ij

i 1,2,..., n,

j 1

i 1

j 1,2,..., n

n repartizarea sarcinilor pe executani se folosete algoritmul ungar al lui EgervahryKuhn, utilizat ndeosebi pentru determinarea unui cuplaj maxim ntr-un graf corespunztor unui
cost total minim. Aplicat eficientizrii repartizrii sarcinilor pe muncitori, el folosete o matrice
de baz, n care coloanele sunt lucrrile atribuite iar liniile reprezint lucrtorii, n ale crei
csue se nscriu timpii necesari executrii sarcinilor primite.
n continuare, prezentm pe scurt noiunile de baz necesare aplicrii algoritmului ungar i
anume:
- cuplajul unui graf G, care reprezint o mulime de arce E, astfel nct dou arce din E s
nu fie adiacente (K);
- suportul matricei A, notat cu S(A), care reprezint mulimea de linii i coloane a cror
suprimare duce la dispariia tuturor zerourilor matricei A. Evident c pentru o matrice dat poate
exista o familie de suporturi : notm mulimea lor cu .
Suportul care posed numrul minim de linii i coloane se numete suportul minimal al
matricei A.
(A) = min
Notm cu (A) numrul de elemente ale suportului minimal, adic
S(A) , S(A) .
Spre exemplu, pentru matricea A = | aij | de mai jos, unde i = 1, ..., 5 i y = 1, ..., 7 se pot
considera suporturile :
Y1

Y2

X1

Y3

Y4

Y5

Y6

Y7

X2

X3

X4
X5

0
S1 A x1 , x 2 , x 3 , x 5

S2 A y 2 , y 4 , y 5 , y 6 , y 7
S3 A x1 , x 3 , y 7

S4 A x 1 , x 2 , x 3 , y 7

Se observ c suportul minimal este S3(A) = x1 , x 3 , y 7 i c (A) = |S3(A)| = 3.


Din punct de vedere economic, existena unor cheltuieli diferite pentru fiecare repartiie
x i , yi impune ca odat cu determinarea cuplajului maxim s se obin i costul total minim legat
de repartizri.
Fie matricea A asociat unui graf, n care elementele a ij, i = 1, ..., 5 i j = 1, ..., 5, reprezint costurile
corespunztoare repartiiilor x i , y i , adic:
Y1

Y2

Y3

Y4

Y5

X1

X2

X3

X4

X5

S considerm dou cuplaje maxime arbitrare, pe care le notm cu K 1 A i K 2 A :

K 1 A x1 , y 4 , x 2 , y 2 , x 3 , y1 , x 4 , y 3 , x 5 , y 5

K 2 A x1 , y1 , x 2 , y 5 , x 3 , y 4 , x 4 , y 2 , x 5 , y3
Notm cu C K 1 i C K 2 costurile totale ale cuplajelor maxime de mai sus,
determinate astfel:

C K 1 = C14 + C22 + C31 + C43 + C55 = 6 + 3 + 7 + 3 + 9 = 28,


C K 2 = C11 + C25 + C34 + C42 + C53 = 2 + 5 + 3 + 5 + 5 = 20.
Diferena dintre cele dou costuri este:

C K 1 C K 2 = 28 20 = 8.

Se demonstreaz c diferena costurilor totale nu se schimb dac din fiecare element al


unei linii din A scdem minorantul elementelor liniei respective i i apoi din matricea A1,
astfel obinut, scdem din elementele coloanelor un alt minorant j .
Pe baza celor precizate, s urmrim n continuare etapele aplicrii algoritmului ungar:
Etapa 1: Se scade minorantul fiecrei linii din toate elementele liniei respective, obinnduse astfel cte un zero pe fiecare linie a matricei A. Dac n urma acestei operaii exist coloane
care nu conin zerouri, se scade minorantul fiecrei coloane din toate elementele coloanei
respective.
Etapa 2: Fie A matricea obinut n urma operaiilor din etapa 1. Determinm un cuplaj
maxim n A prin procedeul de ncadrare i tiere a zerourilor. Dac se obine cte un zero
ncadrat pe fiecare linie i pe fiecare coloan, atunci (A) este egal cu n, dimensiunea matricei A
i cuplajul este maxim, obinndu-se soluia optim. n caz contrar, se trece la etapa urmtoare.

Etapa 3: Cutm suportul minim printr-un procedeu de marcare a liniilor i coloanelor


astfel :
- marcm liniile care nu conin zerouri ncadrate i coloanele care au zerouri tiate pe liniile
marcate;
- marcm liniile cu zero ncadrat pe coloanele marcate;
Etapa 4: n matricea A tiem toate liniile nemarcate i coloanele marcate. Minorantul
elementelor netiate l adunm elementelor dublu tiate, l scdem din elementele netiate, lsnd
neschimbate elementele simplu tiate, obinnd matricea A .n matricea A repetm operaia de
ncadrare i tiere a zerourilor. Dac dup aceast operaie obinem (A) = n, algoritmul ia
sfrit obinndu-se soluia optim. n caz contrar, se reiau operaiile corespunztoare etapelor 3 i
4.
Dac exist mai multe lucrri dect executani, trebuie precizat ce lucrare nu va fi ndeplinit sau
ce resurse suplimentare se achiziioneaz.
S considerm urmtorul exemplu pentru a nelege modul de aplicare al algoritmului ungar. ntrun sector dintr-o ntreprindere de prelucrare a lemnului ase muncitori execut ase lucrri la diferite
componente ale unei garnituri de mobil. n matricea de mai jos se indic timpul n minute de executare a
unei lucrri Li la muncitorul Mj:

Y1 Y2 Y3 Y4 Y5 Y6

A=

X1

X2

X3

X4

X5

X6

Am indicat prin faptul c o anume lucrare nu se poate atribui unui muncitor.


. n condiiile n care timpii de lucru pe fiecare lucrare sunt indicai n matricea A de mai sus, se cere
s fac o repartizare a lucrrilor pe muncitori astfel ca suma timpilor cheltuii pentru prelucrare s fie
minim.
Etapa 1: Scznd din elementele fiecrei linii minorantul i al liniei respective, obinem matricea
A1. Minoranii i sunt trecui n prelungirea matricei A.
Y1 Y2 Y3 Y4 Y5 Y6

A=

X1

X2

X3

X4

X5

X6

Deoarece nu s-a obinut cte un zero i pe fiecare coloan, scdem din elementele fiecrei coloane a
matricei A1 minoranii j i obinem matricea A . Minoranii j sunt trecui n prelungirea matricei
A1.
Y1 Y2 Y3 Y4 Y5 Y6

X1

X2

X3

X4

X5

X6

Etapa 2: Se ncadreaz un zero de pe o linie cu cele mai puine zerouri, tind celelalte zerouri de pe
linia i coloana zeroului ncadrat. Pe liniile rmase repetm operaia pn ce toate zerourile au fost sau
ncadrate sau tiate.
Astfel procednd, n matricea A se obine:

Y1 Y2 Y3 Y4 Y5 Y6

X1

X2

X3

X4

X5

X6

Deoarece s-a obinut suportul minim (A) = 6, algoritmul ia sfrit. Lui (A) astfel determinarea i
corespunde cuplajul maxim

K A x1 , y 5 , x 2 , y1 , x 3 , y 4 , x 4 , y 3 , x 5 , y 2 , x 6 , y 6

i suma minim a timpilor de prelucrare va fi : 2+1+1+1+2+2 = 9 min


ntruct la ncadrarea zerourilor am avut posibilitatea alegerii, acest lucru ne arat c soluia nu este
unic, existnd i alte modaliti cu suma minim a timpilor de prelucrare tot cu valoarea 9, astfel:
Y1 Y2 Y3

Y4

Y5

Y6

X1

X2

X3

X4

X5

X6

Se observ c ncadrarea zerourilor de pe poziiile x 3 , y 4 , x 4 , y 3 , x1 , y 5 este unic. n consecin,


se poate ncadra un zero de pe linia lui x 2 , x 5 sau x 6 obinnd o alt variant a suportului U(A) la care i
corespunde cuplajul maxim :

K A x1 , y 5 , x 2 , y1 , x 3 , y 4 , x 4 , y 3 , x 5 , y 6 , x 6 , y 2

Suma minim a timpilor de prelucrare va fi tot 2 + 1 + 1 + 1 + 2 + 2 = 9


S supunem ateniei, n continuare, un alt exemplu referitor la executarea a cinci lucrri de ctre
cinci executani, de aceast dat cu parcurgerea integral a algoritmului ungar. n condiiile n care timpii
de lucru pe fiecare lucrare sunt indicai n matricea A de mai jos, se cere s fac o repartizare a lucrrilor
pe muncitori astfel ca suma timpilor cheltuii pentru prelucrare s fie minim.
Y1 Y2 Y3 Y4 Y5

X1

20

10

25

X2

10

15

A= X3

10

15

X4

20

X5

25

20

Etapa 1. Dac scdem din elementele fiecrei linii minorantul i al liniei respective, obinem
matricea A1.
Minoranii i sunt trecui n prelungirea matricei A.
Y1 Y2 Y3 Y4 Y5
X1

15

20

X2

10

15

A1= X3

X4

15

X5

25

20

Se observ c s-a
linie a matricei, ns coloana a
minorantul j al fiecrei
respective, obinndu-se matricea A .

0
obinut cte un zero pe fiecare
doua nu conine zero. Scdem
coloane din toate elementele

Y1

Y2

Y3

Y4

Y5

X1

15

20

X2

10

15

X3

X4

15

21

20

X5
Etapa 2. Determinm
procedeul de ncadrare i tiere a zerourilor.

0
un cuplaj maxim n A prin

Y1 Y2 Y3 Y4 Y5
X1

15

20

X2

10

15

X4

15

X5

21

A X3

20

Deoarece (A) = 4 n = 5, se trece la etapa urmtoare.


Etapa 3. Se caut suportul minim prin procedeul de marcare a liniilor i coloanelor.
Y1 Y2 Y3 Y4 Y5

X1

15

20

X2

10

15

X3

X4

15

X5

21

20

0
*

*
Am marcat linia x 5 care nu conine zerouri ncadrate i coloana y 4 care are zerouri tiate pe linia
marcat x 5 . Totodat, marcm i linia x 2 care conine zero ncadrat pe coloana marcat y 4 .
Etapa 4. n matricea A tiem toate liniile nemarcate i coloanele marcate, adic linile x1 , x 3 , x 4 i
coloana y 4 .
Y1 Y2 Y3 Y4 Y5

X1

15

20

X2

10

15

X3

X4

15

X5

21

20

0
*

0
*

n matricea A minorantul elementelor netiate (este 10) l adunm elementelor dublu-tiate (prin
tiere de linii i coloane) i l scdem din elementele netiate, iar elementele simplu tiate rmn
neschimbate. Obinem astfel matricea A :

Y1 Y2 Y3 Y4 Y5

A =

X1

15

30

X2

X3

X4

15

X5

11

10

n matricea A repetm operaia de ncadrare i tiere a zerourilor.


Y1 Y2 Y3 Y4 Y5

A =

X1

15

30

X2

X3

X4

15

X5

11

10

Suportul minim (A) fiind egal cu 5, i corespunde cupajul maxim:


K(A) = x1 , y 5 , x 2 , y1 , x 3 , y 2 , x 4 , y 3 , x 5 , y 4
Valoarea minim a timpilor de prelucrare va fi : 5 + 10 + 10 + 5 + 0 = 30
Cuplajul maxim, corespunztor suportului minim, respectiv valorii minime a timpilor de prelucrare,
este redat de graful din fig. 3.2.
X1
X2
X3
X4
X5

Y1
Y2
Y3
Y4
Y5

Fig. 3.2. Graful corespunztor suportului minim

(A) = 5