Sunteți pe pagina 1din 12

CURSUL 8 Tema 4. Problema afectarii (Assignment Problem) 4.1 Problema simpla de afectare (SAP Simple Assignment Problem) A.

. Enuntul problemei. Exemplu Un set de lucrari (proiecte, operatii, sarcini de serviciu) L1, L2,,Lm sunt propuse spre executare agentilor A1, A2,,An (persoane, institutii specializate). Fiecare agent este capabil sa execute una sau mai multe dintre lucrarile propuse. In mod constant se va presupune ca numarul agentilor este cel putin egal cu numarul lucrarilor ofertate. (SAP) Care este numarul maxim de lucrari ce pot fi atribuite agentilor si cum vor fi acestea repartizate, astfel incat:
- o lucrare sa fie atribuita cel mult unui agent; () - un agent sa primeasca cel mult o lucrare.

Exemplul 1. Autoritatea Nationala pentru Turism are nevoie urgenta de sase persoane calificate pentru traducerea unor materiale de promovare a turismului romanesc in sase limbi de larga circulatie europeana: albaneza, bulgara, croata, daneza, engleza si finlandeza. Din motive de economie, s-a apelat la sase tineri angajati, Ana, Bianca, Camelia, Dan, Emil si Filip care cunosc bine una sau mai multe din limbile straine cerute. Pentru simplitatea expunerii, persoanele sunt notate cu A1,,A6 iar lucrarile de traducere, cu L1,,L6. Ana A1 X X Bianca Camelia Dan A2 A3 A4 X X X X X X X X X X X X Tabelul 1 Emil A5 X X Filip A6

(albaneza) L1 (bulgara) L2 (croata) L3 (daneza) L4 (engleza) L5 (finlandeza) L6

X X

X X X X

In tabelul 1, cu sase randuri corespunzatoare lucrarilor L1,,L6 si sase coloane corespunzatoare agentilor A1,,A6, un X in celula de pe randul Li si coloana Aj arata ca lucrarea Li nu poate fi atribuita agentului Aj deoarece Aj nu cunoaste limba in care va fi tradusa Li. De exemplu, Ana se descurca in bulgara, daneza si engleza. Finlandeza este stapanita doar de Camelia Este posibila repartizarea tuturor lucrarilor de traducere? Altfel spus, care este numarul maxim de lucrari ce pot fi atribuite si cine le rezolva? B. Algoritm de rezolvare a problemei simple de afectare Instructiunile algoritmului vor fi prezentate direct pe datele exemplului 1. Orice alta SAP se va rezolva asemanator. Atribuirea unei lucrari unui agent va fi pusa in evidenta printr-un 1 inscris in celula corespunzatoare a tabelului 1. Deoarece atribuirile trebuie sa respecte conditiile (*) este clar ca in fiecare rand si fiecare coloana a tabelului 1 va exista cel mult un 1. Etapa 1. Incepem prin a plasa, in celulele admisibile ale tabelului 1, un numar cat mai mare de 1, avand grija ca in fiecare rand sau coloana sa nu existe decat cel mult un 1. De exemplu, in fiecare rand, incepand cu L1, vom plasa un 1 in prima coloana admisibila in care nu apare deja un 1. Rezultatele aplicarii acestei scheme sunt date in tabelul 2. A1 A2
L1 L2 L3 L4 L5 L6

A3 A4

A5 A6

1 1 1 1

Tabelul 2 Tabelul 2 pune in evidenta atribuirile:

L1 A2

L2 A1

L3 A3

L4 A5

O data fixata aceasta repartizare, lucrarea L5 nu mai poate fi atribuita deoarece singurii agenti capabili sa o faca sunt deja angajati in alte lucrari. La fel, singurul agent capabil sa preia lucrarea L6 este deja angajat! Este posibil ca prin modificarea unora dintre atribuirile de mai sus sa creasca numarul lucrarilor repartizate? Trecem la urmatoarea etapa a algoritmului. Etapa 2. Consideram randul L5 din tabelul 2 si plasam un 1 in prima celula a sa (care este admisibila!). Coloana A1 va avea acum doi 1 ari; il stergem pe cel situat in randul L2. Acum, pe randul L2 nu mai avem nici un 1, dar am putea plasa unul fie in coloana A3 ( dar care are deja un 1 !), fie in coloana A4 fie in coloana A6 care nu au 1 ari. Plasam un 1 in coloana A4; operatiile descrise sunt vizualizate in tabelul 3a) unde 1 arii adaugati au fost incercuiti. A1 A2
L1 L2 L3 L4 L5 L6

