EKONOMETRIA ECONOMETRICS 4(38) 2012



Podobne dokumenty
EKONOMETRIA ECONOMETRICS 4(38) 2012

EKONOMETRIA ECONOMETRICS 4(38) 2012

EKONOMETRIA ECONOMETRICS 4(38) 2012

EKONOMETRIA ECONOMETRICS 4(38) 2012

EKONOMETRIA ECONOMETRICS 4(38) 2012

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

EKONOMETRIA ECONOMETRICS 4(38) 2012

EKONOMETRIA ECONOMETRICS 4(38) 2012

EKONOMETRIA ECONOMETRICS 4(38) 2012

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

Risk-Aware Project Scheduling. SimpleUCT

Wydział Inżynierii Produkcji i Logistyki Faculty of Production Engineering and Logistics

EKONOMETRIA ECONOMETRICS 4(38) 2012

Algorytmy mrówkowe. P. Oleksyk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

EKONOMETRIA ECONOMETRICS 4(38) 2012

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

EKONOMETRIA ECONOMETRICS 4(38) 2012

Optymalizacja. Wybrane algorytmy

Wydział Inżynierii Produkcji i Logistyki

Maciej Piotr Jankowski

RISK-AWARE PROJECT SCHEDULING

EKONOMETRIA ECONOMETRICS 4(38) 2012

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Rozdział 7 ZARZĄDZANIE PROJEKTAMI

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Wybrane podstawowe rodzaje algorytmów

Algorytm genetyczny (genetic algorithm)-

Wydział Inżynierii Produkcji i Logistyki

Wielokryterialne harmonogramowanie portfela projektów. Bogumiła Krzeszowska Katedra Badań Operacyjnych

Inżynieria oprogramowania. Część 8: Metoda szacowania ryzyka - PERT

WIELOKRYTERIALNE PORZĄDKOWANIE METODĄ PROMETHEE ODPORNE NA ZMIANY WAG KRYTERIÓW

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Techniki optymalizacji

System prognozowania rynków energii

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

EKONOMETRIA ECONOMETRICS 4(38) 2012

ZASTOSOWANIE ALGORYTMÓW MRÓWKOWYCH W ROZWIĄZANIU PROBLEMU SZEREGOWANIA ZADAŃ APPLICATION OF ANT COLONY SYSTEMS IN SOLVING OF TASK SCHEDULING PROBLEM

Algorytm indukcji klasyfikatora za pomocą EA z automatycznym przełączaniem ukierunkowań

Szkolenia SAS Cennik i kalendarz 2017

Zastosowanie sztucznej inteligencji w testowaniu oprogramowania

RISK-AWARE PROJECT SCHEDULING

Analiza stanów gry na potrzeby UCT w DVRP

Gospodarcze zastosowania algorytmów genetycznych

Metody przeszukiwania

XIII International PhD Workshop OWD 2011, October 2011 METODA REEINGINEERINGU ORGANIZACJI Z WYKORZYSTANIEM SYMULATORA PROCESÓW BIZNESOWYCH

STATYSTYKA OD PODSTAW Z SYSTEMEM SAS. wersja 9.2 i 9.3. Szkoła Główna Handlowa w Warszawie

Systemy mrówkowe. Opracowali: Dawid Strucker, Konrad Baranowski

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Algorytmy genetyczne

Techniki optymalizacji

Zastosowanie rozmytych map kognitywnych do badania scenariuszy rozwoju jednostek naukowo-dydaktycznych

Maciej Oleksy Zenon Matuszyk

Krytyczne czynniki sukcesu w zarządzaniu projektami

Kumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy

Podejście memetyczne do problemu DCVRP - wstępne wyniki. Adam Żychowski

Problem Komiwojażera - algorytmy metaheurystyczne

Systemy uczące się Lab 4

Zastosowanie symulacji Monte Carlo do zarządzania ryzykiem przedsięwzięcia z wykorzystaniem metod sieciowych PERT i CPM

Modele sprzedaży i dystrybucji oprogramowania Teoria a praktyka SaaS vs. BOX. Bartosz Marciniak. Actuality Sp. z o.o.

Problem komiwojażera ACO. Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym.

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Harmonogramowanie przedsięwzięć

RISK-AWARE PROJECT SCHEDULING

EKONOMETRIA ECONOMETRICS 4(38) 2012

Rozdział 9 PROGRAMOWANIE DYNAMICZNE

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

ĆWICZENIE Calowanie pokoju gościnnego Ent-teach Rozdział 6 Zarządzanie Projektem

Spacery losowe generowanie realizacji procesu losowego

Algorytmy metaheurystyczne podsumowanie

Testowanie modeli predykcyjnych

BADANIA OPERACYJNE. dr Adam Sojda Pokój A405

SZTUCZNA INTELIGENCJA

Informatyka studia stacjonarne pierwszego stopnia

Zarządzanie projektami. Zarządzanie czasem w projekcie

Algorytmy Mrówkowe. Daniel Błaszkiewicz. 11 maja Instytut Informatyki Uniwersytetu Wrocławskiego

Laboratorium technik optymalizacji

EKONOMETRIA ECONOMETRICS 4(38) 2012

Metody Programowania

Ekonometria. Zastosowania Metod Ilościowych 30/2011

XII International PhD Workshop OWD 2010, October Metodyka pozyskiwania i analizy wyników badań symulacyjnych ścieżek klinicznych

Opis Kompetencji Portfel Interim Menedżerowie i Eksperci

Algorytmy genetyczne

Zarządzanie projektami

Parametry wydajnościowe systemów internetowych. Tomasz Rak, KIA

Rozdział 1 PROGRAMOWANIE LINIOWE

Przykład planowania sieci publicznego transportu zbiorowego

PRZEWODNIK PO PRZEDMIOCIE

Zarządzanie projektami. Tadeusz Trzaskalik

Obliczenia inspirowane Naturą

BADANIA OPERACYJNE i teoria optymalizacji. Prowadzący: dr Tomasz Pisula Katedra Metod Ilościowych

