Mieczysław POŁOŃSKI Wydział Budownictwa i Inżynierii Środowisa, Szoła Główna Gospodarstwa Wiejsiego, Warszawa, ul. Nowoursynowsa 159 e-mail: mieczyslaw_polonsi@sggw.pl Założenia Optymalizacja harmonogramów budowlanych - problem szeregowania zadań Jednym z ważnych elementów optymalizacji harmonogramów budowlanych jest poprawne szeregowanie zadań [Jaworsi 1999]. Zadania tego typu należą do szeroiej lasy zagadnień rozdziału zadań i zasobów. Zaprezentowane poniżej zagadnienie zostanie przestawione na przyładzie ustalenia olejności działe roboczych przy założeniu, że na ażdej z nich muszą zostać wyonane pewne procesy technologiczne przez różne zasoby odnawialne (maszyny, robotniów, brygady, środi producji), przy czym załadamy, że na ażdej działce muszą być wyonane wszystie procesy w tej samej olejności. Drugim założeniem jest, że na tej samej działce roboczej w tym samym czasie może przebywać wyłącznie jedna maszyna (brygada). Harmonogram pracy wspomnianych n maszyn na m działach można przedstawić w postaci macierzy czasów wyonania poszczególnych robót na olejnych działach. t 11 t 12 t 1n T = [t ij ] = t 21 t m1 t 22 t m2 t 2n t m3 gdzie t ij to czas pracy i-tej maszyny na j-tej działce (i=1..m, j=1..n) Łatwo zauważyć, że jeżeli poszczególne czasy t ij będą różne, to łączny czas pracy wszystich maszyn na wszystich działach T będzie zależał od olejności, w jaiej zostanie zaplanowane realizacja prac na olejnych działach. I ta np. załadając następujące czasy pracy trzech maszyn na trzech działach: DZ1 DZ2 DZ3 A 4 2 3 B 3 1 2 C 2 3 4 i przyjmując olejność pracy na działach nr. 1, 2, 3 uzysamy schematy pracy maszyn ja na rysunu poniżej (nr w środu pasów oznaczają nr działi / czas prasy danej maszyny na danej działce), z łącznym czasem pracy trzech maszyn na trzech działach16 dni: 7 8 9 10 11 12 13 14 15 16 A 1/4 2/2 3/3 B 1/3 2/1 3/2 C 1/2 2/3 3/4 Analizując powyższy wyres należy zauważyć, że aby dana maszyna mogła rozpocząć pracę na danej działce muszą być spełnione dwa waruni: poprzednia maszyna musi zaończyć pracę na danej działce (działa musi być wolna) oraz dana maszyna musi zaończyć pracę na poprzedniej działce (maszyna musi być wolna). Ja można zauważyć w rozpatrywanym przypadu maszyna B, aby wejść na działę nr 3 musi zaczeać jeden dzień (dzień nr 9), gdyż tego dnia pracuje tam jeszcze maszyna A. Jedna po wyonaniu taich obliczeń nie wiemy, czy przy założonej olejności prac na działach (w tym wypadu 1, 2, 3) uzysaliśmy najrótszy możliwy łączny czas pracy na wszystich działach.
Przeanalizujmy następujący przyład. Pracują dwie maszyny A, B na czterech działach. Nr działi 1 2 3 4 Czas pracy maszyny A na działce 2 3 1 4 Czas pracy maszyny B na działce 4 2 3 2 Przyjmująć olejność wyonywania działe ja w temacie (1,2,3,4) uzysamy następujący harmonogram pracy maszyn: Nr dnia 7 8 9 10 11 12 13 Harmonogram (olejność działe 1,2,3,4) Praca maszyny A Łączny czas pracy obu maszyn na wszystich działach wynosi 13 dni. Jedna zmieniając olejność działe na 3,1,4,2 uzysujemy następujący harmonogram: Nr działi 3 1 4 2 Czas pracy maszyny A na działce 1 2 4 3 Czas pracy maszyny B na działce 3 4 2 2 Nr dnia 7 8 9 10 11 12 Optymalny harmonogram (olejność działe 3,1,4,2) Praca maszyny A Praca maszyny B Tym razem łączny czas pracy obu maszyn na wszystich działach wynosi 12 dni. Problem poszuiwania taiej olejności działe, tóra pozwoli na zminimalizowanie łącznego czasu pracy T na wszystich działach nazywany jest w literaturze problemem szeregowania zadań. Analizując ta sformułowane zadanie, można szybo zauważyć, że liczba możliwych rozwiązań (harmonogramów pracy maszyn na wszystich działach) wynosi n!, gdzie n oznacza liczbę działe (warto również zauważyć, że na liczbę rozwiązań nie ma wpływu liczba maszyn, gdyż olejność wyonywania procesów roboczych przez olejne maszyny jest stała). To znaczy, że już przy 5 działach liczba możliwych rozwiązań wynosi 120 a przy 8 to już 40320 wariantów harmonogramu. Biorąc pod uwagę fat, że czas pracy na obiecie jest jednym z najważniejszych parametrów a przyładowa i więsza liczba działe roboczych w budownictwie nie jest niczym szczególnym, szybo zrozumiemy wagę postawionego problemu. Istnieje ila metod szeregowania zadań. Należą do nich: algorytm symulacyjny, algorytm Johnsona, algorytm Łomniciego i algorytm Browna Łomniciego. Wszystie te metody podejmują temat z uwzględnieniem ryterium minimum czasu realizacji przedsięwzięcia a wybór jednego z nich zależy od liczby maszyn. Algorytm symulacyjny możemy stasować przy dowolnej liczbie maszyn, jedna nie zapewnia on znalezienia rozwiązania optymalnego, lecz jedynie suboptymalnego. Polega on na losowaniu olejności realizacji działe na podstawie generatora liczb losowych i obliczaniu łącznego czasu trwania robót T dla założonego wariantu. Przy odpowiedniej liczbie prób najlepszy wyni powinien zbliżyć się do rozwiązania optymalnego, a na pewno być lepszy od jednego przypadowego rozwiązania. Tego rodzaju symulacje stosuje się w badaniach operacyjnych, gdy nie jest znany ścisły algorytm wyznaczania rozwiązania optymalnego bądź też oszt lub czas wyonania obliczeń algorytmicznych jest zbyt duży w stosunu do uzysanego efetu. Pozostałe wymienione algorytmy pozwalają na obliczenie rozwiązania optymalnego. Algorytm Jonhsona stosuje się, gdy mamy do czynienia z dwoma maszynami, algorytm Łomniciego przy trzech maszynach a algorytm Browna Łomniciego przy dowolnej liczbie maszyn. Dwa ostatnie algorytmy oparte są na metodzie podziału i ograniczeń (branch and bound).
Algorytm Jonhsona Algorytm ten pozwala poszuiwać najrótszy czas pracy dwóch maszyn (oznaczamy je A, B) na dowolnej liczbie działe n. Na ażdej działce, olejność pracy maszyn jest stała, a więc najpierw pracuje maszyna A, a potem B. Dane są czasy pracy obu maszyn na ażdej działce. Czas pracy maszyny A na działce oznaczamy a, maszyny B na działce l b l Poniżej znajduje się opis poszczególnych roów algorytmu: 1. Przyjąć r 1, s n. 2. Znaleźć najmniejszą liczbę spośród czasów a, bl (, l 1,2,..., n), gdzie a b, l są zbiorami czasów pracy maszyn A i B na poszczególnych działach roboczych. 3. Jeżeli liczbą tą jest a, to s : s 1. p r oraz r : r 1 4. Usunąć ze zbioru czasów trwania parę a, b ) lub a, b ). 5. Powtórzyć postępowanie od puntu 2. (, jeżeli zaś liczbą tą jest b l, to ( l l Optymalną olejność działe wyznacza parametr p 1 do p n. p s l oraz Przyład Uwaga! Szczególną uwagę proszę zwrócić na to, ja zmienia się indes parametru p Dane są czasy pracy maszyn A i B (w dniach roboczych) na sześciu działach. Iteracja 1. r = 1; s = 6 min ( 2, 3, 5, 1, 7, 6, 3, 4, 4, 2, 5, 5 ) = a = a 4 = 1; -> =4 W sytuacji, gdy jest więcej taich samych wartości minimalnych wybieramy dowolną z nich i onsewentnie liczymy dla wybranej maszyny i działi. Ponieważ znaleziony minimalny czas dotyczy pracy maszyny A -> pr = p1 = = 4 oraz r = r + 1 = 1 + 1 = 2 Usuwam parę (a 4, b 4)
Iteracja 2. A 2 3 5 7 6 B 3 4 4 5 5 r = 2; s = 6 min ( 2, 3, 5, 7, 6, 3, 4, 4, 5, 5 ) = a = a 1 = 2; -> =1 Ponieważ znaleziony minimalny czas dotyczy pracy maszyny A -> pr = p2 = = 1 oraz r = r + 1 = 2+ 1 = 3 Usuwam parę (a 1, b 1) Iteracja 3. A 3 5 7 6 B 4 4 5 5 r = 3; s = 6 min ( 3, 5, 7, 6, 4, 4, 5, 5 ) = a = a 2 = 3; -> =2 Ponieważ znaleziony minimalny czas dotyczy pracy maszyny A -> pr = p3 = = 2 oraz r = r + 1 = 3 + 1 = 4 Usuwam parę (a 2, b 2) Iteracja 4. A 5 7 6 B 4 5 5 r = 4; s = 6 min ( 5, 7, 6, 4, 5, 5 ) = b l = b 3 = 4; -> l =3 Ponieważ znaleziony minimalny czas dotyczy pracy maszyny B -> ps = p6 = l = 3 oraz s = s - 1 = 6-1 = 5 Usuwam parę (a 3, b 3) Iteracja 5. A 7 6 B 5 5 r = 4; s = 5 min ( 7, 6, 5, 5 ) = b l = b 5 = 5; -> l =5 Ponieważ znaleziony minimalny czas dotyczy pracy maszyny B -> ps = p5 = l = 5 oraz s = s - 1 = 5-1 = 4 Usuwam parę (a 5, b 5)
Iteracja 6. A 6 B 5 r = 4; s = 4 min ( 6, 5 ) = b l = b 6 = 5; -> l =6 Ponieważ znaleziony minimalny czas dotyczy pracy maszyny B -> ps = p4 = l = 6 Usuwam parę (a 6, b 6), zbiór przeszuiwanych wartości pozostaje pusty i ończę obliczenia. Znalezione rozwiązanie to: p 1 = 4, p 2 = 1, p 3 = 2, p 4 = 6, p 5 = 5, p 6 = 3, czyli wyznaczona olejność wyonywania robót to działi nr: 4, 1, 2, 6, 5, 3. Algorytm Jonhsona nie wyznacza optymalnego czasu robót. Należy go obliczyć znając właściwą olejność działe. Można go obliczyć stosując następujący wzór: T p ij = max(t (i 1),j, T i,(j 1) ) oraz T ij = T p ij + t i,j gdzie T ij p, T ij to odpowiedni począte i oniec robót przez maszynę i na działce j. Analizując wzór można zauważyć, że termin rozpoczęcia pracy na olejnej działce wymaga spełnienia dwóch warunów: (1) musi zaończyć pracę na poprzedniej działce maszyna, tóra rozpocznie pracę oraz (2) na danej działce musi zaończyć pracę poprzednia maszyna. Wydaje się, że jeszcze łatwiej wyznaczyć poszuiwany czas pracy graficznie, stosując dwie opisane powyżej zasady. Pamiętając, że zadane czasy pracy maszyn A i B (w dniach roboczych) na sześciu działach wynosiły odpowiednio: w analizowanym przyładzie harmonogram pracy maszyn na olejnych działach (tzn. wg olejności działe 4, 1, 2, 6, 5, 3) wyglądałby następująco (pracę tej samej maszyny na olejnych działach rozróżniono odcieniami tego samego oloru; biały olor oznacza bra pracy danej maszyny; podane wartości na rysunu oznaczają nr. działi/czas pracy danej maszyny na danej działce): 4 1 2 6 5 3 A 1 2 3 6 6 5 B 2 3 4 5 5 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 A 4/1 1/2 2/3 6/6 5/7 3/5 B 4/2 1/3 2/4 6/5 5/5 3/4 Ja można odczytać z wyresu łączny, minimalny czas pracy obu maszyn na sześciu działach wynosi 28 dni. Łatwo zauważyć, że pierwsza maszyna (A) pracuje zawsze bez żadnych przerw (zawsze jest wolna i nigdy nie czea na zaończenie pracy przez poprzednią maszynę na danej działce). Przerwy w pracy mogą występować tylo w pracy wszystich olejnych maszyn, czyli w tym wypadu maszyny B. Literatura Jaworsi K.M. (1999). Metodologia projetowania realizacji budowy. Wydawnictwo Nauowe PWN