KRZEMIŃSKI Michał 1 MASNY Szczepan 2 Program komputerowy do optymalizowania harmonogramów budowlanych WSTĘP Jakość harmonogramu budowy jest bardzo ważnym aspektem procesu inwestycji budowlanej. Sposób uporządkowania przebiegu prac wpływa znacząco na czas trwania robót, a także na zróżnicowanie zatrudnienia i kosztów podczas inwestycji. Inwestycje nieskomplikowane, o małym stopniu zaawansowania, często nie wymagają wspomagania optymalizacji harmonogramu przez programy komputerowe. Zazwyczaj w takich przypadkach niezbędne, ale i wystarczające, są zdolności organizacyjne i doświadczenie kierownika budowy[1]. Jednak wraz ze wzrostem rozmiaru przedsięwzięcia wzrasta ilość możliwych kombinacji wykonania robót, tak że inżynier, a nawet grupa specjalistów, nie jest w stanie w sposób optymalny zaplanować przebiegu prac. Pomocne w procesie harmonogramowania mogą być programy komputerowe, takie jak MS Project, Open Project czy dostępne na polskim rynku Planista i ProgPol. Programy te pozwalają za pomocą wykresów zwizualizować przebieg budowy, a także strukturę zatrudnienia czy kosztów, dzięki czemu można skutecznie ocenić jakość danego harmonogramu. Programy te często mają też rozbudowany system alertów i powiadomień o wadach harmonogramu. stety, nie dają one propozycji rozwiązania problemów lub propozycje te są dalekie od optymalnych. Na przykład MS Project problem nadmiernej alokacji zasobów rozwiązuje poprzez przerwanie wykonywania zadania na czas występowania przekroczenia zasobów. a metoda bilansowania jest nieraz niedopuszczalna ze względów technologicznych. Kolejną wadą takiego rozwiązania jest nierównomierne wykorzystanie zasobów podczas robót budowlanych. Rozwiązać ten problem mogą programy oparte na algorytmach optymalizacyjnych[5,6]. Przy rozwiązywaniu problemów optymalizacyjnych o dużych rozmiarach niemożliwe jest dokładne przeszukiwanie całej przestrzeni rozwiązań dopuszczalnych, ze względu na ich dużą ilość, natomiast przeszukiwanie losowe i lokalne daje małe prawdopodobieństwo znalezienia rozwiązania zbliżonego do ekstremum globalnego. 1 WPROWADZENIE DO ZAGADNIENIA KOMPUTEROWEJ OPTYMALIZACJI HARMONOGRAMÓW Skutecznym rozwiązaniem zaistniałego problemu może być zastosowanie algorytmów metaheurystycznych[8], bazujących na analogiach do procesów ze świata rzeczywistego (biologia, fizyka). Dobrym przykładem rozwiązania problemu jakości harmonogramu jest program autorstwa dra inż. J. Kulejewskiego, służący do optymalizacji harmonogramów z wykorzystaniem algorytmu genetycznego. Program ten umożliwia manipulację takimi parametrami, jak: powiązania między zadaniami, opóźnienia czynności czy metoda wykonania zadania. stety, szereg danych musi być wprowadzony do tego programu ręcznie, co powoduje duże ryzyko popełnienia błędu, zwłaszcza w przypadku dużych harmonogramów. Dodatkowo, obsługa algorytmu całkowicie stworzonego w Excelu wymaga specjalistycznej wiedzy z obsługi tego oprogramowania, jak i znajomości działania algorytmu genetycznego, a także wiedzy teoretycznej z zakresu harmonogramowania. Dlatego program ten jest skutecznym narzędziem przy rozwiązywaniu problemów teoretycznych, ale trudności sprawiłoby jego praktyczne zastosowanie, np. przez kierownika budowy, który nie posiada wiedzy 1 Politechnika Warszawska, Wydział Inżynierii Lądowej, Instytut Inżynierii Budowlanej, Zespół Inżynierii Produkcji i Zarządzania w Budownictwie; Al. Armii Ludowej 16, 00-637 Warszawa; Tel.: +48 22 234 65 15, Email: m.krzeminski@il.pw.edu.pl 2 Politechnika Warszawska, Wydział Inżynierii Lądowej, Instytut Inżynierii Budowlanej, Zespół Inżynierii Produkcji i Zarządzania w Budownictwie; Al. Armii Ludowej 16, 00-637 Warszawa; Email: szczepanmasny@gmail.com 6188
teoretycznej w tej dziedzinie, a także nie dysponuje wystarczającą ilością czasu, żeby zdecydować się na taką optymalizację. Kolejnym problemem jest konstrukcja algorytmu przydzielającego opóźnienia do czynności niekrytycznych. Funkcje Excela nie pozwalają na taki rozdział zapasu czasu pomiędzy poszczególne zadania, aby nie wzrósł całkowity czas wykonania robót. Problem ten poważnie wzrasta, gdy optymalizowany harmonogram ma duże rozmiary. W artykule zaprezentowano usprawnienie wyżej wymienionego programu do optymalizacji harmonogramów, tak aby umożliwić jego stosowanie w praktyce[2]. Powstały w wyniku usprawnień program ma za zadanie m.in. umożliwić sprawne wykorzystanie danych z programu MS Project, ograniczyć wkład użytkownika do wprowadzenia harmonogramu i wybrania typu optymalizacji poprzez zautomatyzowanie algorytmu za pomocą kodów napisanych w języku VBA [7], przygotowanie danych wyjściowych w taki sposób, aby umożliwić ich bezpośredni eksport do programu MS Project. Istotnym zagadnieniem tego programu jest także rozwiązanie wymienionego wyżej problemu przydziału opóźnień do czynności niekrytycznych[3]. 2 POCZĄTEK PRACY W PROPONOWANYM OPROGRAMOWANIU Cały program zawarty jest w pliku Wyrównanie harmonogramu.xlsm. W celu rozpoczęcia pracy, należy otworzyć ten plik. Po uruchomieniu pojawi się ekran powitalny. Przed przystąpieniem do pracy należy zezwolić programowi Excel na obsługę makr. W tym celu należy wcisnąć przycisk Opcje na pasku poniżej wstążki. Przycisk został pokazany na rysunku poniżej. Następnie należy zaznaczyć opcję Włącz tę zawartość i zatwierdzić wybór. Rys. 1. Ekran powitalny, lokalizacja przycisku umożliwiającego włączenie makr [opracowanie własne] 3 SCHEMAT BLOKOWY PROGRAMU Opisywany w artykule program jest skonstruowany etapowo, tzn. narzuca użytkownikowi ustaloną z góry kolejność wykonywania czynności, ograniczając jego swobodę, ale także minimalizując ryzyko pogubienia się i popełnienia błędu. Działanie programu pokazuje przedstawiony poniżej schemat blokowy. 6189
START PROGRAMU Wybór sposobu wprowadzania danych Przekierowanie do zakładki konwertującej dane z MS Project na format obsługiwany przez program Import danych: z programu MS Project Przekierowanie do zakładki ręcznego wprowadzania danych Import danych z MS Project Utworzenie harmonogramu i zdefiniowanie ograniczeń zasobów Zdefiniowanie ograniczeń zasobów w odrębnej zakładce Wybór metody optymalizacji Wybór: Wybór: metoda 1 metoda 2 lub 3 Uruchomienie modułu dodającego połączenia między czynnościami w celu nieprzekroczenia dopuszczalnych zasobów Uruchomienie modułu wygładzającego harmonogram zatrudnienia przez opóźnianie rozpoczęcia czynności niekrytycznych Wyświetlenie arkusza podsumowującego wynik optymalizacji Powrót do arkusza podsumowującego Wybór czynności przez użytkownika Powrót do arkusza wprowadzania danych Wyświetlenie wykresów porównujących zasobów przed i po optymalizacji Wybór: wykres zasobów Wybór: eksport danych Uruchomienie zakładki z danymi gotowymi do eksportu (format obsługiwany przez MS Project) Import danych: z programu MS Project Uruchomienie zakładki z danymi gotowymi do eksportu (format programu MS Excel) Wybór: powrót na start KONIEC PROGRAMU Rys. 2. Schemat blokowy [opracowanie własne] 4 WYBÓR RODZAJU OPTYMALIZACJI zależnie od wybranego na początku sposobu wprowadzania danych, po naciśnięciu guzika Wyrównaj harmonogram pojawi się okno wyboru optymalizacji. Program zaproponuje 4 opcje. Są to: Wyrównanie harmonogramu ze względu na nieprzekroczenie wielkości brygad roboczych; Wyrównanie zatrudnienia (minimalna skokowość zatrudnienia); Wyrównanie zatrudnienia (minimalne odchylenie od średniej); Wybór najlepszych metod wykonania. 6190
Aby uruchomić wybraną optymalizację, trzeba w okienko wpisać numer przyporządkowany danej operacji, a następnie wybór potwierdzić wciśnięciem Ok. Jeżeli dane były wprowadzane ręcznie, w tym momencie pojawi się pytanie o ograniczenie wszystkich zasobów mogących wystąpić jednocześnie. W drugim przypadku ta informacja zostałaby zawarta w arkuszu Lista zasobów w komórce C13. 5 DOBÓR PARAMETRÓW PROCESU EWOLUCYJNEGO Przed rozpoczęciem procesu ewolucyjnego, mającego na celu wyselekcjonowanie optymalnego rozwiązania, muszą zostać zdefiniowane parametry ewolucji. Wliczają się w nie: losowa liczba (randomnumberseed), ilość osobników w populacji (ograniczenie do 512), ilość pokoleń w ewolucji (do 1000), ilość cyfr do zakodowania genotypu (1, 2, 3, 4, 5 lub 6), prawdopodobieństwo skrzyżowania (0 1), tryb mutacji ((1, 2, 3, 4, 5 lub 6), początkowy wskaźnik mutacji (0 1), minimalny wskaźnik mutacji (0 1), względny dyferencjał przydatności (relative fitness differential) (0 1), plan reprodukcyjny (1,2 lub 3), elitaryzm (0 lub 1). Spośród tych parametrów najważniejszą rolę pełni liczba osobników w populacji i ilość pokoleń w ewolucji. Zwiększenie tych parametrów zapewnia lepsze rozwiązanie, ale też powoduje zwiększenie czasochłonności procesu ewolucji. Ponieważ właściwy dobór tych cech jest trudny, a często wymaga przeprowadzenia doświadczeń w tej kwestii, przewidziana została opcja automatycznego dopasowania parametrów do danego zagadnienia. Na ekranie pojawi się następujące okienko: Rys. 3. Okienko wyboru sposobu wprowadzania parametrów algorytmu genetycznego [opracowanie własne] Jeżeli użytkownik wciśnie, program sam dobierze parametry,zależnie od typu optymalizacji i wielkości harmonogramu. Kliknięcie spowoduje wyświetlenie okna ręcznego definiowania parametrów ewolucji. 6 KORZYSTANIE Z PODSUMOWANIA PROGRAMU W zależności od tego, w jaki sposób były wprowadzane dane, program po wykonaniu obliczeń przekieruje użytkownika do arkusza o nazwie Podsumowanie1 lub Podsumowanie2. różnią się one niczym poza tym, że przycisk eksportu danych umieszczony w każdej z zakładek przekierowuje użytkownika w inne miejsce.[4] Arkusz podsumowania po skończeniu obliczeń jest zapełniany danymi wyjściowymi, będącymi wynikiem optymalizacji. Podsumowanie jest w formie tabeli, w której opisane są poszczególne składniki funkcji celu ulegającej minimalizacji w procesie ewolucji. W pierwszej kolumnie są umieszczone pytania dotyczące właściwości składników funkcji celu. W kolejnych dwóch kolumnach zaprezentowane zostały wartości danych składników przed optymalizacją i po optymalizacji. Wielkości, takie jak: czas trwania robót, łączna wielkość skoków 6191
zatrudnienia, zostały opisane w sposób ilościowy. Natomiast na pytania o przekroczenie dopuszczalnych zasobów udzielana jest odpowiedź lub. W ostatniej kolumnie zamieszczone jest porównanie wyników z przed i po optymalizacji. W przypadku parametrów podlegających ocenie ilościowej zmiana jest pokazana jako procentowy wzrost wyniku: gdzie: p 0 wartość przed optymalizacją, p 1 wartość po optymalizacji. (1) W pozostałych przypadkach wyświetla się komunikat: Poprawa, Brak zmiany lub Pogorszenie. Aby zwiększyć przejrzystość podsumowania, korzystne zmiany podświetlają się na zielono, a niekorzystne na czerwono. Przykładowe podsumowanie pokazuje poniższy rysunek. Rys. 4. Okienko podsumowania [opracowanie własne] Przycisk Przejdź do harmonogramu zasobów umieszczony po prawej stronie tabeli przekierowuje użytkownika w obszar, gdzie umieszczone są dwa wykresy zasobów: wejściowy i wyjściowy, będący efektem optymalizacji. Powrót do podsumowania umożliwia przycisk Wróć. WNIOSKI Na podstawie wielu testów można stwierdzić, że omawiany program pozwala skutecznie zoptymalizować harmonogramy oparte na połączeniach typu ZR (zakończenie-rozpoczęcie). Ograniczenie co do typu połączeń między zadaniami wynika z faktu, że połączenia typu ZR są stosowane w harmonogramach dużo częściej niż pozostałe. Ograniczenie to powoduje jednak, że nie każdy harmonogram stworzony w programie MS Project może zostać zoptymalizowany w omawianym programie. Co więcej, nie został stworzony żaden system ostrzegawczy informujący, że wprowadzone dane nie są obsługiwane przez program. Jest to jedna z kilku wad stworzonego algorytmu, natomiast jedyna, która wynika z założonego na wstępie uproszczenia i niemogąca ulec w łatwy sposób poprawie. Za największy sukces tej pracy można uznać rozwiązanie problemu dystrybucji opóźnień pomiędzy czynności niekrytyczne. Zastosowane w programie rozwiązanie pozwoliło uniknąć błędu polegającego na przydzielaniu opóźnienia bliskiego całkowitemu zapasowi czasu dla grupy zadań do kilku czynności jednocześnie, co powodowało nieraz bardzo duże 6192
opóźnienia terminu realizacji budowy. Algorytm wykorzystany w tym programie rozwiązał ten problem, co jest istotne szczególnie w przypadku harmonogramów o dużych rozmiarach. Streszczenie W artykule zaprezentowano program do optymalizacji harmonogramów pozwalający w praktyce wykorzystać narzędzie optymalizacyjne, jakim jest algorytm genetyczny. Założeniem programu miało być usprawnienie dotychczasowych narzędzi w taki sposób, aby mógł je zastosować nie tylko specjalista biegle znający metody harmonogramowania i optymalizacji, ale każdy inżynier budowy znający podstawy programów MS Excel i MS Project. Niniejszy program spełnia te założenia, ponieważ pozwala on wykonać zadaną optymalizację za pomocą zaledwie kilku czynności (o ile harmonogram został uprzednio sporządzony w programie MS Project). Jednocześnie nie traci on funkcjonalności, posiadanej przez narzędzie, na którym program się opiera. Metody optymalizacji zawarte w tym programie działają poprawnie i dają zadowalające wyniki. Planuje się dalsze prace nad rozbudową oprogramowania. The computer program for optimizing construction schedules Abstract The article presents a program to optimize the scheduling allows in practice to use optimization tool, which is the genetic algorithm. The premise of the program was to improve the existing tools in such a way that it can be applied not only proficient specialist familiar with scheduling and optimization methods, but each engineer familiar with basics of MS Excel and MS Project. This program meets these assumptions, because it provides a set optimization with just a few steps (if the schedule has been previously done in MS Project). At the same time it does not lose functionality possessed by the tool, in which the program is based. Optimization methods included in this program are working properly and give satisfactory results. It is planned to further work on the expansion of the software. BIBLIOGRAFIA 1. Bladowski S., Metody sieciowe w planowaniu i organizacji pracy.wydawnictwo PWE, Warszawa 1970. 2. Gedymin O., Metody optymalizacji w planowaniu sieciowym. Wydawnictwo PWN, Warszawa 1974 3. Grucza B., Ogonek K., Trocki M., Zarządzanie projektami.wydawnictwo PWE, Warszawa 2007. 4. Ignasiak E.,Teoria grafów i planowanie sieciowe. Wydawnictwo PWE, Warszawa 1982. 5. Krzemiński M., Komputerowe szeregowanie zadań w budownictwie. Logistyka 2014, nr 6. 6. Krzemiński M.,Use of the KASS program in scheduling.technical Transaction, Issue 2-B(6), Year 2014, Politechnika Krakowska, Kraków 2014. 7. Lewandowski M., Więcej niż Excel 2007. 166 gotowych rozwiązań i trików w języku VBA. Wydawnictwo HELION, Gliwice 2010. 8. Trojanowski K., Algorytmy ewolucyjne. Metaheurystyki praktycznie. Wyższa Szkoła Informatyki Stosowanej i Zarządzania, Warszawa 2008, s. 8-10. 6193