O badaniach nad SZTUCZNĄ INTELIGENCJĄ

Wyznaczanie optymalnej trasy problem komiwojażera

System optymalizacji produkcji energii

Planowanie przedsięwzięć

Plan. Zakres badań teorii optymalizacji. Teoria optymalizacji. Teoria optymalizacji a badania operacyjne. Badania operacyjne i teoria optymalizacji

RISK-AWARE PROJECT SCHEDULING

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Wykład 1 Inżynieria Oprogramowania

Algorytmy mrówkowe (ang. Ant Colony Optimization)

Transkrypt:

EKONOMETRIA ECONOMETRICS 4(38) 2012 Wydawnictwo Uniwersytetu Ekonomicznego we Wrocławiu Wrocław 2012

Redaktor Wydawnictwa: Aleksandra Śliwka Redaktor techniczny: Barbara Łopusiewicz Korektor: Lidia Kwiecień Łamanie: Małgorzata Czupryńska Projekt okładki: Beata Dębska Publikacja jest dostępna w Internecie na stronach: www.ibuk.pl, www.ebscohost.com, The Central European Journal of Social Sciences and Humanities http://cejsh.icm.edu.pl, The Central and Eastern European Online Library www.ceeol.com, a także w adnotowanej bibliografii zagadnień ekonomicznych BazEkonhttp://kangur.uek.krakow.pl/ bazy_ae/bazekon/nowy/index.php Informacje o naborze artykułów i zasadach recenzowania znajdują się na stronie internetowej Wydawnictwa www.wydawnictwo.ue.wroc.pl Kopiowanie i powielanie w jakiejkolwiek formie wymaga pisemnej zgody Wydawcy Copyright by Uniwersytet Ekonomiczny we Wrocławiu Wrocław 2012 ISSN 1507-3866 Wersja pierwotna: publikacja drukowana Druk: Drukarnia TOTEM Nakład: 200 egz

Spis treści Wstęp... 9 Maria Cieślak: Kilka refleksji nad prognozowaniem ekonomicznym... 11 Mariola Piłatowska: Wybór rzędu autoregresji w zależności od parametrów modelu generującego... 16 Vadim Maslij: Bezpośrednie inwestycje zagraniczne na Ukrainie próba budowy prognoz na podstawie wybranych modeli trendu... 36 Filip Chybalski: Niepewność w prognozowaniu dochodów emerytalnych... 46 Monika Papież: Wpływ cen surowców energetycznych na ceny spot energii elektrycznej na wybranych giełdach energii w Europie... 57 Anna Gondek: Rozwój województwa lubuskiego po akcesji Polski do Unii Europejskiej... 69 Katarzyna Cheba: Prognozowanie zmian wytwarzania odpadów komunalnych... 81 Iwona Dittmann: Prognozowanie cen na lokalnych rynkach nieruchomości mieszkaniowych na podstawie analogii przestrzenno-czasowych... 93 Łukasz Mach: Determinanty ekonomiczno-gospodarcze oraz ich wpływ na rozwój rynku nieruchomości mieszkaniowych... 106 Roman Pawlukowicz: Prognostyczne właściwości wartości rynkowej nieruchomości... 117 Aneta Sobiechowska-Ziegert: Prognozowanie ostrzegawcze w małej firmie. 126 Sławomir Śmiech: Analiza stabilności ocen parametrów modeli predykcyjnych dla cen energii na rynku dnia następnego... 135 Edyta Ropuszyńska-Surma, Magdalena Węglarz: Strategie zachowań przedsiębiorstw na rynku ciepła... 145 Aneta Ptak-Chmielewska: Wykorzystanie modeli przeżycia i analizy dyskryminacyjnej do oceny ryzyka upadłości przedsiębiorstw... 157 Maria Szmuksta-Zawadzka, Jan Zawadzki: O metodzie prognozowania brakujących danych w szeregach czasowych o wysokiej częstotliwości z lukami systematycznymi... 173 Maciej Oesterreich: Symulacyjne badanie wpływu częstości występowania luk niesystematycznych w szeregach czasowych na dokładność prognoz.. 186 Marcin Błażejowski: Analiza porównawcza automatycznych procedur modelowania i prognozowania... 197 Tomasz Bartłomowicz: Prognozowanie sprzedaży z wykorzystaniem modelu dyfuzji oraz programu R... 210

6 Spis treści Marcin Relich: Planowanie alternatywnych realizacji projektu informatycznego zagrożonego niepowodzeniem... 221 Monika Dyduch: Gospodarowanie kapitałem w dobie ekonomicznego i gospodarczego kryzysu na przykładzie wybranej inwestycji... 232 Bartosz Lawędziak: Wymogi kapitałowe z tytułu sekurytyzacji w świetle Nowej Umowy Kapitałowej (Bazylea II)... 241 Piotr Peternek: Przedziały ufności dla mediany w nieznanym rozkładzie... 253 Paweł Siarka: Metoda ilorazu odległości zagadnienie graficznej prezentacji obserwacji wielowymiarowych... 268 Agnieszka Sompolska-Rzechuła: Efektywność klasyfikacji a parametryczna metoda doboru cech diagnostycznych... 287 Artur Zaborski: Agregacja preferencji indywidualnych z wykorzystaniem miar odległości i programu R... 298 Justyna Wilk: Zmiany demograficzne w województwach w aspekcie rozwoju zrównoważonego... 308 Michał Świtłyk: Efektywność techniczna publicznych uczelni w latach 2001-2010... 320 Michał Urbaniak: Zastosowanie algorytmu mrówkowego do optymalizacji czasowo-kosztowej projektów informatycznych... 343 Summaries Maria Cieślak: Some remarks on the economic forecasting... 15 Mariola Piłatowska: Autoregressive order selection depending on parameters of generating model... 35 Vadim Maslij: Foreign direct investments in Ukraine an attempt to build forecasts based on the selected trend function... 45 Filip Chybalski: Uncertainty of forecasting retirement incomes... 56 Monika Papież: The impact of prices of energy sources on the electricity spot price on selected power markets in Europe... 68 Anna Gondek: Development of Lubuskie Voivodeship after the accession to the European Union... 80 Katarzyna Cheba: Forecasting changes of municipal waste production... 92 Iwona Dittmann: Forecasting prices on residential real estate local markets based on area-time analogies... 105 Łukasz Mach: Economic determinants and their impact on development of residential real estate market... 115 Roman Pawlukowicz: Terms of prognosis of property market value... 125 Aneta Sobiechowska-Ziegert: Warning forecasting in a small company... 132 Sławomir Śmiech: Analysis of the stability of parameters estimates and forecasts in the next-day electricity prices... 144

