2JSP: Condivisione a tempo minimo di risorse per due lavori*.

Slides:



Advertisements
Presentazioni simili
Attività per gli studenti sulla piattaforma e-learning “docebo
Advertisements

Premessa: si assume di aver risolto (correttamente
Algoritmi e Strutture Dati
MONITORAGGIO MATEMATICA V A Alunni 26 Presenti 23 Quesiti 44 Risposte totali 650 Risultato medio 28,3 media 64,2%
Il problema del minimo albero ricoprente in un grafo non cooperativo
Esercizio d’esame Petri e Gantt B
Informatica Generale Alessandra Di Pierro
Frontespizio Economia Monetaria Anno Accademico
Algoritmi e Strutture Dati
esponente del radicando
2ab2 2b4 4x − 2y a 3b2y3 3b2y3b Definizione e caratteristiche
Cammini minimi con una sorgente
Alberi binari di ricerca
Cammini minimi con sorgente singola
GESTIONE DELLA PRODUZIONE
Ordini Parziali - Reticoli
Fogli elettronici Microsoft Excel.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati
R. Soncini Sessa, MODSS, L 24b Analisi a molti obiettivi-esempi Rodolfo Soncini Sessa MODSS Copyright 2004 © Rodolfo Soncini Sessa.
Identificazione delle attività
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 8 Marzo 2013.
Process synchronization
1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Il problema del minimo albero ricoprente in un grafo con archi privati
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Flusso Massimo Applicazione di algoritmi
Flusso Massimo Applicazione Algoritmi Esercizio 1 Sia dato la seguente rete di flusso, in cui la sorgente è il nodo 1 e la destinazione è il nodo 6. I.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Algoritmi e Strutture Dati (Mod. B)
1. ( punti 7 ) Siano dati un insieme di localizzazioni potenziali (nodi grandi) ed un insieme di clienti da servire (nodi piccoli). Il costo di afferenza.
08 Esame1 AI I 18apr Un FMS lavora a ciclo continuo tre tipi di pezzi. Quelli di tipo A visitano prima la macchina M1, poi M2 ed infine sono rilasciati.
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.
B D1D1 D2D2 B2B2 6 4 B3B3 3 B1B1 2 1 B4B4 B5B5 D3D3 D4D4 D5D5 D6D6 a b c a T=22 c d T= P.D. SENZA e CON DUPLICAZIONE.
LEGENDA GialloZona proibita RossoPunto di scambio utensile Lavoro B Lavoro A.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Simulazione di un esperimento di laboratorio: Caduta di un corpo quadrato in.
Heap binomiali Gli heap binomiali sono strutture dati su cui si possono eseguire efficientemente le operazioni: Make(H) : crea uno heap vuoto Insert(H,
Napoa Azione 4 – Gruppo B7 1.Risultati della somministrazione 2002: M2 Vamio Analisi item test di profitto rispetto ai contenuti riferiti ai temi ministeriali.
Cos’è un problema?.
Lezione 8 Numerosità del campione
Num / 36 Lezione 9 Numerosità del campione.
Intelligenza Artificiale
Elaborato di Teoria dello Sviluppo dei Processi Chimici
Velocità ed accelerazione
Confronto tra il risultato di scuola e il risultato nazionale (item per item) - MATEMATICA II primaria Il grafico permette di confrontare per ciascun.
SCOMPOSIZIONE IN FATTORI PRIMI di un polinomio
Elementi di Informatica di base
ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE ORDINE DI CHIAMATA a 1minuto e 2 minuti PRINCIPALI TEMPI DELLA COMPETIZIONE.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Metodi di soluzione guasti nel volo in formazione di velivoli autonomi Candidato: Simone Di Nisio Relatori: Prof. M.Innocenti Prof. A. Balestrino.
Somma fra frazioni algebriche
1)Completa la seguente successione: C4, B7, E10, D13, G16,. A. G19 B
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi e Strutture Dati
Un trucchetto di Moltiplicazione per il calcolo mentale
Riepilogo Foglio elettronico Excel - Base
Prof. Cerulli – Dott.ssa Gentili
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 13 Marzo 2014.
Monitoraggio verifiche di Istituto
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
Soluzione: Algoritmo Heap-Sort Un array A[1..n] può essere interpretato come un albero binario: A[1] è la radice, A[2i] e A[2i+1] sono i figli di A[i]
Risoluzione di Problemi con gli algoritmi Ricorsivi
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Transcript della presentazione:

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

2JSP: two job shop problem Cioè problema di due lavori da svolgere in un’officina 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) l’impiego della risorsa da condividere da un lavoro all’altro, in caso di conflitto.

