Plánování proektu 3. dubna 2018 1 Úvod 2 Reprezentace proektu 3 Neomezené zdroe 4 Variabilní doba trvání 5 Přidání pracovní síly
Problémy plánování proektu Zprostředkování, instalace a testování rozsáhlého počítačového systému proekt zahrnue evaluace a výběr hardware, vývo software, nábor a školení lidí, testování a ladění systému,... precedenční vztahy některé úlohy mohou být prováděny paralelně úloha musí být realizována až po dokončení iných úloh cíl: minimalizovat čas na realizaci celého proektu Příklady dalších problémů stavba nemovitostí, konstrukce center elektráren, voenský průmysl Hana Rudová, FI MU: Plánování proektu 2 3. dubna 2018
Plánování proektu Základní problém plánování proektu precedenční podmínky paralelní stro s neomezeným počtem stroů minimalizace maximálního času konce úloh (makespan) relativně ednoduché na řešení 1 2 4 6 3 5 7 Rozšíření variabilní doba trvání (spoena s cenou provádění) optimalizace: kompromis mezi cenou na ukončení proektu a cenou za zkrácení délky úloh pracovní síla (skupiny operátorů s odlišnou specializací) při sdílení omezeného množství operátorů nutno uvažovat disunktivní hrany komplexní problém, ehož řešení e velmi obtížné Hana Rudová, FI MU: Plánování proektu 3 3. dubna 2018
Reprezentace proektu: úloha ako hrana Úloha ako hrana mezi dvěma uzly první uzel reprezentue čas startu úlohy druhý uzel reprezentue čas konce úlohy Dvě úlohy nemohou mít stený startovní a koncový uzel 2 1 4 3 Musíme zavést pomocné (dummy) úlohy 1 2 3 4 Hana Rudová, FI MU: Plánování proektu 4 3. dubna 2018
Korektní vyádření precedencí Je korektní tato reprezentace? Úloha Předchůdci A B A C D A,C E B,C A B E C D Není: B nemá předchůdce C Musíme uvažovat následuící reprezentaci A B E C D Hana Rudová, FI MU: Plánování proektu 5 3. dubna 2018
Reprezentace proektu: úloha ako uzel Reprezentace: úloha ako uzel hrany reprezentuí precedenční podmínky síť neobsahue žádné orientované cykly Úloha Doba Předchůdci trvání 1 2 2 3 1 3 1 1 4 4 2 5 2 3 6 1 4,5 7 3 4,5 1 2 4 6 3 5 7 Hana Rudová, FI MU: Plánování proektu 6 3. dubna 2018
Výhodněší reprezentace Běžně používana reprezentace úloha ako hrana Výhodněší ale úloha ako uzel nesou nutné redundantní hrany (pomocné úlohy) pro korektní vyádření precedencí úloha ako uzel lze převést na úloha ako obdelník horizontální strany obdelníku použity ako časové osy odpovídaící době provádění úlohy uloha uloha k Hana Rudová, FI MU: Plánování proektu 7 3. dubna 2018
Popis problému Popis problému m paralelně zapoených stroů n úloh s precedenčními omezeními doba provádění p obektivní funkce: minimalizace maximálního času konce úloh (makespan) P prec C max (a m n) polynomiální složitost, metoda kritické cesty P m prec C max 2 m < n NP úplný problém Značení S nedřívěší startovní čas úlohy C = S + p nedřívěší koncový úlohy S nepozděší startovní čas úlohy C nepozděší koncový čas úlohy Prec (přímí) předchůdci úlohy k Prec všechny úlohy k, které předcházeí úlohu : k Prec všechny úlohy, které následuí úlohu k Hana Rudová, FI MU: Plánování proektu 8 3. dubna 2018
Metoda kritické cesty Popis algoritmu pro nalezení kritické cesty dopředná procedura start v čase 0 výpočet nedřívěšího startovního času každé úlohy čas dokončení poslední úlohy e makespan zpětná procedura start v čase rovném makespan výpočet nepozděšího startovního času, aby byl realizován tento makespan Úloha s rezervou (slack ob) eí startovní čas může být odložen aniž e navýšen makespan úloha, eichž nedřívěší startovní čas e menší než nepozděší startovní čas Kritická úloha úloha, která nesmí být odložena úlohy, eichž nedřívěší startovní čas e roven nepozděšímu startovnímu čas Kritická cesta řetěz úloh začínaící v čase 0 a končící v čase C max v grafu může existovat více kritických cest kritické cesty se mohou částečně překrývat graf kritických cest G CP : podgraf daný množinou kritických úloh a kritických cest Hana Rudová, FI MU: Plánování proektu 9 3. dubna 2018
Kritická cesta: zadání příkladu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 p 5 6 9 12 7 12 10 6 10 9 7 8 7 5 2 4 7 1 6 9 10 12 14 3 11 13 5 8 Hana Rudová, FI MU: Plánování proektu 10 3. dubna 2018
Příklad: dopředná procedura 1 5+6=11 11+12=23 2 4 7 0+5=5 14+12=26 6 9 legenda S 23+10=33 + p = C S 33+9=42 10 43+8=51 12 14 26+10=36 51+5=56 3 11 13 43+7=50 5+9=14 5 8 14+7=21 36+7=43 26+6=32 Hana Rudová, FI MU: Plánování proektu 11 3. dubna 2018
Příklad: zpětná procedura 5 5=0 1 legenda 12 6=6 24 12=12 34 10=24 C p = S 2 4 7 43 9=34 10 51 8=43 56 5=51 26 12=14 36 10=26 12 14 6 9 3 14 9=5 5 8 26 7=19 36 6=30 11 43 7=36 13 51 7=44 Hana Rudová, FI MU: Plánování proektu 12 3. dubna 2018
Kritická cesta 2 4 7 1 6 9 10 C max = 56 12 14 3 11 13 5 8 Hana Rudová, FI MU: Plánování proektu 13 3. dubna 2018
Algoritmus pro nalezení kritické cesty 1 Dopředná procedura 1 t = 0 2 pro všechny úlohy bez předchůdce: S = 0, C = p 3 vypočíte postupně pro všechny zbývaící úlohy : k2 k1 k3 S = max C k, C = S + p k Prec 4 optimální makespan e C max = max(c 1,..., C n) 2 Zpětná procedura t = C max pro všechny úlohy bez následníka: C = C max, S = C max p vypočíte postupně pro všechny zbývaící úlohy : k1 k3 k2 C = min ověř, že 0 = min(s 1,..., S n ) k: Prec k S k, S = C p Hana Rudová, FI MU: Plánování proektu 14 3. dubna 2018
Kompromis mezi časem a cenou Lze uvažovat variabilní dobu trvání úloh za předpokladu vyšší ceny lze zkrátit dobu provádění Lineární cena Doba trvání p min p p max Marginální cena: cena za zkrácení doby trvání úlohy o 1 časovou ednotku c a c b prostředky (peníze) c = ca c b p min p max p min doba provádění max p př. p min = 10, p max = 15, c b = 10, c a = 20, c = 2 cena provádění úlohy po dobu p : c b + c (p max p ) Hana Rudová, FI MU: Plánování proektu 15 3. dubna 2018
Cena za provádění proektu Fixní režiní náklady c 0 celkem: C max c 0 na časovou ednotku doby provádění proektu Cena F (p ) za provádění proektu při době provádění úloh p určena ako součet ceny za provádění všech úloh fixních režiních nákladů F (p ) = C max c 0 + ( c b + c (p max p ) ) Cíl: nalézt p a S tak, aby byla F (p ) minimální c a c b prostředky (peníze) p min doba provádění max p Hana Rudová, FI MU: Plánování proektu 16 3. dubna 2018
Variabilní doba trvání: metody řešení Obektivní funkce: minimální cena proektu Kompromisní heuristika mezi časem a cenou dobrá kvalita rozvrhu použitené i pro nelineární cenu Formulace lineárního programování optimální rozvrh nelineární verze obtížně řešitelné Hana Rudová, FI MU: Plánování proektu 17 3. dubna 2018
Opakování: Řez, minimální řez Orientovaný graf G = (V, E) Počáteční uzel: zdro s V Koncový uzel: stok t V Řez:... také mluvíme o vrcholovém řezu množina uzlů V, eíž smazáním z grafu se rozpoí zdro a stok E množina hran incidentních s V t. v G =(V-V,E-E ) neexistue orientovaná cesta z s to t Minimální řez: řez U takový, že neexistue řez W U t. vrácení libovolného uzlu z U do grafu znovu spoí zdro a stok minimální řez zdro řez stok Hana Rudová, FI MU: Plánování proektu 18 3. dubna 2018
Řez, minimální řez II. Uvažume orientovaný graf G 0 = (V 0, E 0 ) Do grafu přidáme zdro: nový vrchol s a hrany S vedoucí z s do všech vrcholů G 0 bez předchůdců Do grafu přidáme stok: nový vrchol t a hrany T vedoucí ze všech vrcholů G 0 bez následníků do t Nový graf G = (V, E): V = V 0 {s, t}, E = E 0 S T Budeme hledat řezy a minimální řezy z s do t v G př. graf má 4 minimální řezy minimální řez zdro řez stok Hana Rudová, FI MU: Plánování proektu 19 3. dubna 2018
Kompromisní heuristika: příklad 1 2 3 4 5 6 7 8 9 10 11 12 13 14 p max 5 6 9 12 7 12 10 6 10 9 7 8 7 5 p min 3 5 7 9 5 9 8 3 7 5 4 5 5 2 c b 20 25 20 15 30 40 35 25 30 20 25 35 20 10 c 7 2 4 3 4 3 4 4 4 5 2 2 4 8 fixní režiní náklady na časovou ednotku c 0 =6 Hana Rudová, FI MU: Plánování proektu 20 3. dubna 2018
Algoritmus kompromisní heuristiky 1 Nastav doby provádění na eich maximum: p = p max Urči všechny kritické cesty s těmito dobami provádění Zkonstruu graf G CP kritických cest 2 Urči všechny minimální řezy v G CP pozn. pokud zkrátíme dobu provádění všech úloh v minimálním řezu, podaří se nám i zkrátit dobu provádění proektu! Nadi řezy, eichž doba provádění e větší než eich minimum: p > p min G CP Pokud takový řez neexistue STOP, inak běž na krok 3 3 Pro každý minimální řez: spočíte cenu redukuící všechny doby provádění o 1 časovou ednotku Vyber minimální řez s nenižší cenou pozn. abychom za snížení zaplatili co nenižší cenu Jestliže e cena řezu menší než fixní režiní náklady c 0 za časovou ednotku běž na krok 4, inak STOP 4 Reduku všechny doby provádění v minimálním řezu o 1 časovou ednotku Urči novou množinu kritických cest Revidu graf G CP a běž na krok 2 Hana Rudová, FI MU: Plánování proektu 21 3. dubna 2018
Příklad (pokračování): maximální doba provádění 2 4 7 1 6 9 10 C max = 56 12 14 3 11 13 5 8 Hana Rudová, FI MU: Plánování proektu 22 3. dubna 2018
Kompromisní heuristika: příklad 1 2 3 4 5 6 7 8 9 10 11 12 13 14 c 0 =6 p max 5 6 9 12 7 12 10 6 10 9 7 8 7 5 p min 3 5 7 9 5 9 8 3 7 5 4 5 5 2 c b 20 25 20 15 30 40 35 25 30 20 25 35 20 10 c 7 2 4 3 4 3 4 4 4 5 2 2 4 8 Náklady na provedení proektu při maximální době trvání úloh F (p max ) = C max c 0 + ( ) c b + c (p max p max ) = = C max c 0 + cb = = 56 6 + 20 + 25 + 20 + 15 + 30 + 40 + 35 + 25+ +30 + 20 + 25 + 35 + 20 + 10 = = 336 + 350 = 686 Hana Rudová, FI MU: Plánování proektu 23 3. dubna 2018
Podgraf s kritickou cestou (G CP ) Kandidáti na redukci: uzel 11 a uzel 12, vybereme uzel 12 c = 7 1 1 c = 3 6 c = 4 9 6 9 c 12= 2 c 14= 8 12 14 3 c = 4 3 Rezy: {1},{3},{6},{9} {11},{12},{14} 11 c = 2 11 minimální řez s nenižší cenou redukce doby provádení ulohy 12 z 8 na 7 Fixní režiní náklady se redukuí z 56 6 na 55 6 = 330 Cena za provádění úloh naroste o c 12 = 2, t. 350 + 2 = 352 Celková cena klesla z 686 na 330 + 352 = 682 Hana Rudová, FI MU: Plánování proektu 24 3. dubna 2018
Podgraf s kritickou cestou (G CP ) c = 7 1 1 5 9 3 c = 4 3 c = 3 6 Rezy: {1},{3},{6},{9} {11},{12,13},{14} c = 4 9 6 9 12 10 7 na 6 11 c = 2 11 c 12= 2 c 14= 8 12 14 7 7 7 13 c 13= 4 minimální řez s nenižší cenou redukce doby trvání ulohy 11 ze 7 na 6 Fixní režiní náklady se redukuí z 55 6 na 54 6 = 324 Cena za provádění úloh naroste o c 11 = 2, t. 352 + 2 = 354 Celková cena klesla z 682 na 324 + 354 = 678 Hana Rudová, FI MU: Plánování proektu 25 3. dubna 2018
Podgraf s kritickou cestou (G CP ) C = 7 1 1 5 3 C 2= 2 C 4= 3 C 7= 4 12 9 2 4 7 10 8 6 5 9 7 3 C = 4 3 C = 3 6 C = 4 9 6 9 12 9 10 7 C 10= 5 10 9 5 7 4 11 C = 2 11 C 12= 2 C 14= 8 8 5 5 2 12 14 13 7 5 C = 4 13 další redukce: pro uzel 2 na 5 a pro uzel 11 na 5,... Fixní režiní náklady se redukuí z 54 6 na 53 6 = 318 Cena za provádění úloh naroste o c 2 + c 11 = 2 + 2, t. 354 + 4 = 358 Celková cena klesla z 678 na 318 + 358 = 676 Hana Rudová, FI MU: Plánování proektu 26 3. dubna 2018
Lineární program Heuristika negarantue nalezení optima Celková cena e lineární n ( ) c 0 C max + c b + c (p max p ) =1 všimněte si: stená účelová funkce ako cena za provádění proektu Lineární program: c b a c p n max minimalizace: c 0 C max c p se nemění =1 za předpokladu: x k p x 0 Prec k p p max p p min x 0 C max x p 0 kde x e nedřívěší možný startovní čas úlohy Hana Rudová, FI MU: Plánování proektu 27 3. dubna 2018
Přidání pracovní síly Pracovní síla = operátor = zdro Problém popsán v literatuře ako problém plánování proektu s omezenými zdroi resource-constrained proect scheduling problem (RCPSP) n úloh N zdroů R i kapacita zdroe i p doba provádění úlohy R i požadavek úlohy na zdro i Prec (přímí) předchůdci úlohy Hana Rudová, FI MU: Plánování proektu 28 3. dubna 2018
Formulace celočíselného programování Pomocná úloha n + 1 ako stok, p n+1 = 0 x t = 1 úloha e dokončena v čase t x t = 0 inak Kapacita zdroe i, který potřebue úloha t+p 1 v intervalu [t 1, t]: R i x u t+p 1 u=t x u... počítá, zda úloha běží v čase [t 1, t] t 1 t u=t př. úloha s S = 2, p = 2 a t = 2, 3, 4, 5 (x 4 = 1, pro t = 3, 4 úloha započítána) H ako horní hranice makespan: H = Koncový čas úlohy : C = Makespan: C max = H t x t t=1 H t x n+1,t t=1 n =1 p koncový čas stoku Hana Rudová, FI MU: Plánování proektu 29 3. dubna 2018 p
Celočíselný program Minimalizace za předpokladu H t x n+1,t t=1 minimalizace makespan estliže e předchůdce k, pak C S k, t. C C k p k, t. C + p k C k 0 H t x t + p k t=1 t=1 H t x kt 0 Prec k pro každý čas t: požadavek na zdro i nepřeroste kapacitu i n t+p 1 R i x u =1 u=t R i i t každá úloha skončí právě ednou H x t = 1 t=1 Hana Rudová, FI MU: Plánování proektu 30 3. dubna 2018
Diskuse Řešení celočíselného programu obtížné Při velkém počtu úloh a dlouhém časovém horizontu použití heuristik Lze použít programování s omezuícími podmínkami kumulativní zdroe precedenční podmínky Probírané speciální případy problému ob shop + makespan timetabling Hana Rudová, FI MU: Plánování proektu 31 3. dubna 2018
Plánování proektu: shrnutí Základní problém s neomezenými zdroi metoda kritické cesty Neomezené zdroe + variabilní doba trvání (lineární) kompromisní heuristika mezi časem a cenou lineární programování Problém plánování proektu s omezenými zdroi celočíselné programování heuristiky programování s omezuícími podmínkami Hana Rudová, FI MU: Plánování proektu 32 3. dubna 2018