Spis treści 7 Edyta Ropuszyńska-Surma, Magdalena Węglarz: Strategies of firms behavior on heat market... 156 Aneta Ptak-Chmielewska: Application of survival models and discriminant analysis in evaluation of enterprises bankruptcy risk... 172 Maria Szmuksta-Zawadzka, Jan Zawadzki: About a method of forecasting of missing data in the high frequency time series with systematic gaps... 185 Maciej Oesterreich: Simulation study of influence of frequency of incidence of non-systematic gaps in time series on accuracy of forecasts... 196 Marcin Błażejowski: Comparative analysis of automatic modeling and prediction procedures... 209 Tomasz Bartłomowicz: Sales forecasting using Bass diffusion model and program R... 220 Marcin Relich: Planning of alternative completion of an IT project in danger of failure... 231 Monika Dyduch: Management of capital in the time of economic crisis on the example of chosen investment... 240 Bartosz Lawędziak: Capital requirements for securitisation in terms of the New Capital Agreement (Basel II)... 252 Piotr Peternek: Confidence intervals for the median in the unknown distribution... 267 Paweł Siarka: Distances ratio method the issue of graphical presentation of the multidimensional observation... 286 Agnieszka Sompolska-Rzechuła: The classification s efficiency for the parametric method of feature selection... 297 Artur Zaborski: Individual preferences aggregation by using distance measures and R program... 307 Justyna Wilk: Demographic changes in voivodeships in the aspect of sustainable development... 319 Michał Świtłyk: Technical effectiveness of public universities in the years 2001-2010... 342 Michał Urbaniak: Ant colony system application for time-cost optimization of software projects... 355

EKONOMETRIA ECONOMETRICS 4(38) 2012 ISSN 1507-3866 Michał Urbaniak Uniwersytet Ekonomiczny w Poznaniu ZASTOSOWANIE ALGORYTMU MRÓWKOWEGO DO OPTYMALIZACJI CZASOWO KOSZTOWEJ PROJEKTÓW INFORMATYCZNYCH Streszczenie: Harmonogramowanie projektów informatycznych jest problemem specyficznym pośród problemów harmonogramowania projektów z ograniczonymi zasobami, największą bowiem rolę odgrywa w tym przypadku czynnik ludzki i kompetencje wykonawców poszczególnych czynności. Czas trwania czynności projektowych pozostaje w ścisłym związku z kosztem jej wykonania ze względu na zróżnicowanie płacowe występujące wśród specjalistów IT. W pracy zaprezentowano algorytm mrówkowy, za pomocą którego dokonuje się optymalizacji czasowo-kosztowej projektów informatycznych. Słowa kluczowe: harmonogramowanie projektów, algorytm mrówkowy, projekty informatyczne. 1. Wstęp Utworzenie pełnego harmonogramu projektu, uwzględniającego nie tylko czasy rozpoczęcia i zakończenia poszczególnych czynności, lecz również zasoby przydzielone do ich wykonania, jest jedną z kluczowych czynności w procesie zarządzania projektami. Nie inaczej jest w przypadku przedsięwzięć, których efektem jest oprogramowanie komputerowe 1. W sytuacji rynkowej wymagającej od firm dużej konkurencyjności w zakresie terminu i kosztu dostarczenia zamówionego przez klienta oprogramowania, a także w obliczu badań wskazujących na istotną liczbę projektów kończących się przekroczeniem czasu bądź budżetu [CHAOS Summary 2009], harmonogramy optymalizujące wyżej wspomniane czynniki są niezwykle pożądane. Znany i szeroko opisywany w literaturze problem harmonogramowania projektu z ograniczonymi zasobami (Resource-Constrained Project Scheduling Problem, RCPSP) [Alvarez-Valdes, Tamarit 1989; Patterson 1984] nie do końca oddaje naturę projektów informatycznych ze względu na możliwość wykonywania poszczególnych czynności przez różnych wykonawców (pracowników posiadających zróżni- 1 Autor będzie posługiwał się nazwą projekty informatyczne, stosując ją w odniesieniu jedynie do projektów wytwarzających oprogramowanie, a nie np. do projektów wdrożeniowych czy dostarczających sprzęt komputerowy.

344 Michał Urbaniak cowane kompetencje), a co za tym idzie zmiany czasu i kosztu ich wykonania. Wymagania te uwzględnia problem harmonogramowania projektu o czynnościach wielotrybowych (Multi-Mode Resource-Constrained Project Scheduling Problem, MRCPSP). Niniejsza praca jest próbą dostosowania problemu MRCPSP do realiów, w jakich porusza się kierownik projektu informatycznego, i sformułowania oddającego je modelu, a także zastosowanie algorytmu mrówkowego w celu rozwiązania powstałego problemu. Celem pracy jest analiza możliwości wykorzystania algorytmu mrówkowego do optymalizacji czasowej projektów informatycznych. 2. Problem harmonogramowania projektów informatycznych Problem MRCPSP zakłada, iż czynności projektowe mogą być wykonane w różnych trybach reprezentowanych przez kombinację zasobów przydzielonych do wykonania czynności i odpowiadających im czasów realizacji czynności. Według klasyfikacji dokonanej przez Słowińskiego [1980], w problemach harmonogramowania projektów pod uwagę brane są trzy rodzaje zasobów: odnawialne (np. zasób ludzki, ograniczony tylko w określonej jednostce czasu), nieodnawialne (np. kapitał pieniężny, ograniczony w skali całego projektu) oraz podwójnie ograniczone (w skali zarówno jednostki czasu, jak i całego projektu). Tak określony problem jako swego rodzaju generalizacja RCPSP jest problemem NP-trudnym. Dla problemu MRCPSP zostały wskazane algorytmy zarówno dokładne [Sprecher, Drexl 1997], jak i przybliżone [Alcaraz, Maroto, Ruiz 2003]. W ramach metod heurystycznych najczęściej wykorzystywane w literaturze są algorytmy ewolucyjne, których niewątpliwą zaletą jest łatwość kodowania potencjalnych rozwiązań w ramach MRCPSP, jak również dobra ich współpraca z operatorami krzyżowania i mutacji. Obszerną pracę omawiającą problematykę harmonogramowania projektów informatycznych za pomocą algorytmów genetycznych przygotowali Alba, Chicano [2007]. Drugą często wykorzystywaną grupą metod heurystycznych są algorytmy mrówkowe, które w naturalny sposób wpisują się w rozwiązywanie problemów grafowych [Chiang, Huang, Wang 2008; Chen, Zhang 2012]. W problemie harmonogramowania projektu informatycznego (czasami określanego w literaturze jako SPS Software Project Scheduling) najczęściej pomija się nieodnawialne i podwójnie ograniczone zasoby, skupiając się wyłącznie na odnawialnym zasobie ludzkim. Uwagę poświęca się problemowi przydziału pracowników do wykonania poszczególnych czynności ze szczególnym uwzględnieniem optymalizacji wykorzystania kompetencji członków zespołu projektowego [Otero i in. 2009; Barreto, Barrios, Werner 2007]. Warto zwrócić uwagę na zróżnicowane kompetencje, jak również płace wśród specjalistów z sektora IT. Ekspert z dziedziny (np. programowania w języku C++) wykona zapewne czynność w czasie krótszym niż początkujący programista. Otrzyma jednak za swe usługi wyższe wynagrodzenie, co wpłynie niekorzystnie na koszt projektu. Model zaprezentowany w pracy bierze pod uwagę zróżnicowane kompetencje poszczególnych pracowników, a także

