Gy - PowerPoint PPT Presentation

About This Presentation
Title:

Gy

Description:

Gy rt sorok temez se Imreh Csan d SZTE Informatikai Tansz kcsoport – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 46
Provided by: Imr90
Category:
Tags: extruder

less

Transcript and Presenter's Notes

Title: Gy


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

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

3
A feladat
  • Egy középméretu 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ásido minimális
    legyen.

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

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

6
Famíliák
  • Az egyes cikkszámok famíliákba oszthatóak. Minden
    cikkszám esetén ismert a neki megfelelo 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éro,
    és a kötofej típusa határoz meg.

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
    ido szükséges.
  • Másrészt elofordulhat olyan input, amely során
    szükséges az adott família munkáit különbözo
    gépeken ütemezni, ezért a modellben megengedjük a
    famíliákat modellezo egységek szétvágását.

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
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 ido alatt az
    extrúder nem tud munkákat végrehajtani. A cél az
    állásido minimalizálása. Az átállási idok a
    következoképpen adhatóak meg

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

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

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

13
Input eloállítása
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ötofejek számát k-val. Az állásido két részbol
    adódik össze
  • A famíliák közötti váltásnál mindig van 40
    percnyi állásido, é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ásidot eredményez.
  • Ha kötofejet is kell cserélnünk, akkor az extra
    40 perc állásido, ez még 40(k-4) perc.

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 leheto legkevesebb vágás
    legyen a kötofejekhez rendelt blokkokban, továbbá
    famíliákat modellezo munkákban, hiszen az ilyen
    vágások elkerülésével érhetoek el az alsó
    korlátban számolt -4-es konstansok, így ezzel
    minimalizálható az állásido.

