2JSP: Condivisione a tempo minimo di risorse per due lavori*. Griglia, Grafo degli stati *Per la...

66
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

Transcript of 2JSP: Condivisione a tempo minimo di risorse per due lavori*. Griglia, Grafo degli stati *Per la...

Page 1: 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.

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

Page 2: 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.

2JSP: two job shop problemCioè 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.

Page 3: 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.

ESEMPIO 2JSP1: Due lavori: A e B

t.A ut.A t.B ut.B indici cond.cond.op.2,5 2 11,7 2,4 23,1 2,1 31,6 1,4 43,5 3,1 51,4 62,5 7

Page 4: 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.

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 l’utensile chi lo chiede prima (minimizza Cm?)

(Si veda anche Agnetis ”Dispense …”: 2.3 scheduling .. pp. 49_ _53)

Page 5: 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.

Progr.di B2

Progress.di A2

GRIGLIA DELLE OPERAZIONITempo robot trascurabile: Condivisione a tempo minimo

Progredire delle operazioni A

Pro

gre

dir

e d

elle

op

eraz

ion

i B

B1

B2

An

Bm

A1 A2

n : m

Page 6: 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.

ESEMPIO 2JSP2: Due lavori assegnati: A e B

t.A ut.A t.B ut.B indici cond.cond.op.14 12 110 16 216 14 318 9 431 20 514 6

Page 7: 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.

B1

B2

An

Bm

A1A2

il percorso minimo può non essere unico

Page 8: 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.

Tempo di completamento Cm

Schedule equivalente:

CELLA CON UTENSILI CONDIVISI

il percorso minimo può non essere unico: qui due seq. ottimi

Page 9: 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.

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

A1/B2B3/A3 A3/B5O F

Page 10: 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.

SCAMBIO UTENSILI : STATI DAL GANTT

B5/A3

A3/B5

FO B2/A1

“greedy”

alternativa

Page 11: 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.

B1

B2

An

Bm

A1 A2

B4/A6

B3/A3

B5/A3

B2/A1

A5/B4 A6/B4

A3/B5

B4/A5

F

O

A1/B2

Page 12: 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.

Cm

Si supponga non trascurabile il tempo di commutazione

Schedule equivalente:

CELLA CON UTENSILI CONDIVISI

Page 13: 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.

Schedule migliore

UTENSILI CONDIVISI: tempo robot > 0

se > 0, con i dati di prima, il sequenziamento con più commutazioni è il migliore

Page 14: 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.

ALGORITMO AALGORITMO 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

Page 15: 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.

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

Page 16: 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.

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

Page 17: 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.

Se f * f A* è ammissibile

Cioè

Se f * è una stima per difetto dif allora A* trova un cammino ottimo verso F, se ne esiste uno

Page 18: 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.

i

j

d(j,i

)

Allora, applicato come Dijkstra, A* dàla distanza minima dall’origine, 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 )

Page 19: 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.

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 dall’origine è d(i)=d*(i).

da cui, se h*(i) h*(j) cioè se: d*(i) + f * (i) d*(j) + f * (j) si ha:

Page 20: 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.

B1

B2

A7

B7

A1 A2O

F

f*(B2/A2 )=14

f*(A3/B5)=8

A2/B2

A3/B5

A6/B6

B2/A2

B6/A6

B5/A3B5

A3

A B

d(B2/A2, A3/B5)=7

VERIFICA DELLA CONSISTENZA

ESPANSIONE DEI NODI CON A*

Page 21: 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.

UTENSILI CONDIVISI: UTENSILI CONDIVISI: tempo robot tempo robot > 0 > 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 sequenziamenticon soluzioni alternative

Page 22: 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.

B1

B2

An

Bm

A1 A2

F

O

Difficoltà di rappresentare sulla griglia il tempo

B1

B2

A1 A2

O

B4/A6

A5/B4

A3/B5

F

A1/B2

A3/B3

B3/A3

Qui è la difficoltà: da A5/B4, per un tempo non progredisce né A né B

Page 23: 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.

AA11BB22AA33BB33BB55AA44BB11AA55AA66BB44

utensile

FO

B3/A3

A5/B4

B2/A1

A1/B2

A3/B5

B4/A6

B5/A3

A6/B4

tempo

A3/B3

B4/A5

Sviluppo della soluzione greedy del conflitto tra A1 e B2

In arancio le non-greedy

B3/A3 non-greedyA3/B5 greedy

tutte soluzioni greedy dei conflitti, ma anche A6/B4 è greedy perché A6 e B4 chiamano in simultanea

Page 24: 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.

FO

B3/A3

A5/B4

B2/A1

A1/B2

A3/B5

B4/A6

A6/B4

B5/A3

AA11BB22AA33BB33BB55AA44BB11AA55AA66BB44

A3/B3

B4/A5