Zastosowanie algorytmu mrówkowego do optymalizacji czasowo-kosztowej... 345 proces uczenia się, który powoduje, iż wraz z wykonywaniem coraz większej liczby podobnych do siebie czynności (w naszym przypadku czynności z tej samej specjalizacji, np. projektowania baz danych) osoba je wykonująca, nabywając doświadczenia, zwiększa swą efektywność. W pracy [Anzanello, Fogliatto 2011] przedstawiono przegląd literatury i sposobów modelowania krzywej uczenia się. 3. Opis modelu decyzyjnego Projekt informatyczny będzie w proponowanym podejściu modelowany przez zbiór następujących komponentów: graf G = < T, P >, gdzie T zbiór węzłów reprezentujących czynności, P zbiór łuków reprezentujących zależności (ograniczenia technologiczne) między czynnościami, zbiór czynności do wykonania T = { t1, t2,..., t N }, zbiór pracowników E = { e1, e2,..., e M }, zbiór umiejętności (w ramach których wykonywane są czynności ze zbioru T) S = { s1, s2,..., s K }. Inaczej mówiąc, jest to zbiór wszystkich specjalizacji/dziedzin dla czynności projektowych, np. takich jak programowanie w języku C++, testowanie aplikacji, tworzenie dokumentacji analitycznej, skalę C, według której oznaczany będzie pomiar kompetencji pracownika e m w zakresie umiejętności s k. W pracy przyjmować będziemy, że C = {0, 1, 2, 3, 4, 5}, gdzie 0 oznacza, iż pracownik nie ma w ogóle danej umiejętności, 5 ma je na najwyższym, eksperckim poziomie. Uwaga! Zbiór T można również interpretować jako zbiór pakietów zadań (work packages), a zbiór E jako zbiór zespołów pracowników, którym przydzielane są elementy ze zbioru T. W przyjętym podejściu każda czynność ze zbioru T opisywana jest przez trzy wartości: liczbę rzeczywistą oznaczającą czas wykonania czynności wskazany przez eksperta (interpretowaną jako czas wykonania czynności przez pracownika o umiejętnościach średnich 3 na przyjętej przez nas skali), element ze zbioru S oznaczający, w zakresie jakiej umiejętności wymagane są kompetencje w celu wykonania czynności, element ze zbioru C oznaczający minimalny poziom kompetencji wymagany do wykonania czynności (może być interpretowany jako stopień skomplikowania czynności). Jeżeli kompetencje pracownika są niższe nie może on wykonać danej czynności. W zależności od stopnia, w jakim kompetencje pracownika przewyższają te wymagane przez czynności projektową, harmonogramowany czas wykonania czynności będzie odpowiednio krótszy. W zakresie sposobu wykonywania czynności przyjęty model opiera się na założeniach, zbliżonych do sformułowanych w [Filho i in. 2007] (z tą jednak różnicą, iż we wspomnianej pracy zakłada się pracę w środowisku wieloprojektowym), takich jak:

