Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
PROBLEM OPTIMALNE ASIGNACIJE
(17.5.2017.)
Doc. dr. sc. Tunjo Perić
1. Problem optimalne asignacije
Problem optimalne asignacije sastoji se u tome da se na optimalan
način rasporedi n radnika na n poslova, polazeći od toga da svi ti
radnici nisu jednako efikasni za pojedini posao.
Taj problem je moguće riješiti ako se na neki način, recimo
testiranjem, izmjeri efikasnost, cij, osobe i u poslu j, (i,j = 1, 2, ...,
n). Svaki raspored osoba 1, 2, ..., n na poslove j1, j2, ..., jn je jedna
permutacija. Optimalni raspored ili asignacija j1, j2, ..., jn je ona
permutacija od 1, 2, ..., n koja maksimizira sumu individualnih
efikasnosti,
1 21 2
1
...n k
n
j j nj kj
k
c c c c
9.5.2017 2
Očigledno je da je tako postavljeni problem kombinatorne prirode.
Iz kombinatorike znamo da postoji n! različitih permutacija od
prvih n prirodnih brojeva. Dakle, imamo n! različitih asignacija.
Poznato je da taj broj postaje vrlo velik kad n pređe 10. Na primjer
za n = 20, n! = 2 432 902 008 176 640 000.
Vidimo da je praktički nemoguće nabrojiti tolike asignacije,
ocijeniti njihovu efikasnost i izabrati asignaciju sa maksimalnom
efikasnosti. Međutim, problem se može riješiti brzo i lako, ako se
formulira kao problem transporta.
Neka je
Budući da smo pretpostavili da je svaka osoba dodijeljena samo na
jedan posao imamo:
1 ako je -ta osoba dodijeljena na posao
0 u protivnom slučaju ij
i jx
(1)
1
1, 1,2, ...,n
ij
j
x i n
(2)9.5.2017 3
Iz razloga što se na svaki posao dodjeljuje samo jedna osoba,
slijedi
Matrice kao rješenja sustava jednadžbi (2) i
(3), imaju to svojstvo da svaki njihov redak i stupac ima sumu
jednaku jedinici. Takve matrice pojavljuju se u statistici i zovu se
dvostruko stohastičke matrice. Njihovi se elementi interpretiraju
kao vjerojatnosti. Ako matrica zadovoljava također i uvjet
(1), to jest ako predstavlja rješenje problema asignacije (1), (2) i
(3), zove se matrica permutacija.
Cilj u problemu asignacije je izabrati takvu asignaciju koja
zadovoljava (1), (2) i (3) i maksimizira ukupnu efikasnost, to jest
9.5.2017 4
1
1, 1, ...,n
ij
i
x j n
(3)
, , 1, ..., ,ij
x i j n
ijx
ijx
1 1 1
maxk
n n n
kj ij ij
k i j
c c x
(4)
Problem asignacije (1), (2), (3) i (4) ekvivalentan je problemu
transporta (2), (3), (4) i
(5)
Prema tome, problem asignacije (2), (3), (4) i (5) je specijalan
slučaj Hitchcock-ovog problema transporta. Dovoljno je postaviti
si = dj = 1, da se Hitchcock-ov problem reducira na problem
asignacije.
Problem asignacije ima svojstvo da je svako njegovo bazično
rješenje degenerirano, jer samo n bazičnih varijabli ima vrijednost
1, a preostale varijable uzimaju vrijednost 0. Po tome se može
zaključiti da je problem asignacije u visokom stupnju degeneriran.
Kao takav, problem asignacije može se riješiti bilo kojom
metodom koja se koristi u slučaju degeneracije. Međutim, za
problem asignacije je razvijena jedna specijalna metoda koja je
pokazala veliku efikasnost, mađarska metoda.
0ij
x
9.5.2017 5
2. Mađarska metoda
Autor mađarske metode za problem asignacije je američki
matematičar H. W. Kuhn (1955).
Mađarska metoda koristi u rješavanju problema asignacije njegov
dualni problem na osobito efikasan način. Njezina polazna točka je
neko moguće rješenje duala problema asignacije (2), (3), (4) i (5),
to jest problema
Treba primijetiti da mjera individualne efikasnosti cij može biti
vrijeme potrebno radniku i da izvrši posao j. U tom slučaju cilj u
direktnom problemu asignacije je
Min( ).
i j ij
i j
i j
u v c
u v
min( ),ij ij
i j
c x9.5.2017 6
a cilj u dualu tog problema je dok su uvjeti
Prvi korak po mađarskoj metodi sastoji se u tome da se reducira
matrica efikasnosti na matricu , gdje su
Redukcija se provodi na način da se minimalni element svakog
retka odbija od svih elemenata retka. Zatim se u dobivenoj matrici
odbija minimalni element svakog stupca od svih elemenata stupca.
Tako modificirana matrica zove se prva reducirana matrica. Ta
matrica sadrži samo pozitivne brojeve i nule i to bar jednu nulu u
svakom retku i svakom stupcu.
Primjer: Imamo 4 radna mjesta, odnosno 4 posla koja treba
obaviti i 4 osobe koje su kvalificirane da na njima rade. Matrica
njihove individualne efikasnosti dana je u satima rada, kako
slijedi
max( )i j
i j
u v .
i j iju v c
ijc ij
c
.ij ij i j
c c u v
ijc
9.5.2017 7
Poslovi
Osobe
1 2 3 4
1 8 15 10 9
2 17 18 12 12
3 11 14 7 13
4 9 16 14 6
Prva reducirana matrica sadrži elemente: ij
c
Poslovi
Osobe
1 2 3 4
1 0 1 2 1
2 5 0 0 0
3 4 1 0 6
4 3 4 8 0
9.5.2017 8
Svaka asignacija koja minimizira ukupne troškove na osnovi te
reducirane matrice troškova, minimizira ukupno potrebno vrijeme
rada. Sa druge strane ta prva reducirana matrica sadrži samo
pozitivne elemente ili nule, pa ukupni troškovi ni za jednu asignaciju
ne mogu biti negativni. Iz toga slijedi da je optimalna svaka
asignacija s ukupnim troškovima jednakim nuli.
U sljedećem koraku traži se takva asignacija.
U drugom koraku raspoređuje se maksimalni broj osoba na
raspoloživa radna mjesta ili poslove. Ako je takva asignacija
kompletna (obuhvaća sve osobe), rješenje je nađeno. Ako se ne
dobije kompletna asignacija, prelazi se na treći korak.
U našem primjeru lako se vidi da je optimalna asignacija 1 1, 2
2, 3 3 i 4 4.
U slučaju kad reducirana matrica ima velike dimenzije postupa se na
sljedeći način:
(a) Sukcesivno se ispituju reci dok se ne nađe redak u kojem je samo
jedna nula. Ta nula se označi sa a ostale nule u istom stupcu sa
X. Tako se postupa dok se ne ispitaju svi reci.
ijc
9.5.2017 9
(b) Zatim se traže stupci koji sadrže samo jednu nulu. Ta se nula
označi sa a ostale nule u njezinom retku se precrtaju, to jest
označe sa X.
(c) Ponavlja se (a) i (b) uzastopce dok (1) ne ostane ni jedna nula
neoznačena, ili (2) bar po dvije preostale neoznačene nule leže u
svakom retku i stupcu. U slučaju (1) nule obilježene sa čine
asignaciju s minimalnim troškovima, koja nije uvijek i kompletna
asignacija. Dogodi li se (2), treba na neki drugi način konstruirati
asignaciju s minimalnim troškovima. Na primjer, prva nula se
označi, a preostale precrtaju.
U našem primjeru bilo je dovoljno primijeniti (a) i (b) samo po jedan
put. Iz primjene (a) rezultira Poslovi
Osobe
1 2 3 4
1 0 1 2 1
2 5 0 0 0
3 4 1 0 6
4 3 4 8 0
0
0
09.5.2017 10
a iz primjene (b) maksimalna i istodobno kompletna asignacija:
Poslovi
Osobe
1 2 3 4
1 0 1 2 1
2 5 0 0 0
3 4 1 0 6
4 3 4 8 0
0
0
0
0
Ako dobivena asignacija ne čini kompletno rješenje, procedura se
nastavlja.
Treći korak vodi do druge reducirane matrice. U tu svrhu se
odredi minimalni broj linija koje prolaze kroz sve nule u prvoj
reduciranoj matrici. Zatim se najmanji od nepokrivenih elemenata
odbije od svih nepokrivenih elemenata, a doda svim elementima
koji leže na presjeku dviju linija. Rezultat tih operacija je druga
reducirana matrica.9.5.2017 11
Kako se konstruira sustav linija kroz sve nule? Procedura je sljedeća:
(a) Označe se svi reci za koje nije učinjena asignacija (imaju
precrtane nule (koje se još nazivaju zavisne nule), a nemaju
označene nule (koje se još nazivaju nezavisne nule)).
(b) Zatim se označe stupci koji imaju zavisne nule u označenim
recima.
(c) Potom se označe još neobilježeni reci koji imaju asignacije u
označenim stupcima.
(d) Ponove se radnje (b) i (c) dok se lanac markiranja na završi.
(e) Na kraju se povuku linije kroz sve neoznačene retke i označene
stupce.
Može se pokazati da svaka linija prolazi kroz jednu i samo jednu
asignaciju (tj. kroz nulu označenu sa ).
Četvrti korak sastoji se u ponavljanju postupaka iz koraka 2 i 3
na drugoj reduciranoj matrici sve dotle dok se ne dobije
kompletno rješenje.
9.5.2017 12
Primjer: Prva reducirana matrica izgleda ovako:
5 0 8 10 11
0 6 15 0 3
8 5 0 0 0
0 6 4 2 7
3 5 6 0 8
Startamo s maksimalnom asignacijom:
5 0 8 10 11
0 6 15 0 3
8 5 0 0 0
0 6 4 2 7
3 5 6 0 8
0
0
0
0
9.5.2017 13
Označili smo drugi redak, jer nema nijedne asignacije, a zatim prvi i
četvrti stupac, jer imaju zavisne nule u označenom drugom retku.
Potom se označe reci 4 i 5, jer imaju asignacije u označenim stupcima.
Time završava lanac označavanja.
Minimalni skup linija koje pokrivaju sve nule ide kroz neoznačeni prvi
i treći redak i kroz označeni prvi i četvrti stupac.
5 0 8 10 11
0 6 15 0 3
8 5 0 0 0
0 6 4 2 7
3 5 6 0 8
0
0
0
0
Sada se izabere najmanji nepokriveni element. U toj matrici to je
element c25 = 3. Oduzmemo 3 od svakog nepokrivenog elementa i
dodamo 3 svakom elementu na presjeku linija, pa dobijemo novu,
drugu reduciranu matricu:9.5.2017 14
8 0 8 13 11
0 3 12 0 0
11 5 0 3 0
0 3 1 2 4
3 2 3 0 5
0
0
0
0
0
U ovoj matrici je kompletna asignacija 2 5 3 1 4 optimalno rješenje
problema.
U slučaju da se traži asignacija koja maksimizira prva
reducirana matrica konstruira se na ovaj način:
Nađe se
pa se tako dobivena matrica pomnoži s (-1).
Zatim se postupa po istoj proceduri kao i za problem minimuma.
,ij ij
i j
c x
9.5.2017 15
,(max ),
ij ij iji j
c c c
Primjer 1: U poduzeću “Alfa” pojavila se potreba za 4 poslovna
zadatka, P1, ..., P4. Ovi zadaci se mogu obavljati na 5 strojeva, S1,
..., S5, pri čemu se na jednom stroju može obavljati samo jedan
poslovni zadatak. Tako će se za obavljanje zadataka angažirati 4
stroja, a 1 stroj će se izdvojiti za ostale poslove. Vrijeme obavljanja
poslovnih zadataka na strojevima (izraženo u norma satima)
prikazano je u sljedećoj tablici:
S1 S2 S3 S4 S5
P1 14 8 12 10 8
P2 12 10 - 8 6
P3 10 8 6 10 4
P4 4 16 6 12 8
Uzimajući u obzir da stroj S3 nije podoban za obavljanje poslovnog
zadatka P2 i da obvezno mora biti angažiran, potrebno je napraviti
takav raspored strojeva na poslovne zadatke koji će osigurati da se
svi zadaci obave za minimalno vrijeme.9.5.2017 16
Uvodimo fiktivni posao P5. c51, c52, c54 i c55 dobivaju vrijednost 0, a
c53 dobiva vrijednost M (izrazito veliki broj), kako ne bi došlo do
angažiranja stroja S3 na fiktivnom proizvodu P5, dok c23 dobiva
vrijednost M, kako ne bi došlo do angažiranja stroja S3 u proizvodnji
proizvoda P2.
Prema tome, imamo:
S1 S2 S3 S4 S5
P1 14 8 12 10 8
P2 12 10 M 8 6
P3 10 8 6 10 4
P4 4 16 6 12 8
P5 0 0 M 0 0
Prva reducirana matrica izgleda, kako slijedi:
9.5.2017 17
S1 S2 S3 S4 S5
P1 6 0 2 2 0
P2 6 4 M-8 2 0
P3 6 4 0 6 0
P4 0 12 0 8 4
P5 0 0 M-2 0 0
Krećemo od drugog retka gdje imamo samo jednu nulu koju
označavamo kvadratićem. Precrtavamo nule u petom stupcu. Zatim
idemo do prvog retka koji ima preostalu jednu nulu koju označavamo
kvadratićem, a precrtavamo nule u drugom stupcu. Treći redak ima
samo jednu neprecrtanu nulu, i nju označavamo kvadratićem, a
precrtavamo nule u trećem stupcu. Četvrti redak ima samo jednu
preostalu nulu, koju označavamo kvadratićem i precrtavamo nule u
prvom stupcu. U petom retku ostala je samo jedna nula, koju također
označavamo kvadratićem.9.5.2017 18
S1 S2 S3 S4 S5
P1 6 0 4 2 0
P2 6 4 M-6 2 0
P3 6 4 2 6 0
P4 0 12 2 8 4
P5 0 0 M 0 0
0
0
0
0
0
Prema tome, u prvom koraku je dobiveno optimalno rješenje: x12 =
1, x25 = 1, x33 = 1, x41 = 1, x54 = 1.
9.5.2017 19
Primjer 2. U poduzeću se pojavila potreba za obavljanjem 3 poslovna
zadatka, za što je potrebno angažirati radnike izvan poduzeća. Na
natječaj su se javila 4 kandidata. Kandidati obavljaju pojedine
poslovne zadatke za različito vrijeme, što je prikazano u sljedećoj
tablici (vrijeme izraženo u satima).
Poslovnizadatak
Kandidati
1 2 3 4
1 4 4 7 9
2 5 3 10 9
3 7 5 7 -
Četvrti kandidat nije osposobljen za obavljanje trećeg poslovnog
zadatka. Potrebno je:
a) Rasporediti kandidate na poslovne zadatke tako da se osigura
optimalno korištenje vremena radnika, ako radnik 2 obvezno
mora biti zaposlen,9.5.2017 20
b) Izračunati za koje se najkraće vrijeme mogu izvršiti svi poslovi, i
c) Utvrditi koji kandidat neće bitan angažiran.
Rješenje: xij (i = 1, 2, 3, j = 1, 2, 3, 4) – i–ti poslovni zadatak
dodijeljen j–tom kandidatu.
Min z = 4x11 + 4x12 + 7x13 + 9x14 + 5x21 + 3x22 + 10x23 + 9x24 + 7x31 +
5x32 + 7x33 + Mx34
p.o.
x11 + x12 + x13 + x14 = 1
x21 + x22 + x23 + x24 = 1
x31 + x32 + x33 + x34 = 1
x11 + x21 + x31 1
x12 + x22 + x32 1
x13 + x23 + x33 1
x14 + x24 + x34 1
1, ako je -ti poslovni zadatak dodijeljen -tom kandidatu
0, ako -ti poslovni zadatak nije dodijeljen -tom kandidatuij
i jx
i j
9.5.2017 21
Ovdje imamo otvoreni model raspoređivanja jer je broj poslovnih
zadataka manji od broja kandidata. Zato ga svodimo na zatvoreni
dodavanjem fiktivnog četvrtog poslovnog zadatka . Koeficijenti u
funkciji cilja za varijable koje se odnose na fiktivni poslovni zadatak
su nule, jer se radi o dopunskim varijablama, osim varijable x42 koja
je artificijelna jer kandidat 2 mora biti zaposlen. Tako će matrica
efikasnosti imati sljedeći oblik:
4 4 7 9
5 3 10 9
7 5 7 M
0 M 0 0
ijc
Metoda asignacije svodi se na sljedeći postupak:
Korak 1. Reduciramo matricu efikasnosti.
9.5.2017 22
0 0 3 5
2 0 7 6
2 0 2 M-5
0 M 0 0
Korak 2: Označavanje nula prema naprijed navedenim uputama.
0 0 3 5
2 0 7 6
2 0 2 M-5
0 M 0 0
0
0
Budući da je broj označenih nula manji od n = 4, nemamo potpunu
asignaciju. Potrebno je nastaviti proceduru asignacije.
Korak 3. Označimo redak koji nema označenu (nezavisnu) nulu.
Kod nas je to redak 3. Precrtamo stupac koji ima zavisnu nulu (nulu
precrtanu sa X) u označenom retku. To je stupac 2. 9.5.2017 23
0
Označimo redak koji ima nezavisnu nulu u precrtanom stupcu. Kod
na je to redak 2.
Precrtamo sve neoznačene retke. Kod nas su to reci 1 i 4.
0 0 3 5
2 0 7 6
2 0 2 M-5
0 M 0 0
0
0
Korak 4. Tražimo minimalnu vrijednost u neprecrtanom dijelu
tablice. Kod nas je to 2. Od svih neprecrtanih elemenata oduzmemo
2, a dodamo 2 elementima gdje se sijeku precrtani stupac i precrtani
reci. Prema tome, imamo.
9.5.2017 24
0
0 2 3 5
0 0 5 4
0 0 0 M-7
0 M+2 0 0
0
0
0
0
Dobiveno je optimalno rješenje: x11 = 1, x22 = 1, x33 = 1, x44 = 1.
Minimalna vrijednost funkcije cilja je: z = 4 + 3 + 7 + 0 = 14. Neće
biti angažiran kandidat 4.
Primjer 3. U poduzeću treba obaviti 4 posla P1, ..., P4. Za
obavljanje tih poslova imamo na raspolaganju 5 strojeva S1, ..., S5.
Korištenje strojeva za obavljanje poslova omogućava proizvodnju
sljedeće količine proizvoda tijekom jedne smjene.
9.5.2017 25
StrojeviPoslovni zadatak
1 2 3 4
1 26 28 34 34
2 28 - 36 34
3 20 28 30 28
4 30 32 36 30
5 24 30 32 32
Vidimo da se stroj 2 ne može angažirati na posao 2. Potrebno je:
a) Rasporediti strojeve na poslove kako bismo dobili maksimalnu
proizvodnju tijekom smjene.
b) Odrediti koji stroj će ostati slobodan.
c) Izračunati maksimalnu proizvodnju u jednoj smjeni.
Rješenje:
xij (i = 1, ..., 5, j = 1, ..., 4) – i-ti stroj raspoređen na j-ti poslovni
zadatak. 9.5.2017 26
Max z = 26x11 + 28x12 + 34x13 + 34x14 + 28x21 – Mx22 + 36x23 + 34x24
+ 20x31 + 28x32 + 30x33 + 28x34 + 30x41 + 32x42 + 36x43 + 30x44 +
24x51 + 30x52 + 32x53 + 32x54
p.o.
x11 + x12 + x13 + x14 1
x21 + x22 + x23 + x24 1
x31 + x32 + x33 + x34 1
x41 + x42 + x43 + x44 1
x51 + x52 + x53 + x54 1
x11 + x21 + x31 + x41 + x51 = 1
x12 + x22 + x32 + x42 + x52 = 1
x13 + x23 + x33 + x43 + x53 = 1
x14 + x24 + x34 + x44 + x54 = 1
1, ako je -ti stroj raspoređen na -ti poslovni zadatak
0 ako -ti stroj nije raspoređen na -ti poslovni zadatakij
i jx
i j
9.5.2017 27
Pošto je broj strojeva veći od broja poslovnih zadataka, potrebno je
uvesti fiktivni poslovni zadatak s koeficijentima u funkciji cilja
jednakim nuli. Potom se oduzimaju vrijednosti po stupcima od
najveće vrijednosti u matrici. Tako dobivena matrica se množi s (-1) i
dalje se nastavlja raditi kao da se radi o problemu minimuma. Prema
tome, imamo:
10 8 2 2 0
8 M 36 0 2 0
16 8 6 8 0
6 4 0 6 0
12 6 4 4 0
/(-1)
9.5.2017 28
4 4 2 0 0
2 M+36 0 0 0
10 4 6 6 0
0 0 0 4 0
6 2 4 2 0
0
0
0
0
4 4 2 0 2
2 M+36 0 0 2
8 2 4 4 0
0 0 0 4 2
4 0 2 0 0
0
0
0
0
0
Prema tome, dobiveno je optimalno rješenje: x14 = 1, x23 = 1, x35 = 1,
x41 = 1 i x52 = 1. Stroj 3 će ostati neangažiran. Maksimalna
proizvodnja z = 34 + 36 + 0 + 30 + 30 = 130.9.5.2017 29