Automazione Industriale

Slides:



Advertisements
Presentazioni simili
OLIMPIADI DI FISICA a.s. 2008/2009
Advertisements

Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Mat_Insieme Lavoro di Gruppo Prodotti Notevoli
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Informatica Generale Alessandra Di Pierro
6. Catene di Markov a tempo continuo (CMTC)
Frontespizio Economia Monetaria Anno Accademico
La scelta del paniere preferito
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
Algoritmi e Strutture Dati
I sistemi di riferimento
Alberi binari di ricerca
Cammini minimi con sorgente singola
6. Catene di Markov a tempo continuo (CMTC)
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
GESTIONE DELLA PRODUZIONE
Ordini Parziali - Reticoli
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati
R. Soncini Sessa, MODSS, L 24b Analisi a molti obiettivi-esempi Rodolfo Soncini Sessa MODSS Copyright 2004 © Rodolfo Soncini Sessa.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Algoritmi e Strutture Dati
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Programmazione 1 9CFU – TANTE ore
8. Reti di Code Nella maggior parte dei processi produttivi risulta troppo restrittivo considerare una sola risorsa. Esempio: linea tandem arrivi 1 v.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
Algoritmi e Strutture Dati (Mod. B)
Seminario su clustering dei dati – Parte II
Modelli di sistemi di produzione II
Algoritmi e Strutture Dati
1 A cura di Vittorio Villasmunta Metodi di analisi dei campi meteorologici Corso di base sulluso del software di analisi meteorologica DIGITAL ATMOSPHERE.
Master universitario di II livello in Ingegneria delle Infrastrutture e dei Sistemi Ferroviari Anno Accademico 2012/2013 Cultura dimpresa, valutazione.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Scritte scritte scritte scritte scritte scritte scritte Scritte scritte Titolo.
Intelligenza Artificiale
Velocità ed accelerazione
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
Esercitazione 1: Rispetto al test di ansia (Media=25; σ=5), calcolare:
MACCHINARI SICURI WORKSHOP FASCICOLO TECNICO E ANALISI DEI RISCHI
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
TECNOLOGIE DELLINFORMAZIONE E DELLA COMUNICAZIONE PER LE AZIENDE Materiale di supporto alla didattica.

1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Passo 3: calcolo del costo minimo
Prof. Cerulli – Dott.ssa Gentili
1 Questionario di soddisfazione del servizio scolastico Anno scolastico 2011/2012 Istogramma- risposte famiglie.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Corso di ELETTROTECNICA
TRASFORMATA DI FOURIER
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

Automazione Industriale a.a. 2005/2006 Scheduling Flow-Shop and Job-Shop Dipartimento di Elettrotecnica ed Elettronica del Politecnico di Bari Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it

Sommario Introduzione (Flow-Shop Vs Job-Shop) Risultati sul Flow-Shop Johnson’s algorithm per F2//Fmax Johnson’s algorithm per J2//Fmax Johnson’s algorithm per un caso speciale di F3//Fmax Metodo grafico di Akers per F/2 job/Fmax Grafo disgiuntivo Euristica di Shifting bottleneck per il job-shop Tabu search Genetic Algorithms

Introduzione Analisi complessità Problemi Difficili Problemi Facili Algoritmi esatti e euristici Rilassamenti Algoritmi approssimati

Introduzione Scheduling di un certo numero di macchine, situazione maggiormente aderente alla realtà. Considereremo il caso di job che vengono processati dalle stesse macchine nella stessa sequenza. Considereremo il caso di job che vengono processati dalle stesse macchine ma ognuno ha una propria sequenza dovuta a motivi tecnologici Casi più complessi non possono essere risolti da algoritmi costruttivi. (euristiche e metaeuristiche)

Introduzione Algoritmi costruttivi Con il termine “Algoritmi costruttivi” si intende un particolare insieme di algoritmi che costruiscono una soluzione ottimale per un certo problema utilizzando un semplice insieme di regole capace di generare l’ordine di processamento ideale per ciascuna macchina.

Introduzione Nel caso di scheduling di macchina singola sono stati individuati diversi algoritmi di tipo costruttivo. Non si è così fortunati nel caso di Flow-shop o Job-shop. Esistono comunque dei casi fortunati in cui le macchine da gestire sono 2 o 3 al massimo. Altri algoritmi costruttivi esistono per alcuni casi speciali di certi problemi.