A3 A4

A5 A6
L1

A1 A2

A3 A4

A5 A6

1 1 1 1 1 1

1 1 1 1 1

L2 L3 L4 L5 L6

Tabelul 3a)

Tabelul 3b)

Constatam ca numarul lucrarilor atribuite a crescut de la 4 la 5, vezi tabelul 3b):


L1 A2 L2 A4 L3 A3 L4 A5 L5 A1

In limbaj de atribuiri, adaugarea si stergerea de 1ari, operate mai sus se interpreteaza astfel: - se atribuie lucrarea L5 agentului A1; - se ia lucrarea L2 repartizata initial lui A1 si se atribuie lui A4 care nu are nici un angajament. A1 A2
L1 L2 L3 L4 L5 L6

A3 A4

A5 A6

A1 A2
L1 L2

A3 A4

A5 A6

1 1 1 1 1 1 1
Tabelul 4a)

1 1 1 1 1 1
Tabelul 4b)

1 1

L3 L4 L5 L6

In continuare cercetam daca, printr-o redistribuire a lucrarilor deja asignate, putem atribui cuiva si lucrarea L6. Schema de redistribuire, analoaga celei vizualizate in tabelul 3a), este data in tabelul 4a). Rezultatul, afisat in tabelul 4b), arata ca toate lucrarile pot fi atribuite dupa cum urmeaza:
L1 A6 L2 A4 L3 A5 L4 A1 L5 A2 L6 A3

4.2 Problema generala de afectare (GAP General Assignment Problem) A. Enuntul problemei. Exemplu Sa observam ca in cadrul SAP, daca mai multi agenti pot executa o aceeasi lucrare, nu se face nici o referire asupra modului in care este finalizata lucrarea: mai bine sau mai putin bine, mai repede sau mai incet, mai scump sau mai ieftin. Presupunem ca este posibila cuantificarea unei masuri aij a modului in care este executata lucrarea Li de catre agentul Aj. Dupa caz, aij poate fi o nota, un timp de executie, un cost etc. Valorile aij se vor numi eficacitati de executie.

(GAP) Sa se repartizeze lucrarile pe agenti, cu respectarea conditiilor (*), astfel incat suma eficacitatilor de executie sa fie, dupa caz: - maxima (daca, de exemplu, eficacitatile aij sunt note) - minima (daca eficacitatile aij sunt costuri sau timpi de executie) Exemplul 2. Agentia Nationala pentru Turism a anuntat un amplu proiect de restaurare a cinci obiective L1,L2,,L5 de interes istoric si turistic. Cinci companii specializate A1, A2,,A5 si-au manifestat interesul pentru preluarea unuia sau altuia dintre obiective. In tabelul 5 sunt date duratele de executie (in saptamani) estimate de catre fiecare ofertant pentru fiecare obiectiv. Cele cinci obiective vor fi scoase pe rand din circuitul turistic si de aceea Agentia doreste sa repartizeze lucrarile astfel incat durata totala a operatiilor de restaurare sa fie cat mai mica. A1 A2 A3 A4 A5 L1 L2 L3 L4 L5 16 6 9 13 8 19 7 10 15 9 28 10 15 22 13 13 5 7 10 6 24 9 13 19 12

Tabelul 5

B. Rezolvarea problemei generale de afectare Determinarea solutiei optime a unei GAP se face cu ajutorul unei proceduri iterative cunoscuta sub numele de algoritmul ungar. In principiu, acesta reduce rezolvarea problemei generale de afectare la rezolvarea unei suite de probleme simple de afectare. Obiectivele si spatiul alocat acestui curs nu permit descrierea algoritmului. Pentru rezolvarea aplicatiilor practice se va folosi modulul Assignment din utilitarul QM; modul de utilizare va fi prezentat in partea finala a cursului. Solutia optima a problemei generale de afectare din exemplul 2 - asa cum rezulta din aplicarea utilitarului QM este data in tabelul 6.

