Metodi di Ottimizzazione mod. Modelli per la pianificazione delle attività

Documenti analoghi
Organizzazione della produzione

Organizzazione della produzione

Modelli dei Sistemi di Produzione Modelli e Algoritmi della Logistica

Organizzazione della produzione

ASSEGNAMENTO DELLE OPERAZIONI DI TAGLIO NELLA PRODUZIONE DI CAPI DI ABBIGLIAMENTO

Macchine parallele M 1 M 2 M 3 J 1 J 2 LAVORI J 3 J 4

Le attuali tendenze del mercato

Programmazione operativa

1. Considerazioni generali

Cenni di schedulazione in tempo reale. E.Mumolo

Struttura del Corso. Durata

Bibliografia. Gestione operativa della produzione. Terminologia. Schedulazione. Schedulazione operativa della produzione

Corso Sistemi Informativi Aziendali, Tecnologie dell Informazione applicate ai processi aziendali. Sistemi informativi aziendali

CAPITOLO 6 La programmazione operativa (operations scheduling)

Metodi di Ottimizzazione per la Logistica e la Produzione

Introduzione alla teoria dello scheduling

Ricerca Operativa A.A. 2007/ Introduzione

SCHEDULING SCHEDULING

Programmazione Lineare Intera: Piani di Taglio

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

Introduzione al corso

COMPITO DI RICERCA OPERATIVA. (5 punti) Sia dato il seguente problema di PL: min x 1 + x 2 x 1 + x 2 3 x 1 + x 2 2 2x 1 + x 2 3.

Ottimizzazione e Controllo 2015/2016 ESERCITAZIONE

Algoritmi e Sperimentazioni

Laboratory for innovation MUSP. Macchine utensili e sistemi di produzione. Laboratorio MUSP

Metodi di Ottimizzazione mod. Modelli per la pianificazione delle attività

CASE STUDY 2. Fabbricazione dell acciaio. Un problema di pianificazione: Minimizzazione dei costi di carica del forno. Dati. Formulazione del problema

Universita degli Studi di Siena

Ricerca Operativa. Docenti. 1. Introduzione

Comprendere come vengono prodotti i manufatti di uso comune. Capire la relazione tra le tecniche di produzione adottate e la qualità del prodotto

Sistemi Organizzativi

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max

1. Classificazione delle risorse

Operation scheduling. Corso di GPM Secondo Modulo Quinta Unità Didattica

Ricerca Operativa. Docente. 1. Introduzione

Ottimizzazione nella Gestione dei Progetti - Esercitazione 1: calcolo degli schedule ottimi

FONDAMENTI DI INFORMATICA II

Ricerca Operativa. Docente. 1. Introduzione

Celle di fabbricazione

Operations Management

Impianti Meccanici Introduzione al corso

Corso di Fondamenti di Informatica II introduzione al corso (canale L-Z, prof. d Amore)

Parte 3: Gestione dei progetti, Shop scheduling

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

1. Considerazioni generali

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

La pianificazione della produzione

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Metodi e modelli per le decisioni

Esercizi di PLI. a cura di A. Agnetis. Risolvere il seguente problema di PLI con l algoritmo dei piani di Gomory:

Lezioni di Ricerca Operativa

Soluzioni degli esercizi di formulazione di PL{0, 1}

INGEGNERIA DEL SOFTWARE

SVILUPPO DEI MODELLI

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

Principi di Schedulazione in tempo reale

Ambienti di calcolo a griglia Parte 2. Docente: Marcello CASTELLANO

APPLICAZIONI DELLA RICERCA OPERATIVA

Metodi e modelli per il supporto alle decisioni

Tecnologie di Sviluppo per il Web Lab. di Tecnologie di Sviluppo Web

Tecnologia Meccanica

Problema Determinare la miscelazione ottimale delle materie prime in modo da massimizzare il profitto complessivo

Ottimizzazione della produzione tramite software di scheduling

Docente: Prof. Marco Patella Tutor: Stefano Pio Zingaro

Docente: Prof. Marco Patella Tutor: Vincenzo Lomonaco

Programmazione della produzione MT MT

Fondamenti di Intelligenza Artificiale

Allocazione ottimale delle produzione in una cella flessibile di lavorazione

Corso di Laurea Ingegneria Informatica

Produzioni Manifatturiere (per parti)

Parte III: Algoritmo di Branch-and-Bound