Risultati sul Flow-Shop Nel flow shop i vincoli di tipo tecnologico impongono ai job di essere processati dalla stessa sequenza di macchine ma in generale ogni macchina può processare sequenze diverse di job. M1 M2 t

Risultati sul Flow-Shop Job Ordine di processamento J1 M1 M2 M3 … Mm J2 M1 M2 M3 … Mm J3 M1 M2 M3 … Mm J4 M1 M2 M3 … Mm … Jn M1 M2 M3 … Mm

Risultati sul Flow-Shop Teorema 1 Per il problema F//B con B indice di prestazione regolare è sufficiente considerare le schedule che hanno lo stesso ordine di processamento sulle prime due macchine.

Risultati sul Flow-Shop Dim. Consideriamo una schedula S. Se in M1 invertiamo l’ordine di I e K non ho ritardato lo starting time di nessun job in M2 e quindi nessun indice regolare può aumentare K I I K M1 t S K I M2 t

Risultati sul Flow-Shop Teorema 2 Per il problema F//Fmax è sufficiente considerare le schedule che hanno lo stesso ordine di processamento sulle macchine Mm-1 e Mm.

Risultati sul Flow-Shop Dim. Consideriamo una schedula S. Se in Mm invertiamo l’ordine di I e K non ho aumentato Cmax e quindi Fmax non può aumentare. I K Mm-1 t S I K I K Mm t

Risultati sul Flow-Shop Osservazioni Le dimostrazioni sembrano molto simili ma in realtà sono differenti per: La funzione obiettivo La macchina scelta per l’inversione dei job (prima macchina Vs ultima macchina). Sulle permutazioni delle altre macchine dalla M3 alla Mm-2 non possiamo dire niente.

Johnson’s algorithm per F2//Fmax Idee di base Due macchine con la medesima permutazione di job (vedi teorema 1) Schedulare per primi i job con tempo di processamento sulla prima macchina minore. Schedulare per ultimi i job con tempo di processamento sulla seconda macchina minore. Vogliamo ridurre i tempi di inattività delle macchine

Johnson’s algorithm per F2//Fmax Algoritmo K=0, L=n, J={J1, J2, J3… Jn} ai=min{ax J}, ax = px1; bi=min{bx J}, bx = px2 Se ak ≤ bk schedulo Jk in k-esima posizione e K = k-1, altrimenti schedulo Jk in L-esima posizione e L=L-1; J = J-{Jk} Se J ≠ Ø torno a 1) altrimenti termino

F2//Fmax esercizio Utilizzare l’algoritmo di johnson per F2//Fmax Job Processing times M1 M2 1 6 3 2 9 4 8 5 7

Johnson’s algorithm per J2//Fmax Eliminiamo l’assunzione che ogni job debba essere eseguito su tutte le macchine, otteniamo 4 insiemi di job: Job che devono essere processati solo da M1 Job che devono essere processati solo da M2 Job da processare prima su M1 e poi su M2 Job da processare prima su M2 e poi su M1

Johnson’s algorithm per J2//Fmax Algoritmo: Schedulare i job di A in qualsiasi ordine SA Schedulare i job di B in qualsiasi ordine SB Schedulare in job di C secondo l’algoritmo di Johnson SC Schedulare in job di C secondo l’algoritmo di Johnson a macchine invertite SD Usare per la prima macchina la sequenza: SC, SA, SD Usare per la seconda macchina la sequenza: SD, SB, SC

Johnson’s algorithm per J2//Fmax Osservazioni: La schedula in M1 comincia con Sc e termina con SD e la schedula di M2 comincia con SD e termina con SC in modo da sfruttare al meglio i path incrociati dei job e non fare attendere nessuna macchina. Le schedule SA , e SB sono generiche perché riguardano solo una macchina e le permutazioni sono equivalenti per Cmax

Processing order and times J2//Fmax esercizio Risolvere con Johnson il seguente problema J2//Fmax : job Processing order and times Prima macchina Seconda macchina 1 M1 8 M2 2 7 5 3 9 4 6 _

Johnson’s algorithm per un caso speciale di F3//Fmax L’algoritmo di johnson può essere esteso al caso di tre macchine in serie se sono verificate entrambe le seguenti condizioni:

Johnson’s algorithm per un caso speciale di F3//Fmax Sotto tali condizioni si può dimostrare che il problema è equivalente a quello di due macchine in serie con i seguenti processing time: ai = pi1 + pi2 bi = pi2 + pi3 A questo punto si applica l’algoritmo di johnson classico e si ottiene una permutazione che è la soluzione del problema.