346 Michał Urbaniak pracownik może wykonywać czynności wymagające różnych ról i umiejętności (jedna osoba może wykonać czynność programistyczną, w innej z kolei odgrywać rolę testera aplikacji), pracownik może być przydzielony do realizacji czynności tylko wtedy, gdy ma umiejętności wymagane przez tę czynność do jej prawidłowego wykonania, pracownik wykonuje w danym momencie tylko jedną czynność. Czynność ta, raz rozpoczęta, wykonywana jest bez przerwania. Każdy pracownik będzie w przyjętym modelu charakteryzowany przez następujące wartości: liczbę rzeczywistą W oznaczającą stawkę pieniężną płatną pracownikowi za jedną jednostkę czasu (w pracy przyjmować będziemy dzień jako jednostkę czasu), K elementowy ciąg liczb całkowitych będący opisem kompetencji w zakresie umiejętności ze zbioru S (np. programowanie w języku JAVA na poziomie 3, umiejętność testowania aplikacji na poziomie 2, umiejętność projektowania baz danych na poziomie 0). Problem optymalizacyjny polega na znalezieniu takiego przyporządkowania czynności ze zbioru T pracownicy ze zbioru E, by przyporządkowanie to nie łamało ograniczeń wynikających z wymagań kompetencyjnych, a czas (koszt) wykonania był jak najniższy. Zakładamy przy tym, iż czas trwania projektu nie powinien przekroczyć maksymalnego, dopuszczalnego przez odbiorcę projektu, czasu jego wykonania. Przy wprowadzeniu do modelu przepływów pieniężnych (pensji wypłacanych co określoną liczbę jednostek czasu, kosztów nieprodukcyjnych i wpłat od odbiorcy w momentach stanowiących kamienie milowe projektu) problem można zdefiniować jako poszukiwanie optymalnego przyporządkowania T E, by NPV projektu była jak najwyższa. W modelu przyjmuje się, iż pracownik, wykonując czynności z tej samej specjalizacji, nabywa umiejętności pozwalające mu zwiększyć wydajność i przyspieszyć wykonanie kolejnych czynności z tej samej specjalizacji. Efekt uczenia się będzie wyznaczany ze wzoru: b t = tx, 1< b < 0. (1) We wzorze (1) t ~ oznacza czas wykonania czynności z uwzględnieniem efektu uczenia się, t czas wykonania czynności bez efektu uczenia się, x liczbę wykonanych czynności z danej specjalizacji, b zaś parametr, nachylenie krzywej uczenia, charakteryzujący szybkość uczenia się przez pracownika. Faktyczny czas wykonania czynności przez pracownika obliczany będzie zgodnie ze wzorem: t rz 3 c = t 1 +, (2) 5 gdzie c oznacza poziom kompetencji niezbędny do wykonania czynności.

Zastosowanie algorytmu mrówkowego do optymalizacji czasowo-kosztowej... 347 4. Algorytmy mrówkowe Algorytm mrówkowy, zaproponowany pierwotnie przez Dorigo [1992], jest metaheurystyką dobrze sprawdzającą się zarówno w problemach grafowych (np. problem komiwojażera), jak i w wielu problemach optymalizacji dyskretnej (np. problem plecakowy). Pierwsze, wymienione w pracy Dorigo, zastosowanie algorytmu to poszukiwanie najkrótszych ścieżek w grafie oparte na zachowaniu kolonii mrówek poszukujących najkrótszych ścieżek między mrowiskiem a źródłem pożywienia. Wędrujące początkowo w sposób losowy mrówki w przypadku odnalezienia pokarmu powracają do mrowiska, znacząc swą drogę feromonami (oznaczanymi w dalszej części pracy przez τ). Kolejne osobniki nie wędrują w sposób losowy, lecz podążają śladem pozostawionym przez poprzedników. Co prawda feromony wyparowują, obniżając siłę swego przyciągania kolejnych mrówek, jednak krótsze, bardziej pożądane trasy zapewniają większą siłę feromonów, powodując wybór tej właśnie trasy przez następne mrówki. W ten sposób, przez zespołowe działanie kolonii mrówek, odnaleziona zostaje trasa optymalna dostępu do pożywienia. Początkowa idea została rozwinięta i zastosowana zarówno do wielu problemów grafowych, jak i w optymalizacji kombinatorycznej. Powstały również odmiany algorytmu, np. uwzględniające i przechowujące elitę (najlepsze dotychczas znalezione rozwiązania) czy też ograniczające wartości feromonów pozostawionych na szlaku mrówek do przedziału [ τmin; τmax ]. W pracy, podobnie jak w [Chen i in. 2010], sztuczne mrówki w algorytmie będą poruszały się po skierowanym grafie pełnym, którego wierzchołki oznaczają czynności wraz z przyporządkowanymi im pracownikami (Mode on Node MON). Innymi słowy, w grafie znajdzie się dla każdej czynności tyle wierzchołków, ilu pracowników spełnia dla tej czynności wymagania kompetencyjne. Bez straty ogólności, do grafu G, zdefiniowanego w punkcie 2 pracy, wprowadzone zostają czynności pozorne t 0 oraz t N+1 wykonywane tylko w jednym trybie celem ustalenia wierzchołka początkowego i końcowego grafu MON. Czynność t 0 ma tylko jeden następnik t 1, natomiast czynność t N+1 ma tylko jeden poprzednik t N. Każda ze sztucznych mrówek musi przejść po grafie MON od wierzchołka początkowego do wierzchołka końcowego tak, by odwiedzić dokładnie jeden wierzchołek grafu dla każdej czynności z T oraz zachować ograniczenia kolejnościowe wynikające z grafu G. W ten sposób problem harmonogramowania zostaje przekształcony w problem przeszukiwania grafu w poszukiwaniu optymalnej ścieżki z wierzchołka początkowego do wierzchołka końcowego. O owej optymalności decydować będzie czas bądź koszt pokonania ścieżki, a więc odpowiadająca jej wartość z powstałego harmonogramu. Warto zauważyć, iż graf MON zawierać może krawędzie nigdy nieużyte przez sztuczne mrówki, ponieważ przejście przez nie złamie ograniczenia kolejnościowe badanego przedsięwzięcia. W celu zabezpieczenia przed powstawaniem rozwiązań niedopuszczalnych w każdym kroku mrówka musi posiadać informację o dostępnych dla niej krawędziach grafu. Realizacja tego wymagania nastąpi przez użycie