ESEMPIO 2JSP1: Due lavori: A e B t.A ut.A t.B ut.B indici a cond. b cond. op. 2,5 m 2 r 1 1,7 2,4 m 2 3,1 n 2,1 n 3 1,6 r 1,4 l 4 3,5 l 3,1 n 5 1,4 l 6 2,5 l 7

Tempo di completamento: Cm CELLA CON UTENSILI CONDIVISI: condivisione a tempo minimo: Gantt Tempo di trasferimento trascurabile (Si veda anche Agnetis ”Dispense …”: 2.3 scheduling .. pp. 49_ _53) a1 a2 a3 a4 a5 a6 a7 Robot trasferisce utensile m l l n b1 b2 b3 b4 b5 Tempo di completamento: Cm Sequenziamento greedy (famelico): le operazioni iniziano appena possibile, cioè prende prima l’utensile chi lo chiede prima (minimizza Cm?)

n l l n m r Tempo robot trascurabile: Condivisione a tempo minimo GRIGLIA DELLE OPERAZIONI Tempo robot trascurabile: Condivisione a tempo minimo a1 a2 a3 a4 a5 a6 a7   n n : m Bm b5 a6 + a7     l l b4 l b4     Progredire delle operazioni B n b3 a4 + a5   m B2 a2 + a3 b2  r B1 a1 b1  Progr. di B2 A1 A2 An Progress. di A2 Progredire delle operazioni A

ESEMPIO 2JSP2: Due lavori assegnati: A e B t.A ut.A t.B ut.B indici a cond. b cond. op. 14 m 12 r 1 10 16 m 2 16 n 14 n 3 18 r 9 l 4 31 l 20 n 5 14 l 6

n l l n m r a1 a2 a3 a4 a5 a6 Bm b5 b5 b4 b3 b2 + b3 a4 + a5 B2 b2   n Bm b5 b5    l b4 l b4    n b3 b2 + b3 a4 + a5   m B2 b2 (b2 + b3) + a6 = (a2 )+ b4 + b5 a2 + a3  b1 B1 a1 r  A1 A2 An il percorso minimo può non essere unico

CELLA CON UTENSILI CONDIVISI Tempo di completamento Cm b1 b2 b3 b4 b5 Schedule equivalente: a1 a2 a3 a4 a5 a6 m n n b1 b2 b3 b4 b5 Tempo di completamento Cm il percorso minimo può non essere unico: qui due seq. ottimi

F O CELLA CON UTENSILI CONDIVISI a1 a2 a3 a4 a5 a6 m n n A1/B2 B3/A3 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

SCAMBIO UTENSILI : STATI DAL GANTT “greedy” b1 b2 b3 b4 b5 B5/A3 B2/A1 O F A3/B5 a1 a2 a3 a4 a5 a6 m n alternativa b1 b2 b3 b4 b5

n l l n m r F B5/A3 B4/A6 B4/A5 A3/B5 B3/A3 A5/B4 A6/B4 B2/A1 A1/B2 O   n B5/A3 b5 Bm b5 B4/A5 B4/A6    l b4 l b4 A3/B5 B3/A3    n A5/B4 A6/B4 b3 a4 + a5 B2/A1   m B2 a2 + a3 b2  r A1/B2 B1 a1 b1  O A1 A2 An

Schedule equivalente: CELLA CON UTENSILI CONDIVISI a1 a2 a3 a4 a5 a6 m n l l b1 b2 b3 b4 b5 Schedule equivalente: a1 a2 a3 a4 a5 a6 m n n b1 b2 b3 b4 b5 Cm Si supponga non trascurabile il tempo di commutazione

