Approcci esatti per il job shop



Похожие документы
Schedulazione di attività in presenza di attività interrompibili

1. Considerazioni generali

Parte 3: Gestione dei progetti, Shop scheduling

Ottimizzazione Multi Obiettivo

1. Classificazione delle risorse

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

STRUTTURE NON LINEARI

Il Metodo Branch and Bound

Le Macchine di Turing

Schedulazione delle attività di un progetto in presenza di multi-calendari

10. Insiemi non misurabili secondo Lebesgue.

Algoritmi e strutture dati. Codici di Huffman

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

b i 1,1,1 1,1,1 0,1,2 0,3,4

TSP con eliminazione di sottocicli

Esercizi di Gestione della Produzione Industriale. Tabella 1: tempi di lavorazione di un set di job.

TSP con eliminazione di sottocicli

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso

4. Operazioni elementari per righe e colonne

Alberi binari. Ilaria Castelli A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni

Ricerca non informata in uno spazio di stati

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

IL PROBLEMA DELLO SHORTEST SPANNING TREE

Capitolo 5: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano

Strumenti della Teoria dei Giochi per l Informatica A.A. 2009/10. Lecture 22: 1 Giugno Meccanismi Randomizzati

Semantica Assiomatica

Esercizi di Ricerca Operativa I

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

Schedulazione delle attività di un progetto in presenza di multi-calendari e di vincoli sulle risorse

Metodi Computazionali

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di Localizzazione

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Luigi Piroddi

2.3.4 Pianificazione di progetti

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di Network design

1. PRIME PROPRIETÀ 2

Massimo Paolucci DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

Minimo Albero Ricoprente

Macchine sequenziali

Introduzione Ordini parziali e Reticoli Punti fissi

CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique

2 Formulazione dello shortest path come problema di flusso

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizio su MT. Svolgimento

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

Testing: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice.

Ricerca Operativa e Logistica

Ricerca Operativa A.A. 2007/2008

Corso di Algoritmi e Strutture Dati Informatica per il Management Prova Scritta, 25/6/2015

Modelli di Programmazione Lineare. PRTLC - Modelli

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

Algebra e Geometria. Ingegneria Meccanica e dei Materiali Sez (2) Ingegneria dell Automazione Industriale Sez (2)

Esame di Ricerca Operativa del 20/12/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

e-dva - eni-depth Velocity Analysis

Programmazione della produzione MT MT

Esame di Ricerca Operativa del 19/01/2016

SVM. Veronica Piccialli. Roma 11 gennaio Università degli Studi di Roma Tor Vergata 1 / 14

Scheduling della CPU:

A i è un aperto in E. i=1

Prof. Ing. Michele Marra - Appunti delle Lezioni di Ricerca Operativa Sequenze CAPITOLO II

Modelli di Programmazione Lineare e Programmazione Lineare Intera

Probabilità discreta

Esame di Ricerca Operativa del 19/01/2016

1) Descrivere dettagliatamente a quale problema di scheduling corrisponde il problema.

Sistemi Organizzativi

Algoritmi e Strutture Dati

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

regola(1,[e,f],b) regola(2,[m,f],e) regola(3,[m],f) regola(4,[b,f],g) regola(5,[b,g],c) regola(6,[g,q],a)

Reti sequenziali sincrone

1. Sia dato un poliedro. Dire quali delle seguenti affermazioni sono corrette.

Riassunto di Sistemi in Tempo Reale LS

VC-dimension: Esempio

40 Algoritmi sui Grafi

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Ricerca Operativa e Logistica

Il Modello Relazionale

Intelligenza Artificiale

CAPITOLO 6 La programmazione operativa (operations scheduling)

mese richiesta

Esempi di modelli di programmazione lineare (intera) 2014

Politecnico di Milano Facoltà di Ingegneria dell Informazione AGENTI AUTONOMI E SISTEMI MULTIAGENTE Appello COGNOME E NOME

Dimensionamento dei lotti di produzione: il caso con variabilità nota

Ricerca Automatica. Esercitazione 3. Ascensore. Ascensore. Ascensore

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

Esercizi per il corso di Algoritmi e Strutture Dati

La programmazione con vincoli in breve. La programmazione con vincoli in breve

Транскрипт:

Approcci esatti per il job shop Riferimenti lezione: Carlier, J. (1982) The one-machine sequencing problem, European Journal of Operational Research, Vol. 11, No. 1, pp. 42-47 Carlier, J. & Pinson, E. (1989) An algorithm for solving the job shop problem, Management Science, Vol. 35, No. 2, pp.164-176 1

Problema job shop scheduling (JSS) Nel problema di job shop, n jobs devono essere processati su m macchine Il processamento di un job su una macchina è detto operazione i Assunzioni fatte per il problema: Una macchina può processare al più un job alla volta; Un operazione non può essere interrotta (no preemption); Un job consiste al più di n operazioni; L ordine di processamento del job è dato; Il sequenziamento delle operazioni sulle macchine deve essere determinato in modo tale da minimizzare il makespan (i.e., il massimo tempo di competamento Cmax) 2

Grafo disgiuntivo Due operazioni i e j non possono essere eseguite contemporaneamente sulla stessa macchina, da cui: [i,j] = {(i,j), (j,i)} Il problema è modellato col grafo disgiuntivo DG = (G, D) dove G = (X,U) è il grafo congiuntivo con X nodi ed U archi, mentre D è il set di disgiunzioni. 2 6 Ogni nodo è denominato dalla 1,1 1,2 coppia (job,macchina) 0 e dal tempo di processamento o * 4 soluzioni alternative a 2,2 2,1 seconda degli orientamenti dei due archi disgiuntivi 5 4 X =6, U =6, D =2 n = 2 e m = 2 3

Per ogni operazione i: Notazioni pi è il tempo di processamento, ri è la testa, qi è la coda Un cammino più lungo tra due nodi i e j è detto l(i,j) Da cui si definiscono: ri = l(o,i) e qi = l(i,*) pi Dove o e * sono la sorgente ed il pozzo del grafo G 2 6 0 1,1 1,2 o * 2,2 2,1 5 4 Lunghezza l(o,*) = 17 passante per i nodi: o => 1,1 => 1,2 => 2,2 => 2,1 => * o * Supponiamo che il nodo (1,1) sia l operazione 1: r1 = 0, p1 = 2, q1 = l(1,*) p1 = 17 2 = 15 Supponiamo che il nodo (2,1) sia l operazione 4: r4 = 5, p4 = 4, q4 = l(4,*) p4 = 4 4 = 0 l(4,*) = q4 + p4 = 0 + 4 = 4 i 4

Soluzione al problema JSS Uno schedule su un grafo disgiuntivo DG = (G, D) è un insieme di tempi di inizio processamento tale che: 1. I vincoli congiuntivi sono soddisfatti: 2. I vincoli disgiuntivi sono soddisfatti: Per costruire uno schedule, serve selezionare un sequenziamento su ogni macchina. Si associa un grafo Una selezione A è un insieme di archi disgiuntivi tale che Se allora l operazione i è processata prima di j Uno schedule è dunque una selezione: Completa (tutte le disgiunsioni sono state selezionate) e Consistente (il grafo congiuntivo risultante è aciclico) 5

2 6 1,1 1,2 0 o * 2,2 2,1 5 4 Qualità della soluzione La selezione nella figura a sinistra crea una inconsistenza! Ovvero un ciclo nel grafo congiuntivo! La funzione obiettivo è trovare lo schedule che minimizza il tempo massimo di complemento t* - to In altre parole si cerca di minimizzare la lunghezza del cammino l(o,*) nel grafo ammissibile 2 6 1,1 1,2 0 o * 2,2 2,1 5 4 La selezione nella figura a sinistra è ottima con A = {((1,1), (2,1)), ((2,2), (1,2))} Lunghezza l(o,*) = 0+5+6 = 11 6

Il problema a singola macchina Il problema di job shop è composto da m problemi a singola macchina Affrontiamo il problema a singola macchina proposto da Carlier 1982 (EJOR) La risoluzione di problemi singola macchina avvantaggia gli algoritmi di branch and bound per il problema del job shop perchè: 1. Si trovano dei buoni lower bounds 2. Si aggiustano teste e code delle operazioni 3. Si possono implicare archi disgiuntivi Ora affrontiamo prima il problema a singola macchina e poi studiamo il suo uso combinato con tecniche di branch and bound 7

