metodi di ottimizzazione mod. modelli per la ...detti/introsched.pdf · dispense ed esercizi: -...

Post on 17-Feb-2019

229 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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: detti@dii.unisi.it 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)

top related