Sviluppo della soluzione non-greedy del conflitto tra A3 e B5

Page 25: 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.

AA11BB22AA33BB33BB55AA44BB11AA55AA66BB44

Sviluppo della soluzione non-greedy del conflitto tra A5 e B4

FO

B3/A3

A5/B4

B2/A1

A1/B2

A3/B5

B4/A6

A6/B4

B5/A3

A3/B3

B4/A5

Page 26: 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.

AA11BB22AA33BB33BB55AA44BB11AA55AA66BB44

Sviluppo dell’altra soluzione greedy del conflitto tra A6 e B4

FO

B3/A3

A5/B4

B2/A1

A1/B2

A3/B5

B4/A6

A6/B4

B5/A3

A3/B3

B4/A5

Page 27: 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.

A1B2

A3B3B5

A4B1

A5A6B4

F

B5/A3

A3/B5

O B2/A1

Sviluppo della soluzione non-greedy del conflitto tra A1 e B2

A3/B5

B5/A3 greedy

Page 28: 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.

F

OB3/A3

A5/B4

A1/B2

A3/B5

B4/A6

B5/A3

A6/B4

B2/A1

GRAFO COMPLETOGRAFO COMPLETO-Applicando Dijstra i nodi si sviluppano nell’ordine della numerazione (in nero i

tempi candidati da O: il minimo è il definitivo)

A3/B3

B4/A5

ESEMPIO 2JSP1: Due lavori assegnati: A e BTempo di commutazione degli utensili = 3

t.A ut.A t.B ut.B indici cond.cond.op.14 12 110 16 216 14 318 9 431 20 514 6

3

4

2

47

10

9

8

7

5

6

14

28

66

76

129

40

103

10189

66

114

153

118135

71

71

1

ESEMPIO 1

Page 29: 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.

SCHEDULE OTTIMA e percorso critico:

F

OB3/A3

A5/B4

A1/B2

A3/B5

B4/A6

B5/A3

A6/B4

B2/A1

A3/B3

B4/A5

Page 30: 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.

B1

B2

An

Bm

A1 A2

F

O

Applicazione di A* all’ESEMPIO 1):

B1

B2

A1 A2

O

A5/B4

A1/B2

A3/B3

B3/A3

I valori della stima definitiva del tempo del percorso che passa per il nodo sono in campo bianco

111

118

103

131

126

103

114Ottimoeffettivo

A3/B5

Page 31: 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.

F

OB3/A3

A5/B4

A1/B2

A3/B5

B4/A6

B5/A3

A6/B4

B2/A1

GRAFO COMPLETOGRAFO 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

A3/B3

B4/A5

ESEMPIO 2JSP 1: Due lavori assegnati: A e BTempo di commutazione degli utensili = 3

t.A ut.A t.B ut.B indici cond.cond.op.14 12 110 16 216 14 318 9 431 20 514 6

3

4

2

47

10

9

8

7

5

6

14

28

66

76

129

40

103

10189

66

114

153

118135

71

71

I

1

III

II

O

ESEMPIO 1

Page 32: 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.

ESERCIZIO 1 Con i dati di cui sotto si calcoli il sequenziamento

che minimizza Cm, utilizzando l’algoritmo A*

Due lavori assegnati: A e BTempo di commutazione degli utensili = 0,75

t.A ut.A t.B ut.B indici cond.cond.op.2,5 2 11,75 2,5 23 2 31,5 1,5 43,5 3 51,5 62,5 7

Page 33: 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.

Programmazione dinamica per il calcolo percorso minimo: min Cm

B1

B2

An

Bm

A1 A2

n : m

d1=2,5

Si calcolano i di (distanza minima dall’origine del nodo i) trovando i percorsi minimi d fino a i:

d2=4,4

d3=7,3

d4=7

d7=10,1d6=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

Page 34: 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.

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.

Page 35: 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.

UNA APPLICAZIONE DI A*

ProblemaLe operazioni richiedono i seguenti tempi:Operazioni 1 2 3 4 5 6 7 8 9 10Tempi 3 2 1 4 5 6 4 3 2 1Tra 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.

Page 36: 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.

AO1

O7O2 O3

O8

O4 O5 O6 O9 O10

A

T1=28

3

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

GRIGLIA DELLE OPERAZIONI e h3xy: v = 3

B

AO1

O2

O7O2 O3

O8

O4 O5 O6 O9 O10

A

T2=28

T3=26

3

2

h313=29

h331=26

h213=29

h231=28

Page 37: 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

A

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.

O1

O2

O7O2 O3

O8

O4 O5 O6

O9 O10

O3

O4

O5

O6

A

T2=28

T3=26

C

D

AT4=25

T5=21

3

2

1

4

5

6

T6=22

T7=22

h536=22

h563=21

h574=21

h547=26

h772=22

h727=21

h786=23

h747=21

h774=24

h768=26

