Upload
buikhuong
View
228
Download
0
Embed Size (px)
Citation preview
Metodi di Ottimizzazione mod. Modelli per la pianificazione
delle attività
Paolo Detti Dipartimento di Ingegneria dell’Informazione e Scienze
Matematiche Università di Siena
Il corso ha lo scopo di fornire le tecniche per la formulazione e la soluzione di particolari problemi di ottimizzazione discreta, relativi alla pianificazione temporale di attività. http://www.dii.unisi.it/~detti/ModPianAttivitaMod2.htm
Docente: Paolo Detti Contatti: [email protected] http://www.dii.unisi.it/~detti/ Ricevimento su appuntamento
Metodi di Ottimizzazione mod. Modelli per la pianificazione delle attività
Programma
• Introduzione ai problemi di scheduling. • Problemi di Scheduling a macchina singola. • Algoritmi esatti e complessità. Problemi bi-obiettivo. • Problemi di scheduling a macchine parallele:
• Modelli di Programmazione Lineare Intera. • Metodi esatti ed euristici per il calcolo della soluzione. • Tecnica del Rilassamento Lagrangiano.
• Problemi di Gestione dei Progetti. • Definizione di progetto. • Il problema del calcolo della durata di un progetto. • Definizioni, modelli e metodi di soluzione per problemi di Resource Contrained Project Scheduling (RCSP). • Metodi esatti e approcci euristici per il RCPSP. • Utilizzo di software di ottimizzazione avanzati (CPLEX).
Dispense ed esercizi: - Appunti sui problemi di scheduling - Articolo sullo scheduling di macchine parallele - Appunti sul Rilassamento Lagrangiano - Appunti sulla gestione dei progetti - Esercizi sulla gestione dei progetti - Lucidi delle lezioni. Testi di approfondimento: • Pinedo, M., Scheduling, 1995, Wiley. • Bianco, L., Caramia, M., Metodi quantitativi per il Project Management, 2006, Hoepli.
Testi e materiale didattico
La prova d'esame prevede una prova scritta ed una orale. Al termine del corso, prima dell'appello ufficiale, si svolgono due prove scritte che comprendono esercizi e domande di teoria. A seconda del voto conseguito nelle prove, si ha diritto a superare l’esame o a sostenere un orale "ridotto".
Prova d’esame
Problemi di Scheduling
Per Problema di Scheduling si intende un problema decisionale in cui il fattore tempo è visto come risorsa (scarsa) da allocare in modo ottimo a determinate attività (lavori e/o operazioni).
Sono dati: • Un insieme di attività (lavori, jobs), ognuna costituita da una o più operazioni • Un insieme di risorse (macchine, machines) che devono essere utilizzate per eseguire i lavori
Problemi di Scheduling
Scheduling delle operazioni
Problema: Determinare i tempi di inizio e fine di
ogni operazione su ogni macchina
Obiettivo/i: Perseguire determinate misure di
performance
PRODOTTO
PROCESSO
FLUSSO DI PRODUZIONE
ORGANIZZAZIONE
COORDINAMENTO
PIANIFICAZIONE
SCHEDULING quando?
che cosa? chi?
Un campo di applicazione: Organizzazione della produzione
come?
Nell'industria meccanica, i centri di lavorazione devono effettuare lavorazioni (taglio, fresatura, tornitura) su vari pezzi che vengono montati sui centri stessi. Diverse operazioni richiedono tempi diversi, e/o diversi tipi di utensili, che possono comportare un certo tempo per la riconfigurazione (set-up) dei centri di lavorazione. Uno dei problemi che si considerano in questo ambito consiste nel determinare l'ordinamento dei pezzi sui centri in modo da terminare tutte le lavorazioni prima possibile.
Problemi di Scheduling Esempi
Uno dei compiti di un sistema operativo è quello di disciplinare l'accesso alla CPU dei diversi programmi di calcolo. Ciascun programma può avere una certa priorità. L'obiettivo tipico del sistema operativo è quello di gestire l'insieme dei programmi in modo tale da minimizzare il tempo complessivo di attesa dei programmi, tenendo conto della loro importanza relativa (converrà privilegiare i programmi a priorità più elevata). In questa particolare applicazione, il sistema operativo potrà eventualmente decidere di interrompere certi programmi per consentire il completamento di altri. Questa modalità operativa prende il nome di preemption.
Problemi di Scheduling Esempi
In un'officina di carrozzeria, vi sono quattro stazioni, dedicate rispettivamente a messa in forma, ribattitura, verniciatura, essiccatura a forno. In ciascuna stazione è attivo un operaio, che può lavorare su una sola autovettura alla volta. In una data giornata di lavoro, devono essere riparate un certo numero di autovetture, ciascuna delle quali richiede il servizio da parte di alcune stazioni, in un dato ordine (ad esempio non si può riverniciare la carrozzeria prima di avere aggiustato le parti danneggiate). Il problema consiste nel gestire le varie operazioni in modo da terminare tutte le lavorazioni nel minor tempo possibile.
Problemi di Scheduling Esempi
Consideriamo: 3 lavori e 3 macchine. Ogni lavoro è costituito da una sequenza di operazioni. Obiettivo: Terminare tutti i lavori nel minor tempo possibile.
Job Sequenza delle operazioni operazione=(macchina, tempo)
J1 (M1,10) (M2,5) (M3,6)
J2 (M2,5) (M1,8) -
J3 (M1,2) (M3,10) (M2,4)
Scheduling delle operazioni
Diagramma di Gantt Job Sequenza Operazioni
J1 (M1,10) (M2,5) (M3,6)
J2 (M2,5) (M1,8) - J3 (M1,2) (M3,10) (M2,4)
2 1
10
2
5
1
15 20
3
26
1
28
3
3
12 22
M3
M2
M1
Diagramma di Gantt Job Sequenza Operazioni
J1 (M1,10) (M2,5) (M3,6)
J2 (M2,5) (M1,8) - J3 (M1,2) (M3,10) (M2,4)
M3
M2
M1 2 3
2
1
12
2
5
1
17 20
3
21
1
23
3
Classificazione dei problemi di scheduling
Caratterizzazione delle risorse (macchine) e dell’ambiente produttivo:
• macchina singola • macchine parallele
§ identiche § scorrelate § uniformi
• Flow shop
• Job shop
Macchina singola
LAVORI M
Macchine parallele
LAVORI
M1
M2
M3
Macchine parallele
Macchine in linea (Flow shop)
LAVORI M1 M2 Mm
Flow shop
Esempio M1 M2
IN OUT
Esempio M1 M2
IN OUT
Job shop
LAVORI
M1 M2
M3
Job shop
Classificazione dei problemi di scheduling
Caratterizzazione dei lavori:
• tempo di processamento pi (phi se dipende dalla
macchina h su cui è eseguito)
• data di consegna (duedate o deadline) di
• data di rilascio (release date) ri
• peso del lavoro (priorità) wi
Classificazione dei problemi di scheduling
Altre caratteristiche: • Tempo di set-up t ra due lavor i eseguit i consecutivamente su una macchina skj (ad es. per la riconfigurazione delle macchine). • Preemption. In certi casi è consentito interrompere un job per permettere l'esecuzione di un lavoro più urgente. Il problema in questo caso si dice preemptive. • Vincoli di precedenza. In molti casi esistono vincoli di precedenza tra task di un job (come accade nei casi del flow shop o del job shop), o tra diversi job.
Dato il lavoro i con release date e duedate: • il tempo di fine del lavoro è detto tempo di completamento, Ci • tempo di attraversamento: Fi= Ci – ri
• Lateness: Li= Ci – di • Tardiness: Ti= max{ 0, Ci – di }
• Earliness: Ei= max{ 0, di – Ci } • Lavori in ritardo: Ui= 1 se Ci > di Ui= 0 se Ci ≤ di
Misure di prestazione sui lavori
Li < 0 di
Li > 0
Ci anticipo ritardo
Ci- di
Li(Ci)
Lateness del lavoro i : Li = Ci - di
di: tempo di consegna (duedate) per il lavoro i
Lateness (Ritardo/Anticipo)
di
Ti ≥ 0
Ci anticipo ritardo
Ci- di
Ti(Ci)
Ritardo del lavoro i : Ti =max{0, Ci – di }
di: tempo di consegna (duedate) per il lavoro i
Tardiness (Ritardo)
• somma dei tempi di completamento
(pesata): Σi (wi ) Ci
• flow time totale (pesato): Σi (wi )Fi
• massima Lateness: Lmax = maxi Li • massima Tardiness: Tmax = maxi Ti
• Tardiness totale (pesata): Σi (wi ) Ti
• makespan: Cmax = maxi Ci • numero di lavori in ritardo Σi Ui
Misure di prestazione del sistema (da minimizzare)
Equivalenza tra misure Si ha: e quindi:
Misure di prestazione
min Lii=1
n
∑ =min Cii=1
n
∑ (− dii=1
n
∑ ) =min Fii=1
n
∑ (+ ri −di( )i=1
n
∑ )
( )∑∑∑∑∑=====
−+=−=n
iii
n
ii
n
ii
n
ii
n
ii drFdCL
11111
{ }{ } { }{ }
{ } { }0,max0,,...,max0,max,...,0,maxmax
0,,...,max
max1
1
1max
LLLLL
TTT
n
n
n
==
=
==
Una sol. che minimizza Lmax minimizza anche Tmax (ma, in generale, non è vero il viceversa):
Misure di prestazione
Nella descrizione dei problemi di scheduling si utilizza una notazione sintetica a tre campi: • a: identifica il sistema di macchine (1=macchina singola, P,Q,R=macchine parallele identiche, uniformi o scorrelate, F=flow shop, J=job shop). • b: le eventuali caratteristiche particolari dei lavori (preemption, ri= release date, di= due date, prec=precedenze). • c: la funzione obiettivo del sistema.
Notazione a tre campi
cba ||
•
•
•
Notazione a tre campi
1| prec,ri | Cii∑
∑i
iiTwpreemptionF ||
max||CP
Ipotesi: • tutti i lavori sono disponibili dall’inizio (ri=0); • ogni lavoro può avere un peso wi
Scheduling su singola macchina
Problema: un insieme di n lavori devono essere eseguiti da una macchina
Obiettivo: minimizzare la somma (pesata) dei tempi di comp. Σi (wi)Ci
Scheduling su singola macchina (caso senza pesi, wi=0) 1//ΣiCi
Descrizione del problema Un insieme di n lavori deve essere eseguito su una macchina Dati I tempi di processamento pi, i=1,…,n, del lavoro i sulla macchina sono noti. Obiettivo Sequenziare i lavori sulla macchina in modo da minimizzare la somma dei tempi di completamento.
min ΣiCi
Gantt del Sequenziamento
p4 pn
Cn=Σi pi: tempo di completamento totale (makespan)
tempo op1
C1
p1
op2
C2
p2
C3
p3
op4
C4 Cn
opn
Sequenza S
op3
Obiettivo del sistema: min ΣiCi
Algoritmo di soluzione
p4 pn
tempo
op1
C1
p1
op2
C2
p2
C3
p3
op4
C4 Cn
opn op3 S
Supponiamo che p2 < p1
pn
op1 tempo C3
op3
p3
op4
C4
p4
Cn
opn
C’2
p1
C’1
op2
p2
op1
se p2 < p1 allora scambiando i lavori 1 e 2 si ha C’2< C1 e C’1= C2
C’2 + C’1 < C2 + C1
S’
Algoritmo di soluzione p4 pn
tempo
op1
C1
p1
op2
C2
p2
C3
p3
op4
C4 Cn
opn op3 S
Algoritmo di soluzione: Regola SPT
(shortest processing time first)
SPT: sequenzia prima i lavori che hanno tempo di esecuzione più piccolo La regola SPT consente di minimizzare la somma dei tempi di completamento ΣiCi di n lavori su una macchina e quindi di risolvere all’ottimo il problema ∑
iiC||1
Algoritmo di soluzione: Regola SPT
(shortest processing time first)
SPT: sequenzia prima i lavori che hanno tempo di esecuzione più piccolo Complessità dell’algoritmo (per n lavori):
)log( nnO
Esempio
Lavori 1 2 3 4 5
pi 8 16 10 7 2
Sequenza ottima (5, 4, 1, 3, 2)
Scheduling su singola macchina (caso wi non nulli ) 1//ΣiwiCi
Descrizione del problema Un insieme di n lavori devono essere eseguiti su una macchina Dati I tempi di processamento pi, i=1,…,n, del lavoro i sulla macchina sono noti. Peso wi, i=1,…,n, associato ad ogni lavoro. Obiettivo Sequenziare i lavori sulla macchina in modo da minimizzare:
min ΣiwiCi
Algoritmo di soluzione: Regola WSPT (weighted shortest processing time)
WSPT: sequenzia prima i lavori che hanno il più piccolo rapporto:
Consente di minimizzare la somma pesata dei tempi di completamento ΣiwiCi
i
iwp
Complessità dell’algoritmo (per n lavori):
)log( nnO
Sia pi/ wi > pk/ wk consideriamo i due casi: 1. Il lavoro k è sequenziato subito dopo i
Dimostrazione dell’ottimalità della regola WSPT
DpwpwpwAwwBDppAwpAwBobf
ppACpAC
kkikiiki
kikii
kikii
++++++
=++++++=
++=+=
)()()(..
e
Jk
S
Ji
Ck Ci A
2. Il lavoro i è sequenziato subito dopo k
Dimostrazione dell’ottimalità della regola WSPT
C 'k = A+ pk e C 'i = A+ pk + pif .ob.= B +wk (A+ pk )+wi (A+ pk + pi )+D =
B + (wi +wk )A+wkpk +wipk +wipi +D
Ci’= Ck
Ck’
S’
Jk Ji
A
Jk
S
Ji
Ck Ci
Ci’= Ck
Ck’
S’
Jk Ji
Dimostrazione dell’ottimalità della regola WSPT
A
A
Sia pi/ wi > pk/ wk consideriamo i due casi: 1. Il lavoro k è sequenziato subito dopo i
Dimostrazione dell’ottimalità della regola WSPT
DpwpwpwAwwBDppAwpAwBobf
ppACpAC
kkikiiki
kikii
kikii
++++++
=++++++=
++=+=
)()()(..
e
2. Il lavoro i è sequenziato subito dopo k C 'k = A+ pk e C 'i = A+ pk + pif .ob.= B +wk (A+ pk )+wi (A+ pk + pi )+D =
B + (wi +wk )A+wkpk +wipk +wipi +D
Se pi/ wi > pk/ wk allora wkpi > wi pk
)2.(.)1.(.
0)2.(.)1.(.
obfobf
pwpwobfobf kiik
>
⇒
>−=−
Dimostrazione dell’ottimalità della regola WSPT
Esempio
Sequenza ottima (4, 5, 1, 2, 3)
Lavori 1 2 3 4 5 pi 8 16 10 7 2 wi 3 5 2 7 1
pi/wi 2.67 3.20 5 1 2
Ipotesi: • tutti i lavori sono disponibili dall’inizio (ri=0) • ad ogni lavoro è assegnata una data di consegna di
Scheduling su singola macchina Problema: un insieme di n lavori devono essere eseguiti da una macchina
Obiettivo: minimizzare la massima Lateness min Lmax
Lr < 0 dr
Lr > 0
Cr
anticipo ritardo
Cr- dr
Lr(Cr)
Ritardo del lavoro r : Lr = Cr-dr
dr : tempo di consegna (due date) dovuto per il lavoro r
Lateness (Ritardo/Anticipo)
Obiettivo: minimo “ritardo” massimo (min Lmax)
Li
Cj
Lk
Lj
Ck dk di dj
Ci
Lmax = maxr Lr
Regola EDD (Earliest due date)
EDD: sequenzia i lavori in ordine di due date non decrescente (cioè, sequenzia prima i lavori con duedate più piccola)
Consente di minimizzare la massima lateness min Lmax e quindi risolve il problema 1/ /Lmax
EDD min maxi {Li}
Ji
S
Jk
dk > di Ci Ck di
Dati due lavori i e k, supponiamo che dk > di Sia S la sequenza in cui k viene prima di i
Dati due lavori i e k, supponiamo che dk > di Sia S la sequenza in cui k viene prima di i
Sia S’ la sequenza in cui i viene prima di k
EDD min maxi {Li}
Ji
S
Jk
dk > di Ci Ck di
dk
Ck’= Ci
Ci’ di
S’
Ji Jk
max (Lk’, Li’) = max (C’k – dk , Ci’- di)= max (Ci – dk , Ci’- di)
Ck’=Ci
dk
Ck’= Ci
Ci’ di
S’: Ji Jk
Regola EDD
max (Lk’, Li’) = max (C’k – dk , Ci’- di)= max (Ci – dk , Ci’- di) ≤ Ci - di
dk> di
Ci’< Ci Ck’=Ci
dk
Ck’= Ci
Ci’ di
S’: Ji Jk
Regola EDD
max (Lk’, Li’) = max (C’k – dk , Ci’- di)= max (Ci – dk , Ci’- di) ≤ Ci - di
dk> di
Ci’< Ci Ck’=Ci
dk
Ck’= Ci
Ci’ di
S’: Ji Jk
max (Lk, Li) max (Ck - dk, Ci - di) = Ci - di ≤
Regola EDD
Regola EDD
Dati i lavori j1 ...jn
Si hanno le seguenti date di consegna:
d2 d1 d3 d4 dn
d2 d1 d3 d4 dn
j1 j2 j3 j4 jn
si sequenziano i lavori nello stesso ordine delle due date
Regola EDD
Esempio
Lavori 1 2 3 4 5
di 20 9 16 18 30
pi 10 7 6 5 20
Sequenza ottima (2, 3, 4, 1, 5)