Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Gyártósorok ütemezése Imreh Csanád SZTE Informatikai Tanszékcsoport.

Hasonló előadás


Az előadások a következő témára: "Gyártósorok ütemezése Imreh Csanád SZTE Informatikai Tanszékcsoport."— Előadás másolata:

1 Gyártósorok ütemezése Imreh Csanád SZTE Informatikai Tanszékcsoport

2 2 Az előadás részei Probléma definíciója Ütemezési modell Megoldó algoritmusok Eredmények tesztelése A modell kiterjesztései, a felmerülő problémák

3 3 A feladat Egy középméretű vállalattól azt a feladatot kaptuk, hogy a végrehajtandó munkákat (gumicsövek gyártása) a gyártósorokon (extrúder) ütemezzük oly módon, hogy a sorokon az állásidő minimális legyen.

4 4 A gumicsövek paraméterei gyártási idő (perc/db), szükséges darabszám, átmérő, a cikkszámot tartalmazó família azonosítója, kötőfej típusa.

5 5 Extrúderek A gyárban négy darab extrúder volt, a meghatározó tulajdonság alapján a következők: két darab oldószeres (egyes kettes extrúderek) egy darab kissor (hármas extrúder) egy darab előmelegítéses (négyes extrúder)

6 6 Famíliák Az egyes cikkszámok famíliákba oszthatóak. Minden cikkszám esetén ismert a neki megfelelő família azonosítója. Az azonos famíliába tartozó munkákat az extrúder lényegében ugyanazzal a beállítással tudja végrehajtani. Egy famíliát az adott átmérő, és a kötőfej típusa határoz meg.

7 7 Famíliák Mivel az ugyanazon famíliához tartozó munkák gyártása során az extrúder beállításain nem kell változtatni, ezért a famíliákat kezeljük ütemezési alapegységként, kiszámítva, hogy az adott famíliába tartozó munkák gyártásához mennyi idő szükséges. Másrészt előfordulhat olyan input, amely során szükséges az adott família munkáit különböző gépeken ütemezni, ezért a modellben megengedjük a famíliákat modellező egységek szétvágását.

8 8 Ütemezési feladat Mivel a teljes gyártási folyamatban az ütemezést heti ciklusban tervezik, az SAP rendszer alapján megkapott input egy hétre tervezett halmazát tartalmazza a gyártandó cikkszámoknak. A kidolgozott algoritmusok is egy hétre ütemeznek.

9 9 Célfüggvény Az ütemezés során, ha a gyártásban valamely família gyártásáról egy másik família gyártására térünk át, akkor az átállási idő alatt az extrúder nem tud munkákat végrehajtani. A cél az állásidő minimalizálása. Az átállási idők a következőképpen adhatóak meg:

10 10 Célfüggvény Ha olyan új famíliához kezdünk, amelyben a kötőfej ugyanaz, mint az addig gyártott famíliában, akkor az állásidő 40 perc. Ha olyan új famíliához kezdünk, amelyben a kötőfej más, mint az addig gyártott famíliában, akkor az állásidő 80 perc.

11 11 Feltételek A kissora csak olyan cikkszámokat tehetünk, amelyekben az átmérő kisebb, mint 11 mm. Ha az átmérő legalább 23 mm, akkor a cikkszám oldószeres extrúderekre kell kerüljön. Bizonyos kötőfejekből, csak egyet használnak, így olyan famíliákat, amelyek ezt a kötőfejet tartalmazzák, nem ütemezhetünk két gépen azonos időintervallumban.

12 12 Az input előállítása Az inputot a következő három bemeneti file alapján állítottuk elő: 1.Az SAP megbízás 2.A famíliák adatbázisa 3.Normaidőtáblázat A 3 file-t össze kellett fésülni, több esetben hiányos vagy ellentmondó információk voltak.

13 13 Input előállítása

14 14 Egy alsó korlát A célfüggvény és a feladat struktúrája alapján adódik egy alsó korlát a célfüggvényre. Jelöljük a famíliák számát f-el, a felhasználandó kötőfejek számát k-val. Az állásidő két részből adódik össze: A famíliák közötti váltásnál mindig van 40 percnyi állásidő, és az f família esetén legalább f-4 váltás szükséges, mivel az extrúder utolsó famíliájánál nem váltunk. Tehát ez 40(f-4) perc állásidőt eredményez. Ha kötőfejet is kell cserélnünk, akkor az extra 40 perc állásidő, ez még 40(k-4) perc.