Singola macchina: Definizioni Grafo congiuntivo G = (X, U) con dove I è l insieme delle operazioni (nodi) sulla specifica macchina Arc (o,i) ha peso ri (testa) Arc (i,j) ha peso pi (tempo di processamento) Arc (i,*) ha peso qi (coda) + pi Si assume to=0 e t* = makespan 8

Proposition 1 Proposition 1: Per tutti gli insiemi sia H(K) è un lower bound del makespan ottimo del problema a singola macchina Proof. Nel grafo congiuntivo associato con lo schedule ottimo si ha un percorso passante per il nodo o, per ogni operazione di K e che finisce nel nodo *. Il valore del percorso è maggiore o uguale ad H(K) per definizione, ed è minore o uguale allo schedule ottimo. Da cui H(K) non potrà mai superare il valore della soluzione ottima. 9

Jackson schedule Regola Most Work Remaining (MWR, Jackson 1955): Si sequenziano le operazioni sulla macchina a partire dal tempo t nel quale almeno un operazione è disponibile, scegliendo l operazione i con massima qi, settando t := t + pi ed iterando finchè tutte le operazioni risultano schedulate. Schrage algorithm per calcolare il Jackson schedule: New Def.: Z1 insieme job schedulati e Z2 insieme altri jobs Step 1) Step 2) Al tempo t, schedula Z2 disponibile con coda max Step 3) Step 4) Z1 Z1 Z2 Z2 Z1 Se Z1 = I allora stop, altrimenti vai allo step 2. Z2 10

Jackson schedule: Example 7 jobs (machine operations) Schrage algorithm: t6 = to = 0 t1 = 10 t2 = 10 + 5 = 15 t3 = 10 + 5 + 6 = 21 t4 = 10 + 5 + 6 + 7 = 28 t5 = 10 + 5 + 6 + 7 + 4 = 32 t7 = 10 + 5 + 6 + 7 + 4 + 3 = 35 Critical path = 0,1,2,3,4,* t* = makespan = t4 + l(4,*) = 28 + 25 = 53 l(o,6)=0 0 10 13 6 6 1 5 2 6 o 11 0 3 20 7 30 4 30 4 5 3 7 2 12 32 31 23 25 11 2 l(6,*)=23 11

Proposition 2 Jackson preemptive schedule: Variante in cui il processamento di ciascun job può essere interrotto temporaneamente (preemption) per processare altri jobs Schrage algorithm per calcolare il Jackson preemptive schedule: pj può essere interrotto se un job i con qi > qj diventa disponibile Proposition 2: Sia V il valore ottimo del problema a singola macchina con preemption per la k-esima macchina, si dimostra che Dalla Prop. 2 si ha che è un lower bound del makespan del job shop problem 12

Proposition 3 Proposition 3: Sia fo il makespan del Jackson schedule (a) Se lo schedule è ottimo, esiste un critical set J tale che (LB=UB): (b) Se lo schedule non è ottimo, r1 r2 rc 1 2 0 o c esistono un critical set J ed un critical job c J tale che: q1+p1 q2+p2 qc+pc Allora in uno schedule ottimo, job c deve essere processato prima o dopo tutte le operazioni contenute in J 13

Branch and bound sulla singola macchina Albero decisionale: Ogni nodo è un problema a singola macchina per una data sequenza parziale con un lower bound (ottenuto tramite Prop. 1) Branching: Si considera il nodo col più piccolo lower bound e si applica Schrage Se c non esiste abbiamo l ottimo; altrimenti c è processato prima tutte le operazioni in J oppure dopo tutte le operazioni in J Problema completo Sotto Sotto problema 1: problema 2: c prima di J J prima di c Upper bound: Si calcola fo con Schrage Soluzione ottima: Si ha che 14

Esempi su singola macchina (1) Schrage (algorithmo per JS): 6 f0 = l(o,1) + p2+p3+p4 + l(4,o) 6 = 10 + 5+6+7 + 25 = 53 da cui c = 1 e J ={2,3,4} 0 1 10 5 Se c prima di J 13 2 H(J) > f0 - pc 6 53 > 48 o 11 0 3 20 7 Quindi J prima di c 30 4 r1 = r3 + p2+p3+p4 = 11 + 6+7+4 = 28 30 4 5 3 7 12 32 31 25 23 11 2 15