UTENSILI CONDIVISI: tempo robot a1 a2 a3 a4 a5 a6 m n l l Schedule migliore b1 b2 b3 b4 b5 t t t t a1 a2 a3 a4 a5 a6 m n n b1 b2 b3 b4 b5 t t t se t > 0, con i dati di prima, il sequenziamento con più commutazioni è il migliore

ALGORITMO A* La procedura di costruzione del cammino minimo e’ simile a quella dell’algoritmo di Dijkstra. Utilizza però, per l’espansione 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) = 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) f *( j )  d ( j,i ) + f *( i ) ASSUNZIONE DI CONSISTENZA: passando per un successore non peggiora la stima, cioè: f *( j )  d ( j,i ) + f *( i ) i: nodo prec. sviluppato j: sviluppato al passo j Allora, applicato come Dijkstra, A* dà la distanza minima dall’origine, perché risulta: h*(i)  h*(j) => d*(i)  d*(j) + d(j,i)

d*(j) + f *(j)  d*(j) + f *(i) + d(j,i) Nodo i già espanso: h*(i)  h*(j) j d(j,i) i CONSISTENZA: d*(j) + f *(j)  d*(j) + f *(i) + d(j,i) da cui, se h*(i)  h*(j) cioè se: d*(i) + f * (i)  d*(j) + f * (j) si ha: d*(i) + f* (i)  d*(j) + f* (i) + d(j,i) 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 dall’origine è d(i)=d*(i).

b b g d b b F O ESPANSIONE DEI NODI CON A* f*(A3/B5)=8 f*(B2/A2 )=14 VERIFICA DELLA CONSISTENZA F  B7 B6/A6  b b   f*(A3/B5)=8 g B5/A3 A6/B6 B5  A3/B5 A B a 2 e 1 b 4 b 3 g 3 d 3 a 1 e 1 d 2 g 4 b 2 b 2 a 2 e 2 d B2/A2  B2 b b  B1  A2/B2 O A1 A2 A3 A7 d(B2/A2, A3/B5)=7 ESPANSIONE DEI NODI CON A*

UTENSILI CONDIVISI: tempo robot t > 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

r n l l n m m Difficoltà di rappresentare sulla griglia il tempo t F O  n Bm b5 t   B4/A6 t+a3 l l b4 A3/B5 t   B3/A3 n a4+a5 A5/B4 b3 Qui è la difficoltà: da A5/B4, per un tempo t non progredisce né A né B   m m a2+a3 A3/B3 t+b2+b3 B2 B2 b2 t  r A1/B2 B1 B1 a1 b1  An O O A1 A1 A2 A2 t

F O m A1 B2 n A3B3B5 r A4B1 l A5A6B4 t+b2+b3 a4 + a5 +a6 t+a3 a1 t+a6 m utensile n n B3/A3 non-greedy A3/B5 greedy b1 b2 b3 b4 b5 B2/A1 B5/A3 t tempo B3/A3 t+b2+b3 A3/B5 a4 + a5 +a6 t+a3 A1/B2 O F a1 B4/A5 t+a6 A3/B3 B4/A6 a2+a3 t+b4 Sviluppo della soluzione greedy del conflitto tra A1 e B2 In arancio le non-greedy a4 + a5 A5/B4 A6/B4 a1 a2 a3 a4 a5 a6 m n l l b1 b2 b3 b4 b5 tutte soluzioni greedy dei conflitti, ma anche A6/B4 è greedy perché A6 e B4 chiamano l in simultanea

O F m A1 B2 n A3B3B5 r A4B1 l A5A6B4 b4+ b5 t+b2+ b3 a1 t+a3+a4+a5+a6 Cambiano continuamente i colori delle stesse cose! A1/B2 O F a1 B4/A5 A3/B3 B4/A6 t+a6 a2+a3 t+b4 A5/B4 a4 + a5 A6/B4 Sviluppo della soluzione non-greedy del conflitto tra A3 e B5

O F m A1 B2 n A3B3B5 r A4B1 l A5A6B4 b4+ b5 t+b2+ b3 a1 t+a3+a4+a5+a6 Sviluppo della soluzione non-greedy del conflitto tra A5 e B4 t+b3+ b4 t+a5 +a6 B4/A5 m a1 a6 a2 a3 a4 a5 b4 b1 b2 b5 l n b3