A1 A2 A3 A4 A5 L1 1 L2 L3 1 L4 L5 1 1 1

Tabelul 6 Aceasta inseamna ca atribuirea celor cinci lucrari de restaurare se va face dupa schema:
L1 A1 L2 A3 L3 A2 L4 A4 10 L5 A5 12

Durata : 16 10 10

58 sapt.

4.3 Problema de afectare cu loc ingust (BAP Bottleneck Assignment Problem) A. Enuntul problemei. Exemplu Exista insa situatii in care maximizarea sumei eficacitatilor individuale de executie face ca, in cadrul unei eficacitati totale maxime, o lucrare sa fie atat de prost atribuita incat executarea ei sa compromita ansamblul tuturor lucrarilor. In asemenea situatii este de dorit o solutie in care lucrarea cea mai prost atribuita sa beneficieze totusi de o executie satisfacatoare. Sa consideram si cazul unor lucrari ce trebuie executate simultan, eficacitatile aij fiind timpi de executie. Evident, durata executarii intregului lot de lucrari este data de durata individuala cea mai mare si in consecinta, atribuirea prin care lucrarile sunt terminate cel mai repede este atribuirea care minimizeaza maximul timpilor individuali de executie. (BAP) Sa se repartizeze lucrarile pe agenti, cu respectarea conditiilor (*), astfel incat: - sa se minimizeze maximul eficacitatilor individuale de executie sau, dupa caz - sa se maximizeze minimul eficacitatilor individuale de executie. Cele doua variante ale problemei de afectare cu loc ingust se numesc BAP minimax respectiv BAP maximin

Exemplul 3. In luna august a anului urmator agentia de turism PARALELA 47 are planificate cinci circuite noi prin Europa, notate L1,L2,,L5. Pe fiecare traseu este delegata o persoana care se ocupa de problemele specifice de transport si cazare si consiliaza turistii cu privire la obiectivele de vizitat pe parcurs. Pentru asigurarea unor servicii de buna calitate, conducerea agentiei a hotarat ca delegarile sa se faca be baza unui examen de cunostinte la care sa participe toti angajatii pe functia de ghid. Concurentii au fost testati pe problemele specifice fiecarui traseu in parte, primind note de la 1 la 10. La terminarea examenului au ramas in discutie cinci persoane, notate A1,A2,,A5 care au obtinut cele mai mari punctaje rezultate din insumarea notelor, vezi tabelul 7. A1 A2 A3 A4 A5 L1 L2 L3 L4 L5 6 8 7 4 5 6 10 7 5 7 35 8 7 3 8 10 36 10 6 7 2 8 10 6 6 8 8 39 32

Punctaj 30

Tabelul 7 S-a propus ca delegarea castigatorilor pe trasee sa se faca in asa fel incat sa se maximizeze suma notelor obtinute pe posturile repartizate. Aceasta este o problema generala de afectare cu solutia optima (data de utilitarul QM):
L1 A4 Note : L2 A2 L3 A5 L4 A1 4 L5 A3 10

10 10 10

44

Desi suma notelor este maxima iar pe circuitele L1,L2,L3 si L5 sunt repartizate persoane cu calificativul maxim, intreaga actiune ar fi compromisa daca pe traseul L4 ar fi delegata persoana A1 care a dovedit in examen ca este nepregatita pe acest post. Este clar ca solutia de mai sus nu poate fi acceptata! In acest context, se pune problema (BAP maximin): Care ar fi cea mai buna solutie de repartizare daca nota minima de promovare pe post este 6?