348 Michał Urbaniak szeregowego schematu generowania harmonogramu (Serial Schedule Generation Scheme SSGS). Podczas drogi każdej sztucznej mrówki od źródła do ujścia grafu następuje selekcja następnego wierzchołka spośród trybów dopuszczalnych (tych odpowiadających czynnościom dotąd nieodwiedzonym i jednocześnie niełamiącym ograniczeń kolejnościowych). W tym celu losowana jest liczba rzeczywista q z przedziału [0; 1] i porównywana do liczby q 0 (parametr algorytmu z tego samego przedziału). Jeżeli q q 0, to wybierany jest ten łuk grafu spośród dopuszczalnych, β którego wierzchołek końcowy ma największą wartość spośród τi ( ηi) (gdzie τ i to wartość feromonu dla wierzchołka i, η i to wartość heurystyczna pomocnicza dla wierzchołka i, a β to parametr algorytmu sterujący wpływem wartości heurystycznej na wybór wierzchołka). W naszym przypadku wartość heurystyczną wierzchołka w grafie MON zdefiniujemy jako liczbę następników odpowiadającej mu czynności z grafu G, powiększoną o 1, preferujemy zatem czynności, które mają większą liczbę następników. W przypadku, gdy q > q 0, uruchamiany jest mechanizm losowy z uwzględnieniem prawdopodobieństw uzyskania odpowiednich wyborów. Prawdopodobieństwo wyboru wierzchołka n j (spośród wierzchołków dopuszczalnych) obliczane jest zgodnie ze wzorem: ( ηj) τ j pn ( j ) =. β τ ni i ( η ) Po przejściu mrówki przez wybrany wierzchołek następuje aktualizacja wartości feromonu dla tego wierzchołka zgodnie ze wzorem: i β (3) τ = (1 ζτ ) + ζ, (4) i gdzie ζ jest parametrem z przedziału [0; 1]. Efektem takiego działania jest zmniejszenie wartości feromonu, jeżeli ta przekraczała 1, i tym samym pozwolenie kolejnym mrówkom na szerszą eksplorację grafu MON. Po przejściu każdej iteracji algorytmu wyznaczana jest mrówka, która osiągnęła najlepszą wartość funkcji celu (najmniejszy koszt, najkrótszy czas), a feromony na ścieżce, którą podążała, zostają wzmocnione zgodnie ze wzorem: 1 i i C. i τ = τ + ρ (5) W (5) C oznacza najlepszą w danej iteracji wartość funkcji celu, a ρ jest parametrem algorytmu mrówkowego. 5. Algorytm rozwiązania przedstawionego problemu Ogólny schemat algorytmu przedstawia się następująco: Krok 0. Wczytaj dane projektu w postaci piątki < P, T, E, S, C > (dane te zawarte są w pliku wejściowym). Dodaj czynności pozorne t 0 oraz t N+1. Zbuduj graf MON.

Zastosowanie algorytmu mrówkowego do optymalizacji czasowo-kosztowej... 349 Krok 1. Zainicjalizuj parametry algorytmu (m.in. liczbę iteracji I oraz liczbę mrówek w każdej z iteracji J) oraz wartości feromonów ( τ = 1 ). Ponadto wyznacz wartości heurystyczne dla każdego wierzchołka (zgodnie z punktem 3 pracy). Krok 2. Podstaw i = 1. Krok 3. Podstaw j = 1. Krok 4. Dla mrówki o numerze j z iteracji i znajdź ścieżkę z wierzchołka początkowego do końcowego w grafie MON z zachowaniem ograniczeń kolejnościowych dla zadań i przy uwzględnieniu wartości feromonów i heurystycznych. Wykorzystaj do tego celu SSGS opisany w punkcie 3 pracy. Dodatkowo zaktualizuj wartości feromonów na ustalonej ścieżce zgodnie ze wzorem (4). Krok 5. Podstaw j = j + 1. Krok 6. Jeżeli j J, to wróć do kroku 4, w przeciwnym przypadku przejdź do kroku 7. Krok 7. Oblicz wartość funkcji celu harmonogramu projektu wyznaczonego przez wszystkie mrówki z iteracji i. Krok 8. Dokonaj wzmocnienia feromonów na ścieżce, którą kierowała się najlepsza pod względem założonego kryterium mrówka z iteracji i zgodnie ze wzorem (5). Krok 9. Podstaw i = i + 1. Krok 10. Jeżeli i I, to wróć do kroku 3, w przeciwnym przypadku przejdź do kroku 11. Krok 11. Wyświetl najlepsze rozwiązanie z ostatniej iteracji. Algorytm został zaimplementowany w języku programowania Java i przetestowany na komputerze z procesorem Intel Core 2 Duo T9400 oraz 4 GB pamięci RAM. Wszystkie czasy trwania wykonania algorytmu podane w kolejnych punktach pracy odpowiadają tej konfiguracji sprzętu komputerowego. Zaimplementowany program możemy wywołać w celu optymalizacji czasu lub kosztu wykonania projektu. Dla kierownika projektu pożądanym efektem może być jednak optymalizacja czasowa przy zachowaniu pewnego maksymalnego kosztu wykonania projektu lub optymalizacja kosztowa pod warunkiem, iż projekt wykona się w czasie nie dłuższym niż zakładany. W tym celu możemy przekazać jako parametr programu oznaczenie kryterium, którym się kierujemy, oraz ewentualną maksymalną wartość kryterium drugiego. W badaniach algorytmu wykorzystywane będą trzy sposoby liczenia kosztów przypadających na jednego pracownika: I jako liczba jednostek czasu spędzonych nad czynnościami pomnożona przez stawkę jednostkową (podejście wieloprojektowe w czasie, w którym pracownik nie wykonuje żadnego zadania na rzecz projektu, może wykonywać czynności w ramach innych projektów), II jako liczba jednostek czasu liczona od momentu rozpoczęcia najwcześniej wykonywanej czynności do zakończenia wykonywanej najpóźniej, pomnożona przez stawkę jednostkową (podejście jednoprojektowe), III jako iloczyn płacy i czasu (liczby jednostek czasu) trwania projektu. ni i