O F m A1 B2 n A3B3B5 r A4B1 l A5A6B4 b4+ b5 t+b2+ b3 a1 t+a3+a4+a5+a6 Sviluppo dell’altra soluzione greedy del conflitto tra A6 e B4 t+b3+ b4 t+a5 +a6 a6 A6/B4 B4/A5 a1 a2 a3 a4 a5 a6 m n l b1 b2 b3 b4 b5

F O t+a3 +a4 + a5 +a6 b3+ b4+ b5 b1+ b2 m A1 B2 n A3B3B5 r A4B1 B5/A3 greedy b1 b2 b3 b4 b5 B5/A3 t+a3 +a4 + a5 +a6 b3+ b4+ b5 b1+ b2 Sviluppo della soluzione non-greedy del conflitto tra A1 e B2 B2/A1 O F m A1 B2 n A3B3B5 r A4B1 l A5A6B4 t+ a1 + a2+a3 a4 + a5 +a6 A3/B5 a1 a2 a3 a4 a5 a6 m n A3/B5 b1 b2 b3 b4 b5

O F b3+ b4+ b5 t+ a1 + a2+a3 b4+ b5 t+a3+a4+a5+a6 b1+ b2 t+b2+b3 t+a3 ESEMPIO 2JSP1: Due lavori assegnati: A e B Tempo di commutazione degli utensili t = 3 t.A ut.A t.B ut.B indici a cond. b cond. op. 14 m 12 r 1 10 16 m 2 16 n 14 n 3 18 r 9 l 4 31 l 20 n 5 14 l 6 GRAFO COMPLETO Applicando Dijstra i nodi si sviluppano nell’ordine della numerazione (in nero i tempi candidati da O: il minimo è il definitivo) ESEMPIO 1 B2/A1 71 B5/A3 b3+ b4+ b5 28 t+ a1 + a2+a3 76 2 b4+ b5 7 b1+ b2 4 t+a3+a4+a5+a6 6 B3/A3 t+b2+b3 71 t+a3 A3/B5 O 66 a4 + a5 +a6 47 1 3 a4 + a5 A1/B2 A3/B3 F a1 153 9 129 B4/A6 t+b4 t+a6 118 14 a2+a3 A5/B4 40 114 135 101 t+a5 +a6 t+b3+ b4 89 8 t+b4+b5 B4/A5 a6 A6/B4 5 66 10 103

O F SCHEDULE OTTIMA e percorso critico: b3+ b4+ b5 t+ a1 + a2+a3 B2/A1 B5/A3 t+ a1 + a2+a3 b4+ b5 b1+ b2 t+a3+a4+a5+a6 B3/A3 t+b2+b3 t+a3 A3/B5 O a4 + a5 +a6 a4 + a5 a1 A1/B2 A3/B3 F B4/A6 t+b4 t+a6 a2+a3 A5/B4 t+a5 +a6 t+b3+ b4 t+b4+b5 B4/A5 a6 A6/B4 SCHEDULE OTTIMA e percorso critico: m a1 a6 a2 a3 a4 a5 b4 b1 b2 b5 l n b3

r n l l n m m Applicazione di A* all’ESEMPIO 1): F O O a4 a1 a2 a3 a5  114 Ottimo effettivo n Bm t+a5+a6 b5 a5 +a6 a4 + a5 +a6 a3 + a4 + a5 +a6 a1 + a2 + a3 + a4 + a5 +a6 a2 + a3 + a4 + a5 +a6  111 l l A3/B5 b4   B3/A3 n 126 t+b3+b4 a4+a5 118 A5/B4 b3 103 I valori della stima definitiva del tempo del percorso che passa per il nodo sono in campo bianco   131 m m a2+a3 A3/B3 t+b2+b3 B2 B2 b2 t 103  r A1/B2 B1 B1 a1 b1  An O O A1 A1 A2 A2 t