B. Algoritm de rezolvare a problemei de afectare cu loc ingust Consideram o BAP maximin, deci o BAP in care se cere determinarea unei solutii de repartizare a lucrarilor pe agenti care sa maximizeze minimul eficacitatilor individuale de executie. Urmatorul algoritm reduce rezolvarea problemei de afectare cu loc ingust la rezolvarea unei suite de probleme simple de afectare. Start: Se genereaza o atribuire oarecare a lucrarilor pe agenti. Avand in vedere obiectivul maximin putem proceda astfel: - lucrarea L1 este repartizata agentului cu cea mai buna eficacitate de executie a acestei lucrari; - in continuare se atribuie lucrarile L2,L3,celor mai capabili agenti care nu au primit in prealabil vreo lucrare. Pasul 1: Se determina: a* = cea mai mica eficacitate individuala de executie din atribuirea curenta. Pasul 2: Se rezolva o problema simpla de afectare ale carei atribuiri permise Li Aj corespund eficacitatilor individuale aij > a*.Doua rezultate sunt posibile: - nu s-a reusit repartizarea tuturor lucrarilor. Atunci atribuirea curenta este optima din punctul de vedere al criteriului maximin: cea mai mica eficacitate de executie din atribuire este cea mai mare posibila. STOP. - toate lucrarile au fost repartizate. Aceasta inseamna ca s-a gasit o atribuire in care cea mai mica eficacitate individuala este > a*. Noua atribuire devine atribuirea curenta. Se revine la pasul 1 in cadrul unei noi iteratii. Observatie: Pentru rezolvarea unei BAP minimax se foloseste aceeasi procedura cu urmatoarele modificari: - la pasul 1: a* = cea mai mare eficacitate individuala de executie din atribuirea curenta. - la pasul 2: se rezolva o problema simpla de afectare in care atribuirile permise Li Aj corespund eficacitatilor individuale aij < a*. Vom aplica algoritmul descris problemei maximin din exemplul 3. Start: repartizam lucrarile, in ordinea L1 apoi L2, L3, celor mai buni agenti, bineinteles cu respectarea conditiilor (*).Rezulta atribuirea:

L1 A4 Note :

L2 A2

L3 A5

L4 A3 8

L5 A1 5

(1)

10 10 10

Iteratia 1. Cea mai mica nota din atribuirea (1) este a* = 5. Rezolvam o problema simpla de afectare in care atribuirile permise Li Aj corespund notelor aij > 5 = a*. Tabelul 8 pune in evidenta atribuirile permise (celulele albe, compara cu notele din tabelul 7!) precum si o atribuire a tuturor lucrarilor obtinuta prin simpla inspectie. A1 A2 L1 L2 L3 L4 L5 Tabelul 8 Comentariu: aceasta atribuire satisface cerinta notei minime de promovare pe post dar este posibil sa existe si solutii mai bune. Continuam aplicarea algoritmului. Iteratia 2. Cea mai mica nota din atribuirea curenta (2) este a* = 6. Rezolvam o problema simpla de afectare in care atribuirile permise Li Aj corespund notelor aij > 6 = a*. Vizualizarea atribuirilor permise este data in tabelul 9, impreuna cu o solutie initiala prin care sunt repartizate 5 din cele 6 lucrari ( vezi etapa I de rezolvare a unei SAP, subsectiunea B din 4.1) A1 A2 L1 L2 L3 L4 L5 A3 A4 A5 A3 A4 A5 Atribuirea curenta:

1 1 1 1 1
Note :

L1 A1 6

L2 A2 10

L3 A4 8

L4 A3 8

L5 A5 8

(2)

1 1 1

1
Tabelul 9

Solutia din tabelul 9 este imbunatatita in tabelul 10; atribuirea rezultata (3) este mai buna decat atribuirea (2) deoarece nota minima este acum 7!

A1 A2 L1 L2 L3 L4 L5

A3

A4

A5 Atribuirea curenta:
L1 L2 A1 8 L3 A2 7 L4 A3 8 L5 A5 8

1 1 1 1

A4 Note : 10

(3)

1
Tabelul 10

Iteratia 3 Cercetam daca exista o atribuire a tuturor lucrarilor asa incat cea mai mica nota din ea sa fie > 7 = a*. Pentru aceasta rezolvam o SAP in care atribuirile permise Li Aj corespund notelor aij > 7 = a*. Tabelul 11a) pune in evidenta datele acestei probleme precum si o solutie initiala. A1 A2 L1 L2 L3 L4 L5 A3 A4 A5 L1 L2 A1 A2 A3 A4 A5

1 1 1

1 1

L3 L4

1 1

L5 Nu se poate ajunge la coloana A2 care nu are 1 !

?
Tabelul 11b)