Introduzione alla Ricerca Operativa. Cos è la Ricerca Operativa? Modellazione di problemi decisionali Fasi di uno studio di RO Applicazioni della RO

La notazione usata è quella usuale nel caso scalare, ed è estesa al caso generale. Consideriamo una forma quadratica:

Ricevimento studenti: consultare sito web docenti

Introduzione alla Ricerca Operativa

Metodi di Ottimizzazione mod. Modelli per la pianificazione delle attività

Automazione Industriale (scheduling+mms) scheduling+mms

Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I)

L allocazione ottima delle commesse in contesti multi-aziendali

Flusso a Costo Minimo

Metodi di Ottimizzazione per la Logistica e la Produzione

Fondamenti di Informatica A.A Studenti

CALCOLATORI ELETTRONICI

Analisi delle decisioni

Informazioni Corso. Storia dello Sviluppo Economico, CFU 9, ore 56; anno , I semestre. Corso di Laurea: Economia Aziendale.

Programmazione di Dipartimento. Laboratori tecnologici ed esercitazioni

L Esame di Stato di abilitazione alla professione di Ingegnere dell Informazione

Presentazione del Corso di Calcolo Numerico con Laboratorio

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Approcci esatti per il job shop

Prova in itinere di Metodi di Ottimizzazione AA 2007/2008: compito A

Tecnologia Meccanica

Progettazione di Algoritmi

Programmazione e Controllo della Produzione. La programmazione della produzione

Lezione 1. Le tipologie di problemi di gestione della produzione e delle reti logistiche

Introduzione. Alessandro De Luca. Automazione

Corso di Gestione dell Innovazione e dei Progetti Prof. Sergio Campodall Orto. Presentazione del corso a.a. 2007/2008

Prova Scritta di Ricerca Operativa

Esercizi svolti di Programmazione Lineare. a cura di Laura Scrimali Dipartimento di Matematica e Informatica Università di Catania

INTELLIGENZA ARTIFICIALE (elementi) 6 cfu

Transcript:

Metodi di Ottimizzazione mod. Modelli per la pianificazione delle attività Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena

Metodi di Ottimizzazione mod. Modelli per la pianificazione delle attività 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

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: Testi e materiale didattico - 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.

Prova d esame 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".

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

Problemi di Scheduling 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

Scheduling delle operazioni Problema: Determinare i tempi di inizio e fine di ogni operazione su ogni macchina Obiettivo/i: Perseguire determinate misure di performance

Un campo di applicazione: Organizzazione della produzione PRODOTTO che cosa? chi? ORGANIZZAZIONE PROCESSO come? FLUSSO DI PRODUZIONE COORDINAMENTO PIANIFICAZIONE SCHEDULING quando?

Problemi di Scheduling Esempi 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.

Scheduling delle operazioni 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) J 1 (M 1,10) (M 2,5) (M 3,6) J 2 (M 2,5) (M 1,8) - J 3 (M 1,2) (M 3,10) (M 2,4)

Diagramma di Gantt Job Sequenza Operazioni J 1 (M 1,10) (M 2,5) (M 3,6) J 2 (M 2,5) (M 1,8) - J 3 (M 1,2) (M 3,10) (M 2,4) M 1 1 3 2 M 2 2 1 3 M 3 3 1 5 10 12 15 20 22 26 28

Diagramma di Gantt Job Sequenza Operazioni J 1 (M 1,10) (M 2,5) (M 3,6) J 2 (M 2,5) (M 1,8) - J 3 (M 1,2) (M 3,10) (M 2,4) M 1 3 1 2 M 2 2 1 3 M 3 3 1 2 5 12 17 20 21 23

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 M 1 LAVORI M 2 M 3

Macchine parallele

Macchine in linea (Flow shop) LAVORI M 1 M 2 M m

Flow shop

Esempio M 1 M 2 IN OUT

Esempio M 1 M 2 IN OUT

Job shop LAVORI M 1 M 2 M 3

Job shop

Classificazione dei problemi di scheduling Caratterizzazione dei lavori: tempo di processamento p i (p hi se dipende dalla macchina h su cui è eseguito) data di consegna (duedate o deadline) d i data di rilascio (release date) r i peso del lavoro (priorità) w i