O F b3+ b4+ b5 t+ a1 + a2+a3 b4+ b5 t+a3+a4+a5+a6 b1+ b2 t+b2+b3 t+a3 ESEMPIO 2JSP 1: Due lavori assegnati: A e B Tempo di commutazione degli utensili t = 3 t.A ut.A t.B ut.B indici a cond. b cond. op. 14 m 12 r 1 10 16 m 2 16 n 14 n 3 18 r 9 l 4 31 l 20 n 5 14 l 6 GRAFO COMPLETO Applicando Dijstra i nodi si sviluppano nell’ordine 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 B2/A1 71 B5/A3 ESEMPIO 1 b3+ b4+ b5 28 t+ a1 + a2+a3 76 2 b4+ b5 7 b1+ b2 4 t+a3+a4+a5+a6 6 B3/A3 t+b2+b3 71 t+a3 A3/B5 O 66 a4 + a5 +a6 47 1 A1/B2 3 a4 + a5 F O a1 A3/B3 153 9 129 B4/A6 t+b4 t+a6 118 I 14 a2+a3 A5/B4 40 114 135 101 II t+b3+ b4 89 t+a5 +a6 8 t+b4+b5 B4/A5 a6 A6/B4 III 5 66 10 103

Due lavori assegnati: A e B ESERCIZIO 1 Con i dati di cui sotto si calcoli il sequenziamento che minimizza Cm, utilizzando l’algoritmo A* Due lavori assegnati: A e B Tempo di commutazione degli utensili t = 0,75 t.A ut.A t.B ut.B indici a cond. b cond. op. 2,5 m 2 r 1 1,75 2,5 m 2 3 n 2 n 3 1,5 r 1,5 l 4 3,5 l 3 n 5 1,5 l 6 2,5 l 7

Programmazione dinamica per il calcolo percorso minimo: min Cm Si calcolano i di (distanza minima dall’origine del nodo i) trovando i percorsi minimi d fino a i: di a1 a2 a3 a4 a5 a6 a7 Cm=17,7   d8=11 Il percorso Ha un arco non greedy n n : m Bm b5 a6 + a7 d7=10,1 d6=10,8 d10=13,8 d12=15,2     l b4 l b4     d4=7 n d5=12,4 d9=13,8 d11=16,3 b3 a4 + a5 d2=4,4   m d3=7,3 B2 a2 + a3 b2  d1=2,5 r B1 a1 b1  A1 A2 An in questo caso il sequenziamento greedy minimizza Cm

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 O1 a Ov-1 e poi su una seconda macchina da Ov a O10, senza buffer fra le due macchine. Flusso continuo senza buffer significa che la prima macchina esegue la sottosequenza da O1 a Ov-1 nello stesso periodo di tempo in cui la seconda macchina esegue la sottosequenza da Ov a O10.

UNA APPLICAZIONE DI A* Problema Le operazioni richiedono i seguenti tempi: Operazioni 1 2 3 4 5 6 7 8 9 10 Tempi 3 2 1 4 5 6 4 3 2 1 Tra le operazioni vi sono le seguenti incompatibilità, dovute alla condivisione di risorse terze, indicate con lettere maiuscole: (O1O3O6)A ; (O2O7)B ; (O4O7)C ; (O6O8)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 un’origine e una destinazione, si può usare una sola griglia per generare i 9 grafi, ciascuno con la sua origine e la sua destinazione.

A A B A A UNA APPLICAZIONE DI A* hixy: stima del tempo minimo di un percorso che inizia con Oi e passa per Ox/Oy GRIGLIA DELLE OPERAZIONI e h2xy: v = 2 2 1 4 5 6 4 3 2 1 h213=29   T1=28 A A 3 O1   h231=28 O2 O3 O4 O5 O6 O7 O8 O9 O10 GRIGLIA DELLE OPERAZIONI e h3xy: v = 3 1 4 5 6 4 3 2 1 2  T3=26 O2 2 h313=29 B    T2=28 A A 3 O1     h331=26 O2 O3 O4 O5 O6 O7 O8 O9 O10

GRIGLIA DELLE OPERAZIONI: v da 2 a 7 1 4 5 6 4 3 2 1 T7=22   GRIGLIA DELLE OPERAZIONI: v da 2 a 7 (sviluppati solo i nodi migliori in A*: per v=7 si è dovuto tornare su O7/O2 che ha un h* migliore di O8/O6 : ) Inutile considerare v da 8 a 10 perché la somma dei tempi delle operazioni assegnate a M1 supera il minimo, 21, finora ottenuto, perché è 21 per v=7. D h768=26 O6 6 T6=22   h786=23 O5 5 h747=21 T5=21 h547=26      C h647=24 O4 4 h774=24 h536=22 h636=22 T4=25    h727=21   h574=21  O3 1 A      h674=22 T3=26 h563=21 O2 2 h663=19 B h627=22  h672=22      T2=28 h616=19 A A 3 h772=22 O1 h661=22         O2 O3 O4 O5 O6 O7 O8 O9 O10

