• Nem Talált Eredményt

Alapalgoritmus ütemezésre S-gráffal

In document GYÁRTÓRENDSZEREK MODELLEZÉSE (Pldal 111-115)

6. Ütemezés 96

6.5. Alapalgoritmus ütemezésre S-gráffal

6.12. ábra. Az SG2 szabály megsértése

legyenek redundáns ütemezési-élek a gráfban, azaz a minimális számú éllel valósuljon meg az ütemezés. A6.13ábrán látható komponens-gráfban a 2. és 6. csomópontok közötti ütemezési-él redundáns, nem hordoz információt, mivel az E1 berendezés mindenképpen csak az 1 taszk végrehajtása után kezdheti meg a 6. taszkot, ha már a 7 taszkot is végrehajtotta. Az (SG4) feltétel pedig kiszűri azokat az éleket, amelyek nem tartoznak egyik berendezés ütemezéséhez sem, azaz minden él vagy a recept-gráf recept-éle vagy valamely berendezés ütemezéséhez tartozó ütemezési-él. Az előbbeikből következik, hogy az (SG3) és (SG4) feltételek teljesülése esetén az S-gráf minimális abban az értelemben, hogy él elhagyásával nem ír le megoldást.

1

6.13. ábra. Felesleges ütemezési-élek az S-gráfban.

6.5. Alapalgoritmus ütemezésre S-gráffal

A fejezetben Sanmartí és társai [19] által bevezetett alapalgoritmust mutatjuk be, amely általá-nosan használható bármilyen típusú ütemezési feladatra. Az algoritmus bemenetként megkap-ja a feladat recept-gráfját, kimenete pedig egy optimális ütemezés ütemezési-gráfmegkap-ja. Az algo-ritmusban a cél az optimális megoldás (ütemezési-gráf) megtalálása a receptből (recept-gráf) kiindulva részfeladatok (általános S-gráf) sorozatán keresztül. Definíció alapján a recept-gráf mindig részgráfja a hozzá tartozó összes ütemezési-gráfnak úgy, hogy a gráfok csomópont-jai nem változnak, és a recept-éleknek is legfeljebb a súlya növekedhet a berendezés-taszk hozzárendelés alapján. Az előző fejezetben leírtak szerint egy ütemezési-gráf minden éle,

amely nem tartozik a kiinduló recept-gráfhoz, ütemezési-él. Ha figyelembe vesszük az (SG1)-(SG4) feltételeket és a lehetséges berendezés-taszk hozzárendeléseket, akkor a recept-gráf összes, a feltételeknek megfelelő kiterjesztése ütemezési-élekkel elvezet bennünket az összes ütemezési-gráfhoz. Mivel a lehetséges kiterjesztések száma véges, az összes ütemezési-gráf a hozzá tartozó berendezés-taszk hozzárendelésekkel véges lépésben előállítható. Az S-gráf leírás jó alap egy szétválasztás és korlátozás (branch-and-bound, B&B) típusú algoritmushoz.

6.5.1. Szétválasztási lépés

Az alábbiakban bemutatandó szétválasztás és korlátozás algoritmus képes előállítani bármely recept-gráfhoz a hozzá tartozó összes ütemezési-gráfot, ahol minden részfeladathoz egy S-gráf és egy részleges berendezés-taszk hozzárendelés tartozik, valamint természetesen egy csomópont a keresőfában. A keresőfa gyökeréhez a recept-gráf tartozik, a leveleihez pedig ütemezési-gráfok.

A szétválasztás során minden részfeladatnál kiválasztunk egy berendezést. A részfeladat minden gyerek részfeladatában a berendezést hozzárendeljük egy megfelelő, még be nem üte-mezett taszkhoz (természetesen mindegyik részfeladatban másikhoz), valamint a kiválasztott taszkot beütemezzük a berendezés aktuálisan utolsó lépésének. Mivel a taszkok működési ideje függhet a felhasznált berendezéstől, ezért egy berendezés hozzárendelése egy taszkhoz módosíthatja a taszkot jelölő csomópontból kiinduló él (vagy elágazás esetén recept-élek) súlyát. Az egyszerűség kedvéért feltételeztük, hogy a megoldásban egy taszkot pontosan egy berendezés hajthat végre.

Az algoritmus megvalósításánál nagy szabadságot ad a keresési stratégia kiválasztása.

Például, hogy melyik berendezést választjuk ki ütemezésre nagyban befolyásolhatja az al-goritmus hatékonyságát. Gyakorlatban a berendezések „leterheltségének” sorrendjében való ütemezés általában jó stratégiának bizonyult. Ezen kívül a részfeladat kiválasztása is jelentős hatással van az algoritmus futási idejére. A számítógépes megvalósításnál érdemes mélység-ben először keresést alkalmazni, az egy szinten lévő részfeladatok közül a legjobb alsó korlátút választva.

6.5.2. Az algoritmus korlátozási lépése

A korlátozás során először egy megvalósíthatósági vizsgálatot (feasibility test) végzünk el.