15 15 Az optimális megoldás Ezek alapján egy optimalizálási algoritmus célja az, hogy úgy ütemezze a famíliákat, hogy az extrúderek végén a lehető legkevesebb vágás legyen a kötőfejekhez rendelt blokkokban, továbbá famíliákat modellező munkákban, hiszen az ilyen vágások elkerülésével érhetőek el az alsó korlátban számolt -4-es konstansok, így ezzel minimalizálható az állásidő.

16 16 A probléma bonyolultsága A feladat NP nehéz. Biz:Speciális esetként (egyetlen kötőfej, és ahhoz tartozó famíliák, két extrúder) magában foglalja a jól ismert PARTÍCIÓ feladatot. Ez gyakorlati szempontból azt jelenti, hogy nem várható olyan optimális megoldást garantáló algoritmus kidolgozása, amely megfelelően gyors, azaz nagyobb méretű inputokon is reális időn belül véget ér.

17 17 Algoritmusok A kissorra a legkisebb átmérőjű csöveket kellett elhelyezni, ezért azt külön ütemeztük. Egy egyszerű mohó heurisztika Egy gyorsított kimerítő keresésen alapuló időigényesebb heurisztika.

18 18 Részalgoritmus Hibás A részalgoritmus inputja egy F: família, és egy E extrúder. Ha az família munkáinak az átmérője legalább 23 és az extrúder a négyes extrúder, akkor a függvény igaz értéket ad vissza egyébként hamist. Ez a részalgoritmus biztosítja, hogy tartjuk az oldószeres extrúderekre vonatkozó korlátokat.

19 19 Részalgoritmus RÁRAK Ezen részalgoritmusnak az inputja egy extrúder a hét valamely kezdeti idő intervallumának egy ütemezésével és egy kötőfej. Az algoritmus megpróbálja a kötőfejhez tartozó összes famíliát felrakni az extrúderre a meglevő ütemezés mögé, az átállási költségek figyelembevételével. Ha valamelyik hozzárendelés HIBAS, akkor RARAK hamis, továbbá ha nem fért el az időlimitig az összes família, akkor is hamis értéket ad vissza. Ha elfér az összes família, akkor a visszaadott érték Igaz, az extrúderhez rendelt ütemezés növekszik a kötőfejhez tartozó famíliák ütemezésével.

20 20 Részalgoritmus RÁRAKVÁG Ezen részalgoritmus inputja egy extrúder a hét valamely kezdeti idő intervallumának egy ütemezésével, egy kötőfej. A kötőfejet használó famíliák közül vesszük azokat, amik az extrúderhez rendelhetőek. Ha nincs ilyen a visszaadott érték hamis. Egyébként ezen famíliáknak vegyük a legnagyobb összidejű részhalmazát, amelyet még tudunk ütemezni a meglevő ütemezés mögött az extrúderen az időlimitig.

21 21 RÁRAKVÁG megvalósítása Végignézve az összes részhalmazt, az algoritmus futási ideje túl hosszú volt, 15 perc alatt sem kaptunk megoldást, így egy gyorsabb megközelítést kellett használni. A problémát egy lokális kereső algoritmussal oldottuk meg, amely nem garantálja a legjobb halmaz megtalálását, de a módszer általában megtalálja az optimális megoldást vagy közel optimális megoldást ad.

22 22 Lokális keresés Veszünk egy kiinduló megoldást, amelyben mindig a leghosszabb ideig tartó famíliát választottuk be a részhalmazba, amelyet még befejezhettünk a hétvége előtt. Ezt követően ezt a megoldást próbáljuk javítani, úgy, hogy az egyes famíliákat illetve família párokat kicserélünk a kimaradó famíliákra, majd megpróbálunk új famíliát bevenni.

23 23 Részalgoritmus RÁRAKFAMVÁG A részalgoritmus inputja egy extrúder egy a hét valamely kezdeti idő intervallumának egy ütemezésével, egy kötőfej. Akkor használjuk ezt a részalgoritmust, ha nem sikerül olyan ütemezést találni, ahol nem kell vágni a famíliához tartozó egységet. A kötőfejhez tartozó famíliák közül vesszük azokat, amik az extrúderhez rendelhetőek.

24 24 Részalgoritmus RÁRAKFAMVÁG Az algoritmus elkezdi ezeket a famíliákat felrakni az extrúderre a meglevő ütemezés mögé, az átállási költségek (kezdetben 80 perc, utána a famíliák között 40 perc) figyelembevételével. Az utolsó famíliát, ami nem fér el teljesen az ütemezés befejezési idejénél elvágja. A megfelelő cikkszámokat a kiíratásnál hozzá kell rendelni a levágott részhez.