16
A probléma bonyolultsága
  • A feladat NP nehéz.
  • BizSpeciális esetként (egyetlen kötofej, é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 megfeleloen gyors,
    azaz nagyobb méretu inputokon is reális idon
    belül véget ér.

17
Algoritmusok
  • A kissorra a legkisebb átméroju csöveket kellett
    elhelyezni, ezért azt külön ütemeztük.
  • Egy egyszeru mohó heurisztika
  • Egy gyorsított kimeríto keresésen alapuló
    idoigényesebb heurisztika.

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éroje
    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
Részalgoritmus RÁRAK
  • Ezen részalgoritmusnak az inputja egy extrúder a
    hét valamely kezdeti ido intervallumának egy
    ütemezésével és egy kötofej.
  • Az algoritmus megpróbálja a kötofejhez tartozó
    összes famíliát felrakni az extrúderre a meglevo
    ü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 idolimitig 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ötofejhez tartozó
    famíliák ütemezésével.

20
Részalgoritmus RÁRAKVÁG
  • Ezen részalgoritmus inputja egy extrúder a hét
    valamely kezdeti ido intervallumának egy
    ütemezésével, egy kötofej.
  • A kötofejet használó famíliák közül vesszük
    azokat, amik az extrúderhez rendelhetoek. Ha
    nincs ilyen a visszaadott érték hamis. Egyébként
    ezen famíliáknak vegyük a legnagyobb összideju
    részhalmazát, amelyet még tudunk ütemezni a
    meglevo ütemezés mögött az extrúderen az
    idolimitig.

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 kereso 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
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 elott.
  • Ezt követoen 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
Részalgoritmus RÁRAKFAMVÁG
  • A részalgoritmus inputja egy extrúder egy a hét
    valamely kezdeti ido intervallumának egy
    ütemezésével, egy kötofej. 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ötofejhez tartozó famíliák közül vesszük
    azokat, amik az extrúderhez rendelhetoek.

24
Részalgoritmus RÁRAKFAMVÁG
  • Az algoritmus elkezdi ezeket a famíliákat
    felrakni az extrúderre a meglevo ü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 megfelelo
    cikkszámokat a kiíratásnál hozzá kell rendelni a
    levágott részhez.

25
Algoritmus KERES
  • Legyen LEGJOBB egy olyan struktúra, ami 5 darab
    ütemezést el tud tárolni. LEGJOBBURES, i1,
    OPT8. Megoldások regisztrálásánál, ezeket az
    értékeket írjuk felül.
  • Elokészítés Elsoként végrehajtjuk a kissor
    ütemezését. Majd jön az elso fázis.
  • 1. Fázis Minden kötofej sorrendre hajtsuk
    végre a következo probákat

26
1. Próba
  • Az elso próbában megpróbáljuk a kötofejekhez
    tartozó blokkok szétvágása nélkül ütemezni a
    munkákat
  • Az 1.,2.,4. extrúdersorrendben hajtsuk végre a
    kötofejek 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övetkezo extrúderre.
  • Ha a kapott MEGOLDAS megoldásban minden famíliát
    ütemeztünk akkor regisztrálunk.

27
2. Próba
  • Ebben a próbában megpróbáljuk egyetlen kötofejhez
    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ötofejek adott
    sorrendjében a RÁRAK vagy RÁRAKVÁG
    részalgoritmust, az elso 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övetkezo extrúderre. Ha a kapott MEGOLDAS
    megoldásban minden famíliát ütemeztünk akkor
    regisztrálunk

28
3. Próba
  • Ebben a próbában megpróbáljuk csak a kötofejhez
    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ötofejek adott
    sorrendjében RÁRAKVÁG részalgoritmust. Ha
    valamelyik hamis, akkor lépjünk át a következo
    extrúderre. Ha a kapott MEGOLDAS megoldásban
    minden famíliát ütemeztünk akkor regisztrálunk.

29
2. Fázis
  • Ezt akkor hajtjuk végre ha az elso fázis
    végeredményeképpen OPT8, 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ötofej sorrendre hajtsuk végre a
    következo lépéseket Az 1.,2.,4.
    extrúdersorrendben hajtsuk végre a kötofejek
    adott sorrendjében a RÁRAKVÁG vagy RÁRAKFAMVÁG
    részalgoritmust, az elso esetben az 1. extrúderen
    a másodikban a 2. extrúderen használva
    RÁRAKFAMVÁG eljárást.

30
3. Fázis
  • Ezt akkor hajtjuk végre ha az 2. fázis
    végeredményeképpen OPT8, azaz nem tudunk csak
    egy famíliavágással ütemezni.
  • Minden kötofej sorrendre hajtsuk végre a
    következo lépéseket. Az 1.,2.,4.
    extrúdersorrendben hajtsuk végre a kötofejek
    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
Az algoritmus mukö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özo módon muködhet.
  • Az elso lehetosé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ásido mennyiségét
    minimalizálja.
  • A másik lehetoség, hogy bovebb idointervallumot
    keres, amelyben minden cikkszámot ütemezni tud.
    Ezt úgy oldja meg, hogy az 10080 percrol indulva
    az idointervallumot növelve keresi az elso
    alkalmat, ahol olyan megoldást kap, amiben
    ütemezni tudja az összes cikkszámot.

32
Lfirst heurisztika
  • Talán ez az algoritmus modellezi leginkább az
    emberi gondolkodást. A kötofejeket sorba veszi
    (elsoként azokat, amelyek famíliái csak az
    oldószeres extrúderen hajthatóak végre, majd a
    többieket) és ennek megfeleloen elkezdi az
    oldószeres extrúderektol kezdve végrehajtani
    oket.
  • Amennyiben a kötofejhez tartozó cikkszámok nem
    hajthatóak végre mind a határido elott, akkor az
    algoritmus szétvágja a kötofejhez tartozó
    famíliát, és a maradékkal a következo extrúderen
    folytatja a munkát.

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 elegendo munka, ami
    kielégítette a rá vonatkozó szabályokat, így
    azokat relaxáltuk.

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 ütemezo változatok 10 543
    illetve 10500 perc volt.
  • A futási idok 1 másodpercen belül és 2.5 perc.

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 ütemezo változatok 12 771
    illetve 12675 perc volt.
  • A futási idok 1 másodpercen belül és 2.5 perc.

36
Összehasonlítás a jelenlegi megoldással
  • A gyártási teljesítmény jegyzokönyve alapján
    összesítették az átállások számát és a hozzá
    tartozó idoket, és megállapítható volt, hogy a
    program által végzett tervezés 3-5-kal rövidebb
    idore tervezett, ami foleg a kevesebb átállás
    tervezésének köszönheto.
  • Nem csak ebben rejlik az algoritmus elonye hanem
    az ütemezés elkészíthetoségének gyorsaságában,
    még olyan személy által is akinek nincs
    termékismerete.

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

38
Probléma 1.
  • Csak a famíliák ütemezését tudjuk megadni, azon
    belül a munkák sorrendjét nem.
  • Vannak szuken gyártandó termékek, és ezeknek
    nincs megfelelo adatbázisa
  • Egyes termékek körbélyegzosek, mások prégeltek.
  • Megoldás Amennyiben ilyen adatok rendel-kezésre
    állnak a família elemei egyszeruen rendezhetoek.

39
Probléma 2.
  • Elofordul, hogy nem ütemezheto 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
Probléma 3
  • A célfüggvény túlzottan egyszeru
  • Mivel a célfüggvény az állásido minimalizálása,
    ezért egy megoldáson belül, az ugyanazon
    kötofejhez tartozó famíliák sorrendje
    felcserélheto. 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 lehetové.

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 bovíteni
    kell az átállási költségek mátrixát.

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
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
A projekt folytatása
  • Jelenleg a program felhasználó barát változatát
    fejlesztjük, az elso 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
Felület
Write a Comment
User Comments (0)
About PowerShow.com