F3//Fmax esercizio Risolvere F3//Fmax Job Actual Proc. times Calc. Proc. times M1 M2 M3 1 macch. 2 macch. 1 4 3 5=4+1 4=1+3 2 6 9 8=6+2 11=2+9 4=3+1 3=1+2 5 7 8=5+3 10=3+7 8 10=8+2 8=2+6 2=1+1

Metodo grafico di Akers per F/2 job/Fmax Il problema consiste nello schedulare 2 job su m macchine secondo un modello flow-shop. L’ordine di processamento può variare, non è permutation scheduling. Il problema è difficile e non esiste un metodo costruttivo. Questo è un metodo grafico che permette di aiutare le decisioni umane sullo scheduling.

Metodo grafico di Akers per F/2 job/Fmax Obiettivo: raggiungere x da o Utilizzando segmenti verticali, Orizzontali e obliqui a 45° M6 p26 tratti orizzontali il job 1 viene processato da solo. tratti verticali il job 2 viene processato da solo. tratti obliqui il job 1 viene processato con il job 2 su due macchine distinte. p25 M5 p24 M4 M3 p23 M2 p22 M1 p21 p11 p12 p13 p14 p15 p16 o Job 1

Metodo grafico di Akers per F/2 job/Fmax Fmax = Σp1i+Σ tratti verticali O equivalentemente Fmax = Σp2i +Σ tratti orizzontali M6 p26 p25 M5 p24 M4 Le schedule possibili sono 2m M3 p23 M2 p22 M1 p21 p11 p12 p13 p14 p15 p16 o Job 1

Grafo disgiuntivo Strumento di rappresentazione delle soluzioni per il job-shop o flow-shop. Grafo con mxn+2 nodi, n sono i job ed m i task per ogni job. 2 nodi sono fittizi e sono detti sorgente e pozzo. Gli archi tra i task di uno stesso job sono orizzontali e vengono detti “archi di job”. Gli archi tra task dello stesso tipo definiscono la sequenza dei task su di una macchina e vengono detti “archi di macchina” o “archi disgiuntivi”.

Grafo disgiuntivo Teorema Associando ad ogni nodo il tempo di processamento del task a cui si riferisce possiamo calcolare, una volta stabilito un sequenziamento, il makespan come peso del cammino di peso massimo dalla sorgente al pozzo.

Grafo disgiuntivo P S

Grafo disgiuntivo Osservazione: Per il problema di Flow-shop gli archi disgiuntivi possono essere solo verticali e quindi non possono determinare dei cicli, quindi tutte le soluzioni ottenute scegliendo un particolare sequeziamento su ciascuna macchina sono ammissibili. Nel job-shop possono invece determinarsi dei cicli e quindi soluzioni non ammissibili.

Grafo disgiuntivo RB-RC-RD-RA A SB-SC-SA-SD MC-MB-MA-MD GD- GA- GC- GB P C C’è un ciclo di Dipendenze!! D

Grafo disgiuntivo RA-RD-RC-RB A SB-SC-SA-SD MC-MB-MA-MD GD- GA- GB- GC P C D

Shifting bottleneck Il problema del job-shop è considerato uno dei problemi più difficili. Non esistono algoritmi costruttivi che permettano di risolverlo. Vengono spesso utilizzati algoritmi euristici o metaeuristici e tra questi lo “shifting bottleneck”. Questa euristica restituisce soluzioni ammissibili di alta qualità.

Shifting bottleneck Euristica che tenta di risolvere il prolema J//Cmax L’idea base è quella di individuare i sequenziamenti su ciascuna macchina considerando di volta in volta quella che risulta essere più critica delle altre. Si riduce il problema grande in una serie di problemi più piccoli e semplici.

Shifting bottleneck Si costruisce il grafo disgiuntivo privo degli archi disgiuntivi e si calcola il percorso critico. Per ogni macchina ed ogni task si calcola la finestra temporale che non fa aumentare Cmax. Se x è il valore del percorso massimo fino al nodo [i,j] il job non potrà cominciare prima di x-pij mentre se y è la lunghezza del percorso massimo da [i,j] al pozzo e Cmax(M0) è il makespan, il job non potrà terminare dopo Cmax(M0) – y senza incrementare il makespan.

