A projekt határidejének valószínűségéhez ismerned kell, melyik feladat mire vár, mely munkák végezhetők egyszerre, és mely bizonytalanságok közösek. Egyetlen átlagos idő vagy a leghosszabbnak látszó feladatsor alapján könnyű túl kedvező vállalást tenni.
Az alábbi saját, szemléltető projektnek közös előkészítése, két párhuzamos munkacsomagja és közös átadása van. Mindössze nyolc lehetséges időbeli forgatókönyvet adunk meg, ezért a teljes eloszlás pontosan kiszámolható. A modellben a tízórás átadás esélye 89%; egyetlen kiválasztott ág követése 95%-ot mutatna. Ez már megváltoztatja, hogy teljesül-e egy előre megadott 90%-os vállalási cél.
Először a függőségeket írd fel
A projekt négy feladatból áll:
- A: közös előkészítés. Ennek befejezése előtt egyik munkacsomag sem indulhat el.
- B: az egyik átadandó rész elkészítése.
- C: a másik, B-től külön is elkészíthető rész. Az A előkészítés befejezése után B és C egyszerre indul, külön erőforrással.
- D: az összekapcsolás és átadás, amely B és C befejezésére egyaránt vár. Ideje rögzítetten 1 óra.
A munka a modellben megszakítás nélkül végezhető, nincs köztes várakozási idő és másik projektből származó erőforrásütközés. A teljes elkészülési idő:
T = A + max(B,C) + 1 óra.
A két teljes feladatsor hossza A + B + 1, illetve A + C + 1. A hosszabb határozza meg az elkészülést. A közös előkészítés mindkét feladatsor leírásában szerepel, de a valós projektben egyszer történik meg.
A Carnegie Mellon Egyetem projektütemezési fejezete a kritikus utat a függőségeket követő leghosszabb feladatsorhoz köti. Az alapváltozatban a feladatok sorrendi korlátai szerepelnek; az erőforrásokat külön is ellenőrizni kell.
Három bizonytalan időtartam, nyolc teljes eset
A saját példánkban a következő kétpontú eloszlásokat feltételezzük. Az esélyek a szemléltetés bemenetei, valós projektekből mért gyakoriságot nem állítanak.
| Feladat | Rövidebb idő és esélye | Hosszabb idő és esélye |
|---|---|---|
| A előkészítés | 2 óra, 80% | 5 óra, 20% |
| B munkacsomag | 4 óra, 75% | 7 óra, 25% |
| C munkacsomag | 3 óra, 60% | 6 óra, 40% |
Az A, B és C alapfeladatok időtartamát ebben az első modellben egymástól függetlennek vesszük. Egy teljes eset valószínűsége így a három megfelelő esély szorzata. Például az A = 2, B = 4, C = 3 eseté 0,80 × 0,75 × 0,60 = 36%.
| A | B | C | Az eset valószínűsége | T = A + max(B,C) + 1 | Melyik ág várakoztatja az átadást? |
|---|---|---|---|---|---|
| 2 óra | 4 óra | 3 óra | 36% | 7 óra | B |
| 2 óra | 4 óra | 6 óra | 24% | 9 óra | C |
| 2 óra | 7 óra | 3 óra | 12% | 10 óra | B |
| 2 óra | 7 óra | 6 óra | 8% | 10 óra | B |
| 5 óra | 4 óra | 3 óra | 9% | 10 óra | B |
| 5 óra | 4 óra | 6 óra | 6% | 12 óra | C |
| 5 óra | 7 óra | 3 óra | 3% | 13 óra | B |
| 5 óra | 7 óra | 6 óra | 2% | 13 óra | B |
A nyolc esély összege 100%. Minden sorban ugyanazt az A értéket használjuk mindkét ág előzményeként. A sorok teljes felsorolása ebben a kis modellben egzakt eredményt ad; nincs szimulációs mintavételi hiba.
A határidő esélyét az időben befejezett esetek adják
Az azonos befejezési időhöz tartozó eseteket összevonva:
| Befejezési idő | Pontosan ekkor készül el | Legkésőbb ekkor készül el |
|---|---|---|
| 7 óra | 36% | 36% |
| 9 óra | 24% | 60% |
| 10 óra | 29% | 89% |
| 12 óra | 6% | 95% |
| 13 óra | 5% | 100% |
A tízórás határidőbe a pontosan tíz órakor elkészült esetek is beleférnek. Az esély 36% + 24% + 29% = 89%. A késés esélye 11%.
Ha a megadott cél legalább 90%-os határidőtartás, a tíz óra kevés. A 12 órás határidő a legkisebb, amely ezt a modellben teljesíti; annak esélye 95%. Tizenegy órára emelve az esély még 89% maradna, mert a felsorolt modellben tíz és tizenkét óra között nincs befejezés.
A határidőhöz itt az eloszlásból közvetlenül azt a legkisebb időt keressük, amelyre az összegzett valószínűség eléri a célt. A két szomszédos időpont közötti automatikus interpoláció olyan vállalást is adhatna, amelyhez a tényleges összegzett esély kevés.
Az átlagos kritikus út kihagyhat késéseket
Az alapfeladatok várható időtartama:
- E(A) = 0,80 × 2 + 0,20 × 5 = 2,60 óra.
- E(B) = 0,75 × 4 + 0,25 × 7 = 4,75 óra.
- E(C) = 0,60 × 3 + 0,40 × 6 = 4,20 óra.
Az átlagokkal felrajzolt tervben a B ága hosszabb, és 2,60 + 4,75 + 1 = 8,35 óra adódik. A teljes projekt várható ideje azonban a nyolc esetből:
E(T) = 7 × 0,36 + 9 × 0,24 + 10 × 0,29 + 12 × 0,06 + 13 × 0,05 = 8,95 óra.
A 0,60 órás különbség abból ered, hogy a maximumot minden konkrét esetben újra kell választani. A várható maximum itt 5,35 óra, miközben a két várható idő maximuma 4,75 óra.
Ha bizonytalan időkkel is kizárólag az A + B + 1 feladatsort vizsgálnád, a tízórás teljesítésre 95%-ot kapnál. Ezzel kimaradna az A = 5, B = 4, C = 6 eset 6%-os esélye: B ága tíz óra alatt kész, de C miatt a projekt csak tizenkét óra alatt zárul. A teljes hálózat eredménye így 95% − 6% = 89%.
A CMU bizonytalan ütemezésről szóló fejezete külön tárgyalja az egyetlen kiválasztott kritikus útra építő becslés korlátját. Egy korábban rövidebbnek tekintett ág is meghatározhatja a tényleges elkészülést.
A saját eloszlásunkban B az esetek 70%-ában, C 30%-ában határozza meg a párhuzamos rész hosszát. A közös A és D minden esetben a kritikus út része. Ezek az arányok a megadott időmodellhez tartoznak; új időtartamokkal újra kell számolni őket.
A két teljes ág már nem független
Az alapfeladatok függetlenségéből a teljes feladatsorok függetlensége nem következik. Jelöljük a két sor befejezését R₁ = A + B + 1 és R₂ = A + C + 1 alakban. Mindkettő tartalmazza ugyanazt az A-t. Ha az előkészítés ötórásra nyúlik, mindkét sor egyszerre később indul.
A példában a közös A varianciája:
Var(A) = 0,80 × 0,20 × (5 − 2)² = 1,44 óra².
Ez a két teljes feladatsor kovarianciája is. B varianciája 1,6875 óra², C-é 2,16 óra², ezért a feladatsorok korrelációs együtthatója:
ρ = 1,44 / √[(1,44 + 1,6875) × (1,44 + 2,16)] ≈ 0,4292.
A határidőtartás esélyét ezért nem szabad a két teljes ág külön-külön kiszámolt esélyének egyszerű szorzataként kezelni. Tíz óránál R₁ megfelelő esélye 95%, R₂-é 92%. Szorzatuk 87,4% lenne, a közös előkészítést helyesen kezelő eredmény pedig 89%.
Ebben a konkrét modellben a téves szorzás alulbecsüli a teljesítési esélyt. A helyes eljárás minden esetben ugyanaz: egy forgatókönyvben egyetlen közös előkészítést szerepeltess, és annak értékét használd minden érintett ágban.
Valós projektben B és C is függhet közös körülménytől. Ilyenkor a fenti három valószínűség szorzata már az alapesetek súlyozásához sem lenne automatikusan megfelelő. Közös állapotokat vagy feltételes eloszlásokat kell felírnod. Egy korrelációs együttható önmagában nem határozza meg az összes lehetséges közös időtartam valószínűségét.
Melyik gyorsítás javítja a tízórás vállalást?
Két külön műszaki változatot vizsgáljunk meg, az esetek valószínűségeit változatlanul hagyva. A gyorsítások saját feltevések; költségük és megvalósíthatóságuk nincs beárazva.
Az első változat B minden végrehajtását egy órával rövidíti: a 4 és 7 óra helyett 3 és 6 óra adódik. A második kizárólag A hosszú előkészítését javítja: az ötórás eset háromórássá válik, a kétórás eset marad.
| Vizsgált változat | Várható teljes idő | Tíz órán belüli teljesítés |
|---|---|---|
| Kiinduló modell | 8,95 óra | 89% |
| B minden esetben egy órával rövidebb | 8,25 óra | 89% |
| A hosszú esete öt helyett három óra | 8,55 óra | 95% |
B gyorsítása nagyobb átlagos időnyereséget ad, mégsem növeli a tízórás teljesítés esélyét. A korábban késő 11%-nyi eset az új változatban is tizenkét órás marad. A már határidőn belüli esetekből több korábban készül el.
A hosszú előkészítés javítása az A = 5, B = 4, C = 6 esetet tizenkét óráról tíz órára hozza előre. Ennek 6%-os valószínűsége éppen elég a 89%-ról 95%-ra javuláshoz. Az átlagos idő csökkentése és egy konkrét határidő teljesítése eltérő fejlesztési célt adhat.
Ha a vállalás feltétele legalább 90% tíz órán belül, a két vizsgált változat közül a hosszú előkészítés rövidítése teljesíti. Gazdasági választáshoz ezután a megvalósítás ráfordítását és a késés következményét is össze kell vetned.
A hosszú előkészítés megengedhető esélye visszaszámolható
Maradjanak a kiinduló 2 és 5 órás előkészítési idők, de az ötórás eset valószínűségét jelölje q. B és C eloszlását, valamint a független alapfeladatok feltételét tartsuk meg.
Kétórás előkészítéssel minden eset belefér tíz órába. Ötórás előkészítés után csak B = 4 és C = 3 fér bele; ennek feltételes esélye 0,75 × 0,60 = 0,45. Így:
P(T ≤ 10) = (1 − q) + 0,45q = 1 − 0,55q.
A legalább 90%-os célhoz 1 − 0,55q ≥ 0,90 szükséges, vagyis q ≤ 0,10 / 0,55 ≈ 18,18%. A kiinduló 20% ezt meghaladja.
Ez megmutatja, mely becslés pontosságára érzékeny a vállalás. Ha q-ról csak annyit tudsz, hogy 10% és 30% között lehet, a tízórás teljesítés esélye a változatlan többi feltétellel 94,5% és 83,5% között mozog. Egyetlen, alátámasztatlan 20%-os bemenetből így túl határozott üzleti ígéret születhetne.
Az erőforrásütközés a teljes időképletet megváltoztatja
Tegyük fel végül, hogy B-t és C-t ugyanaz az egyetlen szakember végzi, egymást nem átfedve. Más várakozás vagy megszakítás továbbra sincs. Ekkor a két munkacsomag sorba kerül:
T = A + B + C + 1 óra.
A nyolc korábbi eset valószínűsége marad, de a befejezési idők megváltoznak. Az új eloszlás 10 óránál 36%, 13 óránál 45%, 16 óránál 17%, 19 óránál 2% valószínűséget tartalmaz. A tízórás teljesítés esélye így 36%, a várható teljes idő 12,55 óra. A legalább 90%-os célhoz ebben a modellben 16 óra kell, amelyhez 98%-os teljesítési esély tartozik.
A párhuzamos modell tizenkét órás vállalása ezért nem használható ugyanazzal az indoklással az egyetlen szakemberre átírt tervben. A kapacitáskihasználtságról szóló cikk az egyes szakemberek külön időkorlátjának ellenőrzéséhez ad további számítást.
Mit számol az eszköz, és mit kell mellé felírnod?
A Monte Carlo-kalkulátor független, egyenletes vagy háromszög-eloszlású tételeket mintáz, és azok összegét vagy maximumát képezi. Egyszerű soros vagy egyszerre induló párhuzamos feladatok vizsgálatához használható. A jelenlegi modellválaszték a cikk kétpontú eloszlásait, a közös A-t és a beágyazott A + max(B,C) + 1 szerkezetet együtt nem állítja elő automatikusan.
A két teljes ágat külön, független tételként megadva elveszne a közös előkészítés. A kétpontú időket azonos végpontú egyenletes eloszlásra cserélve pedig más valószínűségi modellt számolnál. A mostani eredmények ezért a teljes esettáblából származnak.
Saját, kis forgatókönyvtábládban minden sorhoz add meg az összetartozó feladatidőket és az együttes valószínűséget. Ellenőrizd, hogy az esetek kizárják egymást, együtt lefedik a választott modellt, súlyaik pedig egyet adnak. Számold újra a befejezést a függőségi sorrendben, majd add össze a határidőt teljesítő sorok súlyát.
Nagyobb hálózatnál ugyanez a feladatsorrend követhető szimulációban is: előbb a közös körülmények, azután a hozzájuk tartozó feladatidők, végül az ütemezés következik. A Monte Carlo-becslésről szóló bevezető a futások számának és a becslési ingadozásnak a kapcsolatát részletezi. Több futás egy hibás függőségi modellt változatlanul hagy.
A konkrét naptári határidőhöz az itt használt órákon túl a munkanapokat, műszakokat, elérhetőségeket és jóváhagyási időket is be kell építened. A szemléltető 89% a felírt nyolc eset következménye; saját vállalásodhoz a saját projektedhez igazolt feltételek szükségesek.
Módszertani források
- Carnegie Mellon University: Fundamental Scheduling Procedures, 10.2–10.3. fejezet: kritikus út, előzménykapcsolatok és az erőforráskorlátok szerepe.
- Carnegie Mellon University: Advanced Scheduling Techniques, 11.2–11.3. fejezet: változó kritikus út, összefüggő időtartamok és forgatókönyvenként újraszámolt ütemezés.
A cikk nyolcesetes eloszlása, a két gyorsítás és a 18,18%-os döntési határ saját, egzakt számítás. A közölt eredményekhez nem rendeltünk kitalált Monte Carlo-futást vagy valós projektből származó gyakoriságot.