Pojęcia teorii grafów

Transkrypt

Pojęcia teorii grafów
Klasyczne zagadnienie przydziału
Można wyodrębnić kilka grup problemów, w których zadaniem jest odpowiednie
rozmieszczenie posiadanych zasobów. Najprostszy problem tej grupy nazywamy klasycznym
zagadnieniem przydziału i jego model danych wejściowych przedstawia się następująco:
mamy n prac (zadań) do wykonania oraz n możliwych wykonawców tych prac (maszyn,
robotników, itp.). Dla każdej pary (i,j) postaci (i-ty wykonawca, j-ta praca) znana jest
efektywność wykonania i – wykonawcą j – pracy. Wszystkie te pary dają kwadratową
macierz efektywności [cij]. W konkretnych problemach decyzyjnych efektywność może być
traktowana różnie, np. wartościami cij może być wydajność pewnych prac, specjalizacja do
wykonania zadań, itp.
Klasyczne zagadnienie przydziału polega na tym, aby każdemu wykonawcy
przydzielić jedną pracę do wykonania, aby sumaryczna efektywność była maksymalna lub
minimalna, w zależności od konkretnego traktowania wartości cij.
Przykład:
Efektywność robotnika na stanowisku pracy przedstawia macierz:
praca
robotnik
1
2
3
4
1
6
3
5
1
2
5
7
2
5
3
4
8
3
6
4
1
9
4
7
Przydział:
Przydział:
1 robotnik – praca 1
1 robotnik – praca 4
2 robotnik – praca 2
2 robotnik – praca 3
3 robotnik – praca 3
3 robotnik – praca 1
4 robotnik – praca 4
4 robotnik – praca 2
daje efektywność 6+7+3+7=23.
daje efektywność 1+8+5+5=19.
Każdy
wariant
wyboru
odpowiada
permutacji
wzajemnie
jednoznacznego
odwzorowania zbioru (1,2,…,n) w siebie.
 1
Permutację tę możemy zapisać następująco: 
 p1
2
p2
... n 
 i wyznacza ona jednoznacznie
