Mieczysław POŁOŃSKI Wydział Budownictwa i Inżynierii Środowiska, Szkoła Główna Gospodarstwa Wieskiego, Warszawa, ul. Nowoursynowska 159 e-mail: mieczyslaw_polonski@sggw.pl Poszukiwanie optymalnego wyrównania harmonogramu zatrudnienia metodą analityczną Założenia Zakładam, że dysponuę wykresem zapotrzebowania na robotników niezbędnych do pracy w kolenych ch, każdego znane est zapotrzebowanie r dla = 1..N, gdzie N to całkowita liczba dni (tygodni, miesięcy) pracy. Zakładam, że wyznaczona w obliczeniach optymalna dostępność x >= r, czyli że zawsze zapotrzebowanie będzie całkowicie zaspokoone, natomiast maksymalne zatrudnienie R równe będzie maksymalnemu zapotrzebowaniu ednego w analizowanym okresie. Ponieważ analizuemy zapotrzebowanie na zasób odnawialny, przymuę że siła robocza nie może być magazynowana. Przymuę, że przed rozpoczęciem pracy na budowie występue zatrudnienie w ilości c robotników (c >=0). Zadanie rozwiązywać będę ze względu na kryterium kosztowe, przy czym będą brane pod uwagę dwa różne koszty: w sytuaci, gdy zatrudnienie na budowie przekracza wymagane zapotrzebowanie koszt związany z niewykorzystaniem danego środka produkci, określony funkcą Θ zależną od stopnia przekroczenia wymaganego zapotrzebowania oraz koszt Ψ wyrażaący nakłady ponoszone na zmianę poziomu zatrudnienia analizowanego zasobu, również uzależniony od wielkości zmiany zatrudnienia w kolenych okresach czasu. Poszukiwane rozwiązanie powinno minimalizować sumę obu rozpatrywanych kosztów Θ i Ψ w całym horyzoncie planowania. N FC przy ograniczeniach min : ( x r ) ( x x 1) 1 x r dla 1.. N oraz x 0 c Należy również zauważyć, że eżeli chodzi o koszty przekroczenia zapotrzebowania Θ oraz koszty zmiany poziomu zatrudnienia Ψ, to są one wyrażone w postaci związku funkcynego, przy czym nie musi to być funkca liniowa. Przy wyznaczaniu kosztów zmiany zatrudnienia Ψ można również przyąć różne stawki w zależności do tego, czy zatrudnienie w kolenych ednostkach rośnie czy też malee. Zakładam również, że koszt zatrudnienia robotników Ψ w pierwszym dniu (koszt zmiany poziomu zatrudnienia z poziomu c na r 1 ) wynosi zero. Metoda Ponieważ funkce kosztów Θ i Ψ nie muszą być liniowe do rozwiązania nie można zastosować programowania liniowego. Do rozwiązania zastosuę metodę programowania dynamicznego (PD). Metodę tę stosuemy właśnie do procesów wieloetapowych (1..N) z wieloma zmiennymi decyzynymi (x 1..x N ). Idea programowania dynamicznego polega na tym, że zadanie optymalizaci z N zmiennymi rozkłada się na N zadań optymalizacynych z edną zmienną decyzyną każde. Poszczególne etapy procesu wieloetapowego łączy się za pomocą zależności o charakterze rekurencynym. Warunkiem zastosowania PD est, aby proces posiadał dwie cechy: 1. n- wymiarowa funkca celu powinna posiadać postać sumy funkci celu o edne zmienne decyzyne, 2. wartość uzyskana na -tym etapie optymalizaci zależy wyłącznie od stanu procesu na etapie poprzednim oraz decyzi podete na tym właśnie, -tym etapie, natomiast nie zależy od decyzi podętych na etapach poprzednich. (taką własność procesu nazywamy własnością Markowa). Do procesów decyzynych posiadaących własność Markowa stosue się zasadę optymalności Bellmana (Benamin i Cornell 1977) mówiące, że polityka optymalna ma tę własność, że niezależnie od początkowego stanu i początkowe decyzi pozostałe decyze muszą stosować politykę optymalną
ze względu na stan wynikaący z pierwsze decyzi. Właśnie korzystaąc z te cechy algorytm programowania dynamicznego rozkłada cały analizowany proces na etapy i poszukue rozwiązania optymalnego przechodząc przez kolene wyróżnione etapy, rozpoczynaąc od ostatniego i cofaąc się aż do pierwszego. Oznacza to, że aby ciąg decyzi (x 1*, x 2*, x 3* x N* ) był strategią optymalną w procesie N-etapowym przy stanie początkowym S 0 potrzeba, aby ciąg decyzi (x 2*, x 3* x N* ) był strategią optymalną w procesie N-1 etapowym przy stanie wynikaącym z podęcia na pierwszym etapie decyzi x 1*. Oznaczaąc przez S poszukiwane zatrudnienie w dniu poprzednim można zapisać że: r 1 S R max( r ) dla 1.. N S 1 gdzie x Korzystaąc z rekurenci można zapisać f ( S) min [ ( x r ) ( x s f 1 ( xk ) ] dla r k k k k k k k k 1 ) Taki sposób rozwiązania narzuca koleność wykonywania obliczeń od końca procesu do ego początku i określony sposób notaci prowadzonych obliczeń, który nie zawsze est czytelny, szczególnie dla osób słabie obeznanych z badaniami operacynymi. Oznaczenia: N liczba dni, dla których wykonywane są obliczenia, numer kolenego, k numer rekurencynego kroku obliczeniowego, r zapotrzebowanie na robotników w dniu, S poszukiwane zatrudnienie w dniu poprzednim do, c poziom zatrudnienia przed rozpoczęciem prac (w dniu =0), R maksymalne zatrudnienie, akie może wystąpić na budowie; R = max(r ) dla =1..N, x poszukiwane zatrudnienie w dniu, Θ,u koszt przekroczenia wymaganego zapotrzebowania w dniu przy poziomie zatrudnienia u, Ψ u1,u2 koszt zmiany poziomu zatrudnienia z poziomu u 1 na poziom u 2, s k R
Przykład obliczeniowy Dane do obliczeo Zakładam, że wymagane zapotrzebowanie w obliczanym przykładzie est ak na rysunku poniże. Wymagane zatrudnienie w kolenych ch 6 7 5 5 4 1 2 3 4 5 Przymuę następuące koszty przekroczenia i zmiany dostępności: Koszt przekroczenia wymaganego zapotrzebowania Θ,x został określony na 3 ednostki nakładów finansowych za przekroczenie każde ednostki zapotrzebowania (niezależnie od wielkości przekroczenia czyli w postaci funkci prostoliniowe). Zmiana wielkości limitu zatrudnienia w dwóch kolenych przedziałach czasu powodue koszt, którego wielkość można wyrazić formułą : Ψ x1,x2 = 6 + (x 2 x 1 ) dla x 2 > x 1 czyli np. dla zmiana zatrudnienia z poziomu 4 na 7 robotników kosztue 6+(7-4)=9 Ψ x1,x2 = 6 dla x 2 < x 1 (niezależnie od wielkości obniżenia zatrudnienia) Ψ x1,x2 = 0 dla x 2 = x 1 Ponieważ zakładam, że koszt zatrudnienia robotników Ψ w pierwszym dniu (koszt zmiany poziomu zatrudnienia z poziomu c na r1) wynosi zero, wielkość poziomu c nie ma znaczenia i można przyąć dowolną wartość >=0 np. 0. Obliczenia Na początku obliczeń wyznaczam maksymalne zatrudnienie na budowie, które wynosi R = max(6,5,7,5,4)=7. Następnie przystępuę do obliczeń dla kolenych dni. Dzieo 5 Obliczenia rozpoczynam od ostatniego tzn. =5. Ponieważ est to pierwszy krok obliczeniowy w algorytmie rekurencynym więc k=1. Minimalny poziom zatrudnienia w tym dniu wynosi r czyli r 5 =4, natomiast maksymalny poziom został uż wyznaczony i wynosi R=7. Aby wyznaczyć poszukiwany poziom zatrudnienia w tym dniu należy rozpatrzyć wszystkie możliwe poziomy zawarte między poziomem minimalnym i maksymalnym czyli: 4, 5, 6, i 7 czyli x 5 ε (4, 5, 6, 7). Jednocześnie trzeba rozpatrzyć wszystkie przypadki możliwego poziomu zatrudnienia w dniu poprzednim czyli S 5. W tym wypadku poprzednim dniem est dzień 4 z zapotrzebowaniem równym 5 (r 4 =5). Oznacza to, że w dniu =4 mogą wystąpić następuące poziomy zatrudnienia: S 5 ε (5, 6, 7). Dalsze obliczenia dla tego zostaną przeprowadzone w tabeli poniże.
=5; k=1; r 5 =4; r min =4; R=7 x/s x 5 =4 x 5 =5 x 5 =6 x 5 =7 Θ Ψ FC FC Θ Ψ FC FC Θ Ψ FC FC Θ Ψ FC FC S 5 =5 0 6 6 6 3 0 3 3 6 7 13 13 9 8 17 17 S 5 =6 0 6 6 6 3 6 9 9 6 0 6 6 9 7 16 16 S 5 =7 0 6 6 6 3 6 9 9 6 6 12 12 9 0 9 9 0 0 0 0 W górnym wierszu tabeli wypisano nr pracy (), numer kroku algorytmu (k), poziom zatrudnienia w dniu obliczeniowym (r ) oraz minimalny i maksymalny poziom zatrudnienia w tym dniu (r min, R). W pierwsze kolumnie wypisano wszystkie możliwe poziomy zatrudnienia w dniu poprzednim (-1) czyli S 5 =5, S 5 =6 i S 5 =7. Liczba tych poziomów określiła liczbę wierszy, w których zostaną wykonane obliczenia dla danego. W ostatnim wierszu wypisano wartość funkci celu dla odpowiedniego poziomu zatrudnienie x przeniesioną z poprzedniego obliczeniowego odczytaną z właściwego poziomu S. Ponieważ est to pierwszy dzień obliczeniowy wszystkie wartość tam wpisane równe są zero. Wartości w kolumnach Θ i Ψ zostały obliczone na podstawie wartości rozpatrywanego zatrudnienia i odpowiadaącego poziomu S. I tak np. dla x 5 =6 i s 5 =5 wartość Θ czyli koszt przekroczenia dostępności wynosi 6 ponieważ wymagane zatrudnieniu w tym dniu wynosi 4 a zakładany poziom zatrudnienia x 5 wynosi 6, czyli Θ = (6-4) * koszt ednostkowego przekroczenia z danych (3)= 2*3=6. Wartość Ψ czyli koszt zmiany poziomu zatrudnienia wynosi 7 ponieważ poziom zatrudnienia w dniu poprzednim wynosi 5 (S 5 =5) a zakładany poziom zatrudnienia w danym dniu wynosi x 5 =6, czyli następue wzrost zatrudnienia o ednostkę a z danych można odczytać, że w takim przypadku koszt wynosi 7. Wartość FC to suma wartości w kolumnach Θ i Ψ a FC to suma FC oraz odpowiadaącego FC z poprzedniego odczytanego z ostatniego wiersza w dane kolumnie. Znaąc wyniki obliczeń dla wszystkich rozpatrywanych poziomów zatrudnienia x oraz poziomów zatrudnienia w dniu poprzednim S należy określić, który wariant dla każdego poziomu S est nakorzystnieszy. Ponieważ poszukuemy minimum funkci celu dla każdego rozpatrywanego poziomu S należy wybrać minimalną wartość FC. I tak np. dla poziomu S 5 =5 wybieramy z pośród wartości (6,3,13,17). Wartością minimalną est 3 i została ona oznaczona grubą, podkreśloną czcionką. Wybrane wartości zostaną wykorzystane w kolenym dniu obliczeniowym ako wartości FC z poprzedniego. Po obliczeniu wszystkich wartości w tabeli i wyznaczeniu minimalne wartości FC dla każdego rozpatrywanego poziomu S można prześć do kolenego obliczeniowego. Dzieo 4 Przystępuąc do obliczeń dla tego należy zauważyć, że występue tylko eden poziom S 4 ponieważ poprzedniego (=3) zapotrzebowanie est na maksymalnym poziomie 7 robotników. Natomiast rozpatrywane w tym dniu poziomy zatrudnienia to x 4 ε ( 5, 6, 7), gdyż wymagane zapotrzebowanie r 4 =5. Należy również zwrócić uwagę na poprawne określenie wartości FC z poprzedniego. Odczytuemy e tabeli z poprzedniego obliczeniowego (k-1) z odpowiednich wierszy np. wartość w kolumnie x 4 =7 odczytuemy z wiersza dla S 5 =7 czyli 6. Pozostałe obliczenia wykonuemy ak zostało to opisane w poprzednim dniu. =4; k=2; r 4 =5; r min =5; R=7 x/s x 4 =5 x 4 =6 x 4 =7 Θ Ψ FC FC Θ Ψ FC FC Θ Ψ FC FC S 4 =7 0 6 6 9 3 6 9 15 6 0 6 12 3 6 6
Poniże podano wyniki obliczeń dla wszystkich pozostałych dni obliczeniowych. Dzień 3 =3; k=3; r 3 =7; r min =7; R=7 x/s x 3 =7 Θ Ψ FC FC S 3 =5 0 8 8 17 S 3 =6 0 7 7 16 S 3 =7 0 0 0 9 9 Dzieo 2 =2; k=4; r 2 =5; r min =5; R=7 x/s x 2 =5 x 2 =6 x 2 =7 Θ Ψ FC FC Θ Ψ FC FC Θ Ψ FC FC S 2 =6 0 6 6 23 3 0 3 19 6 7 13 22 S 2 =7 0 6 6 23 3 6 9 25 6 0 6 15 17 16 9 Dzieo 1 =1; k=5; r 1 =6; r min =6; R=7 x/s x 1 =6 x 1 =7 Θ Ψ FC FC Θ Ψ FC FC S 1 =c 0 0 0 19 3 0 3 18 19 15 Wyznaczenie rozwiązania optymalnego Wyznaczenie optymalnego rozwiązania rozpoczyna się od ostatniego obliczeniowego (k=5). Ponieważ zawsze będzie tam tylko eden wiersz (S 1 =c) z niego odczytuemy optymalne zatrudnienie w pierwszym dniu. Wyznacza e oznaczona wcześnie, minimalna wartość FC, w tym wypadku wartość 18. Jest to całkowity koszt zatrudnienia robotników wg rozwiązania optymalnego minimalizuący funkcę celu. Z kolumny w które stoi minimalna wartość FC można odczytać, że została ona wyznaczona przy poziomie zatrudnienia równym 7. W takim razie z tabeli dla poprzedniego (czwartego) obliczeniowego z wiersza S 2 =7 można odczytać, że minimalna wartość FC w tym wierszu znadue się w kolumnie x 2 =7. Z kolei przechodząc do trzeciego z wiersza S 3 =7 odczytuemy, że x 3 =7. W tabeli z drugiego w wierszu s 4 =7 odnaduemy, że x 4 =5. Ostatnią poszukiwaną wartość optymalnego zatrudnienia odczytuemy z tabeli dla pierwszego obliczeniowego (k=1) w wierszu S 5 =5. Poszukiwane zatrudnienie w tym dniu wynosi 5. Ostatecznie wyznaczono następuące, optymalne zatrudnienie na budowie w kolenych ch realizaci robót: 7, 7, 7, 5, 5. Całkowity minimalny koszt zatrudnienia przy przyętych stawkach funkci Θ i Ψ wynosi 18.
Optymalne zatrudnienie w kolenych ch ze względu na koszt 7 7 7 5 5 1 2 3 4 5 Literatura Benamin J.R., Cornell C.A. (1977). Rachunek prawdopodobieństwa statystyka matematyczna i teoria decyzi dla inżynierów. Wydawnictwa Naukowo Techniczne. Warszawa. Jaworski K.M. (2004). Podstawy organizaci budowy. Wydawnictwo Naukowe PWN, Warszawa, Korzan B. (1978). Elementy teorii grafów i sieci. Metody i zastosowania. Wydawnictwa Naukowo Techniczne. Warszawa. Siudak M. (1986). Badania operacyne. Wydawnictwa Politechniki Warszawskie, Warszawa.