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.