Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail:...
-
Upload
santo-papi -
Category
Documents
-
view
219 -
download
2
Transcript of Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail:...
![Page 1: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/1.jpg)
Automazione Industriale
Scheduling Flow-Shop and Job-Shop
a.a. 2005/2006
Ing. M. CiavottaE-mail: [email protected]
Dipartimento di Elettrotecnica ed Elettronicadel Politecnico di Bari
![Page 2: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/2.jpg)
2
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
![Page 3: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/3.jpg)
3
Introduzione
Analisi complessità
Problemi Facili Problemi Difficili
Rilassamenti Algoritmi esatti e euristici
Algoritmi approssimati
![Page 4: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/4.jpg)
4
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)
![Page 5: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/5.jpg)
5
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.
![Page 6: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/6.jpg)
6
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.
![Page 7: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/7.jpg)
7
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
t
![Page 8: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/8.jpg)
8
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
![Page 9: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/9.jpg)
9
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.
![Page 10: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/10.jpg)
10
Risultati sul Flow-ShopDim.
Consideriamo una schedula S.
I
I
t
t
S
K
KM1
M2
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
![Page 11: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/11.jpg)
11
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.
![Page 12: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/12.jpg)
12
Risultati sul Flow-Shop
Dim.
Consideriamo una schedula S.
I
I
t
t
S
K
KMm-1
MmKI
Se in Mm invertiamo l’ordine di I e K non ho aumentato Cmax e quindi Fmax non può aumentare.
![Page 13: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/13.jpg)
13
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.
![Page 14: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/14.jpg)
14
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
![Page 15: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/15.jpg)
15
Johnson’s algorithm per F2//Fmax
Algoritmo
1. K=0, L=n, J={J1, J2, J3… Jn}
2. ai=min{ax J}, ax = px1; bi=min{bx J}, bx = px2
3. 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}
4. Se J ≠ Ø torno a 1) altrimenti termino
![Page 16: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/16.jpg)
16
F2//Fmax esercizio
Utilizzare l’algoritmo di johnson per F2//Fmax
Job Processing times
M1 M2
1 6 3
2 2 9
3 4 3
4 1 8
5 7 1
6 4 5
7 7 6
![Page 17: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/17.jpg)
17
Johnson’s algorithm per J2//Fmax
Eliminiamo l’assunzione che ogni job debba essere eseguito su tutte le macchine, otteniamo 4 insiemi di job:
A) Job che devono essere processati solo da M1
B) Job che devono essere processati solo da M2
C) Job da processare prima su M1 e poi su M2
D) Job da processare prima su M2 e poi su M1
![Page 18: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/18.jpg)
18
Johnson’s algorithm per J2//Fmax
Algoritmo:Algoritmo:1) Schedulare i job di A in qualsiasi ordine SA
2) Schedulare i job di B in qualsiasi ordine SB
3) Schedulare in job di C secondo l’algoritmo di Johnson SC
4) Schedulare in job di C secondo l’algoritmo di Johnson a macchine invertite SD
5) Usare per la prima macchina la sequenza: SC, SA, SD
6) Usare per la seconda macchina la sequenza: SD, SB, SC
![Page 19: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/19.jpg)
19
Johnson’s algorithm per J2//Fmax
Osservazioni:
1) 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.
2) Le schedule SA , e SB sono generiche perché riguardano solo una macchina e le permutazioni sono equivalenti per Cmax
![Page 20: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/20.jpg)
20
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
2 M1 7 M2 5
3 M1 9 M2 8
4 M1 4 M2 7
5 M2 6 M1 4
6 M2 5 M1 3
7 M1 9 _
8 M2 1 _
9 M2 5 _
![Page 21: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/21.jpg)
21
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:
1.
2.
1 21 1min{ } max{ }n n
i ii ip p
3 21 1min{ } max{ }n n
i ii ip p
![Page 22: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/22.jpg)
22
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:
1) ai = pi1 + pi2
2) bi = pi2 + pi3
A questo punto si applica l’algoritmo di johnson classico e si ottiene una permutazione che è la soluzione del problema.
![Page 23: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/23.jpg)
23
F3//Fmax esercizio
Risolvere F3//Fmax
Job Actual Proc. times Calc. Proc. times
M1 M2 M3 1 macch. 2 macch.
1 4 1 3 5=4+1 4=1+3
2 6 2 9 8=6+2 11=2+9
3 3 1 2 4=3+1 3=1+2
4 5 3 7 8=5+3 10=3+7
5 8 2 6 10=8+2 8=2+6
6 4 1 1 5=4+1 2=1+1
![Page 24: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/24.jpg)
24
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.
![Page 25: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/25.jpg)
25
Metodo grafico di Akers per F/2 job/Fmax
M1
M2
M3
M4
M5
M6
Job 1
Job 2
p11p12 p13 p14 p15 p16
p21
p22
p23
p24
p25
p26
o
x Obiettivo: raggiungere x da o Utilizzando segmenti verticali,Orizzontali e obliqui a 45°
• 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.
![Page 26: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/26.jpg)
26
Metodo grafico di Akers per F/2 job/Fmax
M1
M2
M3
M4
M5
M6
Job 1
Job 2
p11p12 p13 p14 p15 p16
p21
p22
p23
p24
p25
p26
o
x Fmax = Σp1i+Σ tratti verticali
O equivalentemente
Fmax = Σp2i +Σ tratti orizzontali
Le schedule possibili sono 2m
![Page 27: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/27.jpg)
27
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”.
![Page 28: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/28.jpg)
28
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.
![Page 29: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/29.jpg)
29
Grafo disgiuntivo
S P
![Page 30: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/30.jpg)
30
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.
![Page 31: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/31.jpg)
31
Grafo disgiuntivo
RB-RC-RD-RA
SB-SC-SA-SD
MC-MB-MA-MD
GD- GA- GC- GB
A
B
C
D
C’è un ciclo di Dipendenze!!
S P
![Page 32: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/32.jpg)
32
Grafo disgiuntivo
RA-RD-RC-RB
SB-SC-SA-SD
MC-MB-MA-MD
GD- GA- GB- GC
A
B
C
D
S P
![Page 33: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/33.jpg)
33
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à.
![Page 34: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/34.jpg)
34
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.
![Page 35: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/35.jpg)
35
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.
![Page 36: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/36.jpg)
36
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.
![Page 37: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/37.jpg)
37
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à.
![Page 38: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/38.jpg)
38
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.
![Page 39: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/39.jpg)
39
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.
![Page 40: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/40.jpg)
40
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.
![Page 41: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/41.jpg)
41
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.
![Page 42: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/42.jpg)
42
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.
![Page 43: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/43.jpg)
43
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.
![Page 44: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/44.jpg)
44
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.
![Page 45: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/45.jpg)
45
Genetic Algorithms
I Crossover possono essere definiti in maniera diversa, un tipo molto utilizzato è quello a “taglio singolo”.
011110 01011000
010010 01001010
![Page 46: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/46.jpg)
46
Genetic Algorithms
Esistono diversi tipi di Mutation, tra quelle maggiormente utilizzate la più semplice è quella che modifica un solo gene.
0101001110001
0101011110001\
![Page 47: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/47.jpg)
47
Genetic Algorithms
I passi base di un algoritmo genetico sono:
1) Generazione di una popolazione iniziale di soluzioni.
2) Selezione delle soluzioni migliori destinate al crossover.
3) Generazione delle soluzioni figlie.
4) Applicazione della mutation.
![Page 48: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/48.jpg)
48
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.
![Page 49: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/49.jpg)
49
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.
![Page 50: Automazione Industriale Scheduling Flow-Shop and Job-Shop a.a. 2005/2006 Ing. M. Ciavotta E-mail: ciavotta@dia.uniroma3.it Dipartimento di Elettrotecnica.](https://reader036.fdocuments.in/reader036/viewer/2022081513/5542eb57497959361e8c1e73/html5/thumbnails/50.jpg)
50
Genetic Algorithms
In problemi molto difficili possono costituire una fase iniziale di studio.
Permettono facilmente di affrontare problemi multi-obiettivo.
Sono flessibili e robusti.