Esempi su singola macchina (2) Schrage: f0 = 11+7+32 = 50 da cui c = 3 e J ={2} Se c prima di J H(J) = f0 = 50 Se J prima di c H(J) = 13+6+32 = 51 Ottimo = 50 (c prima di J) 0 11 13 6 6 3 7 2 6 o 10 0 4 10 4 30 1 30 5 5 4 7 31 32 25 12 23 11 2 16

Nuove definizioni Clique: C = Sottoinsieme di I che contiene almeno due operazioni op. e è input di C se è sequenziata prima di tutte le altre op. op. s è output di C se è sequenziata dopo di tutte le altre op. Lemma: Data una op. k di C se allora k deve essere processata in una qualsiasi soluzione prima o dopo tutte le altre operazioni dell insieme C Proof: Supponiamo le operazioni di C sequenziate in un ordine i1, i2,, ih con i1!= k ed ih!= k (ovvero k!= e!= s) Ed inoltre (f = UB): Segue però con questa ipotesi la contraddizione del lemma: > f 17

Come individuare input e output? Introduciamo 3 condizioni (caso semplice C = I ): (c1) (c2) (c3) Da cui seguono tre nuove propositions: Proposition 4: Se (c1) [rispettivamente (c2)] è soddisfatta, k non è un INPUT [rispettivamente un OUTPUT] per C Proposition 6: Se (c1) e (c3) sono soddisfatte, k è un OUTPUT per la clique C in ogni soluzione. Proposition 7: Se (c2) e (c3) sono soddisfatte, k è un INPUT per la clique C in ogni soluzione. 18

Implicazioni immediate Proposition 5: Vale nel caso in cui C = 2 Se r h + p h + p g +q g > f e r g + p g + p h +q h < f allora l arco disgiuntivo (g,h) verrà selezionato in ogni soluzione. Proposition 8: Vale per qualsiasi cardinalità della clique C (a) Se e è un input di C, allora gli archi disgiuntivi (e,k) verranno selezionati in ogni soluzione, con (b) Se s è un output di C, allora gli archi disgiuntivi (k,s) verranno selezionati in ogni soluzione, con 19

Aggiornamento teste e code Calcolo teste e code per un nodo k : r k q k = max = max j Pr ed ( k ) j Succ( k ) { r { q Tecniche di aggiornamento j j + p j + p } j } rk = l(o,k) ovvero prima del proc. di k qk = l(k,*) pk ovvero dopo del proc. di k Proposition 9: Se k è un input (k = e) della clique C allora q ' max{ q, p + min{ q j C \{ k}}} k = k j C \{ k} Proposition 10: Se k è un output (k = s) della clique C allora r ' = max{ r, min{ r j C \{ k}} p } k k j j j + j C \{ k} j 20

Branch and bound per il job shop (1) Bounds LB: si ottiene dalla Proposition 2 (ottimo dei problemi a singola macchina) UB: miglior soluzione conosciuta o si assume, e.g., 110% LB Branching scheme Una selezione A è associata a ciascun nodo N dell albero di ricerca. Il branch (binario) corrisponde alla scelta di una disgiunzione [i,j], ovviamente non ancora selezionata, ed alla creazione di due nodi figli: Figlio 1: Figlio 2: 21

Branch and bound per il job shop (2) Come si sceglie la coppia disgiuntiva su cui fare il branching? Ecco una possibile scelta euristica proposta da C&P 89: Si definisce una macchina critica m in base al più grande lower bound; Se la macchina critica m non è interamente selezionata, si sceglie una coppia disgiuntiva in un sottoinsieme di cardinalità minima della clique; Altrimenti si sceglie una coppia disgiuntiva che appartiene ad un sottoinsieme di cardinalità minima della clique di un altra macchina; Nel caso in cui vi siano diverse coppie candidate si calcolano le seguenti funzioni di penalità (Bertier e Roy 1965): d ij = Max{0, r i +p i +p j +q j - LB} d ji = Max{0, r j +p j +p i +q i - LB} a ij = Min{d ij, d ji } v ij = d ij - d ji Si sceglie la coppia disgiuntiva [i,j] ={(i,j),(j,i)} per cui v ij è massimo oppure, in caso di parità, quella con a ij massimo. Chiaramente si tratta di una scelta sperimentale 22