ESERCIZIO 2: Si risolva lo stesso problema di cui nei quadri precedenti, con le operazioni di cui sono riportati nella prima colonna gl’indici e nella seconda tempi, con la sola incompatibilità tra O2, O4 e O5, dovuta all’utilizzo dello stesso utensile a i t u 1 3 2 2 a 3 1 4 4 a 5 2 a Con un tempo di trasporto dell’utensile a: t = 0 oppure 0.5

2JSP: CONFLITTO DOPPIO O m A1 B2 n A3B3B5 r A2B1 l A5A6B4 a1 a2 a3 a4 (Si veda anche Agnetis ”Dispense …”: 2.5 Gestione dinamica ... pp. 69_ _90) a1 a2 a3 a4 a5 a6 r m n l l b1 R b2 b3 b4 b5 B1/RA2 A3/B3 A5/B4 B4/A6 m A1 B2 n A3B3B5 r A2B1 l A5A6B4 O B3/A3 A3/B5 A1/RB2 a1 a2 a3 a4 a5 a6 R m r n n b1 b2 b3 b4 b5

m A1 B2 n A3B3B5 r A2B1 l A5A6B4 O a1 a2 a3 a4 a5 a6 m n b1 b2 b3 b4 B2/A1 B5/A3 O A2/ B1 A6/B4 a1 a2 a3 a4 a5 a6 r l b1 b2 b3 b4 b5

m A1 B2 n A3B3B5 r A2B1 l A5A6B4 O B1/RA2 B3/A3 A3/B5 a1 a2 a3 a4 a5

m A1 B2 n A3B3B5 r A2B1 l A5A6B4 O B5/A3 B3/A3 B1/RA2 a1 a2 a3 a4 a5 r

m A1 B2 n A3B3B5 r A2B1 l A5A6B4 O B5/A3 B3/A3 A3/B5 B4/A6 B2/A1 A1/RB2 A2/ B1

DUPLICAZIONE DEGLI UTENSILI La duplicazione degli utensili riduce i conflitti, duplicare un utensile vuol dire eliminare alcune zone critiche

n m  B1 B2 B5 A1 A2 l B4 B3 A3 A4 A5

n n m a4 + a5 +a6 , 1 a2+a3 , 0 UTENSILE l DUPLICATO a1,0   Bm    An

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 Tmax: si minimizza il tempo con un vincolo sulla duplicazione, per trovare poi una curva di efficienza muovendo il vincolo

PERCORSO MINIMO PESATO La minimizzazione del tempo con vincolo sulla duplicazione degli utensili e’ risolubile tramite la programmazione dinamica, utilizzando un’istanza di : PERCORSO MINIMO PESATO

Ogni arco ha un costo (tempo occorrente) e un peso a1+ a2+a3+a4+ a5 , 2 B5/A3 1 5 B2/A1 A3/B5 2 6 B4/A5 1 O B3/A3 8 a3+a4+ a5 , 1 A1/B2 A5/B4 4 F 9 1 7 1 A3/B3 Numerazione Topologica: a2+a3+a4+ a5 , 1 3 i   5 n 9 B5   6 8 l B4   4 n 7 B3   2 m 3 B2 1 B1  A1 A2 A3 A4 A5

PROGRAMMAZIONE DINAMICA La programmazione dinamica di Belman si può applicare a grafi aciclici all’indietro (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 l’ordinamento parziale indotto dal grafo aciclico, si calcola il percorso minimo dall’origine, scegliendo tra i suoi predecessori, nel rispetto dei vincoli, finché si raggiunge la fine.

i i r i i < r ti,r : tempo dell’arco i => r 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 dell’arco i => r ] F ( r,h-w i r) i ti,r w i r i r F O F ( r,h) i < r i ti,r : tempo dell’arco i => r w i r: peso dell’arco tra i ed r F ( r,h ): tempo del percorso minimo dall’origine ad r, di peso  h