Shifting bottleneck Per ogni macchina ho quindi un problema di tipo °/ri, di/Lmax da risolvere. La macchina che ha Lmax più alto è il collo di bottiglia e va schedulata per prima. Si dimostra che gli archi ottenuti dalla soluzione di tali problemi non determinano cicli. Sfortunatamente il problema °/ri, di/Lmax non è un problema semplice da risolvere.

Shifting bottleneck °/ri, di/Lmax è comunque più facile da affrontare perché si ha a che fare con una macchina singola ed il numero dei task da schedulare su di una macchina è in genere pari al numero di job e quindi molto più piccolo di m x n che è la dimensione del problema di job-shop. Tali problemi possono essere affrontati in maniera euristica, cercando di individuarne una soluzione di buona qualità.

Tabu Search Metaeuristica: “al di là dell’esperienza”. Framework o schema o filosofia con cui affrontare un problema di scheduling. Miglioramento della ricerca locale che spesso risulta miope e si blocca in ottimi locali spesso molto distanti da quello globale. Consiste essenzialmente di una ricerca locale con memoria.

Tabu Search Per sfuggire agli ottimi locali è necessario permettere alla ricerca di considerare anche “mosse” peggiorative. Bisogna inoltre ricordarsi di quali mosse sono state fatte per evitare di tornare nello stesso minimo locale. La struttura che rappresenta la memoria è la “Tabu List” che non è altro che una coda FIFO di una certa lunghezza in cui vengono memorizzate le mosse vietate.

Tabu Search Ad ogni passo la mossa eseguita (o meglio il suo contrario) viene aggiunto alla tabu list mentre la mossa da più tempo vietata viene eliminata. Questa tecnica ha dato ottimi risultati quando applicata a problemi di Job-shop ideale e vincolato. Come per la Local Search è necessario definire un “Intorno” che deve avere la proprietà di connessione.

Tabu Search La Tabu Search è in realtà un modello o Framework del tutto generale che si può applicare in regola di principio a tutti i problemi di ottimizzazione. Esistono molte varianti alla Tabu Search, per es. la tabu list può variare dinamicamente oppure è possibile considerare più tabu list contemporaneamente.

Tabu Search E’ possibile poi considerare una soluzione iniziale generata in maniera molto semplice e velocemente oppure partire da soluzioni con determinate proprietà che sono state generate con raffinate e complicate euristiche.

Genetic Algorithms Gli algoritmi genetici utilizzano la relazione naturale dell’adattamento all’ambiente per ottenere via via soluzioni migliori. L’ambiente è rappresentato dalla funzione obiettivo. Ogni soluzione viene rappresentata mediante una o più sequenze binarie o di interi. Tali sequenze sono i “cromosomi” della nostra soluzione.

Genetic Algorithms I cromosomi definiscono la bontà della soluzione. Soluzioni diverse possono avere caratteristiche interessanti che vorremmo appartenessero alla soluzione ottima. Alcuni operatori, “Crossover” e “Mutation” partendo da una coppia o da una soluzione ne determinano di muove mescolando il patrimonio genetico.

Genetic Algorithms I Crossover possono essere definiti in maniera diversa, un tipo molto utilizzato è quello a “taglio singolo”. 010010 01001010 011110 01011000

Genetic Algorithms Esistono diversi tipi di Mutation, tra quelle maggiormente utilizzate la più semplice è quella che modifica un solo gene. 0101001110001 0101011110001\

Genetic Algorithms I passi base di un algoritmo genetico sono: Generazione di una popolazione iniziale di soluzioni. Selezione delle soluzioni migliori destinate al crossover. Generazione delle soluzioni figlie. Applicazione della mutation.

Genetic Algorithms Esistono molti modi di applicare questo schema. Crossover e Mutation vengono applicati secondo una determinata probabilità. Tra le tecniche di selezione vi sono i tornei e la Roulette. Può essere presente più di una popolazione.

Genetic Algorithms Risultati molto interessanti sono stati ottenuti da questi algoritmi che hanno il pregio di adattarsi in maniera quasi indifferente a qualsiasi problema di ottimizzazione. Essendo algoritmi generali risultano essere più lenti ed a volte meno efficaci delle euristiche. Possono essere usati in ibridazione con euristiche.

Genetic Algorithms In problemi molto difficili possono costituire una fase iniziale di studio. Permettono facilmente di affrontare problemi multi-obiettivo. Sono flessibili e robusti.