Classificazione dei problemi di scheduling Altre caratteristiche: Tempo di set-up tra due lavori eseguiti consecutivamente su una macchina s kj (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.

Misure di prestazione sui lavori Dato il lavoro i con release date e duedate: il tempo di fine del lavoro è detto tempo di completamento, C i tempo di attraversamento: F i = C i r i Lateness: L i = C i d i Tardiness: T i = max{ 0, C i d i } Earliness: E i = max{ 0, d i C i } Lavori in ritardo: U i = 1 se C i > d i U i = 0 se C i d i

Lateness (Ritardo/Anticipo) Lateness del lavoro i : L i = C i - d i L i (C i ) L i > 0 C i - d i L i < 0 anticipo d i ritardo C i d i : tempo di consegna (duedate) per il lavoro i

T i (C i ) Tardiness (Ritardo) Ritardo del lavoro i : T i =max{0, C i d i } T i 0 C i - d i anticipo d i ritardo C i d i : tempo di consegna (duedate) per il lavoro i

Misure di prestazione del sistema (da minimizzare) somma dei tempi di completamento (pesata): Σ i (w i ) C i flow time totale (pesato): Σ i (w i )F i massima Lateness: L max = max i L i massima Tardiness: T max = max i T i Tardiness totale (pesata): Σ i (w i ) T i makespan: C max = max i C i numero di lavori in ritardo Σ i U i

Misure di prestazione Equivalenza tra misure Si ha: n i = 1 L i = n i = 1 C i n i = 1 d i = n i = 1 F i + n ( ri di ) i = 1 e quindi: n n min L i = min C i ( d i ) = min F i (+ r i d i ) i=1 i=1 n i=1 n i=1 n i=1 ( )

Misure di prestazione Una sol. che minimizza L max minimizza anche T max (ma, in generale, non è vero il viceversa): T max max = = max max { T,..., T,0} { max{ L,0},...,max{ L,0 } { L,..., L,0} = max{ L,0} 1 1 1 n n = n max =

Notazione a tre campi 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, r i = release date, d i = due date, prec=precedenze). a b c: la funzione obiettivo del sistema. c

Notazione a tre campi 1 prec,r C i i i P C max F preemption w i T i i

Scheduling su singola macchina Problema: un insieme di n lavori devono essere eseguiti da una macchina Ipotesi: tutti i lavori sono disponibili dall inizio (r i =0); ogni lavoro può avere un peso w i Obiettivo: minimizzare la somma (pesata) dei tempi di comp. Σ i (w i )C i

Scheduling su singola macchina (caso senza pesi, w i =0) 1//Σ i C i Descrizione del problema Un insieme di n lavori deve essere eseguito su una macchina Dati I tempi di processamento p i, 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 Σ i C i

Gantt del Sequenziamento Sequenza S p 1 p 2 p 3 p 4 p n op 1 op2 op 3 C 1 C 2 C 3 op4 C 4 op n C n tempo C n =Σ i p i : tempo di completamento totale (makespan) Obiettivo del sistema: min Σ i C i

Algoritmo di soluzione p 1 p 2 p 3 p 4 p n S op 1 C 1 op2 op 3 C 2 C 3 op4 C 4 op n C n tempo Supponiamo che p 2 < p 1

Algoritmo di soluzione p 1 p 2 p 3 p 4 p n S op 1 C 1 op2 op 3 C 2 C 3 op4 C 4 op n C n tempo se p 2 < p 1 allora scambiando i lavori 1 e 2 si ha C 2 < C 1 e C 1 = C 2 C 2 + C 1 < C 2 + C 1 p 2 p 1 p 4 p n S op 2 C 2 op1 1 p 3 op 3 op 4 C 1 C 3 C 4 op n C n tempo

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 Σ i C i di n lavori su una macchina e quindi di risolvere all ottimo il problema 1 C i i

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): O( nlogn )

Esempio Lavori 1 2 3 4 5 p i 8 16 10 7 2 Sequenza ottima (5, 4, 1, 3, 2)

Scheduling su singola macchina (caso w i non nulli ) 1//Σ i w i C i Descrizione del problema Un insieme di n lavori devono essere eseguiti su una macchina Dati I tempi di processamento p i, i=1,,n, del lavoro i sulla macchina sono noti. Peso w i, i=1,,n, associato ad ogni lavoro. Obiettivo Sequenziare i lavori sulla macchina in modo da minimizzare: min Σ i w i C i

