Sunteți pe pagina 1din 36

ALOCAREA RESURSELOR

UMANE
Problemele de alocare apar de obicei n procesul
repartizrii sarcinilor de ndeplinit angajailor dintr-o
ntreprindere.
1. Alocarea optim a angajailor pe
lucrri de
executat
Noiuni teoretice
Fie A
1
,...,A
n
persoanele care sunt desemnate s execute
lucrrile L
1
,...,L
m
. Din cauza calificrii diferite a fiecrui angajat,
acesta poate executa numai anumite lucrri.
Problema const n repartizarea angajailor pe activiti
astfel nct s se poat realiza n total ct mai multe lucrri.
Fie deci f:{A
1
,...,A
n
}P {L
1
,...,L
m
}, f(A
i
)=
{ }
k 1
i i
L ,..., L

i=1,...,n funcia care repartizeaz angajatului A
i
lucrrile
k 1
i i
L ,..., L
pe care acesta este capabil s le execute. Vom
presupune ipoteza suplimentar c
n
1 i
i
) A ( f

={L
1
,...,L
m
} sau
altfel spus totalitatea angajailor este capabil s execute
totalitatea lucrrilor. n caz contrar, vom considera numai
lucrrile L
i
ce fac parte din
n
1 i
i
) A ( f

.
Apar acum trei situaii:
1. Dac n=m atunci fiecrui angajat i va fi repartizat n mod
unic o lucrare i deci problema este rezolvat.
2. Dac n>m atunci vor exista angajai care nu vor fi repartizai
la nici-o lucrare.
3. Dac n<m atunci vor rmne lucrri descoperite i deci se
pune problema alocrii fiecrui angajat a unei lucrri astfel
nct numrul acestora s fie maxim. Ne vom ocupa n
continuare de aceast problem.
Pentru soluionarea acestei probleme, s considerm
graful orientat a crui mulime de noduri este ansamblul
angajailor i a lucrrilor adic {A
1
,...,A
n
,L
1
,...,L
m
} i ale crui arce
sunt date de funcia f. Vom avea deci un arc de la A
i
la L
j
dac
angajatul i poate executa lucrarea j.
Vom exemplifica acest fenomen pe urmtorul:
Exemplu
Fie angajaii A
1
,A
2
,A
3
,A
4
,A
5
,A
6
i lucrrile L
1
,L
2
,L
3
,L
4
,L
5
,L
6
,L
7
a cror posibilitate de execuie este dat n tabelul nr.1.
Tabelul nr.1
Angaja
t
Lucrare posibil de
executat
A
1
L
1
,L
3
,L
7
A
2
L
1
,L
2
,L
4
A
3
L
2
,L
4
,L
6
A
4
L
1
,L
4
,L
7
A
5
L
4
,L
5
A
6
L
5
,L
6
Graful obinut este dat n figura 16.
Un graf analog celui din figura 16 se numete graf simplu
sau graf bipartit. Mai general, un graf simplu este un graf
G=(X,U) a crui mulime de noduri se partiioneaz sub forma
X=AB astfel nct (x,y)UxA, yB.
Fig.16
106
Considernd matricea asociat grafului G=(X,U) unde
X={x
1
,...,x
n
} definit astfel: M=(a
ij
) unde: a
ij
=

'

U ) x , (x daca 0
; U ) x , (x daca 1
j i
j i

rezult c graful este simplu dac i numai dac dup o
eventual renumerotare a nodurilor (echivalent cu permutarea
liniilor i coloanelor corespondente) matricea M are structura:
M=
n
1 i
i
1
in 1 ii
n 1 1 i 1
n 1 i i 1
x
...
x
x
...
x
0 ... 0 0 ... 0
... ... ... ... ... ...
0 ... 0 0 ... 0
a ... a 0 ... 0
... ... ... ... ... ...
a ... a 0 ... 0
x ... x x ... x
+
+
+
+

,
_

Astfel graful din fig.16, are urmtoarea matrice asociat:


M=
7
6
5
4
3
2
1
6
5
4
3
2
1
7
L
6
L
5
L
4
L
3
L
2
L
1
L
6
A
5
A
4
A
3
A
2
A
1
A
L
L
L
L
L
L
L
A
A
A
A
A
A
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 1 0 0 0 0 0 0
0 1 0 1 0 1 0 0 0 0 0 0 0
0 0 0 1 0 1 1 0 0 0 0 0 0
1 0 0 0 1 0 1 0 0 0 0 0 0

,
_

deci este ntr-adevr un graf simplu.


Pentru simplificarea lucrurilor se poate considera
submatricea:
107
M'=
i
1
in 1 ii
n 1 1 i 1
n 1 i
x
...
x
a ... a
... ... ...
a ... a
x ... x

,
_

+
+
+
.
Pentru graful din fig.16 aceasta devine:
M'=
6
5
4
3
2
1
7
L
6
L
5
L
4
L
3
L
2
L
1
L
A
A
A
A
A
A
0 1 1 0 0 0 0
0 0 1 1 0 0 0
1 0 0 1 0 0 1
0 1 0 1 0 1 0
0 0 0 1 0 1 1
1 0 0 0 1 0 1

,
_

Fiind dat un graf simplu G=(AB,U) vom numi, de


asemenea, cuplaj al lui XA pe YB dac exist o aplicaie
bijectiv f:XY astfel nct (x,f(x))U xX. Din cauza
injectivitii, rezult c dac x yf(x) f(y) deci arcele cuplajului
nu sunt adiacente. Arcele unui cuplaj se numesc arce dure,
celelalte arce ale grafului numindu-se arce fine. Cuplajul cu
un numr maxim de arce se numete maximal.
1. Teorem ( Knig-Hall ) Fiind dat un graf simplu G=(AB,U)
exist un cuplaj de la A la B dac i numai dac
XA rezult card{yB|(x,y)U,xX} card X.
Notnd =
A X
max

(card X-card{yB|(x,y)U,xX})-
deficiena grafului simplu G=(AB,U) rezult, conform
teoremei Knig-Hall c exist un cuplaj de la A la B dac i
numai dac 0.
De asemenea, trebuie observat c dac din fiecare nod al
lui A pleac cel puin un arc, condiiile teoremei Knig-Hall sunt
ndeplinite. Din punct de vedere matriceal, teorema Knig-Hall
are soluie dac i numai dac matricea asociat simplificat M'
are cel puin un 1 pe fiecare linie.
Problema enunat are soluie dac i numai dac are loc
teorema
Knig-Hall.
Determinarea unui cuplaj se poate face pe matricea M'
prin metoda colului de nord-vest (o vom numi astfel prin
108
analogie cu metoda corespunztoare problemei de transport din
teoria optimizrilor liniare) astfel:
1. Pe prima linie a matricei M' se caut un element egal cu 1.
Dac un astfel de element nu exist atunci teorema Knig-
Hall nu este valabil i deci problema nu are soluie.
2. Dac am gsit un astfel de element pe linia 1 i coloana j se
taie aceast linie i aceast coloan i se reia procedeul de
la nceput.
3. Dac n final, am obinut elemente pe toate liniile matricei M'
atunci cuplajul este maximal.
n cazul nostru avem elementul de la intersecia liniei A
1
cu coloana L
1
egal cu 1 deci arcul (A
1
,L
1
) este dur. Dup tierea
primei linii i a primei coloane matricea devine:
M'
1
=
6
5
4
3
2
7
L
6
L
5
L
4
L
3
L
2
L
A
A
A
A
A
0 1 1 0 0 0
0 0 1 1 0 0
1 0 0 1 0 0
0 1 0 1 0 1
0 0 0 1 0 1

,
_

Considerm acum elementul (A


2
,L
2
) care este egal cu 1 i
deci arcul (A
2
,L
2
) este dur. Matricea obinut este:
M'
2
=
6
5
4
3
7
L
6
L
5
L
4
L
3
L
A
A
A
A
0 1 1 0 0
0 0 1 1 0
1 0 0 1 0
0 1 0 1 0

,
_

Urmtorul element egal cu 1 este (A


3
,L
4
) deci acest arc
este dur. Avem:
M'
3
=
6
5
4
7
L
6
L
5
L
3
L
A
A
A
0 1 1 0
0 0 1 0
1 0 0 0

,
_

Urmtorul arc dur este (A


4
,L
7
) de unde:
M'
4
=
6
5
6
L
5
L
3
L
A
A
1 1 0
0 1 0

,
_

109
Avem acum arcul dur (A
5
,L
5
) i M'
5
=
( )
6
6
L
3
L
A 1 0
, iar n final
arcul dur (A
6
,L
6
) ncheie algoritmul.
Alocarea angajailor pe lucrri este sugerat n fig.17 (cu
linii ngroate).
Considernd acum exemplul din fig.18 i procednd ca
mai sus, obinem matricea:
M'=
6
5
4
3
2
1
7
L
6
L
5
L
4
L
3
L
2
L
1
L
A
A
A
A
A
A
0 1 1 0 0 0 0
0 0 0 1 0 0 0
1 0 0 1 0 0 1
0 1 0 0 0 1 0
0 0 0 1 0 1 1
1 0 0 0 1 0 1

,
_

.
Fig.17 Fig.18
110
i deci arcele dure: (A
1
,L
1
), (A
2
,L
2
), (A
3
,L
6
), (A
4
,L
4
), (A
6
,L
5
). Cum lui
A
5
nu i este repartizat nici-o lucrare rezult c este posibil ca
acest cuplaj s nu fie maximal.
O alt metod de determinare a unui cuplaj iniial const
n desemnarea arcelor dure pe liniile care au cele mai puine
elemente egale cu 1. Este evident c metoda urmrete
alocarea mai nti a angajailor cel mai puin diversificai,
lsnd la urm pe cei cu pregtire mai vast. Astfel, n cel de-al
doilea exemplu, primul arc dur va fi (A
5
,L
4
), apoi (A
2
,L
1
), (A
4
,L
7
),
(A
1
,L
3
), (A
3
,L
2
) i (A
6
,L
5
).
Cuplajul este deci maximal.
Dac ns nici aceast metod nu duce la un cuplaj
maximal, vom proceda la o schimbare a repartizrii lucrrilor
pn cnd cuplajul va ndeplini condiia de maximalitate
1
.
Pasul 1 Fie deci C
1
cuplajul obinut prin metoda colului de nord-
vest: (A
1
,L
1
), (A
2
,L
2
), (A
3
,L
6
), (A
4
,L
4
), (A
6
,L
5
).
Pasul 2 Determinm graful arcelor cuplajului C
1
obinut astfel:
nodurile acestuia sunt arcele cuplajului C
1
, iar ntre dou noduri
(A
i
,L
j
) i (A
k
,L
p
) exist un arc dac exist n graful iniial arcul
(A
i
,L
p
) deci care leag extremitatea iniial a lui (A
i
,L
j
) de
1
Stancu-Minasian I.M., Studiul problemei de afectare folosind teoria
grafelor, Studii i cercetri de calcul economic i cibernetic
economic, 5, 1970
111
extremitatea terminal a lui (A
k
,L
p
). Obinem deci graful din
figura 19.
Fig.19
Pasul 3 Se determin apoi relativ la mulimea nodurilor saturate
(acele noduri care sunt extremiti ale arcelor dure) mulimile
C
1+
i C
1-
a nodurilor grafului arcelor care sunt extremiti
terminale respectiv iniiale ale arcelor acestuia (fig.19).
Pasul 4 Exist dou posibiliti: dac ntre C
1+
i C
1-
nu exist
nici-un drum atunci cuplajul C
1
este maximal i algoritmul se
ncheie. Dac ntre C
1+
i C
1-
exist un drum atunci se
construiete un lan alternat (succesiune de arce fine i dure) cu
originea ntr-unul din nodurile A
i
rmas nealocat n cuplajul C
1
urmrindu-se determinarea unui cuplaj C
2
care s aib un
numr mai mare de arce n raport cu cuplajul anterior. Este
evident c dac C
1+
C
1-
atunci un astfel de drum exist
ntotdeauna.
n cazul problemei noastre, fie (A
2
,L
2
)-(A
4
,L
4
) drumul
cutat (care aparine interseciei mulimilor C
1+
i C
1-
). Avem
urmtorul lan alternat: (A
5
,L
4
), (L
4
,A
4
), (A
4
,L
1
), (L
1
,A
1
), (A
1
,L
7
).
Vom considera drept nou cuplaj mulimea C
2
={(A
5
,L
4
),
(A
4
,L
1
), (A
1
,L
7
), (A
2
,L
2
), (A
3
,L
6
), (A
6
,L
5
)} obinut prin considerarea
arcelor fine din lanul alternat i a arcelor dure rmase din C
1
.
Pasul 5 Procedeul se continu de la pasul 2 pn la obinerea fie
a condiiei din pasul 4, fie la determinarea unui numr maximal
de arce.
n situaia problemei prezentate, cum numrul de arce
este maximal (6), aceasta este complet rezolvat.
Ca o observaie, trebuie remarcat faptul c alocarea nu
este, n general, unic. De asemenea, algoritmul prezentat mai
sus rmne valabil i dac numrul angajailor este mai mare
dect numrul lucrrilor de executat.
Aplicaii
1. Fie ntr-o instituie un numr de 7 salariai care sunt
desemnai s execute 8 lucrri. Disponibilitatea acestora
de a le executa este dat n tabelul nr.2
Tabelul nr.2
Angaja
t
Lucrare posibil de
executat
A
1
L
1
,L
3
,L
5
,L
7
A
2
L
1
,L
3
,L
4
,L
8
A
3
L
2
,L
4
,L
6
A
4
L
2
,L
4
,L
7
,L
8
112
A
5
L
4
,L
5
,L
7
A
6
L
5
,L
6
,L
8
A
7
L
1
,L
3
,L
7
,L
8
S se efectueze o distribuire a angajailor pe lucrri astfel
nct acetia s execute un numr ct mai mare de sarcini.
Soluie
Graful obinut este dat n figura 20.
Matricea M' asociat grafului este:
M'=
7
6
5
4
3
2
1
8
L
7
L
6
L
5
L
4
L
3
L
2
L
1
L
A
A
A
A
A
A
A
1 1 0 0 0 1 0 1
1 0 1 1 0 0 0 0
0 1 0 1 1 0 0 0
1 1 0 0 1 0 1 0
0 0 1 0 1 0 1 0
1 0 0 0 1 1 0 1
0 1 0 1 0 1 0 1

,
_

Fig.20
Pentru determinarea unui cuplaj iniial vom aplica
metoda liniilor cu cele mai puine elemente de 1.
Avem astfel pe linia a treia elementul (A
3
,L
2
). Tind linia i
coloana corespunztoare, rezult:
113
M'
1
=
7
6
5
4
2
1
8
L
7
L
6
L
5
L
4
L
3
L
1
L
A
A
A
A
A
A
1 1 0 0 0 1 1
1 0 1 1 0 0 0
0 1 0 1 1 0 0
1 1 0 0 1 0 0
1 0 0 0 1 1 1
0 1 0 1 0 1 1

,
_

Urmtoarea alocare este (A


4
,L
4
) de unde:
M'
2
=
7
6
5
2
1
8
L
7
L
6
L
5
L
3
L
1
L
A
A
A
A
A
1 1 0 0 1 1
1 0 1 1 0 0
0 1 0 1 0 0
1 0 0 0 1 1
0 1 0 1 1 1

,
_

Pe a treia linie avem numai dou elemente egale cu 1


deci alocarea (A
5
,L
5
), matricea redus devenind:
M'
3
=
7
6
2
1
8
L
7
L
6
L
3
L
1
L
A
A
A
A
1 1 0 1 1
1 0 1 0 0
1 0 0 1 1
0 1 0 1 1

,
_

Dup alocarea (A
6
,L
6
) rezult:
M'
4
=
7
2
1
8
L
7
L
3
L
1
L
A
A
A
1 1 1 1
1 0 1 1
0 1 1 1

,
_

Urmeaz (A
1
,L
1
) i matricea:
M'
5
=
7
2
8
L
7
L
3
L
A
A
1 1 1
1 0 1

,
_

De pe prima linie rezult alocarea (A


2
,L
3
) i matricea:
M'
6
=
( )
7
8
L
7
L
A 1 1
114
iar n final, avem alocarea (A
7
,L
7
).
Alocarea angajailor pe lucrri este sugerat n figura
21(cu linii ngroate).
Fig.21
Cuplajul obinut fiind maximal problema este ncheiat.
2. Fie ntr-o instituie un numr de 7 salariai care sunt
desemnai s execute 8 lucrri. Disponibilitatea acestora
de a le executa este dat n tabelul nr.3
Tabelul nr.3
Angaja
t
Lucrare posibil de
executat
A
1
L
1
,L
3
,L
6
A
2
L
2
,L
3
,L
4
,L
5
A
3
L
5
,L
7
A
4
L
5
,L
6
,L
8
A
5
L
2
,L
3
A
6
L
2
,L
3
115
A
7
L
1
,L
3
,L
5
S se efectueze o distribuire a angajailor pe lucrri astfel
nct acetia s execute un numr ct mai mare de sarcini.
Soluie
Graful obinut este dat n figura 22. Matricea M' asociat
grafului este:
M'=
7
6
5
4
3
2
1
8
L
7
L
6
L
5
L
4
L
3
L
2
L
1
L
A
A
A
A
A
A
A
0 0 0 1 0 1 0 1
0 0 0 0 0 1 1 0
0 0 0 0 0 1 1 0
1 0 1 1 0 0 0 0
0 1 0 1 0 0 0 0
0 0 0 1 1 1 1 0
0 0 1 0 0 1 0 1

,
_

Fig.22
Pentru determinarea unui cuplaj iniial vom aplica
metoda liniilor cu cele mai puine elemente de 1.
Avem astfel pe cea de-a treia linie elementul (A
3
,L
5
).
Tind linia i coloana corespunztoare, rezult:
116
M'
1
=
7
6
5
4
2
1
8
L
7
L
6
L
4
L
3
L
2
L
1
L
A
A
A
A
A
A
0 0 0 0 1 0 1
0 0 0 0 1 1 0
0 0 0 0 1 1 0
1 0 1 0 0 0 0
0 0 0 1 1 1 0
0 0 1 0 1 0 1

,
_

Urmtoarea alocare este (A


4
,L
6
) de unde:
M'
2
=
7
6
5
2
1
8
L
7
L
4
L
3
L
2
L
1
L
A
A
A
A
A
0 0 0 1 0 1
0 0 0 1 1 0
0 0 0 1 1 0
0 0 1 1 1 0
0 0 0 1 0 1

,
_

Pe prima linie avem numai dou elemente egale cu 1


deci alocarea (A
1
,L
1
), matricea redus devenind:
M'
3
=
7
6
5
2
8
L
7
L
4
L
3
L
2
L
A
A
A
A
0 0 0 1 0
0 0 0 1 1
0 0 0 1 1
0 0 1 1 1

,
_

Dup alocarea (A
7
,L
3
) rezult:
M'
4
=
6
5
2
8
L
7
L
4
L
2
L
A
A
A
0 0 0 0
0 0 0 1
0 0 1 1

,
_

Urmeaz (A
5
,L
2
) i matricea:
117
M'
5
=
6
2
8
L
7
L
4
L
A
A
0 0 0
0 0 1

,
_

De pe prima linie rezult alocarea (A


2
,L
4
) i matricea:
M'
6
=
( )
6
8
L
7
L
A 0 0
.Alocarea angajailor pe lucrri este sugerat n
figura 23.
Cum lui A
6
nu i este alocat nici-o activitate rezult c
este posibil ca s nu avem maximalitatea cuplajului obinut.
Fig.23
Vom determina deci graful arcelor cuplajului C
1
={(A
3
,L
5
),
(A
4
,L
6
), (A
1
,L
1
), (A
7
,L
3
), (A
5
,L
2
), (A
2
,L
4
)} (figura 24).
Cum C
1+
C
1-
rezult c exist un drum ntre ele. Vom
cuta deci un lan alternat care s mreasc numrul de arce
dure din graf.
Fie deci lanul: (A
6
,L
1
), (L
1
,A
1
), (A
1
,L
3
), (L
3
,A
7
), (A
7
,L
5
),
(L
5
,A
3
), (A
3
,L
7
).
Vom considera drept nou cuplaj mulimea C
2
={(A
6
,L
1
), (A
1
,L
3
),
(A
7
,L
5
), (A
3
,L
7
), (A
2
,L
4
), (A
4
,L
6
), (A
5
,L
2
)} obinut prin considerarea
arcelor fine din lanul alternat i a arcelor dure rmase din C
1
.
118
Cum numrul de arce este maximal (7), problema este
complet rezolvat.
Fig.24
2. Alocarea optim a angajailor din
punctul de
vedere al minimizrii timpului
maxim de
execuie
Noiuni teoretice
Fie A
1
,...,A
n
persoanele care sunt desemnate s execute
de la un acelai moment de timp lucrrile L
1
,...,L
m
. n execuia
lucrrii L
j
angajatul A
i
poate cheltui un fond maxim de timp de t
ij
uniti (ore, zile etc.). Presupunnd c exist angajai care pot
executa mai multe lucrri se pune n mod natural problema
repartizrii sarcinilor astfel nct timpul maxim petrecut n
execuia acestora s fie minim.
Fie deci f:{A
1
,...,A
n
}P {L
1
,...,L
m
}, f(A
i
)=
{ }
k 1
i i
L ,..., L

i=1,...,n funcia care repartizeaz angajatului A
i
lucrrile
k 1
i i
L ,..., L
pe care acesta este capabil s le execute i t
ij
timpul
maxim necesar lui A
i
pentru executarea lucrrii L
j
. Dac A
i
nu
este capabil de a executa lucrarea L
j
atunci vom considera t
ij
=.
Vom presupune, de asemenea, ipoteza suplimentar c
n
1 i
i
) A ( f

={L
1
,...,L
m
} sau altfel spus totalitatea angajailor este
119
capabil s execute totalitatea lucrrilor. n caz contrar, vom
considera numai lucrrile L
i
ce fac parte din
n
1 i
i
) A ( f

.
n cele ce urmeaz, vom prezenta un algoritm de
rezolvare a acestei probleme datorat lui A. Ducamp
2
.
Fie deci graful simplu G=(AB,U) a crui mulime de
noduri este ansamblul angajailor A i a lucrrilor B adic
{A
1
,...,A
n
, L
1
,...,L
n
} i ale crui arce sunt date de lucrrile pe care
le pot executa angajaii (date de funcia f).
Vom exemplifica acest algoritm pe urmtorul:
Exemplu
Fie angajaii A
1
,A
2
,A
3
,A
4
,A
5
,A
6
i lucrrile L
1
,L
2
,L
3
,L
4
,L
5
,L
6
a
cror posibilitate de execuie este dat n tabelul nr.4.
Tabelul nr.4
Angaja
t
Lucrare posibil de
executat
A
1
L
1
,L
3
,L
6
A
2
L
1
,L
2
,L
4
,L
5
A
3
L
2
,L
4
,L
6
A
4
L
1
,L
4
,L
6
A
5
L
4
,L
5
A
6
L
2
,L
5
,L
6
Graful obinut este dat n figura 25.
Fig.25
Timpii maximi de execuie sunt dai de matricea:
2
Ducamp A., Un probleme d'affectation, Cahiers du Centre d'Etudes
de Recherche Operationnelle, 1(8), 1966
120
T=
6
5
4
3
2
1
6
L
5
L
4
L
3
L
2
L
1
L
A
A
A
A
A
A
4 3 10
6 5
1 12 7
12 7 2
9 8 6 1
10 2 5

,
_







Pasul 1 Se determin mai nti un cuplaj arbitrar C
1
al lui A pe B.
n cazul problemei noastre fie acesta C
1
={(A
1
,L
3
), (A
2
,L
1
),
(A
3
,L
2
), (A
4
,L
4
), (A
5
,L
5
), (A
6
,L
6
)}.
Pasul 2 Se determin apoi M
1
=max {t
ij
|(A
i
,L
j
)C
1
} i arcul (arcele)
(A
i
,L
j
) pentru care se obine aceast valoare maxim, numit arc
critic.
n exemplul dat, avem
M
1
=max{t
13
,t
21
,t
32
,t
44
,t
55
,t
66
}=max{2,1,2,12,6,4}=12. Acest maxim
este corespunztor arcului critic (A
4
,L
4
).
Pasul 3 Se construiete apoi un nou graf C'
1
obinut din cel
iniial astfel: se consider arcele dure ale vechiului graf n care
inversm sensul acestora, iar din arcele fine se consider (cu
orientarea normal) numai acelea ce au timpii asociai strict
mai mici dect M
1
.
n exemplul prezentat, avem figura 26.
Fig.26
Se observ c am eliminat arcul (A
3
,L
6
) al crui timp era
mai mare sau egal dect 12.
Pasul 4 n graful C'
1
se ncearc determinarea unui circuit care
s conin arcul critic (dac sunt mai multe atunci se alege unul
dintre acestea). Dac un astfel de circuit nu exist atunci
121
cuplajul C
1
este optim i algoritmul este ncheiat. Dac s-a reuit
determinarea circuitului atunci se consider noul cuplaj C
2
obinut din C
1
la care se adaug arcele circuitului eliminndu-se
acelea care sunt parcurse n ambele sensuri. Se revine apoi la
pasul 2 cu circuitul C
2
.
n situaia prezentat avem circuitul (L
4
,A
4
), (A
4
,L
6
),
(L
6
,A
6
), (A
6
,L
5
), (L
5
,A
5
), (A
5
,L
4
). Considerm deci cuplajul
C
2
=C
1
{(L
4
,A
4
), (A
4
,L
6
), (L
6
,A
6
), (A
6
,L
5
), (L
5
,A
5
), (A
5
,L
4
)}={(A
1
,L
3
),
(A
2
,L
1
), (A
3
,L
2
), (A
4
,L
4
), (A
5
,L
5
), (A
6
,L
6
)}{(L
4
,A
4
), (A
4
,L
6
), (L
6
,A
6
),
(A
6
,L
5
), (L
5
,A
5
), (A
5
,L
4
)}= {(A
1
,L
3
), (A
2
,L
1
), (A
3
,L
2
), (A
4
,L
6
), (A
6
,L
5
),
(A
5
,L
4
)}.
Avem acum M
2
=max {t
13
, t
21
, t
32
, t
46
, t
65
, t
54
}=max {2, 1, 2,
1, 3, 5}=5, arcul critic fiind (A
5
,L
4
). Graful C'
2
obinut este
prezentat n figura 27.
Fig.27
Arcul critic fiind (A
5
,L
4
) se observ c nu poate genera
nici-un circuit deci cuplajul C
2
este optim.
Ca o observaie final, trebuie s menionm c i acest
algoritm nu ine seama de raportul dintre numrul muncitorilor
i cel al lucrrilor de executat.
Aplicaii
1. Muncitorii unei firme de construcii sunt detaai la alt
obiectiv care necesit o finalizare urgent. Specializarea
acestora pe lucrri este redat n tabelul nr.5
Tabelul nr.5
Angaja
t
Lucrare posibil de
executat
A
1
L
1
,L
3
A
2
L
1
,L
4
,L
5
A
3
L
2
,L
4
122
A
4
L
1
,L
6
A
5
L
4
,L
5
A
6
L
2
,L
5
,L
6
Timpii maximi de execuie sunt dai de matricea:
T=
6
5
4
3
2
1
6
L
5
L
4
L
3
L
2
L
1
L
A
A
A
A
A
A
4 3 13
3 5
2 3
8 4
11 5 2
4 3

,
_







S se determine o alocare a muncitorilor pe lucrri astfel
nct timpul maxim de execuie s fie ct mai mic.
Soluie
Graful obinut pe baza tabelului nr.5 este dat n figura 28.
Fig.28
Vom determina mai nti un cuplaj arbitrar C
1
al mulimii
de noduri {A
1
, A
2
, A
3
, A
4
, A
5
, A
6
} pe mulimea {L
1
, L
2
, L
3
, L
4
, L
5
, L
6
}.
Fie deci cuplajul C
1
={(A
1
,L
3
), (A
2
,L
1
), (A
3
,L
2
), (A
4
,L
6
), (A
5
,L
4
),
(A
6
,L
5
)}.
Fie M
1
=max {t
13
, t
21
, t
32
, t
46
, t
54
, t
65
}=max {4, 2, 4, 2, 5,
3}=5 obinut pentru alocarea (A
5
,L
4
) - arc critic.
Fie graful C'
1
din figura 29.
Pentru determinarea unui circuit care s conin arcul
critic (L
4
,A
5
) ar trebui ca s existe arce cu extremitatea final n
L
4
. Cum acestea nu exist rezult c C
1
este cuplaj optim i deci
durata maxim de execuie este 5.
123
Fig.29
2. O echip de traductori este chemat s traduc n limba
romn o serie de studii scrise n englez, francez, german,
italian, spaniol i rus. Fiecare traductor cunoate mai multe
limbi conform tabelului nr.6
Tabelul nr.6
Traduct
or
Limb cunoscut
T
1
englez, francez,
german
T
2
englez, german,
italian
T
3
francez, italian,
spaniol
T
4
german, spaniol,
rus
T
5
italian, spaniol,
rus
T
6
englez, francez,
rus
Timpii maximi de traducere sunt dai de matricea:
124
T=
6
5
4
3
2
1
R S I G F E
T
T
T
T
T
T
4 7 3
1 3 5
2 6 2
5 2 8
5 6 2
4 4 3

,
_







unde am notat cu E - engleza, F - franceza, G - germana, I -
italiana, S - spaniola i R - rusa. S se determine o alocare a
traductorilor pe lucrri astfel nct timpul maxim de traducere
s fie ct mai mic.
Soluie
Graful obinut pe baza tabelului nr.6 este dat n figura 30.
Vom determina mai nti un cuplaj arbitrar C
1
al mulimii
de noduri {T
1
, T
2
, T
3
, T
4
, T
5
, T
6
} pe mulimea {E, F, G, I, S, R}.
Matricea simplificat asociat grafului este:
M'=
6
5
4
3
2
1
T
T
T
T
T
T
1 0 0 0 1 1
1 1 1 0 0 0
1 1 0 1 0 0
0 1 1 0 1 0
0 0 1 1 0 1
0 0 0 1 1 1
R S I G F E

,
_

Fig.30
Vom aplica metoda colului de nord-vest. Avem deci
alocarea (T
1
,E) de unde:
125
M'
1
=
6
5
4
3
2
T
T
T
T
T
1 0 0 0 1
1 1 1 0 0
1 1 0 1 0
0 1 1 0 1
0 0 1 1 0
R S I G F

,
_

Urmeaz alocarea (T
2
,G) i matricea:
M'
2
=
6
5
4
3
T
T
T
T
1 0 0 1
1 1 1 0
1 1 0 0
0 1 1 1
R S I F

,
_

Avem apoi (T
3
,F) i matricea rmas:
M'
3
=
6
5
4
T
T
T
1 0 0
1 1 1
1 1 0
R S I

,
_

Dup alocarea (T
4
,S) obinem:
M'
4
=
6
5
T
T
1 0
1 1
R I

,
_

i n final alocrile (T
5
,I) i (T
6
,R).
Cuplajul obinut este deci: C
1
={(T
1
,E), (T
2
,G), (T
3
,F), (T
4
,S),
(T
5
,I), (T
6
,R)}.
Fie M
1
=max {t
1E
, t
2G
, t
3F
, t
4S
, t
5I
, t
6R
}=max {3, 6, 8, 6, 5,
4}=8 obinut pentru alocarea (T
3
,F) - arc critic.
Fie graful C'
1
din figura 31.
126
Fig.31
Avem urmtorul circuit: (F,T
3
), (T
3
,S), (S,T
4
), (T
4
,G), (G,T
2
),
(T
2
,E), (E,T
1
), (T
1
,F).
Cuplajul C
2
={(T
3
,S), (T
4
,G), (T
2
,E), (T
1
,F), (T
5
,I), (T
6
,R)} este
obinut din vechiul cuplaj la care s-au adugat arcele noi
obinute.
Avem acum M
2
=max {t
3S
, t
4G
, t
2E
, t
1F
, t
5I
, t
6R
}=max {5, 2, 2,
4, 5, 4}=5 obinut pentru alocarea (T
3
,S) - arc critic.
Graful C'
2
este prezentat n figura 32.
Circuitul este: (S,T
3
), (T
3
,I), (I,T
5
), (T
5
,S).
Avem deci cuplajul C
3
={(T
3
,I), (T
5
,S), (T
4
,G), (T
2
,E), (T
1
,F),
(T
6
,R)}.
Fig.32
Avem M
3
=max {t
3I
, t
5S
, t
4G
, t
2E
, t
1F
, t
6R
}=max {2, 3, 2, 2, 4,
4}=4 obinut pentru alocarea (T
1
,F) - arc critic.
Graful C'
3
este prezentat n figura 33.
O ncercare de determinare de circuit ar fi: (F,T
1
), (T
1
,E),
(E,T
2
) la care drumul se oprete. Prin urmare, alocarea este
optim i deci durata minim de traducere este de 4 uniti de
timp.
127
Fig.33
3. Alocarea optim a angajailor din
punctul de
vedere al minimizrii timpului total
de execuie
Noiuni teoretice
Fie A
1
,...,A
n
persoanele care sunt desemnate s execute
lucrrile L
1
,...,L
m
. n execuia lucrrii L
j
angajatul A
i
cheltuiete
un fond de timp de t
ij
uniti (ore, zile etc.). Presupunnd c
exist angajai care pot executa mai multe lucrri se pune n
mod natural problema repartizrii sarcinilor astfel nct timpul
total petrecut n execuia acestora s fie minim.
Vom conveni c dac A
i
nu este capabil de a executa
lucrarea L
j
s considerm t
ij
= (n practic vom atribui lui t
ij
o
valoare foarte mare care va elimina automat posibilitatea de
atribuire).
De asemenea, vom conveni c numrul angajailor este
egal cu cel al lucrrilor, n caz contrar introducnd angajai sau
lucrri fictive cu timpi foarte mari pentru a evita alocarea
acestora.
n cele ce urmeaz, vom prezenta un algoritm de
rezolvare a acestei probleme datorat lui Little
3
.
Fie deci matricea T=(t
ij
) a timpilor de execuie. n
alocarea acestor activiti este evident c modificarea unei linii
sau coloane printr-o cantitate aditiv nu va influena optimul
problemei deoarece oricum fiecare lucrare i fiecare angajat vor
3
Teodorescu N. .a., Metode ale cercetrii operaionale n gestiunea
ntreprinderilor, Ed. tehnic, Bucureti, 1972
128
avea un timp alocat care se va mri sau micora cu acea
cantitate.
Vom exemplifica acest algoritm pe urmtorul:
Exemplu
Fie angajaii A
1
,A
2
,A
3
,A
4
,A
5
,A
5
i lucrrile L
1
,L
2
,L
3
,L
4
,L
5
,L
5
a
cror timpi de execuie sunt dai n tabelul nr.7 i ale crui
valori se constituie n elementele matricei T.
Tabelul nr.7
A
1
A
2
A
3
A
4
A
5
L
1
1 2 9 4 5
L
2
3 7

2 4
L
3
4 1 3 6
L
4
2 1 9
L
5
4 1 7 8

Pasul 1
Pasul 1.1 Se calculeaz minimul cantitilor de pe fiecare linie a
tabelului;
Pasul 1.2 Se scad aceste valori din linia respectiv;
Pasul 1.3 Se calculeaz minimele valorilor de pe coloanele
tabelului astfel obinut;
Pasul 1.4 Se scad minimele obinute la pasul 1.3 din coloanele
respective.
n cazul problemei prezentate avem succesiv:
Pasul 1.1
A
1
A
2
A
3
A
4
A
5
min
L
1
1 2 9 4 5 1
L
2
3 7

2 4 2
L
3
4 1 3 6 1
L
4
2 1 9 1
L
5
4 1 7 8

1
Pasul 1.2
A
1
A
2
A
3
A
4
A
5
L
1
0 1 8 3 4
L
2
1 5

0 2
L
3
3 0 2 5
129
L
4
1 0 8
L
5
3 0 6 7

Pasul 1.3
A
1
A
2
A
3
A
4
A
5
L
1
0 1 8 3 4
L
2
1 5

0 2
L
3
3 0 2 5
L
4
1 0 8
L
5
3 0 6 7

min 0 0 0 0 2
Pasul 1.4
A
1
A
2
A
3
A
4
A
5
L
1
0 1 8 3 2
L
2
1 5

0 0
L
3
3 0 2 3
L
4
1 0 6
L
5
3 0 6 7

Dup pasul 1 observm c pe fiecare linie sau coloan
exist cte un element egal cu 0.
Pasul 2 Se calculeaz suma tuturor elementelor sczute din linii
i coloane.
Fie aceasta S
1
=1+2+1+1+1+0+0+0+0+ 2=8.
Pasul 3 Pentru fiecare element egal cu 0 din matricea T'
(corespunztoare tabelului redus) se calculeaz cantitile

ij
=min {t
ik
|k j}+min{t
pj
|p i} sau altfel spus suma minimelor
elementelor de pe linia, respectiv coloana cantitii nule
(exceptnd-o pe aceasta). Dup aceasta, se determin maximul
acestor valori i alocarea corespunztoare acesteia (s,r). Se
construiete un grafic, de tip arbore, n care nodul iniial
primete valoarea S
1
. Se construiete apoi o ramificaie n care
se trec activitile (s,r) i non(s,r). Acestea vor primi valorile
sr
,
respectiv
sr
=S
1
+
sr
.
Avem deci:
11
=1+1=2,
24
=0+0=0,
25
=0+2=2,

33
=2+1=3,
44
= 1+0=1,
52
=3+1=4. Avem deci
max
=max
{
11
,
24
,
25
,
33
,
44
,
52
}= max {2, 0, 2, 3, 1, 4}=4
corespunztoare alocrii (5,2). Avem
52
=8+4=12.
Obinem deci:
130
Fig.34
Pasul 4 Se elimin din tabel linia s i coloana r i se procedeaz
ca la pasul 1.
Avem deci:
Pasul 4.1
A
1
A
3
A
4
A
5
min
L
1
0 8 3 2 0
L
2
1

0 0 0
L
3
0 2 3 0
L
4
1 0 6 0
Pasul 4.2
A
1
A
3
A
4
A
5
L
1
0 8 3 2
L
2
1

0 0
L
3
0 2 3
L
4
1 0 6
Pasul 4.3
A
1
A
3
A
4
A
5
L
1
0 8 3 2
L
2
1

0 0
L
3
0 2 3
L
4
1 0 6
min 0 0 0 0
Pasul 4.4
A
1
A
3
A
4
A
5
L
1
0 8 3 2
L
2
1

0 0
L
3
0 2 3
L
4
1 0 6
Pasul 5
Se calculeaz S
2
ca sum a elementelor de minim de pe
linii i coloane. Se modific indicatorul
sr
=S
1
+S
2
.
n cazul problemei prezentate S
2
=0 deci
52
=S
1
=8.
Pasul 6 Dac matricea T redus are ordinul 1 algoritmul este
ncheiat. n caz contrar, se alege cea mai mic valoare dintre
131

sr
i
sr
. Dac valorile sunt egale, se alege
sr
corespunztoare unei alocri i nu unei respingeri de alocare.
Pasul 7 Dac valoarea aleas a fost
sr
se revine la pasul 3.
Pasul 8 Dac valoarea aleas este de tip
sr
atunci se consider
n tabelul anterior celui de la pasul 1, t
sr
=, se determin
elementele minime de pe linia s i coloana r i se scad acestea
din linia respectiv coloana corespunztoare. Se revine apoi la
pasul 3.
n orice situaii, la indicatori egali se continu algoritmul
pe toate ramurile n cauz.
n cazul problemei noastre avem pentru tabelul rmas:
A
1
A
3
A
4
A
5
L
1
0 8 3 2
L
2
1

0 0
L
3
0 2 3
L
4
1 0 6

11
=2+1=3,
24
=0+0=0,
25
=0+2=2,
33
=2+1=3,

44
=1+0=1,
max
=max {3, 0, 2, 3, 1}=3 corespunztor alocrii
(1,1) sau (3,3). Avem deci
11
=8+3=11 i
33
=8+3=11.
Pentru alocarea (1,1) succesiunea de tabele devine:
A
3
A
4
A
5
min
L
2
0 0 0
L
3
0 2 3 0
L
4
1 0 6 0
A
3
A
4
A
5
L
2
0 0
L
3
0 2 3
L
4
1 0 6
A
3
A
4
A
5
L
2
0 0
L
3
0 2 3
L
4
1 0 6
min 0 0 0
A
3
A
4
A
5
L
2
0 0
L
3
0 2 3
L
4
1 0 6
132
i deci
11
=8+0=8.
Pentru alocarea (3,3) se obine analog
33
=8+0=8.
Graficul arborescenei este urmtorul:
Fig.35
Fie acum ultimul tabel:
A
3
A
4
A
5
L
2
0 0
L
3
0 2 3
L
4
1 0 6
Avem:
24
=0+0=0,
25
=0+3=3,
33
=2+1=3,

44
=1+0=1 i deci
max
=3 corespunztor alocrii (3,3). Avem
deci
33
=8+3=11.
Pentru alocarea (3,3) succesiunea de tabele este
urmtoarea:
A
4
A
5
min
L
2
0 0 0
L
4
0 6 0
A
4
A
5
L
2
0 0
L
4
0 6
A
4
A
5
L
2
0 0
L
4
0 6
min 0 0
A
4
A
5
L
2
0 0
L
4
0 6
i deci
33
=8+0=8.
Noul grafic al arborescenei este:
133
Fig.36
Considernd, n final, tabelul redus:
A
4
A
5
L
2
0 0
L
4
0 6
avem:
24
=0+0=0,
25
=0+6=6,
44
=6+0=6 de unde
max
=6
cu alocarea (4,4).
Avem
44
=8+6=14.
Tabelul rmas este:
A
5
L
2
0
i deci
25
=8+0=8, iar ultima alocare este (2,5).
Arborescena final este redat n figura 37.
Soluia optim este deci (A
2
,L
5
), (A
1
,L
1
), (A
3
,L
3
), (A
4
,L
4
),
(A
5
,L
2
) cu un timp total egal cu 1+1+1+1+4=8.
134
Fig.37
Aplicaii
1. ntr-un atelier auto lucreaz mai muli muncitori M
1
, M
2
, M
3
,
M
4
, M
5
divers specializai (mecanic, tinichigerie, vopsitorie,
electronic, aprovizionare). Fiecare dintre acetia are o durat
medie (n ore) de execuie a unei lucrri conform tabelului nr.8.
Se cere s se efectueze o repartizare a muncitorilor pe tipuri de
lucrri astfel nct timpul total de execuie s fie minim.
Tabelul nr.8
M
1
M
2
M
3
M
4
M
5
Mecanic - M(1) 1 2 5 4 7
Tinichigerie -
T(2)
3 7 3 2 4
Vopsitorie - V(3) 5 4 1 3 6
Electronic -
E(4)
2 1 2 1 9
Aprovizionare -
A(5)
4 1 7 9 7
Soluie
Pentru nceput reducem tabelul astfel nct pe fiecare
linie sau coloan s obinem cte un element egal cu 0.
Vom calcula mai nti minimul elementelor de pe fiecare
linie:
M
1
M
2
M
3
M
4
M
5
min
M(1) 1 2 5 4 7 1
T(2) 3 7 3 2 4 2
V(3) 5 4 1 3 6 1
E(4) 2 1 2 1 9 1
135
A(5) 4 1 7 9 7 1
Scdem minimele aflate din elementele liniei respective:
M
1
M
2
M
3
M
4
M
5
M(1) 0 1 4 3 6
T(2) 1 5 1 0 2
V(3) 4 3 0 2 5
E(4) 1 0 1 0 8
A(5) 3 0 6 8 6
Se calculeaz minimele valorilor de pe coloanele tabelului
astfel obinut:
M
1
M
2
M
3
M
4
M
5
M(1) 0 1 4 3 6
T(2) 1 5 1 0 2
V(3) 4 3 0 2 5
E(4) 1 0 1 0 8
A(5) 3 0 6 8 6
min 0 0 0 0 2
Se scad minimele obinute din coloanele respective:
M
1
M
2
M
3
M
4
M
5
M(1) 0 1 4 3 4
T(2) 1 5 1 0 0
V(3) 4 3 0 2 3
E(4) 1 0 1 0 6
A(5) 3 0 6 8 4
Se calculeaz suma tuturor elementelor sczute din linii
i coloane. Fie aceasta S
1
=1+2+1+1+1+0+0+0+0+ 2=8.
Pentru fiecare element egal cu 0 din tabelul redus se
calculeaz cantitile
ij
=min {t
ik
|k j}+min{t
pj
|p i} sau altfel
spus suma minimelor elementelor de pe linia, respectiv coloana
cantitii nule (exceptnd-o pe aceasta).
Avem deci:
11
=1+1=2,
24
=0+0=0,
25
=0+3=3,

33
=2+1=3,
42
=0+0=0,
44
=0+0=0,
52
=3+0=3. Avem

max
=max {2, 0, 3, 3, 0, 0, 3}=3 obinut pentru alocarea (2,5).
Avem
25
=S
1
+
25
=8+3=11.
Eliminm linia 2 i coloana 5 din tabel i obinem:
M
1
M
2
M
3
M
4
M(1) 0 1 4 3
V(3) 4 3 0 2
E(4) 1 0 1 0
A(5) 3 0 6 8
Pentru determinarea lui
25
avem succesiunea de tabele:
136
M
1
M
2
M
3
M
4
min
M(1) 0 1 4 3 0
V(3) 4 3 0 2 0
E(4) 1 0 1 0 0
A(5) 3 0 6 8 0
M
1
M
2
M
3
M
4
M(1) 0 1 4 3
V(3) 4 3 0 2
E(4) 1 0 1 0
A(5) 3 0 6 8
M
1
M
2
M
3
M
4
M(1) 0 1 4 3
V(3) 4 3 0 2
E(4) 1 0 1 0
A(5) 3 0 6 8
min 0 0 0 0
M
1
M
2
M
3
M
4
M(1) 0 1 4 3
V(3) 4 3 0 2
E(4) 1 0 1 0
A(5) 3 0 6 8
de unde
25
=8+0=8.
Arborele obinut este deci:
Fig.38
Pentru tabelul:
M
1
M
2
M
3
M
4
M(1) 0 1 4 3
V(3) 4 3 0 2
E(4) 1 0 1 0
A(5) 3 0 6 8
avem:
11
=1+1=2,
33
=2+1=3,
42
=0+0=0,
44
=0+2=2,

52
=3+0=3. Avem
max
=max {2, 3, 0, 2, 3}=3 obinut pentru
alocarea (3,3). Avem
33
=S
2
+
33
=8+3= 11.
137
Eliminm linia V(3) i coloana 3 din tabel i obinem
succesiunea de tabele:
M
1
M
2
M
4
min
M(1) 0 1 3 0
E(4) 1 0 0 0
A(5) 3 0 8 0
M
1
M
2
M
4
M(1) 0 1 3
E(4) 1 0 0
A(5) 3 0 8
min 0 0 0
M
1
M
2
M
4
M(1) 0 1 3
E(4) 1 0 0
A(5) 3 0 8
de unde
33
=8+0=8. Arborele obinut este deci:
Fig.39
Pentru tabelul:
M
1
M
2
M
4
M(1) 0 1 3
E(4) 1 0 0
A(5) 3 0 8
avem:
11
=1+1=2,
42
=0+0=0,
44
=0+3=3,
52
=3+0=3.
Avem
max
=max {2, 0, 3, 3}=3 obinut pentru alocarea (4,4).
Avem
44
=S
3
+
44
=8+3= 11.
Eliminm linia E(4) i coloana M
4
din tabel i obinem
succesiunea:
M
1
M
2
min
M(1) 0 1 0
138
A(5) 3 0 0
M
1
M
2
M(1) 0 1
A(5) 3 0
min 0 0
M
1
M
2
M(1) 0 1
A(5) 3 0
de unde
44
=8+0=8.
Arborele devine:
Fig.40
Fie acum tabelul:
M
1
M
2
M(1) 0 1
A(5) 3 0
Avem
11
=1+3=4 i
52
=3+1=4 de unde
max
=max
{4,4}=4 obinut pentru alocarea (1,1). Avem

11
=S
4
+
11
=8+4=12.
Eliminnd linia M(1) i coloana lui M
1
din tabel rezult

11
=8+0=8 i n final alocarea (5,2) cu
52
=8+0=8.
Arborescena final este reprezentat n figura 41.
Soluia optim este deci (M
5
,T), (M
3
,V), (M
4
,E), (M
1
,M),
(M
2
,A) cu un timp total egal cu 4+1+1+1+1=8.
139
Fig.41
140

S-ar putea să vă placă și