350 Michał Urbaniak Koszt wykonania całego projektu liczony będzie jako koszt przypadający na wszystkich pracowników. 6. Przykład liczbowy W celu zbadania poprawności działania algorytmu posłużono się przykładem liczbowym z rys. 1. W przykładzie projekt składa się z 6 czynności, 3 rodzajów umiejętności oraz 3 pracowników. Wszystkie niezbędne dane podane są w tabelach obok rysunku. Rys. 1. Sieć projektu, opis czynności oraz wykonawców czynności Źródło: opracowanie własne. Oznaczenia występujące w tabelach są następujące: t ekspercki czas wykonania czynności, s identyfikator umiejętności niezbędnej do wykonania czynności, c poziom umiejętności niezbędny do wykonania czynności, W stawka pieniężna pracownika, c1, c2, c3 poziomy umiejętności danego pracownika w zakresie kompetencji nr 1, 2 i 3. Algorytm opisany w punktach 3 i 4 niniejszej pracy został uruchomiony z następującymi parametrami: liczba iteracji 10, liczba mrówek w każdej z iteracji 50, ρ = 0,5, q = 0, 0 5, ζ = 0,1. Czas wykonania algorytmu wyniósł w takim przypadku 203 ms. Wyniki przedstawione w tab. 1 ukazują najlepsze otrzymane przez program wyniki dla podanego wyżej przykładu liczbowego ze względu na czas i koszt, a także bez uwzględnienia lub z uwzględnieniem efektu uczenia się pracowników.

Zastosowanie algorytmu mrówkowego do optymalizacji czasowo-kosztowej... 351 Tabela 1. Rezultaty otrzymane dla przykładu liczbowego Bez efektu uczenia się Z efektem uczenia się (b= 0,25) Sposób liczenia kosztów Źródło: opracowanie własne. Optymalizacja czasowa harmonogramu I Czas: 76 Koszt: 9250 Pracownicy: 1, 2, 3 II Czas: 76 Koszt: 9400 Pracownicy: 1, 2, 3 III Czas: 76 Koszt: 12160 Pracownicy: 1, 2, 3 I Czas: 65 Koszt: 7720 Pracownicy: 1, 2, 3 II Czas: 65 Koszt: 8095 Pracownicy: 1, 2, 3 III Czas: 65 Koszt: 10 400 Pracownicy: 1, 2, 3 Optymalizacja kosztowa harmonogramu Czas: 214 Koszt: 6250 Pracownicy: 2, 3 Czas: 214 Koszt: 6250 Pracownicy: 2, 3 Czas: 96 Koszt: 9600 Pracownicy: 2, 3 Czas: 169 Koszt: 5125 Pracownicy: 2, 3 Czas: 169 Koszt: 5125 Pracownicy: 2, 3 Czas: 117 Koszt: 7020 Pracownicy: 1 Wyniki potwierdzają intuicyjne podejście optymalizacja czasowa spowoduje maksymalne wykorzystanie zasobów (a więc zatrudnienie do zespołu projektowego wszystkich dostępnych pracowników), natomiast optymalizacja kosztowa będzie rozsądniej pozyskiwała zasoby (w żadnym z rozpatrywanych przypadków nie zatrudniono trzech osób). Warto zauważyć, że optymalizacja czasowa bez uwzględnienia i z uwzględnieniem efektu uczenia się nie zmienia przypisania osób do czynności, natomiast w przypadku optymalizacji kosztowej, przy III sposobie liczenia kosztów, przyporządkowanie optymalne uległo zmianie. 7. Badanie szybkości algorytmu Celem sprawdzenia szybkości algorytmu skonstruowany został generator sieci projektowych (program w języku Java, który tworzy pliki xml, przetwarzany następnie przez pierwotny program z zaimplementowanym algorytmem mrówkowym). Uzyskane wyniki przedstawiono na rys. 2 oraz 3. Na rysunku 2 zaprezentowany został średni czas generowania rozwiązań dla problemów o liczbie zadań 10, 20, 50 i 100 (dla każdej wielkości badano 5 losowych instancji problemu) przy liczbie mrówek w każdej iteracji równej 100 oraz liczbie iteracji 100. Wydaje się, iż większa liczba czynności oznacza projekt duży, który powinien być podzielony na fazy rozpatrywane osobno. Warto zwrócić uwagę

352 Michał Urbaniak na znaczne wydłużenie czasu wykonania algorytmu wraz ze wzrostem liczby czynności. Wynika to z coraz większego skomplikowania grafu MON oraz wyznaczania ścieżki, jaką musi pokonać każda z mrówek. 10000 3602,062 1000 573,844 100 33,047 10 6,3595 1 10 20 50 100 Rys. 2. Czas wykonania algorytmu w sekundach dla różnych wielkości projektu (liczby czynności) Źródło: opracowanie własne. 70 60 50 48,469 58,985 40 30 29,75 20 15,516 10 0 100 200 300 400 Rys. 3. Czas wykonania algorytmu w sekundach dla projektu o 15 czynnościach i zmiennej liczbie iteracji Źródło: opracowanie własne. Na rysunku 3 przedstawiono czas wykonania algorytmu dla problemu o 15 czynnościach, 3 pracownikach oraz zmiennej liczbie iteracji (liczba mrówek w każdej z iteracji 100). Występuje tu, zgodnie z intuicją, prosta zależność liniowa, a czas wykonania dla danego problemu zależy wyłącznie od liczby mrówek, które mają