h661=22

h616=19

h663=19h674=22

h636=22

h672=22h627=22

h647=24

Page 38: 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.

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

i t u1 32 2 3 14 4 5 2

Con un tempo di trasporto dell’utensile : = 0 oppure 0.5

Page 39: 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.

O

B1/RA2

A1/RB2

A3/B3

A5/B4

B3/A3A3/B5

B4/A6

R

R

2JSP: CONFLITTO DOPPIO

A1B2A3B3B5A2B1A5A6B4

(Si veda anche Agnetis ”Dispense …”: 2.5 Gestione dinamica ... pp. 69_ _90)

Page 40: 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.

O

B2/A1

A2/ B1

A1B2A3B3B5A2B1A5A6B4

B5/A3

A6/B4

Page 41: 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.

A1B2A3B3B5A2B1A5A6B4

O B1/RA2

B3/A3

A3/B5

Page 42: 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.

A1B2A3B3B5A2B1A5A6B4

O B1/RA2

B3/A3

B5/A3

Page 43: 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.

O

B1/RA2

A1/RB2

A1B2A3B3B5A2B1A5A6B4

A3/B3 A5/B4

B4/A6B3/A3

A6/B4

B5/A3

A3/B5

B4/A5

B2/A1

A2/ B1

Page 44: 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.

DUPLICAZIONE DEGLI UTENSILI

La duplicazione degli

utensili riduce i conflitti,

duplicare un utensile vuol

dire eliminare alcune zone

critiche

Page 45: 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.

B1

B2

B5

A1 A2

B4

B3

A3 A4 A5

Page 46: 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.

B1

B2

An

Bm

A1 A2

UTENSILE DUPLICATO

Page 47: 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.

il problema diviene

quindi duplice:

• minimizzazione del tempo di completamento

• minimizzazione del numero di utensili duplicati

Page 48: 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.

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

Page 49: 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.

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

PERCORSO MINIMO PESATO

Page 50: 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.

F

OB3/A3

A3/B3

A1/B2A5/B4

B4/A5

B5/A3

A3/B5B2/A1

B1

B2

B5

A1 A2

B4

B3

A3 A4 A5

2

5

1

4

6

8

3

97

2

5

1

6

4

8

3

9

7

0

Numerazione

Topologica:

i

Ogni arco ha un costo (tempo occorrente) e un peso

Page 51: 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.

PROGRAMMAZIONE PROGRAMMAZIONE DINAMICADINAMICALa 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.

Page 52: 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.

O ri

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

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 dell’arco i => r ]

FF ( r,h-w i r

)ti,r w i r

F ( r,h)

Page 53: 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.

SOLUZIONE DEL PROBLEMA

Programmazione dinamica:

F(r,h) = mini<r [ F( i, h-w i r) + ti,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 :

Page 54: 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.

SOLUZIONE DEL PROBLEMA

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.

Page 55: 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.

B1

B2

A7

B7

A1 A2O

F

A2/B2

A6/B6

B2/A2

B6/A6

B5/A3B5

A3

SOLUZIONE DEL PROBLEMA? No!

ARCO DI PESO 1

ARCO DI PESO 0, se si

arriva al nodo A3/B5 direttamente dall’origine (senza zone ) altrimenti no: il nodo non è più uno stato!

A3/B5

Page 56: 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.

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’

Page 57: 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.

se la C.S. e’ soddisfatta

il peso di un arco dipende solo dal nodo da cui parte, che quindi

resta uno stato

Page 58: 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.

B1

B3

B6

A1 A2

B5

B4

A3 A4 A6O

F

B2

A5

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

Page 59: 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.

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 cond.cond.op.50 67 147 37 250 22 323 55 412 5

(Si veda prima esempio su Agnetis ”Dispense …”: 2.5 Gestione dinamica ... p. 88)

Page 60: 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.

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.A t.B ut.B indici op.100 90 1

1760 80 2120 60 3 115 4 70 5 6 80 7

Page 61: 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.

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

Page 62: 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.

B1

B2

A7

B7

A1 A2O

F

A2/B2

A3/B5

A6/B6

B2/A2

B6/A6

B5/A3B5

A3

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

ARCO DI PESO 1

ARCO DI PESO 0, se si arriva al nodo A3/B5 direttamente dall’origine (senza zone , altrimenti no: il nodo non è più uno stato!

Page 63: 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.

Linea di 4 macchine con buffer

MM11 MM44

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)

Per minimizzare il tempo di completamento Cm si usa una griglia di condivisione in cui le zone proibite riguardano le macchine

MM22 MM33B B B

Page 64: 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.

F

OO

M3

M4

M1

M2

B1

B2

1

5

5

5

55

5

6

2

1 1

J2

J1

Page 65: 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.

M1 M2

M3 M4

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

Page 66: 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.

M1 M2

M3 M4

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 ….)