25 25 Algoritmus KERES Legyen LEGJOBB egy olyan struktúra, ami 5 darab ütemezést el tud tárolni. LEGJOBB:=URES, i=1, OPT:=∞. Megoldások regisztrálásánál, ezeket az értékeket írjuk felül. Előkészítés: Elsőként végrehajtjuk a kissor ütemezését. Majd jön az első fázis. 1. Fázis: Minden kötőfej sorrendre hajtsuk végre a következő probákat

26 26 1. Próba Az első próbában megpróbáljuk a kötőfejekhez tartozó blokkok szétvágása nélkül ütemezni a munkákat: Az 1.,2.,4. extrúdersorrendben hajtsuk végre a kötőfejek aktuálisan vizsgált sorrendjében a RÁRAK részalgoritmust. Ha RÁRAK hamis értéket ad vissza, akkor lépjünk át a következő extrúderre. Ha a kapott MEGOLDAS megoldásban minden famíliát ütemeztünk akkor regisztrálunk.

27 27 2. Próba Ebben a próbában megpróbáljuk egyetlen kötőfejhez tartozó blokk vágásával és famíliavágás nélkül ütemezni a munkákat. Az 1.,2.,4. extrúder sorrendben hajtsuk végre a kötőfejek adott sorrendjében a RÁRAK vagy RÁRAKVÁG részalgoritmust, az első esetben az 1. extrúderen a másodikban a 2. extrúderen használva RÁRAKVÁG eljárást. Ha valamelyik hamis, akkor lépjünk át a következő extrúderre. Ha a kapott MEGOLDAS megoldásban minden famíliát ütemeztünk akkor regisztrálunk

28 28 3. Próba Ebben a próbában megpróbáljuk csak a kötőfejhez tartozó blokkok vágásával de famíliavágás nélkül ütemezni a munkákat. Az 1.,2.,4. extrúder sorrendben hajtsuk végre a kötőfejek adott sorrendjében RÁRAKVÁG részalgoritmust. Ha valamelyik hamis, akkor lépjünk át a következő extrúderre. Ha a kapott MEGOLDAS megoldásban minden famíliát ütemeztünk akkor regisztrálunk.

29 29 2. Fázis Ezt akkor hajtjuk végre ha az első fázis végeredményeképpen OPT=∞, azaz nem tudunk famíliavágás nélkül minden cikkszámot ütemezni. Megpróbálunk egyetlen famíliavágás végrehajtásával egy megoldást találni. Minden kötőfej sorrendre hajtsuk végre a következő lépéseket: Az 1.,2.,4. extrúdersorrendben hajtsuk végre a kötőfejek adott sorrendjében a RÁRAKVÁG vagy RÁRAKFAMVÁG részalgoritmust, az első esetben az 1. extrúderen a másodikban a 2. extrúderen használva RÁRAKFAMVÁG eljárást.

30 30 3. Fázis Ezt akkor hajtjuk végre ha az 2. fázis végeredményeképpen OPT=∞, azaz nem tudunk csak egy famíliavágással ütemezni. Minden kötőfej sorrendre hajtsuk végre a következő lépéseket. Az 1.,2.,4. extrúdersorrendben hajtsuk végre a kötőfejek adott sorrendjében a RÁRAKFAMVÁG részalgoritmust. Ha a kapott MEGOLDAS megoldásban minden famíliát ütemeztünk akkor regisztrálunk.

31 31 Az algoritmus működése Az algoritmus abban az esetben adja meg a megoldást ha lehetséges az összes cikkszámot ütemezni. A tesztek alapján láttuk, hogy ez nem minden esetben áll fent, ezért az algoritmus továbbfejlesztettük az ilyen esetek kezelésére is. Ilyen esetekben két különböző módon működhet. Az első lehetőség, hogy ekkor is az egy heti intervallumra ütemez, és minimalizálja a kimaradó munka mennyiségét, ez ekvivalens azzal a szemponttal, hogy az álllásidő mennyiségét minimalizálja. A másik lehetőség, hogy bővebb időintervallumot keres, amelyben minden cikkszámot ütemezni tud. Ezt úgy oldja meg, hogy az 10080 percről indulva az időintervallumot növelve keresi az első alkalmat, ahol olyan megoldást kap, amiben ütemezni tudja az összes cikkszámot.

32 32 Lfirst heurisztika Talán ez az algoritmus modellezi leginkább az emberi gondolkodást. A kötőfejeket sorba veszi (elsőként azokat, amelyek famíliái csak az oldószeres extrúderen hajthatóak végre, majd a többieket) és ennek megfelelően elkezdi az oldószeres extrúderektől kezdve végrehajtani őket. Amennyiben a kötőfejhez tartozó cikkszámok nem hajthatóak végre mind a határidő előtt, akkor az algoritmus szétvágja a kötőfejhez tartozó famíliát, és a maradékkal a következő extrúderen folytatja a munkát.