... p n 
przydział prac, której efektywność uzyskujemy sumując c1 p1 ,c2 p2 ,..., cnpn .
Wszystkich przydziałów jest tyle ile jest możliwych permutacji. Dla n=4 mamy
1 robotnik – 4 warianty prac;
2 robotnik – 3 warianty prac;
3 robotnik – 2 warianty prac;
4 robotnik – 1 wariant prac.
4x3x2x1=24=4!
Ogólnie rzecz ujmując rozwiązanie klasycznego zagadnienia przydziału za pomocą
przeglądu wszystkich możliwych permutacji przydziałów nie jest efektywne, nawet z
udziałem najszybszych komputerów.
Istnieją bardziej efektywne metody do rozwiązania zagadnienia przydziału. To
zagadnienie jest szczególnym przypadkiem zagadnienia transportowego i może być
rozwiązane metodą potencjałów. Poniższa tablica transportowa przedstawia, w jaki sposób
zapisać zagadnienie przydziału w postaci tablicy transportowej.
praca
robotnik
B1
B2
.....
....
Bn
1
1
.....
....
1
A1
1
c11
c12
…
…
c1n
A2
1
c21
c22
…
…
c2n
...
... …
…
…
…
…
...
... …
…
…
…
…
An
1
cn1
cn2
…
…
cnn
Jeżeli w zagadnieniu przydziału funkcja celu ma być maksymalizowana, to wystarczy
przekształcić macierz kosztów i nadać jej przeciwne znaczenie, to znaczy: albo przemnożyć
każdy koszt cij przez (-1) albo odjąć od jej największego elementu macierzy wszystkie
pozostałe.
Zadanie 1:
W przedsiębiorstwie 4 sekretarki należy przydzielić do prowadzenia 4 różnych prac
biurowych. Znany jest czas zajmujący tym sekretarkom wykonanie poszczególnych prac.
sekretarki
1
2
3
4
czas niezbędny na wykonanie prac
1
2
3
4
42
48
24
36
48
42
30
36
42
54
30
42
36
48
36
48
Zakładając, że każda sekretarka będzie wykonywać tylko jedną pracę, określić
optymalny przydział z punktu widzenia minimalizacji łącznego czasu wykonania prac.
Rozwiązanie (algorytm węgierski)
KROK 1
Przekształcamy macierz kosztów [cij], aby w każdym wierszu i każdej kolumnie
pojawiło się przynajmniej jedno zero. W tym celu od elementów każdego wiersza macierzy
kosztów odejmujemy jej element najmniejszy. Jeżeli trzeba od każdej kolumny
przekształconej macierzy odejmujemy jej najmniejszy element.
KROK 2
Skreślamy w przekształconej macierzy wiersze i kolumny macierzy zawierające zera
możliwie najmniejszą liczbą linii. Jeżeli najmniejsza liczba linii potrzebna do skreślenia
wszystkich zer jest równa wymiarowi macierzy, to otrzymane rozwiązanie jest
optymalne. (jeżeli nie – przechodzimy do KROKU POPRAWA). Jeżeli spełnimy warunek,
to przechodzimy do konstrukcji optymalnego rozwiązania. Otrzymujemy je budując macierz
rozwiązania [xij] tak, aby jedynki znalazły się tylko w miejscach, gdzie w przekształconej
macierzy kosztów znajdują się zera. W każdym wierszu i każdej kolumnie może znajdować
się tylko jedna jedynka. Tak zbudowana macierz [xij] przedstawia optymalny przydział, a
iloczyn skalarny wyjściowej macierzy kosztów [cij] przez [xij] daje optymalny koszt.
KROK POPRAWA
Jeżeli najmniejsza liczba linii potrzebna do skreślenia wszystkich zer jest mniejsza od
wymiaru macierzy to znajdujemy najmniejszy nie skreślony jej element. Wartość
wyznaczonego elementu:
a) odejmujemy od elementów nie skreślonych;
b) dodajemy do elementów podwójnie skreślonych.
Z tak przekształconą macierzą kosztów wracamy do kroku 2.
W skończonej liczbie kroków wyznaczamy optymalne rozwiązanie.
42
48
42
36
min.
kolumna
18
18
12
0
48
42
54
48
24
30
30
36
36
36
42
48
18
18
12
0
0
24
12
24
12
12
0
0
0
0
0
12
0
12
0
0
0
0
0
6
0
6
6
min. wiersz
24
18
30
KROK 1
18
30
wiersz
12
36
0
min.
0
kolumna
12
6
12
12
6
KROK 1
kolumna
18
18
12
0
18
18
12
0
KROK 2
linie
24
12
24
12
12
12
0
12
0
12
0
12
0
0
0
0
0
0
0
0
0
0
0
0
0
0
12
6
12
12
6
6
0
6
6
6
0
6
6
Do skreślenia wszystkich zer wystarczą 3 linie. Przechodzimy do kroku POPRAWA.
18
18
12
0
12
0
12
0
0
0
0
0
6
0
6
6
12
18
6
0
6
0
6
0
0
6
0
6
0
0
0
6
KROK
POPRAWA
min=6
KROK 2
linie
12
18
6
0
12
18
6
0
6
0
6
0
6
0
6
0
0
6
0
6
0
6
0
6
0
0
0
6
0
0
0
6
Do skreślenia wszystkich zer potrzeba 4 linii. Przechodzimy do budowy rozwiązania
optymalnego.
Mamy dwa optymalne rozwiązania:
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
Wartość funkcji celu w obu przypadkach wynosi 144.
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
42
48
24
36
42
48
24
36
48
42
36
42
54
48
30
30
36
36
42
48
48
42
36
42
54
48
30
30
36
36
42
48
144
144
Optymalny przydział prac:
Przydział:
Przydział:
1 sekretarka – praca 4
1 sekretarka – praca 4
2 sekretarka – praca 2
2 sekretarka – praca 2
3 sekretarka – praca 1
3 sekretarka – praca 3
4 sekretarka – praca 3
4 sekretarka – praca 1
daje efektywność 36+42+24+42=144.
daje efektywność 36+42+30+36=144.
Uwaga 1: W wielu problemach praktycznych wykonawców jest więcej niż prac do wykonania lub
odwrotnie. W takim przypadku dopisujemy w macierzy kosztów dodatkowy wiersz lub kolumnę
(fikcyjny wykonawca lub fikcyjna praca) i przyjmujemy efektywność zero w macierzy kosztów.
Uwaga 2: Metoda węgierska stosuje się do problemu minimalizacji. Jeżeli w zagadnieniu przydziału
funkcja celu ma być maksymalizowana, to wystarczy przekształcić macierz kosztów i nadać jej
przeciwne znaczenie, to znaczy: albo przemnożyć każdy koszt cij przez (-1) albo odjąć od jej
największego elementu macierzy wszystkie pozostałe.
Uwaga 3: W praktyce zdarza się, że pewne przydziały są niedopuszczalne. W tym przypadku do macierzy
kosztów, gdzie przydział jest niedopuszczalny wpisujemy bardzo dużą liczbę M, taką że po odjęciu od
niej jakiejś liczby praktycznie nie zmieni jej wartości.
Zadanie 2: O 6 stanowisk pracy: murarza (m), stolarza (s), betoniarza (b), cieśli (c), dekarza (d)
i instalatora (i) stara się pięciu kandydatów A, B, C, D, E. Kandydat A ma uprawnienia stolarza
i instalatora (s,i), B ma uprawnienia (s,d), C – (s,d), D – (m,s,c,i), E – (b,i).
PYTANIE 1: Czy można tak dopasować kandydatów do stanowisk pracy, by każdy otrzymał
pracę zgodnie ze swoimi uprawnieniami?
PYTANIE 2: Na ile sposobów można dopasować kandydatów do stanowisk pracy zgodnie z ich
uprawnieniami?
Przypuśćmy, że w wyniku przeprowadzenia
m
s
b
d
c
i
pewnych testów, ustalono, iż w skali od 1 do 6
A
0
4
0
0
0
3
przydatność poszczególnych kandydatów do
B
0
1
0
3
0
0
stanowisk przedstawia się następująco (zero
C
0
5
0
6
0
0
oznacza brak kwalifikacji) {patrz tablica obok}:
D
3
5
0
0
4
4
E
0
0
2
0
0
5
PYTANIE 3: Który z czterech dopuszczalnych przydziałów pracy jest najkorzystniejszy
(maksymalizuje sumę punktów)?
UWAGA 1
0
0
0
3
0
4
1
5
5
0
0
0
0
0
2
0
3
6
0
0
0
0
0
4
0
3
0
0
4
5
0
0
0
0
0
0
UWAGA 2
-1
0
0
0
-3
0
0
-4
-1
-5
-5
0
0
0
0
0
0
-2
0
0
-3
-6
0
0
0
0
0
0
-4
0
0
-3
0
0
-4
-5
0
57
57
57
-4
57
57
-3
57
57
-4
-5
57
UWAGA 3
niedopuszczalne
57
57
57
-3
57
57
57
57
57
-3
57
57
-4
-1
-5
-5
57
57
-4
-1
-5
-5
57
57
57
57
57
57
-2
57
57
57
57
57
-2
57
57
-3
-6
57
57
57
57
-3
-6
57
57
57
57
57
57
-4
57
57
-3
57
57
-4
-5
57
min. wiersz
-4
-3
-6 KROK 1
-5 wiersz
-5
57
61
60
63
2
62
0
0
2
1
0
62
0
61
60
63
62
3
0
61
0
0
62
62
0
61
60
63
1
62
0
1
60
63
1
0
0
Spośród kombinatorycznych zagadnień optymalizacyjnych są różne inne zagadnienia,
które mają zastosowania w praktyce, ale – niestety – nie mają efektywnych metod
rozwiązania. Jednym z takich zagadnień jest zagadnienie komiwojażera. Polega ono na:
mamy n miast i macierz liczbową [rij] odległości pomiędzy nimi. Komiwojażer, który
znajduje się w jednym z nich musi odwiedzić wszystkie pozostałe miasta i wrócić do
wyjściowego, tak aby sumaryczna pokonana odległość była jak najmniejsza.

Podobne dokumenty