Algoritmo di soluzione: Regola WSPT (weighted shortest processing time) WSPT: sequenzia prima i lavori che hanno il più piccolo rapporto: p w Consente di minimizzare la somma pesata dei tempi di completamento Σ i w i C i Complessità dell algoritmo (per n lavori): O( nlogn i i )

Sia p i / w i > p k / w k consideriamo i due casi: 1. Il lavoro k è sequenziato subito dopo i Dimostrazione dell ottimalità della regola WSPT D p w p w w p A w w B D p p A w p A w B ob f p p A C p A C k k i k i i k i k i k i i k i k i i + + + + + + = + + + + + + = + + = + = ) ( ) ( ) (.. e J k S J i C k C i A

Dimostrazione dell ottimalità della regola WSPT 2. Il lavoro i è sequenziato subito dopo k C ' k = A + p k e C ' i = A + p k + p i f.ob. = B + w k (A + p k ) + w i (A + p k + p i ) + D = B + (w i + w k )A + w k p k + w i p k + w i p i + D J k J i S A C k C i = C k

Dimostrazione dell ottimalità della regola WSPT J i J k S A C i C k J k J i S A C k C i = C k

Sia p i / w i > p k / w k consideriamo i due casi: 1. Il lavoro k è sequenziato subito dopo i Dimostrazione dell ottimalità della regola WSPT D p w p w w p A w w B D p p A w p A w B ob f p p A C p A C k k i k i i k i k i k i i k i k i i + + + + + + = + + + + + + = + + = + = ) ( ) ( ) (.. e 2. Il lavoro i è sequenziato subito dopo k C ' k = A + p k e C ' i = A + p k + p i f.ob. = B + w k (A + p k ) + w i (A + p k + p i ) + D = B + (w i + w k )A + w k p k + w i p k + w i p i + D

Dimostrazione dell ottimalità della regola WSPT Se p i / w i > p k / w k allora w k p i > w i p k f. ob.(1) f. ob.(2) = w k p i w p i k > 0 f. ob.(1) > f. ob.(2)

Esempio Lavori 1 2 3 4 5 p i 8 16 10 7 2 w i 3 5 2 7 1 p i /w i 2.67 3.20 5 1 2 Sequenza ottima (4, 5, 1, 2, 3)

Scheduling su singola macchina Problema: un insieme di n lavori devono essere eseguiti da una macchina Ipotesi: tutti i lavori sono disponibili dall inizio (r i =0) ad ogni lavoro è assegnata una data di consegna d i Obiettivo: minimizzare la massima Lateness min L max

Lateness (Ritardo/Anticipo) Ritardo del lavoro r : L r = C r -d r L r (C r ) L r > 0 C r - d r L r < 0 anticipo d r ritardo C r d r : tempo di consegna (due date) dovuto per il lavoro r

Obiettivo: minimo ritardo massimo (min L max ) L j L k C i d j d i C j d k C k L i L max = max r L r

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 L max e quindi risolve il problema 1/ /L max

EDD min max i {L i } Dati due lavori i e k, supponiamo che d k > d i Sia S la sequenza in cui k viene prima di i J k J i S C k d i C i d k > d i

EDD min max i {L i } Dati due lavori i e k, supponiamo che d k > d i Sia S la sequenza in cui k viene prima di i J k J i S C k d i C i d k > d i Sia S la sequenza in cui i viene prima di k S J i J k d k C i d i C k = C i

S : J i J k Regola EDD d k C i d i C k = C i C k =C i max (L k, L i ) = max (C k d k, C i - d i )= max (C i d k, C i - d i )

S : J i J k Regola EDD d k C i d i C k = C i C k =C i C i < C i d k > d i max (L k, L i ) = max (C k d k, C i - d i )= max (C i d k, C i - d i ) C i - d i

Regola EDD S : J i J k d k C i d i C k = C i C k =C i C i < C i d k > d i max (L k, L i ) = max (C k d k, C i - d i )= max (C i d k, C i - d i ) C i - d i C i - d i max (C k - d k, C i - d i ) = max (L k, L i )

Regola EDD Dati i lavori j 1...j n Si hanno le seguenti date di consegna: d 1 d 2 d 3 d 4 d n

Regola EDD j 1 j 2 j 3 j 4 j n d 1 d 2 d 3 d 4 d n si sequenziano i lavori nello stesso ordine delle due date

Esempio Lavori 1 2 3 4 5 d i 20 9 16 18 30 p i 10 7 6 5 20 Sequenza ottima (2, 3, 4, 1, 5)