Ha az aktuális részfeladat megvalósíthatónak (feasible) bizonyul, akkor meghatározunk egy alsó korlátot a részfeladatból elérhető megoldások működési idejére. Ha a köztes termékek várakozási ideje két taszk között nem korlátozott, akkor az S-gráf által reprezentált megoldás akkor és csak akkor megvalósítható, ha a gráf nem tartalmaz irányított kört, azaz az S-gáf egy ütemezési-gráf. Ezek alapján a megvalósíthatósági vizsgálat elvégezhető egy körkereső algoritmus segítségével, melyre léteznek hatékony polinomiális algoritmusok. Ha a köztes termékek várakozási ideje korlátozva van (ZW tárolási stratégia), akkor további vizsgálat szükséges, például egy lineáris programozási (LP) feladat felírása és megoldása.

Egy részfeladat S-gráfja mindig részgráfja bármely leszármazott részfeladat S-gráfjának, mivel a gráfot a szétválasztás során legfeljebb éllel bővítjük, de soha nem törlünk belőle. Mi-vel egy új (nemnegatív súlyú) él hozzáadása egy gráfhoz nem csökkentheti a leghosszabb

6.5. ALAPALGORITMUS ÜTEMEZÉSRE S-GRÁFFAL 113

utat, ezért egy ütemezési-gráf bármely részgráfjához tartozó leghosszabb út alsó korlát az ütemezési-gráf leghosszabb útjára. Továbbá egy ütemezési-gráfhoz tartozó leghosszabb út értéke alsó korlátja a hozzá tartozó megoldás értékének, mivel minden(i,j)él egy S-gráfban azt jelenti, hogy ajcsomópont által reprezentált taszk elvégzése leghamarabb c(i,j)idővel később kezdődhet el azicsomópont által reprezentált taszk elkezdéséhez képest. Ebből kö-vetkezik, hogy egy ütemezési-gráf bármely részgráfjához tartozó leghosszabb út alsó korlátot ad az ütemezési-gráfhoz tartozó megoldás értékére.

6.5.3. Az algoritmus működésének szemléltetése

A Sanmartí és társai [19] által publikált alapalgoritmus a leghosszabb út kereső algoritmust használja, ezért az algoritmus működésének bemutatásához mi is ezt használjuk. A szemlél-tető példa recept-gráfja a6.14ábrán látható, ahol két terméket kell előállítani két lépésben két berendezéssel.

6.14. ábra. Recept-gráf a szemléltető példához.

A példához tartozó kereső fa a6.15ábrán látható. A csomópontok a részfeladatokat jelö-lik és a generálási sorrend szerint számoztuk őket. A szétválasztásokat (döntéseket) a taszkok sorrendjével jelöljük, amelyeket meghatároznak. A megoldást leegyszerűsítettük annyiban, hogy a két taszk-berendezés hozzárendelés és a sorrendjük meghatározása egy lépésben tör-ténik meg. Az alsó korlát minden részfeladat csomópontja mellett félkövér karakterekkel sze-repel. A nem megvalósítható részfeladatok csomópontjai át vannak húzva (pl. 4. részfeladat).

A részfeladatokhoz tartozó S-gráfok a6.16ábrán láthatóak.

A keresőfa gyökeréhez (1. részfeladat) tartozik a recept-gráf, itt a leghoszszabb út hossza, azaz az alsó korlát értéke 9. Ebből a részfeladatból két új részfeladatot származtatunk (2. és 3.

részfeladat) az E1 berendezés ütemezésével : 1–3 illetve 3–1 sorrendekkel, 12 illetve 11 alsó 1

6.15. ábra. A szemléltető példához tartozó keresőfa.

1

6.16. ábra. A szemléltető példa részfeladataihoz tartozó S-gráfok

korláttal. A legjobb alsó korláttal a 3. részfeladat rendelkezik, tehát ennek szétválasztásával folytatjuk az algoritmust. Ebből a részfeladatból a szétválasztás után két újabb részfeladat ke-letkezik (4. és 5. részfeladat) az E2 berendezés 2–4 illetve 4–2 sorrend választásával. Mind a két részfeladat egy teljesen beütemezett megoldást jelöl, azaz egy új felső korlátot kapha-tunk a feladakapha-tunkhoz. A 4. részfeladat S-gráfja kört tartalmaz, tehát nem megoldható ezért eldobjuk. Az 5. részfeladat S-gráfja ütemezési-gráf, ahol a leghosszabb út 13. Ez jelenti az új felső korlátunkat az optimumhoz. Az algoritmus a 2. részfeladat szétválasztásával folytatódik, ahol az E2 berendezésről dönthetünk 2–4 illetve 4–2 ütemezési sorrendekkel. Így két részfel-adat generálódik (6. és 7. részfelrészfel-adat), amelyek teljesen beütemezett megoldást jelölnek. A

In document GYÁRTÓRENDSZEREK MODELLEZÉSE (Pldal 111-115)