Virtuális vállalat JÁRMŰIPARI ALKATRÉSZGYÁRTÁS TERMELÉSPROGRAMOZÁSI FELADATAINAK MODELLEZÉSE ÉS MEGOLDÁSA Dr. Kulcsár Gyula, Dr. Kulcsárné Forrai Mónika Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék
A vizsgált termelési folyamat Gyártósor (körpálya) Felfüggesztési pont (pozíció) Formahordozó Forma (szerszám)
Követelmények Be kell tartani a szigorú gyártástechnológiai előírásokat. A rendeléseket az előírt határidőre kell teljesíteni. A gyártás a lehető legkevesebb konfiguráció előkészítéssel és cserével valósuljon meg. El kell kerülni a túl nagy készletek felhalmozását. Biztosítani kell a terméktípusonként egyedileg előírt készletszinteket. A gyártósorok kihasználtságát maximalizálni kell.
A termelésütemezés és a készletgazdálkodás egy kombinált új feladata: IPSIC IPSIC: Integrated Production Scheduling and Inventory Control a vevői megrendelések ( lehívások ) kiszolgálása (MTO), a tervezett belső készletszintek elérése/betartása (MTS), a gyártási főfolyamatok ütemezése (konfiguráció-csere), a segédfolyamatok ütemezése (konfiguráció-előkészítés). 4
A modellezés szerepe
Megoldási koncepció Felhasználó Rendelés Termék Technológia Erőforrás Termelésprogramozás Modellépítés Konfigurációelőkészítések ütemezése Termelésprogramozó szoftver Szimuláció Értékelés
A legfontosabb osztályok Modellépítés F_ENTITY: entitás. F_ORDER: gyártási rendelés. F_PRODUCT: termék. F_PRODUCT_GROUP: termékcsoport. F_CARRIER: formahordozó. F_MOLD: forma (szerszám). F_COMPLEX_MOLD: összetett forma. F_MACHINE: gyártósor. F_MS: gyártórendszer. F_M_STATE: gyártósor állapota. F_SCHEDULE: finomprogram. F_PAC_PLAN: előkészítési ütemterv. F_KPI: teljesítmény-mutatók. F_TABU: tabu elem (finomprogram). F_TABULIST: tabulista. F_TIMELINE: diszkrét időintervallumok.
A teljes probléma formális optimalizálási modellje Bemenő alapadatok. Alapadatokból származtatott segédváltozók. Elsődleges döntési változók. Elsődleges döntési változókból számított értékek. Másodlagos döntési változók. Korlátozások. Célfüggvények. 8
A lokális és a globális sorszámok szerepe 8 órás időintervallumok (műszakok) 1. Gyártósor: M 1 saját műszaksorszám (c) 2. Gyártósor: M 2 saját műszaksorszám (c) 3. Gyártósor: M 3 saját műszaksorszám (c) Az ütemezési időhorizont engedélyezett műszakjai 2017.04.03. Vasárnap 2017.04.04. Hétfő 2017.04.05. Kedd 2017.04.06. Szerda 6:00 14:00 22:00 6:00 14:00 22:00 6:00 14:00 22:00 6:00 14:00 22:00 aktív aktív aktív aktív aktív aktív aktív 1 2 3 4 5 6 7 aktív aktív aktív aktív aktív aktív aktív aktív 1 2 3 4 5 6 7 8 aktív aktív aktív aktív aktív aktív 1 2 3 4 5 6 Az engedélyezett műszakok globális sorszáma: s 1 2 3 4 5 6 7 8 9 s m,c = s 3,4 = 5 és c(s,m) = c(5,3) = 4 9
Elsődleges döntési változók Új szemlélet: nem munka ( job ) alapú ütemezés. A gyártósorok pozícióiban az engedélyezett műszakokban aktívan használandó konfigurációk: xm,j,c Ω (m=1, 2,, NM); (j=1, 2,, Nm,j); (c=1, 2,, Nm,c). A konfigurációk halmaza:. Konfiguráció: :=[ 1, 2, 3, 4, 5 ] ahol: a konfiguráció keretét jelentő formahordozó: 1 {H h h=0, 1, 2,, N H } a baloldali formával gyártandó terméktípus: 2 {P p p=0, 1, 2,, N P } a formahordozó bal oldalára felszerelt forma: 3 {A a a=0, 1, 2,, N A } a jobboldali formával gyártandó terméktípus: 4 {P p p=0, 1, 2,, N P } a formahordozó jobb oldalára felszerelt forma: 5 {A a a=0, 1, 2,, N A } 10
Másodlagos döntési változók Az elsődleges döntési változók értékei konfiguráció-előkészítési munkákat generálnak: ( (x m,j,c, x m,j,c 1 ) == 1) (x m,j,c sm,c 1 ) (x m,j,c,1 H 0 ) J i = x m,j,c; d i s m,c 1: r i max Ji, d i ; N J J i (m=1, 2,, N M ); (j=1, 2,, N m,j ); (c=1, 2,, N m,c ); A másodlagos döntési változók a konfigurációelőkészítési ütemtervet határozzák meg: C i {s s=0, 1, 2,,s max } (i=1, 2,, N J ) 11
Korlátozások Az aktív konfigurációkra vonatkozó korlátozás-típusok: 1.-8. x m,j,c (m=1, 2,, N M ); (j=1, 2,, N m,j ); (c=0, 1, 2,, N m,c ). A konfiguráció-cserék darabszámára vonatkozó korlátozástípus: 9. (m=1, 2,, N M ); (c=1, 2,, N m,c ); A konfiguráció-elemek használatára vonatkozó korlátozástípusok: 10.-11. (a=1, 2,, N A ); (h=1, 2,, N H ); (s=0, 1, 2,,s max ); A konfiguráció-előkészítési munkák ütemezésére vonatkozó korlátozás-típusok: 12.-15. (i=1, 2,, N J ); (s=0, 1, 2,, s max ); 12
Proaktív szemléletű integrált megoldási koncepció 13
Termelési ütemterv Az induló állapotot ismert. A termelési ütemterv egyenértékű a konfigurációcserék sorozatával, amely előírja, hogy: melyik gyártósoron, melyik pozícióban, melyik műszakban (mikor), milyen konfigurációt kell felhelyezni (aktívvá tenni), és azzal milyen típusú terméket vagy termékeket kell gyártani.
A teljes feladat megoldása EasyForce algoritmussal Alapja: Többcélú és többoperátoros tabukereés Új elemek: Kezdeti megoldás generálása Beépülő ütemezési feladat megoldása Szimuláció Célfüggvények Tabu elemek Szomszédsági operátorok 15
EasyForce {s 0 Kezdeti megoldás készítése; Termelésprogramozás s* s 0 ; Tabu_List NULL; while ( Leállási feltétel nem teljesül ) { while ( Szomszédság kiterjesztésének feltétele teljesül ) { N c Szomszédsági operátor kiválasztása (priority_list); s Szomszédos megoldás készítése ( s 0, N c ); PAC_Plan Konfugiráció előkészítés ütemezése ( s ); if ( A maximális csúszás a PAC_Plan szerinti == 0 ) { if ( A Tabu_List nem tartalmazza ( s ) ) { A Tabu_List bővítése új elemmel ( s ); if ( Első szomszéd ( s ) ) s k s; else if ( s < s k ) s k s; } } } s 0 s k ; if ( s k < s* ) s* s k ; } return s*; }
Szomszédsági operátorok N c = NEOP z (z=1, 2,, 12) az x m,j,c elsődleges döntési változók értékeit módosítják. Terméktípus kiválasztása Gyártósor kiválasztása Pozíció kiválasztása. Kezdő műszak kiválasztása. Befejező műszak kiválasztása. Szabad formák (szerszámok) lekérdezése. Szabad formahordozók lekérdezése. Bevethető előszerelt konfigurációk lekérdezése. Konfiguráció kiválasztása/összeállítása. A változtatások aktiválása. 17
Termelési finomprogram
Beépülő ütemezési feladat Konfigurációelőkészítések ütemezése Munka: konfiguráció összeszerelés. Erőforrás: szerelők. Korlátozások: Indítási időkorlát. Előírt határidő. Elvégezhető munkák száma műszakonként. Cél: határidők betartása. Új ütemezési modell P(s) p i =1; r i =egész; d i =egész L max
A transzformációval előállított új ütemezési feladattípus P(s) pi=1; ri=integer; di=integer Lmax P(s) 3 2 1 J 2 J 4 J 1 J 7 J 3 J Z+1 J 6 J i* 1 2 3 4 5 6 7 s 20
Rendezzük a J i munkákat r i szerint nem csökkenő sorrendbe; j 1; while (j n) { s rj; R {J i J i nem ütemezett és r i s}; k 1; while (R nem üres) { Vegyük a legkisebb d i hez tartozó J i -t az R-ből; R R \ {J i }; Ütemezzük a J i -t a k. elérhető gépre az s lépésben; C i s; L i C i - d i ; j j + 1; if (k + 1 P(s)) k k + 1; else { k 1; s s + 1; R R {J i J i nem ütemezett és r i s} } } } Visszatérés az elkészített optimális megoldással; Konfigurációelőkészítések ütemezése
Konfiguráció-előkészítési ütemterv
A beépülő feladat eredményének felhasználása a teljes IPSIC feladatban L max szempontjából optimális megoldás Polinomiális futási idő Ha L max 0 akkor és csakis akkor létezik megvalósítható konfigurációelőkészítési ütemterv. Az algoritmus a C i értékek kiszámításával egyben elő is állítja a keresett megoldást. 23
A termelés szimulációja Szimuláció
A termelés szimulációja Szimuláció
Célfüggvények Többcélú optimalizálás: fk min. (k=1, 2,, 18). Cél-kategóriák: I. A rendelések teljesítése az előírt határidőkre: f1, f2, f3, f10, f11, f12, f15, f16 II. III. IV. A beavatkozások és átállások mértékének minimalizálása: f4, f5, f17 Az előírt sávos készletszintek fenntartása/betartása: f6, f7, f8, f9, f13, f14 A gyártósorok kapacitáskihasználtságának maximalizálása (a kihasználatlanság minimalizálása): f18 26
f 1 : Maximális termékhiány [db]. f 2 : A termékhiány összege [db]. f 3 : A csúszó gyártási megrendelések száma. f 4 : Az átállítások (cserék) száma. f 5 : A cserék maximális száma egy műszakban. f 6 : A többlettel záró terméktípusok száma. f 7 : A terméktöbbletek összege [db]. f 8 : A maximális termékhiány az időszak végén [db]. f 9 : A termékhiány összege az időszak végén [db]. f 10 : A csúszó rendelések prioritásainak összege. f 11 : A csúszó rendelések maximális prioritása. f 12 : A csúszó terméktípusok száma. f 13 : A maxiimális termékhiány (nullához képest) [db]. f 14 : A termékhiány összege (nullához képest) [db]. f 15 : A maximális csúszás [műszak]. f 16 : A csúszások összege [műszak]. f 17 : A konfiguráció-előkészítések száma. f 18 : Nemhasznált kapacitás [SFE]. Értékelés
Többcélú optimalizálás Értékelés f : S {0 } k f ( s ) min k s S, k {1,2,...,K } s,s S a,b x y 2 D : D( a,b ) b a w w 0 k {1,2,...,K } k k 0, hamax( a,b ) 0 max( a,b ), egyébként K 2 F : S F( s x,s y ) ( wk D( f k( s x ), f k( s y ))) k 1
Megoldások minősítése többcélú kereső eljárásokban Értékelés Az előjeles függvényérték kifejezi az megoldás megoldáshoz viszonyított relatív minőségét. s x F ( s, s x y) s y s y s y s y jobb megoldás mint és s x s x ha azonosan jó megoldások ha rosszabb megoldás mint s y? s x : F( s x,s y )? 0 s x ha F ( s, s x y) 0 F ( s, s x y) 0 F ( s, s x y) 0 Egycélú keresés Többcélú keresés Tabu keresés (TS), Szimulált hűtés (SA), Genetikus algoritmus (GA)
Termelésprogramozó szoftver
JIT-orientált algoritmus Csökkenti a J i (i=1, 2,, N J ) munkák sietését úgy, hogy L max 0 E i max(0, d i C i ). A munkákat LDD sorrendben határidőhöz közelíti: d C i (S JIT ) max i s=ci (S a ) s P s > i=1 N J (J i, s) ahol J i, s 1, ha C i == s 0, egyébként 31
Továbbfejlesztett JIT-orientált algoritmus biztonsági vezérlő paraméterekkel Munka-függő biztonsági vezérlő paraméter (Safety Control Parameter): E i,scp (i=1, 2,, N J ) Tervezett sietés: E i E i,scp (i=1, 2,, N J ). A JIT-orientált algoritmus szabad gépet kereső ciklusa a J i munka esetében a d i határidőből levonja a J i munka saját E i,scp értékét, és onnan indul visszafelé. A munkák áthelyezése csak akkor történik meg, ha az ilyenformán szűkített időtartományban talál szabad gépet. A munka-függő biztonsági vezérlőparaméterek aktuális értékei az előkészítést ütemező algoritmus bemenő adatai közé tartoznak. 32
JIT-orientált konfiguráció-előkészítés
Összefoglalás A gyártásirányításhoz kapcsolódó ütemezési feladatok nagyon sokfélék lehetnek, melyek összetett, nehezen megoldható többcélú optimalizálási problémákhoz vezetnek. A vizsgált járműipari alkaltrészgyártás termelésprogramozási feladatának megoldására új modelleket dolgoztunk ki. A korszerű tudás-intenzív keresési módszerek, a gyors végrehajtás-vezérelt szimuláció és a többcélú eredményértékelő módszerek hatékony támogatást nyújtanak.
Köszönöm a figyelmet! Dr. Kulcsár Gyula, iitkgy@uni-miskolc.hu Dr. Kulcsárné Forrai Mónika, aitkfm@uni-miskolc.hu Ipari partner: Fehrer Hungaria Járműipari Kft. Magyarország, 8060 Mór, Ipartelep. A kutató munka a Miskolci Egyetem stratégiai kutatási területén működő Mechatronikai és Logisztikai Kiválósági Központ keretében valósult meg.