33 33 Az algoritmusok tesztelése Az algoritmusaink viselkedését megvizsgáltuk az SAP alapján kapott valós adatokon. A hétre tervezett munkamennyiséget nem lehetett egy hét alatt ütemezni, (nem csak az algoritmusoknak nem sikerült, ez az adatok paraméterei alapján is jól látszik). A kissorhoz nem volt elegendő munka, ami kielégítette a rá vonatkozó szabályokat, így azokat relaxáltuk.

34 34 2. hét tesztadata LFirst a munkák 3.52%-át hagyta ki Keres a munkák 2,95%-át. Az összes munkát ütemező változatok 10 543 illetve 10500 perc volt. A futási idők 1 másodpercen belül és 2.5 perc.

35 35 3. hét tesztadata LFirst a munkák 22.15%-át hagyta ki Keres a munkák 19.94%-át. Az összes munkát ütemező változatok 12 771 illetve 12675 perc volt. A futási idők 1 másodpercen belül és 2.5 perc.

36 36 Összehasonlítás a jelenlegi megoldással A gyártási teljesítmény jegyzőkönyve alapján összesítették az átállások számát és a hozzá tartozó időket, és megállapítható volt, hogy a program által végzett tervezés 3-5%-kal rövidebb időre tervezett, ami főleg a kevesebb átállás tervezésének köszönhető. Nem csak ebben rejlik az algoritmus előnye hanem az ütemezés elkészíthetőségének gyorsaságában, még olyan személy által is akinek nincs termékismerete.

37 37 Az algoritmusok kiterjesztése Az algoritmus kiterjeszthető arra az esetre is, amikor a már meglevő ütemezést akarjuk megváltoztatni, kiegészíteni. Ezen futás inputja a változtatások listája, az ütemezés, és az időpont lenne.

38 38 Probléma 1. Csak a famíliák ütemezését tudjuk megadni, azon belül a munkák sorrendjét nem. -Vannak szűken gyártandó termékek, és ezeknek nincs megfelelő adatbázisa -Egyes termékek körbélyegzősek, mások prégeltek. Megoldás: Amennyiben ilyen adatok rendel- kezésre állnak a família elemei egyszerűen rendezhetőek.

39 39 Probléma 2. Előfordul, hogy nem ütemezhető az összes munka az adott héten. Nincs jól meghatározott szabály mely munkákat kell kihagyni. Az algoritmus ekkor is ad egy ütemezést munkákat kihagyva, továbbá egy ütemezést, ami egy hétnél nagyobb intervallumra ütemezi a munkákat

40 40 Probléma 3 A célfüggvény túlzottan egyszerű: Mivel a célfüggvény az állásidő minimalizálása, ezért egy megoldáson belül, az ugyanazon kötőfejhez tartozó famíliák sorrendje felcserélhető. Valójában nem egyformán jó minden sorrend. Megoldás: Egy átállási költségmátrix finomabb költségfüggvényt és hatékonyabb optimalizálást tenne lehetővé.

41 41 Probléma 3. Egy ilyen költségmátrix létrehozása egyrészt nagy munka, hisz minden família párra meg kell határozni a becsült költséget, ami egy adott pár esetében sem nyilvánvaló miként megoldható. Másrészt a létrehozott költségmátrixot karban is kell tartani, minden új família esetén bővíteni kell az átállási költségek mátrixát.

42 42 Probléma 3 A kiterjesztett költségmátrixú feladat sokkal bonyolultabb (az egyes extrúderekre megszorítva egy-egy TSP feladatot kapunk).

43 43 Az eredmények hasznosítása A felsorolt problémák miatt a kifejlesztett program nem használható automatikusan a gyártás irányítására. A program használható a gyártás szimulációja során, továbbá segítséget nyújthat a tervezésben is, de emberi beavatkozás mindenképpen szükséges..

44 44 A projekt folytatása Jelenleg a program felhasználó barát változatát fejlesztjük, az első változat egy matlab program volt, amely file-ból olvasott és file-ba írt. A modellben kisebb módosítások (új extrúder, új szabályok a familía-extrúder hozzárendelésre)

45 45 Felület


Letölteni ppt "Gyártósorok ütemezése Imreh Csanád SZTE Informatikai Tanszékcsoport."

Hasonló előadás


Google Hirdetések