Tabelul 11a)

In tabelul 11b) s-a incercat imbunatatirea solutiei din tabelul 11a) in sensul cresterii numarului de lucrari repartizate dar fara success! Conchidem ca cel mult 4 din cele 5 lucrari pot fi repartizate utilizand atribuirile permise din SAP curenta! Prin urmare nu exista o atribuire a tuturor lucrarilor in care cea mai mica nota sa fie > 7. Algoritmul se opreste cu concluzia ca atribuirea (3) este o solutie optima in raport cu criteriul maximin. Observatie: Solutia (3) a fost obtinuta in iteratia 2 cand au fost declarate permise toate atribuirile Li Aj cu aij > 6. Suma notelor din aceasta atribuire este 41. Daca maximizam suma notelor pe acelasi set de atribuiri permise (aceasta fiind o problema generala de afectare in care notele atribuirilor blocate nepermise se iau egale cu - !!) se obtine solutia:
L1 A4 Note : 10 L2 A1 8 L3 A5 10 L4 A3 8 L5 A2 7

(4)

cu aceeasi nota minima ca si (3) dar cu o suma mai mare 43 > 41. Atribuirea (4) este veritabila solutie optima a problemei decizionale pusa in exemplul 3.

Probleme propuse 1. O agentie guvernamentala a anuntat 7 proiecte de cercetare, codificate L1, L2,,L7. Un numar egal de agenti (unitati de cercetare, universitati), codificati A1, A2,,A7 , sunt interesati in preluarea acestor proiecte. In tabelul 1, un X in randul Li si coloana Aj arata ca agentul Aj nu este specializat in domeniul proiectului Li si ca urmare Li nu poate fi atribuit lui Aj.Cate dintre proiectele anuntate pot fi atribuite si cum? A1 A2 A3 A4 A5 L1 X X X L2 X X X L3 X X L4 X X X L5 X X X L6 X X X X L7 X X X Tabelul 1 A6 A7 X X X X X X X X X X

2. Cate dintre lucrarile L1, L2,,L8 pot fi atribuite agentilor A1, A2,,A8 si cum, daca atribuirile permise sunt cele date in tabelul 2. Se reaminteste ca: - o lucrare poate fi repartizata cel mult unui agent; - un agent poate primi cel mult o lucrare.

A1 A2 L1 X L2 X X L3 X L4 X X L5 X L6 X L7 L8 X

A3 A4 X X X X X X X X X X

A5 A6 A7 A8 X X X X X X X X X X X X X X X X X X X X

Tabelul 2 3. Fundatia de culturism (cultura si turism) STII SI TE PLIMBI organizeaza un concurs national de orientare turistica in care fiecare judet este reprezentat de o echipa formata din cinci tineri. Intrebarile din concurs sunt din cinci domenii: geografie, istorie, botanica si zoologie, protectia mediului si cunostinte medicale de prim ajutor. Regulamentul concursului prevede ca la intrebarile dintr-un domeniu sa raspunda un singur membru al echipei, special desemnat pentru domeniul respectiv. Pentru formarea echipei judetului X s-a organizat un examen de selectie in cadrul caruia concurentii au trebuit sa raspunda in scris la intrebari din cele cinci domenii. Raspunsurile, pe domenii, au fost notate cu calificative dela 1 la 15, vezi tabelul 3. Dupa corectarea tezelor, echipa reprezentativa a fost alcatuita din primii cinci clasati cu cel putin 40 puncte. Pentru repartizarea candidatilor reusiti pe cele cinci domenii s-a propus drept criteriu maximizarea sumei notelor primite la concursul de selectie. i) Determinati aceasta repartizare. Este ea acceptabila? ii) In caz ca aveti rezerve fata de solutia de la i) cautati (in maniera algoritmica, desigur) o alta solutie de repartizare mai convingatoare.
Candidati reusiti A1 L1 geografie L2 istorie Domenii L3 bot. si zoo. L4 prot. med. L5 prim ajutor Punctaj 5 8 9 13 5 40 A2 6 8 9 15 5 43 A3 11 8 11 11 15 56 A4 11 15 5 10 8 49 A5 5 9 15 5 10 44

Tabelul 3

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