Zastosowanie algorytmu mrówkowego do optymalizacji czasowo-kosztowej... 353 przemierzyć graf MON. Należy pamiętać, iż liczba możliwych przyporządkowań (z pominięciem tych, które łamią wymagania kompetencyjne czynności) wynosi 3 15 = 14 348 907 (ok. 14 milionów). Skala problemu wydaje się niewielka (projekt o 15 czynnościach to zazwyczaj mały projekt), stąd postanowiono sprawdzić, jak długo potrwa przeliczenie zbioru zupełnego rozwiązań. W takim przypadku tworzymy kolejne przyporządkowania, wyznaczając dla każdego z nich harmonogram i koszt tak powstałego projektu. Obliczenia, których celem była optymalizacja czasowa (bez uwzględnienia efektu uczenia się), trwały 170 min (prawie 3 h, 1406 wyznaczonych harmonogramów na sekundę). Na rysunku 4 przedstawiono ewolucję rozwiązania otrzymanego przez algorytm mrówkowy (150 iteracji, 100 mrówek w każdej, czas wykonania: 30 sekund) w stosunku do rozwiązania optymalnego otrzymanego przez przegląd zupełny. Widzimy więc, iż zastosowanie algorytmu powoduje odnalezienie rozwiązania gorszego o 4% od globalnego rozwiązania optymalnego w czasie wielokrotnie krótszym. 140 120 100 80 60 40 20 0 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 113 120 127 134 141 148 Rys. 4. Rozwiązanie optymalne (linia przerywana) a wyniki działania algorytmu mrówkowego podczas poszczególnych iteracji Źródło: opracowanie własne. 8. Wnioski i dalsze badania Zaletą zaprezentowanego modelu jest fakt, iż wszystkie informacje o projekcie, niezbędne do rozwiązania zdefiniowanego problemu są łatwe do zdobycia przez kierownika projektu. Dysponuje on zazwyczaj pełną listą czynności wraz z ograniczeniami kolejnościowymi oraz oszacowaniem czasu ich wykonania (szacowania te mogą wykonywać sami pracownicy zespołu projektowego, kierownik projektu lub zewnętrzni eksperci). Nie jest problemem ustalenie, w ramach jakiej dziedziny (specjalizacji) wykonywana jest czynność oraz jakiego poziomu kompetencji wy-

354 Michał Urbaniak maga. Wyznaczanie kompetencji pracowników wykonywane jest podczas oceny okresowej, wystarczy więc ekstrakcja tych danych z odpowiedniego systemu informatycznego i przekształcenie do formatu wymaganego przez zdefiniowany w pracy model. Zaprezentowany w artykule algorytm rozwiązania problemu jest prosty w implementacji, szybki, a przy tym może być zastosowany do rozwiązywania wielu problemów z zakresu harmonogramowania projektów. Niestety wadą algorytmu, jak również wszystkich algorytmów mrówkowych, są problemy z jego kalibracją i niekiedy duża losowość uzyskiwanych wyników pośrednich. Przedstawiony w pracy model projektu informatycznego wymaga rozwinięcia, by wierniej oddawał środowisko, w którym porusza się kierownik projektu. W tym celu należałoby wprowadzić do modelu: koszty stałe prowadzenia projektu (koszty zarządu oraz uposażenie kierownika projektu), dostępność pracowników i urlopy, symulacje (np. metodą Monte Carlo) faktycznych czasów trwania projektu (przykład takiej symulacji na podstawie algorytmu mrówkowego przedstawiają np. Chen i in. [2010]), a także reaktywne harmonogramowanie (w przypadku, gdy któraś z czynności została w sposób znaczący opóźniona bądź przyspieszona). Literatura Alba E., Chicano J., Software project management with GAs, Information Sciences 2007, no 177(11). Alcaraz J., Maroto C., Ruiz R., Solving the multi-mode resource-constrained project scheduling problem with genetic algorithms, Journal of Operational Research Society 2003, vol. 54. Alvarez-Valdes, R., Tamarit, J. M., Heuristic Algorithms for Resource-Constrained Project Scheduling: A Review and an Empirical Analysis. Part I, [w:] Advances in Project Scheduling, R. Slowinski, J. Weglarz (red.), Elsevier Science Publishers B.V., Amsterdam 1989. Anzanello M.J., Fogliatto F.S., Learning curve models and applications: Literature review and research directions, International Journal of Industrial Ergonomics 2011, no 41(5). Barreto A., Barrios M.D.O., Werner C.M.L., Staffing a software project: A constraint satisfaction and optimization-based approach, Computers & Operations Research 2008, no 35(10). CHAOS Summary 2009, Raport The Standish Group, Boston 2009. Chen W.-N. i in., Optimizing Discounted Cash Flows in Project Scheduling An Ant Colony Optimization Approach, IEEE Transactions on Systems, Man and Cybernetics, Part C: Applications and Reviews 2010. Chen W.-N., Zhang J., Ant Colony Optimization for Software Project Scheduling and Staffing with an Event-Based Scheduler, IEEE Transactions on Software Engineering, 2012. Chiang C., Huang Y., Wang W., Ant colony optimization with parameter adaptation for multi-mode resource-constrained project scheduling, Journal of Intelligent & Fuzzy Systems 2008, no 19. Dorigo M., Optimization, Learning and Natural Algorithms, rozprawa doktorska, Politecnico di Milano, Włochy 1992. Filho A.B. i in., Staff Scheduling Optimization in Information Technology Projects, International Conference on Service Systems and Service Management, 2007. Iredi S., Merkle D., Middendorf M., Bi -criterion optimization with multi colony ant algorithms, Lecture Notes in Computer Science 2001, vol. 1993. Otero L.D. i in., A systematic approach for resource allocation in software projects, Computers & Industrial Engineering 2009, no 56(4).

Zastosowanie algorytmu mrówkowego do optymalizacji czasowo-kosztowej... 355 Patterson J., A comparison of exact procedures for solving the multiple constrained resource project scheduling problem, Management Science 1984, 30, 7. Słowiński R., Two approaches to problems of resource allocation among project activities a comparative study, The Journal of the Operational Research Society 1980, vol. 31. Sprecher A., Drexl A., Multi-mode resource-constrained project scheduling by a simple, general and powerful sequencing algorithm, European Journal of Operational Research 1998, vol.107. ANT COLONY SYSTEM APPLICATION FOR TIME-COST OPTIMIZATION OF SOFTWARE PROJECTS Summary: Scheduling software projects is a specific problem among resource-constrained project scheduling problems because of the huge role of the human factor and competence of individual operations contractors. Duration of activity is closely related to the cost of implementation because of the wage differences that occur among IT professionals. The paper presents an ant colony system used to perform the time-cost optimization of IT projects. Keywords: scheduling projects, ant colony system, software projects.