2JSP: Condivisione a tempo minimo di risorse per due lavori*. Griglia, Grafo degli stati *Per la quasi totalità di questa unità didattica si possono prendere come riferimento le dispense di A. Agnetis: Dispense di Automazione Industriale per il corso Universitario, ad uso interno.1993, il cui file pdf è disponibile nella stessa cartella del presente file
2JSP: two job shop problem Cioè problema di due lavori da svolgere in unofficina I due lavori sono costituiti ciascuno da una sequenza di operazioni non interrompibili. Alcune o tutte le operazioni richiedono una risorsa (macchina, utensile, stazione di lavoro, ma anche sw, operatore umano, accesso dati, …..) in uso esclusivo, con tempo di esecuzione assegnato. Alcune risorse sono da condividere, in divisione di tempo, tra due o più operazioni, con la possibilità di creare conflitti, se appartengono a lavori diversi. Il problema è minimizzare il tempo complessivo di completamento di entrambi i lavori, commutando cioè in modo ottimo (in tempo trascurabile o meno) limpiego della risorsa da condividere da un lavoro allaltro, in caso di conflitto.
M1M1 M2M2 IN OUT stazioni di attesa 1 _ 2 Cella: insieme coordinato di macchine con forte condivisone di risorse di lavoro (robot, stazioni, strumenti, …) Controllo delle operazioni nelle celle
M1M1 M2M2 IN OUT Stazioni di attesa 1 _ 2 1 : grezzo disp. _ 2 : out libero
Un esempio di 2JSP: CELLA CON UTENSILI CONDIVISI Magazzino utensili A B
ESEMPIO 2JSP1: Due lavori: A e B t.A ut.At.But.Bindici cond. cond. op. 2, ,7 2,4 2 3,1 2,1 3 1,6 1,4 4 3,5 3,1 5 1,4 6 2,5 7
Tempo di trasferimento trascurabile CELLA CON UTENSILI CONDIVISI: condivisione a tempo minimo: Gantt Tempo di completamento: Cm Robot trasferisce utensile Sequenziamento greedy (famelico): le operazioni iniziano appena possibile, cioè prende prima lutensile chi lo chiede prima (minimizza Cm?) (Si veda anche Agnetis Dispense …: 2.3 scheduling.. pp. 49_ _53)
Progr. di B 2 Progress. di A 2 GRIGLIA DELLE OPERAZIONI Tempo robot trascurabile: Condivisione a tempo minimo Progredire delle operazioni A Progredire delle operazioni B B1B1 B2B2 AnAn BmBm A1A1 A2A2 n : m
ESEMPIO 2JSP2: Due lavori assegnati: A e B t.A ut.At.But.Bindici cond. cond. op
B1B1 B2B2 AnAn BmBm A1A1 A2A2 il percorso minimo può non essere unico
Tempo di completamento Cm Schedule equivalente: CELLA CON UTENSILI CONDIVISI il percorso minimo può non essere unico: qui due seq. ottimi
CELLA CON UTENSILI CONDIVISI GLI SCAMBI DI UTENSILE CORRISPONDONO A PARTICOLARI STATI DEL SISTEMA (stati di commutazione) Il grafo di stato si può ottenere direttamente dal diagramma di Gantt A 1 /B 2 B 3 /A 3 A 3 /B 5 O F
SCAMBIO UTENSILI : STATI DAL GANTT B 5 /A 3 A 3 /B 5 F O B 2 /A 1 greedy alternativa
B1B1 B2B2 AnAn BmBm A1A1 A2A2 B 4 /A 6 B 3 /A 3 B 5 /A 3 B 2 /A 1 A 5 /B 4 A 6 /B 4 A 3 /B 5 B 4 /A 5 F O A 1 /B 2
Cm Si supponga non trascurabile il tempo di commutazione Schedule equivalente: CELLA CON UTENSILI CONDIVISI
Schedule migliore UTENSILI CONDIVISI: tempo robot > 0 se > 0, con i dati di prima, il sequenziamento con più commutazioni è il migliore
UTENSILI CONDIVISI: tempo robot > 0 Non si può usare la griglia, ma si può ugualmente costruire un GRAFO DI STATO Si sviluppa prima il sequenziamento con soluzione greedy dei conflitti, quindi si sviluppano i sequenziamenti con soluzioni alternative
B1B1 B2B2 AnAn BmBm A1A1 A2A2 F O Difficoltà di rappresentare sulla griglia il tempo B1B1 B2B2 A1A1 A2A2 O B 4 /A 6 A 5 /B 4 A 3 /B 5 F A 1 /B 2 A 3 /B 3 B 3 /A 3 Qui è la difficoltà: da A 5 /B 4, per un tempo non progredisce né A né B
A 1 B 2 A 3 B 3 B 5 A 4 B 1 A 5 A 6 B 4 A 1 B 2 A 3 B 3 B 5 A 4 B 1 A 5 A 6 B 4 utensile F O B 3 /A 3 A 5 /B 4 B 2 /A 1 A 1 /B 2 A 3 /B 5 B 4 /A 6 B 5 /A 3 A 6 /B 4 tempo A 3 /B 3 B 4 /A 5 Sviluppo della soluzione greedy del conflitto tra A 1 e B 2 In arancio le non-greedy B 3 /A 3 non-greedy A 3 /B 5 greedy tutte soluzioni greedy dei conflitti, ma anche A 6 /B 4 è greedy perché A 6 e B 4 chiamano in simultanea
F O B 3 /A 3 A 5 /B 4 B 2 /A 1 A 1 /B 2 A 3 /B 5 B 4 /A 6 A 6 /B 4 B 5 /A 3 A 1 B 2 A 3 B 3 B 5 A 4 B 1 A 5 A 6 B 4 A 1 B 2 A 3 B 3 B 5 A 4 B 1 A 5 A 6 B 4 A 3 /B 3 B 4 /A 5 Sviluppo della soluzione non-greedy del conflitto tra A 3 e B 5
A 1 B 2 A 3 B 3 B 5 A 4 B 1 A 5 A 6 B 4 A 1 B 2 A 3 B 3 B 5 A 4 B 1 A 5 A 6 B 4 Sviluppo della soluzione non-greedy del conflitto tra A 5 e B 4 F O B 3 /A 3 A 5 /B 4 B 2 /A 1 A 1 /B 2 A 3 /B 5 B 4 /A 6 A 6 /B 4 B 5 /A 3 A 3 /B 3 B 4 /A 5
A 1 B 2 A 3 B 3 B 5 A 4 B 1 A 5 A 6 B 4 A 1 B 2 A 3 B 3 B 5 A 4 B 1 A 5 A 6 B 4 Sviluppo dellaltra soluzione greedy del conflitto tra A 6 e B 4 F O B 3 /A 3 A 5 /B 4 B 2 /A 1 A 1 /B 2 A 3 /B 5 B 4 /A 6 A 6 /B 4 B 5 /A 3 A 3 /B 3 B 4 /A 5
A 1 B 2 A 3 B 3 B 5 A 4 B 1 A 5 A 6 B 4 F B 5 /A 3 A 3 /B 5 O B 2 /A 1 Sviluppo della soluzione non-greedy del conflitto tra A 1 e B 2 A 3 /B 5 B 5 /A 3 greedy
F O B 3 /A 3 A 5 /B 4 A 1 /B 2 A 3 /B 5 B 4 /A 6 B 5 /A 3 A 6 /B 4 B 2 /A 1 GRAFO COMPLETO -Applicando Dijstra i nodi si sviluppano nellordine della numerazione (in nero i tempi candidati da O: il minimo è il definitivo) A 3 /B 3 B 4 /A 5 ESEMPIO 2JSP1: Due lavori assegnati: A e B Tempo di commutazione degli utensili = 3 t.A ut.At.But.Bindici cond. cond. op ESEMPIO 1
SCHEDULE OTTIMA e percorso critico : F O B 3 /A 3 A 5 /B 4 A 1 /B 2 A 3 /B 5 B 4 /A 6 B 5 /A 3 A 6 /B 4 B 2 /A 1 A 3 /B 3 B 4 /A 5
ALGORITMO A * La procedura di costruzione del cammino minimo e simile a quella dellalgoritmo di Dijkstra. Utilizza però, per lespansione di un nodo, una stima h* del costo di un cammino che è tra i migliori tra quelli che passano per il nodo dato
h* (i) := d*(i) + f* (i) f (i):= costo di un miglior cammino da i ad F f* (i):= stima del costo di un miglior cammino da i ad F d*(i):= costo di un miglior cammino da O a i finora trovato
h* (i) = d*(i) + f* (i) h* (i) stima del costo di un miglior cammino, passante per i, che unisce O ad F e che segue fino a i il cammino di costo minimo individuato
Se f * f A* è ammissibile Cioè Se f * è una stima per difetto di f allora A* trova un cammino ottimo verso F, se ne esiste uno
i j d(j,i) Allora, applicato come Dijkstra, A* dà la distanza minima dallorigine, perché risulta: ASSUNZIONE DI CONSISTENZA: passando per un successore non peggiora la stima, cioè: f *( j ) d ( j,i ) + f *( i ) h*(i) h*(j) => d*(i) d*(j) + d(j,i) f * ( j ) f * ( i )
i j d(j,i) d*(j) + f *(j) d*(j) + f *(i) + d(j,i) CONSISTENZA: d*(i) + f* (i) d*(j) + f* (i) + d(j,i) Nodo i già espanso: h*(i) h*(j) h*(i) h*(j) => d*(i) d*(j) + d(j,i) Cioè non posso raggiungere un nodo già espanso con distanza minore, quindi la sua distanza minima dallorigine è d(i)=d*(i). da cui, se h*(i) h*(j) cioè se: d*(i) + f * (i) d*(j) + f * (j) si ha:
B1B1 B2B2 A7A7 B7B7 A1A1 A2A2 O F f*(B 2 /A 2 )=14 f*(A 3 /B 5 )=8 A 2 /B 2 A 3 /B 5 A 6 /B 6 B 2 /A 2 B 6 /A 6 B 5 /A 3 B5B5 A3A3 A B d(B 2 /A 2, A 3 /B 5 )=7 VERIFICA DELLA CONSISTENZA ESPANSIONE DEI NODI CON A*
B1B1 B2B2 AnAn BmBm A1A1 A2A2 F O Applicazione di A* allESEMPIO 1): B1B1 B2B2 A1A1 A2A2 O A 5 /B 4 A 1 /B 2 A 3 /B 3 B 3 /A 3 I valori della stima definitiva del tempo del percorso che passa per il nodo sono in campo bianco Ottimo effettivo A 3 /B 5
F O B 3 /A 3 A 5 /B 4 A 1 /B 2 A 3 /B 5 B 4 /A 6 B 5 /A 3 A 6 /B 4 B 2 /A 1 GRAFO COMPLETO -Applicando Dijstra i nodi si sviluppano nellordine della numerazione (in nero i tempi candidati da O: il minimo è il definitivo) - Con A* si sviluppano solo O e i nodi con i numeri romani A 3 /B 3 B 4 /A 5 ESEMPIO 2JSP 1: Due lavori assegnati: A e B Tempo di commutazione degli utensili = 3 t.A ut.At.But.Bindici cond. cond. op I 1 III II O ESEMPIO 1
ESERCIZIO 1 Con i dati di cui sotto si calcoli il sequenziamento che minimizza C m, utilizzando lalgoritmo A* Due lavori assegnati: A e B Tempo di commutazione degli utensili = 0,75 t.A ut.At.But.Bindici cond. cond. op. 2, ,75 2, ,5 1,5 4 3, ,5 6 2,5 7
Programmazione dinamica per il calcolo percorso minimo: min Cm B1B1 B2B2 AnAn BmBm A1A1 A2A2 n : m d1=2,5 Si calcolano i di (distanza minima dallorigine del nodo i) trovando i percorsi minimi d fino a i: d2=4,4 d3=7,3 d4=7 d7=10,1 d6=10,8 d5=12,4 d9=13,8 d11=16,3 d10=13,8 d12=15,2 Cm=17,7 in questo caso il sequenziamento greedy minimizza Cm di d8=11 Il percorso Ha un arco non greedy
ESEMPIO 3): UNA APPLICAZIONE DI A* Problema Un flusso continuo di pezzi subisce ciascuno una sequenza di 10 operazioni: su una prima macchina le operazioni da O 1 a O v-1 e poi su una seconda macchina da O v a O 10, senza buffer fra le due macchine. Flusso continuo senza buffer significa che la prima macchina esegue la sottosequenza da O 1 a O v-1 nello stesso periodo di tempo in cui la seconda macchina esegue la sottosequenza da O v a O 10.
UNA APPLICAZIONE DI A* Problema Le operazioni richiedono i seguenti tempi: Operazioni Tempi Tra le operazioni vi sono le seguenti incompatibilità, dovute alla condivisione di risorse terze, indicate con lettere maiuscole: (O 1 O 3 O 6 ) A ; (O 2 O 7 ) B ; (O 4 O 7 ) C ; (O 6 O 8 ) D. Utilizzando il grafo generato dalla griglia di condivisione delle risorse terze, si scelga v (ovviamente da 2 a 10) in modo da minimizzare il tempo di ciclo, cioè di esecuzione in parallelo delle due sottosequenze. Si noti che, invece di usare 9 griglie, una per ciascun valore di v, che generano 9 grafi con unorigine e una destinazione, si può usare una sola griglia per generare i 9 grafi, ciascuno con la sua origine e la sua destinazione.
A O1O1 O7O7 O2O2 O3O3 O8O8 O4O4 O5O5 O6O6 O9O9 O 10 A T 1 =28 3 UNA APPLICAZIONE DI A* h ixy : stima del tempo minimo di un percorso che inizia con O i e passa per O x /O y GRIGLIA DELLE OPERAZIONI e h 2xy : v = 2 GRIGLIA DELLE OPERAZIONI e h 3xy : v = 3 B A O1O1 O2O2 O7O7 O2O2 O3O3 O8O8 O4O4 O5O5 O6O6 O9O9 O 10 A T 2 =28 T 3 = h 313 =29 h 331 =26 h 213 =29 h 231 =28
B A GRIGLIA DELLE OPERAZIONI: v da 2 a 7 (sviluppati solo i nodi migliori in A * : per v=7 si è dovuto tornare su O 7 /O 2 che ha un h * migliore di O 8 /O 6 : ) Inutile considerare v da 8 a 10 perché la somma dei tempi delle operazioni assegnate a M 1 supera il minimo, 21, finora ottenuto, perché è 21 per v=7. O1O1 O2O2 O7O7 O2O2 O3O3 O8O8 O4O4 O5O5 O6O6 O9O9 O 10 O3O3 O4O4 O5O5 O6O6 A T 2 =28 T 3 =26 C D A T 4 =25 T 5 = T 6 =22 T 7 =22 h 536 =22 h 563 =21 h 574 =21 h 547 =26 h 772 =22 h 727 =21 h 786 =23 h 747 =21 h 774 =24 h 768 =26 h 661 =22 h 616 =19 h 663 =19 h 674 =22 h 636 =22 h 672 =22 h 627 =22 h 647 =24
ESERCIZIO 2: Si risolva lo stesso problema di cui nei quadri precedenti, con le operazioni di cui sono riportati nella prima colonna glindici e nella seconda tempi, con la sola incompatibilità tra O 2, O 4 e O 5, dovuta allutilizzo dello stesso utensile i tu Con un tempo di trasporto dellutensile : = 0 oppur e 0.5
O B1/RA2B1/RA2 A1/RB2A1/RB2 A 3 /B 3 A 5 /B 4 B 3 /A 3 A 3 /B 5 B 4 /A 6 R R 2JSP: CONFLITTO DOPPIO A 1 B 2 A 3 B 3 B 5 A 2 B 1 A 5 A 6 B 4 (Si veda anche Agnetis Dispense …: 2.5 Gestione dinamica... pp. 69_ _90)
O B 2 /A 1 A2/ B1A2/ B1 A 1 B 2 A 3 B 3 B 5 A 2 B 1 A 5 A 6 B 4 B 5 /A 3 A 6 /B 4
A 1 B 2 A 3 B 3 B 5 A 2 B 1 A 5 A 6 B 4 O B1/RA2B1/RA2 B 3 /A 3 A 3 /B 5
A 1 B 2 A 3 B 3 B 5 A 2 B 1 A 5 A 6 B 4 O B1/RA2B1/RA2 B 3 /A 3 B 5 /A 3
O B1/RA2B1/RA2 A1/RB2A1/RB2 A 1 B 2 A 3 B 3 B 5 A 2 B 1 A 5 A 6 B 4 A 3 /B 3 A 5 /B 4 B 4 /A 6 B 3 /A 3 A 6 /B 4 B 5 /A 3 A 3 /B 5 B 4 /A 5 B 2 /A 1 A2/ B1A2/ B1
DUPLICAZIONE DEGLI UTENSILI La duplicazione degli utensili riduce i conflitti, duplicare un utensile vuol dire eliminare alcune zone critiche
B1B1 B2B2 B5B5 A1A1 A2A2 B4B4 B3B3 A3A3 A4A4 A5A5
B1B1 B2B2 AnAn BmBm A1A1 A2A2 UTENSILE DUPLICATO
il problema diviene quindi duplice: minimizzazione del tempo di completamento minimizzazione del numero di utensili duplicati
si può procedere come per la minimizzazione di F ed T max: si minimizza il tempo con un vincolo sulla duplicazione, per trovare poi una curva di efficienza muovendo il vincolo
La minimizzazione del tempo con vincolo sulla duplicazione degli utensili e risolubile tramite la programmazione dinamica, utilizzando unistanza di : PERCORSO MINIMO PESATO
F O B 3 /A 3 A 3 /B 3 A 1 /B 2 A 5 /B 4 B 4 /A 5 B 5 /A 3 A 3 /B 5 B 2 /A 1 B1B1 B2B2 B5B5 A1A1 A2A2 B4B4 B3B3 A3A3 A4A4 A5A Numerazione Topologica: i Ogni arco ha un costo (tempo occorrente) e un peso
PROGRAMMAZIONE DINAMICA* Per trovare il percorso minimo, conviene applicare lintuitivo principio della programmazione dinamica (Belman), che si può sempre applicare a grafi aciclici con pesi anche non tutti dello stesso segno (positivi o negativi). Il principio di Belman si applica a qualsiasi sistema a stati continui o discreti, finiti o infiniti: Qualsiasi segmento di un percorso ottimo nello spazio (o nel grafo) di stato è ottimo (ovviamente secondo lo stesso indice di prestazione o costo), a partire dallo stato di inizio del segmento e arrivare al suo stato di fine *per approfondimenti libri didattici di Ricerca Operativa
PROGRAMMAZIONE DINAMICA La programmazione dinamica di Belman si può applicare a grafi aciclici allindietro (considerando prima di tutto i predecessori dello stato finale a cui si vuol giungere) o in avanti, come faremo: Per ogni nodo, in una successione che rispetta lordinamento parziale indotto dal grafo aciclico, si calcola il percorso minimo dallorigine, scegliendo tra i suoi predecessori, nel rispetto dei vincoli, finché si raggiunge la fine.
O r i i t i,r : tempo dellarco i => r w i r : peso dellarco tra i ed r F ( r,h ): tempo del percorso minimo dallorigine ad r, di peso h i < r i Per il principio di Belman, se un percorso ottimo da O a r passa per un predecessore i, anche il suo segmento da O a i è ottimo. Di conseguenza, basta confrontare le somme del tempo di ciascun arco i => r più quello del percorso ottimo che arriva a i con peso sufficiente [quello desiderato (qui h) meno quello dellarco i => r ] F F ( r,h-w i r ) t i,r w i r F ( r,h)
SOLUZIONE DEL PROBLEMA Programmazione dinamica: F(r,h) = min i<r [ F( i, h-w i r ) + t i,r ] SOL. OTTIMA F (n,k) Se si vuol provare il percorso a tempo minimo con peso non superiore a k, si comincia dagli F(r,h) degli immediati successori di O con peso h k :
B1B1 B2B2 A7A7 B7B7 A1A1 A2A2 O F A 2 /B 2 A 6 /B 6 B 2 /A 2 B 6 /A 6 B 5 /A 3 B5B5 A3A3 SOLUZIONE DEL PROBLEMA? No! ARCO DI PESO 1 ARCO DI PESO 0, se si arriva al nodo A 3 /B 5 direttamente dallorigine (senza zone ) altrimenti no: il nodo non è più uno stato! A 3 /B 5
c.s. ogni utensile può essere utizzato più volte da un solo job, ma non più di una volta da entrambi i job TUTTE LE ZONE PROIBITE ASSOCIATE AD UN TIPO DI UTENSILE SONO DISPOSTE SULLA STESSA FASCIA VERTICALE O ORIZZONTALE DELLA GRIGLIA CIOE
se la C.S. e soddisfatta il peso di un arco dipende solo dal nodo da cui parte, che quindi resta uno stato
B1B1 B3B3 B6B6 A1A1 A2A2 B5B5 B4B4 A3A3 A4A4 A6A6 O F B2B2 A5A5 Infatti la C.S. garantisce che non ci siano zone proibite fra quelle dellutensile duplicato, quindi si deve attraversare tutta la relativa fascia incrementando di 1 il peso dellarco. Viceversa non si devono considerare archi che partono da nodi stato delle zone della fascia e ne tagliano altre
B1B1 B3B3 B6B6 A1A1 A 23 B5B5 B4B4 A4A4 A6A6 O F B2B2 A5A5 Viceversa non si devono considerare archi che partono da nodi stato delle zone della fascia e ne tagliano altre. Attenzione: da A 23 / B 4 parte un arco di peso 1 (si pensi al Gentt) anche se il punto rappresentava pure un nodo della stessa fascia dellutensile duplicato
Esercizio 3: 2JSP, con duplicazione utensili condivisi: Minimizzare il tempo di completamento di due lavori A e B duplicando al più un utensile t.A ut.At.But.Bindici cond. cond. op (Si veda prima esempio su Agnetis Dispense …: 2.5 Gestione dinamica... p. 88)
Esercizio 4: 2JSP: duplicazione utensili condivisi e tempo di trasporto > 0 Minimizzare il tempo di completamento di due lavori A e B duplicando al più un utensile t.A ut.At.But.Bindici op
se la C.S. non e soddisfatta Il peso di un arco può dipendere da come si è arrivati al nodo da cui parte, che quindi non rappresenta più uno stato del sistema per cui non è più applicabile la programmazione dinamica
B1B1 B2B2 A7A7 B7B7 A1A1 A2A2 O F A 2 /B 2 A 3 /B 5 A 6 /B 6 B 2 /A 2 B 6 /A 6 B 5 /A 3 B5B5 A3A3 Se le zone proibite relative a uno stesso utensile non sono tutte nella stessa fascia, fra di esse ve ne possono essere altre, quindi il peso di un arco può non essere univocamente determinato, ma dipende dallevoluzione precedente ARCO DI PESO 1 ARCO DI PESO 0, se si arriva al nodo A 3 /B 5 direttamente dallorigine (senza zone, altrimenti no: il nodo non è più uno stato!
Linea di 4 macchine con buffer M1M1M1M1 M4M4M4M4 La soluzione del 2JSP è la generalizzazione di quella data da Aker per 2 lavori J i di m operazioni in serie da eseguire su una linea con buffer intermedi: ciascuno di lunghezza temporale t i sulla macchina M i (i=1,…, m) Per minimizzare il tempo di completamento C m si usa una griglia di condivisione in cui le zone proibite riguardano le macchine M2M2M2M2 M3M3M3M3 B B B
F OO M3M3 M4M4 M1M1 M2M2 B1B1 B2B J2J2 J1J1
M1M2 M3 M4 Min C m si può risolvere come un 2JSP allo stesso modo
M1M2 M3 M4 Min C m non si può risolvere allo stesso modo quando i lavori sono n>2 (già per n=3 le zone proibite sarebbero cubi e la progressione greedy potrebbe incidere su una faccia ….)