Készítette: Kosztyán Zsolt Tibor Hálótervezés Készítette: Kosztyán Zsolt Tibor kzst@almos.vein.hu kzst@vision.vein.hu http://vision.vein.hu/~kzst/oktatas/halo/index.htm 16.
Optimális erőforrás-tervezés (megengedett megoldásból optimális megoldás keresése) Definíció: Egy tevékenység tényleges kezdése, és a legkorábbi kezdés közötti időt felhasznált tartalékidőnek nevezzük. Megjegyzés: A felhasznált tartalékidő mindig egy nemnegatív egész vagy valós szám, hiszen a tevékenységeket a legkorábbi kezdési idejüknél korábbra nem lehet beütemezni. Definíció: Legkésőbbi befejezés és a tevékenység tényleges befejezése közötti időt rendelkezésre álló tartalékidőnek nevezzük.
Optimális erőforrás-tervezés (megengedett megoldásból optimális megoldás keresése) Definíció: Egy erőforrás-allokációs probléma megengedett megoldásának nevezünk, egy olyan ütemtervet, amelynél a projekt végrehajtása során minden időpillanatban az összes erőforrásigény nem haladja meg az erőforráskorlátot. Definíció: Az erőforrás-allokáció (egy adott célfüggvényre) optimális megoldásának nevezünk egy olyan megengedett megoldást, ahol a célfüggvény a lehető legkisebb (legnagyobb). Megjegyzés: Ilyen célfüggvény lehet pl. a megengedett megoldásokban elmozgatott tevékenységek felhasznált tartalékidőinek minimuma, vagy a tevékenységek felhasznált tartalékidőinek összegének minimuma stb.
Matematikai felírás x(i,j) w(i,j)-z(i,j) , ahol x(i,j), w(i,j), z(i,j) Ro+ (1) f(z(i,j)+ x(i,j)) c, ahol cRo+ , fRo+{r1,r2,..,rn}, r1,r2,..,rn Ro+ ,n Z+ (2) (i,j)P (3) (i,j) Q, ahol Q (P)\ ,(k,l)A esetén ha (i,j) tevékenység rákövetkezési relációban áll (k,l)-l, akkor z(i,j)+x(i,j)z(k,l)+d(k,l) (4)
Optimális erőforrás-tervezés (megengedett megoldásból optimális megoldás keresése) Csak ott optimalizálunk, ahol x(i,j)>0, vagyis amely tevékenység kezdeti idejét megváltoztattuk. Felhasználjuk, hogy f függvény minden olyan helyen, ahol nincs törés konstans, bármelyik tevékenységet is változtatva a módszer a megengedettségen nem változtat, ha figyelembe vesszük a rákövetkezési relációkat is. A 2. pont szerint tehát egy „bizonyos ideig” a (2), és (5) feltétel elhagyható. Ekkor viszont egy lineáris problémához (LP) jutunk. Tehát arra az intervallumra a választott kiválasztást alkalmazva a megengedettség nem sérül.
Optimális erőforrás-tervezés (megengedett megoldásból optimális megoldás keresése) Definíció: Egy (i,j) tevékenységre vonatkozó töréspont értéke megmutatja, hogy az (i,j) tevékenységet elvéve az összes erőforrásra vonatkozó erőforrásigény függvény a tevékenység kezdése pillanatában hogyan változik. Ha az erőforrásigény csökken (nő) a tevékenység kezdetekor, akkor a töréspont ebben a pillanatban pozitív (negatív).
Optimális erőforrás-tervezés (megengedett megoldásból optimális megoldás keresése) Legyenek adottak azok a tevékenységek (Q), amelyek felhasznált tartalék idejét (együttesen) csökkenteni szeretnénk. Ekkor legyen ti az az idő, amennyi ideig valamennyi csökkenthető úgy, hogy törésponthoz nem érnének, illetve ha elérik, akkor ez a töréspont negatív. Másrészt a rákövetkezési relációk meghatározzák, hogy az elmozgatandó tevékenységek közül mennyivel mozgathatjuk el őket, hogy a rákövetkezési reláció ne sérüljön. Ezt az időt pedig úgy számíthatjuk ki, hogyha egy tevékenységnek van megelőző tevékenysége, akkor a megelőző tevékenység befejezéséből kivonjuk a követő tevékenység kezdési időpontját.
Optimális erőforrás-tervezés (megengedett megoldásból optimális megoldás keresése) Továbbá legyen QP azon tevékenység halmaza, amelyeket az adott lépésben minimalizálni szeretnénk. Ekkor az az idő, ameddig a lineáris modellt használhatjuk (legyen tl) az alábbi módon számítható: tl:=min(ts(i,j); ti(i,j)), ahol (i,j)Q (5) Ekkor x(i,j):=x(i,j)-tl, ahol (i,j)Q.
Optimális erőforrás-tervezés (megengedett megoldásból optimális megoldás keresése)
Optimális erőforrás-tervezés (megengedett megoldásból optimális megoldás keresése)
Optimális erőforrás-tervezés (megengedett megoldásból optimális megoldás keresése)
Optimális erőforrás-tervezés (megengedett megoldásból optimális megoldás keresése) Csak azokat a tevékenységeket kell optimalizálni, amelyeket elmozdítottunk annak érdekében, hogy egy optimális megoldást kapjunk (ezeket a tevékenységeket fehérrel jelöltem). Ugyanis a többi esetben a tevékenységeket nem mozgattuk el a megengedett megoldás keresésénél. Vagy azért, mert a kritikus úton helyezkednek el (zölddel jelöltem), vagy az erőforráskorlátot nem sértették meg (sárgával jelöltem)
Optimális erőforrás-tervezés (Erőforrás-allokáció időben változó korlátozás esetén) A gyakorlatban sokszor előfordul, hogy a rendelkezésünkre álló erőforráskorlát függ az időtől. (Pl. egy szálloda építésekor ünnepnapokon előfordulhat, hogy rendelkezésünkre jóval kevesebb munkaerő áll, mint más napokon.) Az előző pontban tárgyalt erőforrás-allokáció kizárólag konstans korlátozás esetén működött. Látni fogjuk, ha az erőforráskorlát szakaszonként konstans függvény, és a függvénynek csak véges sok helyen van szakadása, akkor egyszerűen visszavezethető az eredeti problémára.
Optimális erőforrás-tervezés (Erőforrás-allokáció időben változó korlátozás esetén) Legyen adott egy függvény, mely az erőforráskorlátot adja meg minden pontban. Ennek a függvénynek véges sok helyen legyen csak szakadása, valamint e pontok kivételével legyen (szakaszonként) konstans függvény. Ilyen erőforráskorlátok mellett keressünk először egy megengedett megoldást. Mint azt látni fogjuk, első lépésként megpróbálunk egy olyan erőforráskorlátot keresni, amely konstans. Legyen ez a szám a függvény maximuma. Azokon a szakaszokon, ahol függvény értéke kisebb ennél, ott vezessünk be olyan látszat erőforrás igényt, amelyeket semmiképpen sem mozgathatunk el a megengedett megoldáskeresésben.
Optimális erőforrás-tervezés (Erőforrás-allokáció időben változó korlátozás esetén) Rendezzük ezeket a látszat erőforrás-igényeket az erőforrás-terhelési diagram aljára. Ha létezik megengedett megoldás, akkor az algoritmusom megtalálja az optimális megoldást, hiszen a látszat erőforrás-igényeket nem mozgattuk el az ERALL algoritmus során, így ezeket nem is optimalizáljuk, a látszat erőforrás-igényeket tevékenységekként kezelve tehát az algoritmus semmit sem változik.
16.