UNIVERZITA PALACKÉHO V OLOMOUCI PŘÍRODOVĚDECKÁ FAKULTA KATEDRA MATEMATICKÉ ANALÝZY A APLIKACÍ MATEMATIKY SEMINÁRNÍ PRÁCE Metody analýzy kritické cesty Vypracoval: Tomáš Talášek AME, I. ročník
Obsah 1 Základní pojmy 3 2 CPM - Critical Path Method 5 2.1 On-line řešení CPM.......................... 8 3 PERT 10 4 Závěr 11
Úvod V této semestrální práci se budu zabývat problémy, které vznikají s plánováním rozsáhlejších projektů ve firmách. Při plánování náročnějších projektů je velmi důležité rozvrhnout si dílčí činnosti tak, aby výsledná doba, potřebná k vykonání celého projektu byla co nejkratší. Abychom toho mohli dosáhnout, musíme si nejprve stanovit realistické požadavky na trvání jednotlivých činností (a je rozumné u každé činnosti zanechat menší časovou rezervu). Bohužel s rostoucím počtem jednotlivých činností je velmi náročné pamatovat si všechny souvislosti a umět rozvrhnout, kdy bude která činnost vykonána. Proto bylo vyvinuto několik matematických metod, které se zabývají takzvanou analýzou kritické cesty (kritická cesta nám určuje minimální délku trvání celého projektu). V roce 1957 pánové Morgan R. Walker a James E. Kelley, Jr. vytvořili metodu pro analýzu kritické cesty, zvanou Critical path method (CPM) 1, která byla nejprve využita v chemickém průmyslu 2. V současné době se všeobecně používá pro libovolné typy projektů (např. softwarový vývoj, výzkumné projekty, vývoj nových produktů... ). Tato metoda je velmi obecná a lze ji aplikovat na libovolný projekt, kde se objevují vzájemně provázané a závislé činnosti. V roce 1958 byla metoda CPM upravena a vznikla metoda Program Evaluation and Review Technique (PERT). Tato metoda se liší tím, že do metody CPM zavádí statistiku a snaží se lépe odhadnout dobu trvání celého projektu. Metoda PERT byla vyvinuta pro americké námořnictvo, konkrétně při návrhu zbraňového systému ponorky Polaris. Metodu lze použít všude, kde se používá metoda CPM, ovšem ne vždy je to vhodné (u menších projektů máme zbytečně složité výpočty). 1 V česky psaných textech lze velmi často narazit na slovní spojení metoda CPM (tato práce není výjimkou). Toto označení není zcela správné, poněvadž zkratka CPM obsahuje slovo metoda. Přesto se toto slovní spojení hojně užívá. 2 Za zmínku jistě stojí, že tato metoda byla použita i v projektu Manhattan 2
1 Základní pojmy Předtím, než se seznámíme s jednotlivými metodami, bude nutné zavést několik pojmů z teorie grafů, které se v těchto metodách běžně používají. Definice 1.1. Grafem ve smyslu teorie grafů rozumíme dvojici množin G = (U, H), kde U je množina uzlů a H je množina hran. Hranou rozumíme neuspořádanou dvojici [u, v], kde u U, v U jsou uzly grafu. Poznámka 1.1. V následujícím textu budeme předpokládat, že množiny U a H jsou konečné. Definice 1.2. Dva uzly, které jsou spojeny hranou, nazýváme sousední. Stupeň uzlu je dán počtem hran, které z uzlu vycházejí. Definice 1.3. Graf nazýváme úplný, jestliže pro každé dva různé uzly u U, v U platí: [u, v] H. Definice 1.4. Existuje-li v grafu alespoň jedna hrana [u, u], kde u U, nazveme ji smyčkou. Existuje-li více hran mezi dvěma uzly, nazveme je paralelními hranami. Graf, v němž se vyskytuje alespoň jedna smyčka nebo paralelní hrany, nazveme multigrafem. Poznámka 1.2. Při analýze kritické cesty použijí pouze takové grafy, který nemají žádnou smyčku ani paralelní hranu. Definice 1.5. Sledem v grafu G nazýváme posloupnost uzlů u i0, u i1,..., u ik takovou, že [u i,j 1, u i,j ] H, pro j = 1,..., k. Sled, v němž se ani jeden uzel nevyskytuje vícekrát, se nazývá cesta v G. Číslo k se nazývá délka sledu nebo cesty. Definice 1.6. Nechť h je reálná funkce definovaná na množině hran H grafu G = (U, H). Potom trojici G h = (U, H, h) nazýváme hranově ohodnoceným grafem. Definice 1.7. Orientovaným grafem rozumíme dvojici množin G 0 = (U, H), kde U je množina uzlů a H množina orientovaných hran, kterými rozumíme uspořádané dvojice (u, v), kde u U, v V jsou dva různé uzly grafu G. 3
Projekty budeme zobrazovat pomocí nezáporně hranově ohodnocených souvislých acyklických síťových grafů se vstupem a výstupem. Každá hrana představuje nějakou činnost, kdežto uzly představují začátky a konce činností. Hodnost hrany představuje dobu, která je potřebná pro vykonání činnosti. Různé činnosti našeho projektu na sebe mohou různě navazovat: činnosti na sebe bezprostředně navazují více činností následuje po ukončení jediné činnosti jedna činnost následuje po ukončení více činností více činností následuje po ukončení více činností mezi dvěma činnostmi může existovat více paralelních činností činnost C následuje po ukončení činnosti A a B, kdežto činnost D následuje pouze po ukončení činnosti A Projekt nejčastěji znázorňujeme graficky: Obr. 1: Grafické znázornění projektu. 4
2 CPM - Critical Path Method Našim cílem je nalézt nejdelší cestu v grafu, kterou nazýváme kritická cesta. Celková délka kritické cesty je dána součtem dob trvání jednotlivých činností, které na kritické cestě leží. Tato doba odpovídá minimální možné délce celého projektu. Činnost, které leží na kritické cestě se nazývají kritické. Pokud dojde k prodloužení doby, potřebné na vykonání kritické činnosti, doba potřebná na vykonání celého projektu se prodlouží. Je důležité si uvědomit, že kritická cesta nemusí být v projektu pouze jedna. Při používání metody CPM hledáme různé časové rezervy, které nám říkají, o kolik se jednotlivé činnosti mohou prodloužit případně začít později. Pokud chceme použít metodu CPM, je potřeba znát tyto informace o projektu: technologická struktura projektu pevný odhad doby trvání každé dílčí činnosti termín zahájení nebo dokončení projektu, případně celková dobu trvání projektu Používané značení: (i, j) činnost začínající v uzlu i a končící v uzlu j, i < j y ij doba trvání činnosti (i, j) T doba trvání projektu n počet uzlů v grafu t i (0) termín nejdříve možného začátku činností začínajících v uzlu i t i (0) + y ij termín nejdříve možného konce činnosti (i, j) t i (1) termín nejpozději přípustného konce činností začínajících v uzlu i t i (1) y ij termín nejpozději přípustného začátku činnosti (i, j) 5
Postup při řešení projektu: Nejprve stanovíme hodnotu nejdříve možných začátků t j (0): t 1 (0) = 0 t j (0) = max (i<j) (t i(0) + y ij ), j = 2, 3,..., n Následně stanovíme hodnotu nejpozději přípustných konců t i (1) t n (1) = T, pokud je T zadáno, v opačném případě t n (1) = t n (0) t i (1) = min (i<j) (t j(1) y ij ), i = n 1,..., 2, 1 Výpočet různých časových rezerv: Celková časová rezerva nám určuje maximální možné zpoždění, způsobující prodloužení činnosti, které neprodlouží celkovou dobu projektu. Předpokládáme, že všechny předchozí činnosti začaly co možná nejdříve. Celkovou časovou rezervu vypočítáme podle vzorce: CR ij = t j (1) t i (0) y ij Jestliže doba trvání projektu není předem daná, potom T = t n (0). V takovéto situaci jsou celkové časové rezervy kritických činností rovny nule. Pokud T > t n (0), pak i kritické činnosti mají celkovou časovou rezervu, která je rovna T t n (0). Pakliže by ovšem bylo T < t n (0), znamená to, že daný projekt nelze v požadovaném čase realizovat. V takovémto případě se musíme pokusit zkrátit dobu trvání jednotlivých činností, což vetšinou znamená růst nákladů. Volná časová rezerva nám určuje maximální možné zpoždění začátku nebo prodloužení trvání činnosti, které neovlivní nejdříve možné doby začátku všech bezprostředně následujících činností, za předpokladu, že všechny bezprostředně předchozí činnosti byly zahájeny co možná nejdříve. Volnou časovou rezervu vypočítáme podle vzorce: V R ij = t j (0) t i (0) y ij 6
Závislá časová rezerva nám určuje maximální možné zpoždění začátku nebo prodloužení trvání činnosti, které neovlivní nejpozději přípustné termíny začátku všech bezprostředně následujících činností, za předpokladu, že všechny bezprostředně předchozí činnosti skončí co možná nejpozději. Závislou časovou rezervu vypočítáme podle vzorce: ZR ij = t j (1) t i (1) y ij Nezávislá časová rezerva nám určuje maximální možné zpoždění začátku nebo prodloužení trvání činností, které neovlivní nejdříve možné termíny začátku všech bezprostředně následujících činností, za předpokladu, že všechny bezprostředně předchozí činnosti skončí co možná nejpozději. Nezávislou časovou rezervu vypočítáme podle vzorce: { 0 NR ij = max t j (0) t i (1) y ij Příklad užití metody CPM při plánování koupě rodinného domu: 7
2.1 On-line řešení CPM Pro jednodušší řešení projektů pomocí metody CPM je vhodné použít k tomu určený software. Při hledání softwaru jsem narazil na Critical Path Calculator, který se nachází na internetové adrese http://sporkforge.com/sched/critical path.php. Jedna se on-line nástroj, který počítá nejkratší dobu potřebnou na vykonání projektu a celkovou časovou rezervu. Použití nástroje je velmi snadné, i když se celý ovládá čistě textově. Kompletní práci s nástrojem si ukážeme na jednoduchém projektu, který popisuje zvučení kapely před koncertem. Nejprve si připravíme seznam všech činností v textové podobě. Každou činnost napíšeme na jeden řádek v takovéto syntaxi: "Název činnosti" délka "Na čem činnost závisí" Pakliže naše činnost závisí na více jiných činnostech, napíšeme je všechny za sebe. Pokud je činností více, můžeme je uložit do textového souboru a následně jej načíst pomocí pole...or upload the task list as a plain text file:. Na pořadí činností v našem seznamu nezáleží, jejich počet je omezen na 1000. Obr.4: Zadání projektu ve formě textu. V momentě, kdy máme seznam činností hotový, stačí kliknout na tlačítko Analyze project... a náš projekt bude zpracován. 8
Obr.3: Výsledné zpracování projektu. Critical path lenght určuje délku kritické cesty Tasks on the critical path určuje, které činnosti leží na kritické cestě (včetně začátku a konců jejich trvání) Task scheduling details nám popisuje, kdy můžou začít jednotlivé činnosti a jakou mají časovou rezervu 9
3 PERT Metoda PERT je zobecněním metody analýzy kritické cesty CPM. Tato metoda se používá k řízení složitých projektů majících stochastickou povahu. Dobu trvání každé dílčí činnosti zde chápe jako náhodnou proměnnou mající určité rozložení pravděpodobnosti. Empiricky bylo zjištěno, že v praxi toto nejlépe vystihuje tzv. beta rozdělení, které lépe vystihuje proměnlivost provozních podmínek. odhad. Pro každou činnost nejprve stanovíme 3 odhady doby trvání: a ij - optimistický odhad, m ij - nejpravděpodobnější odhad, b ij - pesimistický Pomocí těchto odhadů si popíšeme základní charakteristiku β-rozdělení: y ij = a ij + 4m ij + b ij 6 Postup výpočtu pro metodu PERT: Nejprve vypočítáme střední hodnoty y ij, σij 2 = (b ij a ij ) 2, σ ij = (b ij a ij ) 36 6 pro každou činnost (i,j). Následně pomocí metody CPM určíme kritickou cestu, jejíž délka bude představovat průměrnou dobu trvání projektu T. Celková doba trvání projektu pak leží v intervalu T ± σ. Příklad užití metody PERT při plánování koupě rodinného domu: 10
4 Závěr V této práci jsme si ukázali dvě základní metody pro analýzu kritické cesty. I když jsou tyto metody starší, pořád jsou hojně užívané pro svou jednoduchost, přehlednost a velmi uspokojivé výsledky. Navíc jsou tyto metoda velmi rychlé, jak jsme si ukázali s použitím on-line aplikace. Největším problémem těchto metod je jednoznačně příprava před samotným výpočtem. Je velmi složité odhadnout čas jednotlivých činností, zvláště pokud jsme nikdy podobnou činnost neprováděli. Tento problém se snaží vykompenzovat metoda PERT, nicméně i zde musím odhadnout doby, potřebné na vykonání činností. Sám jsem se s analýzou kritické cesty setkal několikrát v oblasti ekonomických modelů, tak v oblasti managementu. Přesto, že jsou metody CPM a PERT dostačující, objevují se i nové, vyspělejší metody (např. Critical Chain Project Management - CCPM). Nicméně tyto metody už nejsou čistě matematické, poněvadž se zaměřují i na psychologický přístup (odvozují se z teorie omezení (Theory of Constraints TOC). Literatura [1] Demel J.: Grafy a jejich aplikace, Academia Praha (2002) [2] Bohanesová E.: Matematické modely v ekonomii, Univerzita Palackého, (2010) [3] Critical Path Calculator: http://sporkforge.com/sched/critical path.php (on-line 25.8.2011) [4] Wikipedie(ENG): http://en.wikipedia.org/wiki/critical path method (online 24.8.2011) 11