SOLUZIONE DEL PROBLEMA F(r,h) = mini<r [ F( i, h-w i r) + ti,r ] Programmazione dinamica: F(r,h) = mini<r [ F( i, h-w i r) + ti,r ] 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 : SOL. OTTIMA  F (n,k)

SOLUZIONE DEL PROBLEMA F(r,h) = mini<r [ F( i, h-w i r) + ti,r ] Programmazione dinamica: F(r,h) = mini<r [ F( i, h-w i r) + ti,r ] Tale realzione è valida anche se associamo un costo diverso ad ogni zona proibita (costo dell’utensile): in tal caso il peso w i r rappresenterebbe la somma dei costi di tutte le zone proibite che è necessario rimuovere per andare da i ad r e F(r;h) la soluzione ottima da O a r di costo non superiore a h.

SOLUZIONE DEL PROBLEMA? No! F  B7 B6/A6  b b   g A6/B6 B5/A3 B5 ARCO DI PESO 0, se si arriva al nodo A3/B5 direttamente dall’origine (senza zone b) altrimenti no: il nodo non è più uno stato!  A3/B5 d B2/A2 ARCO DI PESO 1 B2  b b B1  A2/B2  O A1 A2 A3 A7

CIOE’ c.s. ogni utensile può essere utizzato più volte da un solo job, ma non più di una volta da entrambi i job CIOE’ TUTTE LE ZONE PROIBITE ASSOCIATE AD UN TIPO DI UTENSILE SONO DISPOSTE SULLA STESSA FASCIA VERTICALE O ORIZZONTALE DELLA GRIGLIA

se la C.S. e’ soddisfatta il peso di un arco dipende solo dal nodo da cui parte, che quindi resta uno stato

Infatti la C.S. garantisce che non ci siano zone proibite fra quelle dell’utensile duplicato, quindi si deve attraversare tutta la relativa fascia incrementando di 1 il peso dell’arco. Viceversa non si devono considerare archi che partono da nodi stato delle zone della fascia e ne tagliano altre F   n B6   l B5   n B4   m B3  B2 B1  O A1 A2 A3 A4 A5 A6

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.A t.B ut.B indici a cond. b cond. op. 50 m 67 r 1 47 37 n 2 50 n 22 l 3 23 r 55 n 4 12 l 5 (Si veda prima esempio su Agnetis ”Dispense …”: 2.5 Gestione dinamica ... p. 88)

Esercizio 4: 2JSP: duplicazione utensili condivisi e tempo di trasporto t > 0 Minimizzare il tempo di completamento di due lavori A e B duplicando al più un utensile t.A ut.A t.B ut.B indici op. 100 90 1 t = 17 60 n 80 2 120 60 n 3 90 m 115 l 4 100 l 70 m 5 200 r 60 r 6 130 80 7

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

b b g d b b F O  B7 B6/A6    A6/B6 B5/A3 B5  A3/B5 B2/A2 B2  B1 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 dall’evoluzione precedente F  B7 B6/A6  b b   g A6/B6 B5/A3 ARCO DI PESO 0, se si arriva al nodo A3/B5 direttamente dall’origine (senza zone b), altrimenti no: il nodo non è più uno stato! B5  A3/B5 d B2/A2 B2  ARCO DI PESO 1 b b B1  A2/B2  O A1 A2 A3 A7

Linea di 4 macchine con buffer La soluzione del 2JSP è la generalizzazione di quella data da Aker per 2 lavori Ji di m operazioni in serie da eseguire su una linea con buffer intermedi: ciascuno di lunghezza temporale ti sulla macchina Mi (i=1,…, m) Linea di 4 macchine con buffer M1 M2 M3 M4 B B B Per minimizzare il tempo di completamento Cm si usa una griglia di condivisione in cui le zone proibite riguardano le macchine

J2 5 F  1 M4 1   M3 5 5 5   M2 2 B2 5 6 B1  1 M1   J1 5 O O

Min Cm si può risolvere come un 2JSP allo stesso modo

Min Cm 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 ….) M1 M2 M3 M4