Controllo e schedulng delle operazon Paolo Dett Dpartmento d Ingegnera dell Informazone Unverstà d Sena
Organzzazone della produzone PRODOTTO che cosa ch ORGANIZZAZIONE PROCESSO come FLUSSO DI PRODUZIONE COORDINAMENTO PIANIFICAZIONE SCHEDULING quando
Panfcazone della produzone: schedulazone d dettaglo Sono dat: Un nseme d lavor (job): ognuno costtuto da una o pù operazon Un nseme d rsorse (macchne) che devono essere utlzzate per esegure lavor
Schedulng delle operazon Scelta de temp d nzo e fne d ogn operazone su ogn macchna
Schedulng delle operazon Consderamo: 3 lavor e 3 macchne Job J 1 Sequenza delle operazon operazone(macchna, tempo) (M 1,10) (M 2,5) (M 3,6) J 2 (M 2,5) (M 1,8) - J 3 (M 1,2) (M 3,10) (M 2,4)
Dagramma d Gantt Job J 1 Sequenza Operazon (M 1,10) (M 2,5) (M 3,6) J 2 (M 2,5) (M 1,8) - J 3 (M 1,2) (M 3,10) (M 2,4) M 1 1 3 2 M 2 2 1 3 M 3 3 1 5 10 12 15 20 22 26 28
Dagramma d Gantt Job J 1 Sequenza Operazon (M 1,10) (M 2,5) (M 3,6) J 2 (M 2,5) (M 1,8) - J 3 (M 1,2) (M 3,10) (M 2,4) M 1 3 1 2 M 2 2 1 3 M 3 3 1 2 5 12 17 20 21 23
Classfcazone de problem d schedulng Caratterzzazone de lavor: tempo d processamento p j (p kj ) data d consegna (duedate o deadlne) d j data d rlasco (release date) r j peso del lavoro (prortà) w j tempo d set-up tra due lavor s j
Classfcazone de problem d schedulng Caratterzzazone delle rsorse e dell ambente produttvo: macchna sngola macchne parallele dentche scorrelate unform Flow shop Job shop
Macchna sngola LAVORI M
Macchne parallele M 1 LAVORI M 2 M 3
Macchne n lnea (Flow shop) LAVORI M 1 M 2 M m
Esempo M 1 M 2 IN OUT
Esempo M 1 M 2 IN OUT
Job shop LAVORI M 1 M 2 M 3
Msure d prestazone (lavor) Dato l lavoro con release date e duedate: tempo d completamento C tempo d attraversamento F C r Lateness L C d Tardness T max{ 0, C d } Earlness E max{ 0, d C } Lavor n rtardo U 1 se C > d U 0 se C d
Lateness (Rtardo) Rtardo del lavoro : L C -d L (C ) L > 0 C - d L < 0 antcpo d rtardo C d : tempo d consegna (duedate) per l lavoro
Msure d prestazone (sstema) somma de temp d completamento: Σ C flow tme totale: Σ F massma Lateness: L max max L massma Tardness: T max max T Tardness totale pesata Σ w T makespan C max max C numero d lavor n rtardo Σ U
Equvalenza tra msure Msure d prestazone ( ) + n n n n n d r F d C L 1 1 1 1 1
Msure d prestazone Una sol. che mnmzza L max mnmzza anche T max (ma, n generale, non è vero l vceversa): T max max max max { T,..., T,0} { max{ L,0},...,max { L,0 } 1 n { L,..., L,0} max{ L,0} 1 1 n n max
Schedulng su sngola macchna Descrzone del problema Un nseme d n operazon deve essere eseguto su una macchna Dat I temp d processamento p, 1,,n, del lavoro sulla macchna sono not. Obettvo Sequenzare le operazon sulla macchna n modo da mnmzzare la somma de temp d completamento. mn Σ C
Gantt del Sequenzamento Sequenza S p 1 p 2 p 3 p 4 p n op 1 op2 op 3 C 1 C 2 C 3 op4 C 4 op n C n tempo C n Σ p : tempo d completamento totale (makespan) Obettvo: mn Σ C
se p 2 < p 1 allora scambando le op. 1 e 2 s ha C 2 < C 1 e C 1 C 2 C 2 + C 1 < C 2 + C 1 p 1 p 2 p 3 p 4 p n S op 1 C 1 op2 op 3 C 2 C 3 op4 C 4 op n C n tempo p 2 p 1 p 4 p n S op 2 C 2 op1 1 C 1 p 3 op 3 op 4 C 3 C 4 op n C n tempo
Regola SPT (shortest processng tme frst) SPT: sequenza prma le operazon che hanno tempo d esecuzone pù pccolo Consente d mnmzzare la somma de temp d completamento Σ C d n operazon (lavor) su una macchna
Esempo Lavor 1 2 3 4 5 p 8 16 10 7 2 Sequenza ottma (5, 4, 1, 3, 2)
Schedulng su sngola macchna Descrzone del problema Un nseme d n operazon devono essere esegut su una macchna Dat I temp d processamento p, 1,,n, del lavoro sulla macchna sono not. Peso w, 1,,n, assocato ad ogn lavoro. Obettvo Sequenzare le operazon sulla macchna n modo da mnmzzare: mn Σ w C
Regola WSPT (weghted shortest processng tme) WSPT: sequenza prma lavor che hanno l pù pccolo rapporto: p w Consente d mnmzzare la somma pesata de temp d completamento Σw C
Sa p / w > p k / w k consderamo due cas: 1. Il lavoro k è sequenzato subto dopo 2. Il lavoro è sequenzato subto dopo k Regola WSPT D p w p w p w A w w B p p A w p A w B ob f p p A C p A C k k k k k k k k k k + + + + + + + + + + + + + + ) ( ) ( ) (.. ' e ' D p w p w p w A w w B D p p A w p A w B ob f p p A C p A C k k k k k k k k + + + + + + + + + + + + + + + ) ( ) ( ) (.. e
Regola WSPT Se p / w > p k / w k allora w k p > w p k f. ob.(1) f. ob.( 2) w k p w p k > 0 f. ob.(1) > f. ob.( 2)
Macchne parallele M 1 J 1 J 2 LAVORI M 2 J 3 J 4 M 3
Schedulng su macchne parallele scorrelate Descrzone del problema n lavor devono essere processat da m macchne dverse (unrelated) dsposte parallelo. Le macchne possono esegure un solo lavoro alla volta. Ogn lavoro deve essere eseguto su una ed una sola macchna senza nterruzone. Dat I temp d processamento p j, 1,, m, del lavoro j sulla macchna sono not. Obettvo Assegnare lavor alle macchne n modo tale da mnmzzare l tempo totale d completamento della macchna pù carca (equvalente a mnmzzare l makespan).
Esempo Macchne Lavor 1 2 3 4 5 1 12 17 19 15 14 2 30 17 16 31 17 3 28 27 28 23 27 Una soluzone ammssble M 1 J 1 J 4 M 2 J 5 J 2 M 3 J 3 34 t
Esempo Macchne Lavor 1 2 3 4 5 1 12 17 19 15 14 2 30 17 16 31 17 3 28 27 28 23 27 Una soluzone ottma M 1 J 1 J 4 M 2 J 5 J 3 M 3 J 2 33 t
Complesstà Il problema è NP-completo anche con due macchne dentche m2 pj p j 1,..., m
Defnzone delle varabl Una formulazone d PLI C, 1,, m, tempo d completamento della macchna x j 1 se l lavoro j è assegnato alla macchna 0 altrment C max max 1,..., m { C } tempo d completamento d tutto l sstema Nota: l tempo d completamento della macchna pù carca corrsponde al tempo d completamento del lavoro che fnsce per ultmo
Formulazone del Problema Defnzone delle varabl Il tempo d completamento C della generca macchna è par a: C n j 1 p j x j C max n max { } 1,..., m C max 1,..., m j 1 p j x j
Una formulazone del Problema mn { C } max tale che mnmax 1,..., m n j 1 p j x j m 1 x j x j 1 { 0,1 } j 1,...,n
Una formulazone d PLI mn W tale che C n j 1 p j x j W 1,...,m m 1 x j x j 1 { 0,1 } j 1,...,n
ASSEGNAMENTO DELLE OPERAZIONI DI TAGLIO NELLA PRODUZIONE DI CAPI DI ABBIGLIAMENTO
Lo scenaro produttvo La PAL ZILERI produce cap d abbglamento per l alta moda Ogn capo è costtuto da var pezz d tessuto (fgure) Le fgure vanno taglate da un nastro che scorre a veloctà costante v 0
Lo scenaro produttvo La dsposzone delle fgure sul nastro è nota a pror (cuttng stock rsolto a monte) Il taglo delle fgure è effettuato da un nseme d macchne dentche dsposte n lnea Cascuna macchna ha un area d lavoro d lunghezza W s
Pazzamento
Lo scenaro produttvo Stazon d lavoro fgure 1 2 m V 0 12.5 cm/sec W s 2.5 m W s Area d lavoro
Il problema decsonale Il problema è quello d assegnare le fgure alle macchne, e d sequenzare tagl su cascuna macchna Cascun taglo deve avvenre entro una determnata fnestra temporale (dversa a seconda della macchna cu è assegnata la fgura) d ampezza W s /v 0
Il problema decsonale Tra l taglo d una fgura e la successva ntercorre un tempo d swtch dpendente dalla sequenza Gl obettv: mnmzzare l numero d macchne blancare carch d lavoro
Il problema decsonale L nseme delle fgure relatve a uno stesso capo e la loro dsposzone sul tessuto (pazzamento) gungono n tempo reale L assegnamento va decso n poco tempo (30 sec.) Problema decsonale on lne
Modello combnatoro 1 2 3 4 5 6 3 4 5 6 1 2 2 6 4 6 1 3
Modello combnatoro
Modello combnatoro
Metodologe d soluzone Due approcc rsolutv Approcco esatto, basato su metod d programmazone a numer nter Approcco eurstco, basato su algortm d nstradamento push e pull
Approcco esatto Il problema è smle a un problema d vehcle routng con tme wndows Generalzzazone del problema del commesso vaggatore Problema dffcle
Approcco esatto Sa m l nseme d tutt sottonsem d fgure che possono essere taglat da una sola macchna entro la propra fnestra temporale (tnerar) Ad ogn tneraro è assocato un dato nseme d fgure da taglare x k è una varable d decsone che è par a 1 se l tneraro k è assegnato ad una macchna La somma Σ k x k esprme l numero d tnerar, ossa l numero d macchne
Una formulazone d set coverng Sa {1,, n} l nseme d fgure d un pazzamento. Sa A {A 1,,A m } una matrce n m, n cu la generca colonna A k descrve un tneraro possble per una macchna. A ha component: a jk 1 se la fgura j è assegnata all tneraro k 0 altrment
Una formulazone d set coverng Sa x k par a 1 se la colonna A k è selezonata e 0 altrment. Una formulazone del problema è: mn k x m k 1 a k jk m 1 x x k k 1 j 1,..., n { 0,1} k 1,..., m (Barnhart C. et al., 1994; Chen, Z.L. and Powell,W.B., 1999; Van den Akker J.M. et al., 1999)
Approcco esatto m è l numero (elevatssmo) d possbl tnerar Anche enumerandol tutt, occorre rsolvere un problema ntero d elevatssme dmenson >>> generazone d colonne
,...,m k x,...,m k x,...,n j x a x k k m k k jk m k k 1 0 1 1 1 1 mn 1 1 Prmale Duale Generazone d Colonne 1 0 1 1 max 1 1,...,n j u,...,m k u a u j n j j jk n j j Sa u* la soluzone del problema duale (rstretto). Un vncolo duale è volato dalla corrente soluzone duale se: 1 1 * > n j jk j u a
Un metodo d generazone d colonne Problema d separazone per generare un vncolo duale volato dalla corrente soluzone duale max tale a j n j 1 che a { 0,1} le fgure scelte essere esegute j u * j ( a j 1) possono tutte su una macchna
Il problema d separazone per generare un vncolo duale volato e qund una nuova colonna del prmale è: Un metodo d generazone d colonne 1 * j j j j j j u w U w s r Nota che r j e d j sono agreeable (le fnestre temporal d ogn fgura sono tutte lunghe W s /σ), coè: j j d d r r
Problema d separazone senza temp d set-up (1 r j Σw j U j ) Esste un algortmo d programmzone dnamca (Lawler and Moore, 1969) per l rsolvere l problema 1 Σw j U j Tale algortmo può essere esteso al problema 1 r j Σw j U j se release date e duedate de lavor sono agreeable
Un algortmo d programmazone dnamca Supponamo d ordnare job n modo che d 1 d 2 d n (r 1 r 2 r n ) Sa P(j, t) la soluzone ottma del problema 1 r j Σw j U j n cu sono consderat solo prm j job, ed n cu l tempo totale d completamento de job n tempo è al pù t P ( j, t ) max P ( j 1, t) { ( ) ( )} * P j 1, t pj + u j ; P j 1, t P( j, d ) t > d j t < r j + j p j r j + p j t d j
Metodologe d soluzone Approcco eurstco basato su algortm d nstradamento push e pull
Applcazone eurstca push 1. S ndvdua la prossma fgura da assegnare 2. La fgura selezona una macchna 3. La macchna nsersce la fgura nel propro schedule
push: ordnamento delle fgure LPT n ordne decrescente d tempo d taglo EDD n ordne d uscta dal sstema ERD n ordne d entrata nel sstema
t stante n cu M dvene dsponble S j max{r j, t + c j } prmo stante n cu può nzare la fgura j se assegnata a M Q j S j - t (dle)
Set-up Earlest start tme per la fgura j Ultma fgura taglata t t +c j S j Idle: Q j S j - t t
push: selezone della macchna La fgura j corrente scegle la macchna: mn C che s lbera prma mn W con l mnmo carco d lavoro mn Q j che è n grado d taglare la fgura j col mnmo dle
Applcazone eurstca pull 1. S ndvdua la prossma macchna a cu allocare un lavoro 2. La macchna selezona una fgura 3. La macchna nsersce la fgura nel propro schedule
pull: ordnamento delle macchne La macchna che opera la scelta è quella: mn C che s lbera prma
pull: selezone della fgura La macchna M corrente scegle la fgura, tra quelle non allocate: EDD che uscrà prma dal sstema ERD che entrerà prma nel sstema mn Q j la fgura j che è n grado d taglare col mnmo dle
Insermento della fgura In ambedue gl approcc, quando s determna un accoppamento fgura/macchna, la fgura deve essere nserta nello schedule corrente della macchna
Insermento della fgura INS1 (EDD) le fgure sono taglate n ordne d entrata nel sstema INS2 (FIFO) le fgure sono taglate nell ordne n cu sono state allocate
Eurstche push Ordnamento delle fgure Selezone macchna Inserm. Push1 LPT mn W EDD Push2 EDD mn Q j FIFO Push3 EDD mn C FIFO Push4 EDD mn W FIFO Push5 ERD mn W EDD
Eurstche pull Ordnamento delle macchne Selezone fgure Inserm. Pull 1 mn C EDD FIFO Pull 2 mn C mn Q j FIFO Pull 3 mn C ERD FIFO
Indc d performance E D + E j mn j mn E max k ( t j pj f f j j B C 1,.., m max m B n E E j j ( C ) ) earlness della fgura f j processata sulla macchna M k mnma earlness del pazzamento earlness meda del pazzamento tempo d completamento del pazzamento numero d macchne
Istanze real Istanza R 1 : 624 fgure raggruppate n 12 pazzament Istanza R 2 : 896 fgure raggruppate n 16 pazzament
Algortm push per l stanza R 1 Push1 Push2 Push3 Push4 Push5 E mn 1.7 7 5.9 6.2 1.4 E 10.1 11.7 13.5 11.4 9.8 C max 31.5 28.2 28.4 29.2 30.8 m 6 6 6 6 6
Algortm pull per l stanza R 1 Pull1 Pull2 Pull3 E mn 6.9 7.4 5.9 E 11.2 15 13.5 C max 28.5 29.1 28.3 m 6 7 6
Algortm push per l stanza R 2 Push1 Push2 Push3 Push4 Push5 E mn 1.3 6.5 6.2 5.3 0.9 E 10.7 12.4 14.2 12.1 10.4 C max 35 29.2 29.3 32.3 34.7 m 7 7 7 7 7
Algortm pull per l stanza R 2 Pull1 Pull2 Pull3 E mn 6.3 6.1 6.2 E 11.4 14.3 14.1 C max 29 30.1 29.5 m 7 7 7